Ako spraviť zabezpečný prihlasovací formulár s SSL

Väčšina webových vývojárov vie, že ak ich používatelia zadajú užívateľské meno a heslo pre prihlásení na web, ktorý nie je zabezpečený SSL certifikátom, útočník môže vidieť ich užívateľské meno a heslo ako obyčajný text. Spraviť bezpečný prihlasovací formulár nie je vždy také jednoduché ako sa to zdá a mnoho veľkých webových stránok to spravilo nesprávne. I keď je to často nepochopenie, existujú dobré a zlé spôsoby, ako zabezpečiť svoje webové stránky s prihlasovacím formulárom SSL.

Aké sú riziká? Ak útočník môže ľahko zobrazovať niečie užívateľské meno a heslo, môže sa vydávať za užívateľa a spraviť obrovské škody nákupom tovaru, prevodom peňazí, čítaním e-mailov atď. Ale existuje oveľa viac nebezpečných možností: Pretože (neinteligentní) užívatelia často používajú rovnaké heslo na viacerých stránkach(používajú rovnaké heslo pre svoj bankový účet ako aj na účet Facebooku), útočník môže potenciálne ohroziť rad ďalších účtov. Ak necháte ľudí ukladať heslá vami, musíte vziať za to zodpovednosť, a to i v prípade, že bezpečnosť vašich vlastných stránok nie je kritická.

Ako nespraviť zabezpečený prihlasovací formulár

Pozrime sa na dva bežné chyby webových vývojárov, pokiaľ ide o vytváranie bezpečného prihlasovacieho formulára:

Nezabezpečenie prihlasovacieho formulára vôbec

Not securing a login form with SSL

Nezabezpečenie prihlasovacieho formulára vôbec je najčastejšia chyba na webe. Ak je vám jedno, ak niekto vie používateľské mená a heslá, vašich návštevníkov, alebo ak používate niektorú z alternatívnych metód overovania uvedených nižšie, je nutné použiť SSL na vašich prihlasovacích stránkach.

Uvedenie prihlasovacieho formulára https na nezabezpečenú stránku http

Pre vysoko návštevovanú stránku, SSL má väčší výpočtový  výkon. Tak prečo nedať prihlasovací formulár na http stránku (povedzme „homepage“) a nedať predložiť formulára na https stránku? To bude naozaj šifrovať pri predkladaní  prihlasovacie údaje, no je tu pár problémov s týmto prístupom:

  • Nie je žiadny spôsob, aby užívatelia vedeli, že prihlasovacie údaje budú šifrované (bez študovania zdrojového kódu stránky). Užívatelia internetu boli vyškolení, aby kontrolovali ikonu “Zlatý zámok” (alebo  nedávno “zelený riadok”) aby sa ubezpečili, že  webová stránka je šifrovaná pred odoslaním citlivých informácii na web. To je dôležité pre ochranu pred phishingom. Odstránenie tejto vizuálnej stopy, (aj napriek tomu, že odoslané informácie sú zašifrované), robí dojem, že formulár je nezabezpečený
  • Činnosť formulára by mohla byť ľahko útočníkom  zmenená na inú adresu URL. Vzhľadom k tomu, že prihlasovací formulár stránky sa prenáša cez HTTP, „man-in-the-middle“ útočník by mohol jednoducho aplikovať pre formulár  iné URL ak chce.  Užívateľ by  nemal ani netušenie, zatiaľ čo už  užívateľské meno a heslo bolo  odoslané k útočníkovi. Útočník by mohol dokonca aplikovať aj nejaký kód JavaScript,  zaslať užívateľské meno a heslo k útočníkovi  bez toho, aby používateľ vedel, že sa stalo niečo neobvyklé.

Najviac populárne príklady sú Twitter a Facebook:

Twitter login on HTTP

Facebook login on HTTP

