Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Šifrování dat ve webové aplikaci

Martin
verified
rating uzivatele
(62 hodnocení)
4. 9. 2017 14:38:38
Zdravím.
Jak máte ve svých webových aplikací řešeno šifrování obsahu (např. číslo kreditní karty), který musí být rozšifrovatelný, tedy nějaký hash nelze použít.
Zatím jsem to nikdy nepotřeboval a zjišťuji možnosti, jak to řešit co nejlépe.
Díky
Martin
4. 9. 2017 14:38:38
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299116
Ideální je takové věci vůbec neukládat - viz. https://www.pcisecuritystandards.org/pdfs/pci_fs_data_storage.pdf. Pro uložení kreditní karty brány často API, kdy se o to postará brána a na aplikaci je identifikace zákazníka.
Obecně citlivá data používám RSA - zašifrování veřejným klíčem a dešifrování privátním, ke kterému nemá hlavní aplikace přístup. Lze použít třeba GnuPG nebo OpenSSL. Při ukládání do DB lze také využít https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_aes-encrypt do blobu, ale to je symetrická šifra, takže i samotná aplikace musí mít přístup ke klíči, kterým to jde zase rozšifrovat...
4. 9. 2017 15:18:27
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299115
Martin
verified
rating uzivatele
(62 hodnocení)
4. 9. 2017 16:50:57
Myslel jsem si to, že to asi nebude jen tak. Já potřebuju konkrétně ukládat API klíč k přístupu na bankovní účet uživatele.
4. 9. 2017 16:50:57
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299114
A má to pracovat automaticky bez uživatele, nebo je k tomu uživatel potřeba - že by bylo možné nechat fyzicky šifrovaný klíč u uživatele a na serveru mít jen klíč k dešifrování.
4. 9. 2017 16:56:59
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299113
node
verified
rating uzivatele
(5 hodnocení)
4. 9. 2017 17:00:54
Na to aby si mohol uchovavat informacie o platobnych kartach musis mat PCI certifikat, co je dost hardcore zalezitost. Preto sa to riesi tak ze na brane ktora to podporuje si cez JS vytvoris resource a uchovavas si iba jeho idcko a cez api brany potom robis na to idcko transakcie. To sa tyka pripadu ze mas branu u seba a nerobis presmerovanie. Ak presmeruvas, neriesis nic co sa tyka uchovania informacii, len validujes token ked usera presmeruje brana ku sebe po platbe cez ich api, pripadne to ide cez webhooky.
Co sa tyka ineho siforvania tak s tym nemam ziadnu skusenost, nakolko si to ani neviem realne predstavit ako by som riesil odsifrovanie pri query na db a podobne.
PS: uchovavat info o karte bez PCI certifikatu je bud nezakonne alebo minimalne asociacia platobnych kariet(ci jak sa to vola ?D) by ti blokli ucty a vypovedali zmluvy.
4. 9. 2017 17:00:54
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299112
Martin
verified
rating uzivatele
(62 hodnocení)
4. 9. 2017 17:17:45
Napsal smitka;1409058
A má to pracovat automaticky bez uživatele, nebo je k tomu uživatel potřeba - že by bylo možné nechat fyzicky šifrovaný klíč u uživatele a na serveru mít jen klíč k dešifrování.
Původní plán byl automatika. Je to prostě aplikace na evidenci příspěvků v neziskové organizaci. Platby by kontroloval jen admin. Ale je pravda, že bych to mohl nechat tak, že by musel data z banky stáhnout "ručně" a vždycky by zadal API klíč. Ten by se použil pro dotaz a nikam neukládal. To by asi mohlo být ok, ne? Sice by to snížilo komfort, ale o se dá dělat.
4. 9. 2017 17:17:45
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299111
API klíč bych důležitostí nesrovnával s uložením kreditní karty, samozřejmě je to také citlivý údaj. Často jde vygenerovat API klíč jen pro čtení, takže jsou dopady zase o něco menší. Já podobné věci řeším tak, že mám extra server, který nemá žádné porty otevřené (a ani vlastně nemusí mít veřejnou IP), kromě SSH omezené na mé IP adresy. Na tomto serveru mi běží skript s API klíčem, který s bankou komunikuje - získá potřebná data, anonymizuje je (v mám případě mi stačí zachovat variabilní symbol, částka a datum) a výsledek "exportuje" na veřejný server.
---------- Příspěvek doplněn 04.09.2017 v 19:12 ----------
Nicméně API klíče vídám často v konfigurácích webové aplikace. Záleží proti čemu se chceš vlastně bránit, při plné kompromitaci filesystému pomůže jen mít klíče mimo samotný systém - pevné disky serverů například dešifruji tak, že klíč stahuji z externího serveru přes SSH (ano, používám SSH na spoustu věcí). Pokud dojde ke kompromitaci celého systému, tak je často únik API klíče ten menší problém, co se musí řešit. Zvážil bych několik řešení:
a) dát API klíč do konfiguráku mimo hlavní složku webu a doufat, že to bude ok
b) API klíč v konfiguráku ještě zašifrovat (AES, RSA,...) a klíč dát na další místo (třeba do DB - pak útočník musí získat jak filesystém, tak DB)
c) postupem s uzavřeným strojem, jak jsem psal předtím
d) udělat to interaktivní a klíč k rozšifrování (nebo jeho část) mít uložen u uživatele v cookie, nebo ho nějak přepočítat z jeho hesla
4. 9. 2017 18:44:24
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299110
Martin
verified
rating uzivatele
(62 hodnocení)
5. 9. 2017 08:20:51
Díky za rady. Udělám to jak říkáš.
5. 9. 2017 08:20:51
https://webtrh.cz/diskuse/sifrovani-dat-ve-webove-aplikaci/#reply1299109
Pro odpověď se přihlašte.
Přihlásit