Přeskočit na hlavní obsah

Zabezpečení osobních dat (user privacy)

Použijte silnou kryptografii

  • Každá platforma zpracovávající uživatelské identity, osobní údaje nebo komunikaci, musí být kryptograficky zabezpečena
  1. Šifrujte komunikaci uživatelů při přenosu a ukládání
  2. Zabezpečte uživatelské secrets, jako jsou hesla, pomocí silných hashovacích algoritmů, čímž zmírníte rizika odhalení přihlašovacích údajů
  3. Dodržujte a použijte osvědčené TLS/SSL postupy (privátní klíče, silné šifry, délka klíčů a informativní varování pro uživatele) pro ochranu přenášených dat
  4. Šifrujte osobní údaje pomocí klíčů s dostatečnou délkou a za přísných přístupových podmínek
  5. Hashujte uživatelské credentials bez ohledu na to, zda jsou v úložišti šifrována nebo ne

Použijte HSTS

  • HSTS = HTTP Strict Transport Security
  • Hlavička nastavená serverem, která klientovi naznačuje, že jsou přijímána pouze zabezpečená HTTPS připojení
  • Vyzývá klienta, aby změnil všechny nezabezpečené HTTP odkazy na HTTPS a nutí ho, aby při selhání odmítl jakékoli TLS/SSL připojení, které není uživatelem považováno za důvěryhodné
  • HSTS má podporu u většiny prohlížečů
  • Hlavička je užitečná pro uživatele, kteří se obávají špehování a man-in-the-middle útoku
  • Pokud z praktických důvodů není možné vnutit uživatelům HSTS, měli by vývojáři dát alespoň možnost HSTS povolit, pokud ji chtějí někteří uživatelé využívat

Použijte certificate pinning

  • Certificate pinning lze použít k zajištění toho, že certifikát serveru je nejen platný a důvěryhodný, ale také se shoduje s očekávaným certifikátem pro daný server
  • Certificate pinning pomáhá
    • Předchází kompromitaci certifikační autority - kompromitovaná autorita, které uživatel důvěřuje, může vydávat certifikáty pro libovolnou doménu, což umožní útočníkům odposlouchávat uživatele
    • V prostředích, kde jsou uživatelé nuceni akceptovat potenciální škodlivou root autoritu, jako jsou firemní prostředí nebo národní PKI systémy
    • V aplikacích, kde uživatelé nemusí rozumět varování před certifikáty a pravděpodobně povolí jakýkoli neplatný certifikát
  • Více informací o certificate pinning najdete v OWASP cheat sheetu

Poskytněte uživatelům nouzový režim

  • Nouzový režim (panic mode) = režim, na který se mohou ohrožení uživatelé obrátit, když jim hrozí přímé vyzrazení credentials k jejich účtu
  • Cílem je zmatení útočníků a zabránění přístupu k citlivým a osobním údajům
  • Mnoho uživatelů je vystaveno mnoha hrozbám, o kterých většina tvůrců aplikací ani neví nebo je nebere v úvahu
  • Příkladem je režim, kdy uživatelé v nouzi mohou po ohrožení odstranit svá data, přihlásit se do falešných účtů nebo spustit zálohování / odesílání / skrývání citlivých údajů
  • Vhodný režim se liší podle typu aplikace
  • Například software pro šifrování disků (VeraCrypt), může implementovat panic mode, který spustí falešný systémový oddíl, pokud uživatel zadá nouzové heslo
  • Poskytovatelé emailových služeb mohou zavést nouzový režim, který skryje předem definované, citlivé, emaily nebo kontakty, zároveň zabrání tomu, aby nouzový režim ovládl skutečný účet
  • Nouzový režim nesmí být snadno zjistitelný
  • Útočník uvnitř nouzového režimu nesmí mít možnost zjistit, že je v nouzovém režimu
  • Jakmile je útočník uvnitř nouzového režimu, musí být umožněno pokračování v běžných operacích
  • Pokud se útočník uvnitř nouzového režimu pokusí vytvořit nouzový režim, musí to být možné, jinak pozná, že je uvnitř nouzového režimu
  • Další možností je, že nouzový režim nebude možné zapnout z uživatelského účtu, ale jiným způsobem

Invalidujte remote session

  • Poskytněte uživatelům možnost zobrazit, odpojit a zneplatit všechny online sessions
  • Vhodné v případě ztráty a odcizení zařízení nebo když mají uživatelé podezření na krádež cookies (např. kvůli man-in-the-middle útoku)

Povolte připojení z anonymních sítí

  • Anonymní síť (Tor) poskytuje uživatelům šanci uniknout dohledu nebo překonat cenzurní bariéry
  • Aktivisté často využívají sítě k tomu, aby informovali o nespravedlnosti nebo posílali necenzurované informace do zbytku světa
  1. Usilujte o to, aby k vašim službám měli přístup uživatelé zpoza těchto sítí
  2. Přehodnoťte jakoukoli politiku proti anonymním sítím (s ohledem na dopad na lidi na celém světě)
  3. Snažte se integrovat nebo umožněte snadné připojení aplikací s anonymními sítěmi s podporou
    • proxy serverů SOCKS
    • integračních knihoven (např. OnionKit pro Android)

Zabraňte úniku IP adres

  1. Vezměte v úvahu výhody toho, že uživatelům umožníte zablokování načítání obsahu ze třetích stran na stránce
    • Může se hodit v případě, že hostíte externí obsah třetích stran - avatary, přílohy s fotografiemi
  • Kdyby bylo možné vkládat obrázky nebo externí domény například do uživatelova feedu nebo timeline, útočník by pomocí něj mohl zjistit IP adresu uživatele tím, že např. obrázek hostuje na své doméně a sleduje HTTP požadavky na něj
  1. Zvažte, zda dáte uživateli možnost blokovat externí obsah jako preventivní opatření
  • To se týká především sociálních sítí, fór nebo emailů
  • Většina emailových klientů například ve výchozím nastavení blokuje načítání obsahu ze třetích stran, což uživatelům poskytuje lepší ochranu soukromí a anonymitu

Buďte upřímní a transparentní

  1. Sdělte uživatelům pravdu, pokud aplikace nedokáže uživateli poskytnout dostatečnou právní nebo politickou ochranu nebo pokud nedokáže zabránit zneužití či úniku citlivých údajů
  • Díky tomu se uživatelé dokáží kvalifikovaně rozhodnout, zda službu použijí nebo ne
  1. Informujte uživatele, pokud jsou jejich údaje předmětem vyšetřování externími subjekty nebo byl vznesen požadavek na jejich odstranění
  • Upřímnost výrazně přispívá ke kultivaci důvěry mezi aplikací a jejími uživateli
  • Umožňuje uživatelům pečlivě zvážit své možnosti, čímž předchází jejich poškození