Tieto formuláre  vlastne šifrujú prihlasovacie údaje, ale v podstate nie je žiadny spôsob, aby to užívatelia vedeli. Myslíte si, že je by bolo ťažké vykonávať „man-in-the-middle“ útok na http stránku s prihlasovacím formulárom? No, to nie. Existujú dokonca aj bezplatné automatické nástroje, ako je SSLStrip, aby to urobili. Jediná ťažká vec vo väčšine sietí je stať sa  „man-in-the-middle“.

Ako vytvoriť bezpečný prihlasovací formulár

Teraz, keď vieme, ako  nezabezpečiť prihlasovací formulár s SSL, poďme sa pozrieť, ako by sme to mali urobiť. Pre väčšie pohodlie, mnoho veľkých webov a bánk zvykli dávať prihlasovací formulár priamo na ich nezabezpečenú domovskú stránku. Našťastie, mnohí (vrátane http://www.bankofamerica.com/ a http://www.chase.com/) to zmenili na bezpečnejšiu metódu. Dokonca aj keď ideme na ich domovskú stránku s HTTP, odošle to na stránky https. V kombinácii s EV SSL certifikát, ktorý zobrazuje nezameniteľný “Zelený riadok”, šancu na man-in-the-middle/phishing útoku je virtuálne neexistujúca.

Secure HTTPS Login on PayPal

V podstate existujú dve možnosti pre vytvorenie zabezpečeného prihlasovacieho formulára:

  • Spraviť samostatnú prihlasovaciu stránku, ktorá môže byť sprístupnená iba s https a (samozrejme) predkladá pomocou HTTPS
  • Vždy vynútiť (uplatniť) HTTPS na domovskej stránke a zahrnúť prihlasovací formulár tam. Takéto prihlásenie je vhodnejšie a bezpečnejšie, pretože je pravdepodobnejšie,  že používatelia vytvoria záložku domovskej stránky https ako samostatnú prihlasovaciu stránku.

OWASP SSL Best Practices prehalasuje jasne:

Prihlásenie do vstupnej stránky musí použiť SSL
Aktuálna stránka, kde používateľ vypĺňa formulár musí byť stránky HTTPS. Ak nie je,  tak útočník by mohol zmeniť  stránku, odoslanú užívateľovi a zmeniť miesto odoslania formulára alebo vložiť JavaScript, ktorý kradne prihlasovacie meno / heslo, ako je napísané.

Ďalšie možnosti pre vytvorenie zabezpečneného prihlasovacieho formulára

Čo keď nechcete nútiť https na prihlasovacej stránke, alebo čo ak nechcete kupovať certifikát SSL vôbec? V súčasnej dobe existuje niekoľko alternatív, ktoré vám umožnia bezpečne overiť používateľov, bez toho aby ste museli robiť prácu sami:

* Facebook Connect. Prakticky každý má účet na Facebooku a Facebook to spravil jednoducho, aby overil užívateľa používajúceho ich Facebook užívateľské meno a  heslo. Overovanie sa deje na vlastnej stránke Facebooku (správne zabezpečenej SSL), takže je úplne bezpečná a znamená, že užívatelia si nemusia pamätať ďalšie užívateľské meno a heslo iba vašej stránky.
Facebook login button

  • Open ID. Podobne ako pri pripojení na Facebook, Open  ID umožňuje používateľom overenie na inej stránke kde je teraz k dipozícii niekoľko Open ID služieb, hoci to nie je tak populárne ako Facebook.
  • Twitter. Twitter ponúka aj API, ktoré umožňuje používateľom prihlásiť sa bezpečne na svojej stránke pomocou ich Twitter účtu.

Zabezpečenie si prihlasovací formulár správne SSL je naozaj len jedna malá časť zabezpečenie webu, ale bez toho, že ste sa užívatelia negatívny dojem bezpečnosti. Tým, že správne, pomôžete všetky weby sú bezpečnejšie posilnením očakávania užívateľov.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

*

Môžete použiť tieto HTML značky a atribúty: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>