S/KEY
S/KEY je autentizační systém běžný na systémech unixového typu založený na jednorázových heslech. Byl vyvinut pro přihlašování na server z jednoduchých řádkových terminálů a obecněji nedůvěryhodných počítačů, do kterých nechce uživatel vkládat své důvěrné dlouhodobé heslo. Protože jsou používána jednorázová hesla, je odposlechnutí hesla (například analyzátorem paketů) samo o sobě vůči tomuto zabezpečení neúčinné.
S/KEY je podporován v Linuxu (v rámci systému PAM), v OpenBSD, NetBSD a FreeBSD. Je také implementován v OpenSSH od verze 1.2.2 vydané v prosinci 1999. Je na něm založeno také autentizační schéma OPIE.
Systému se také někdy přezdívá Lamportovo schéma podle jeho autora, Leslieho Lamporta. První implementaci vytvořili Neil Haller, Phil Karn a John Walden ve společnosti Bellcore koncem osmdesátých let dvacátého století. Jeho popularita začala upadat, když jednak vypršely patenty chránící algoritmy asymetrické kryptografie a jednak došlo k rozšíření laptopů a protokolů typu SSH, které chrání kromě hesla i celou komunikaci, a původně běžné přihlašování z nedůvěryhodných počítačů se stalo menšinovou záležitostí.
Vytváření hesel
editovatCílový server, který bude ověřovat autentizaci, postupuje následovně:
- Nejprve je získáno úvodní náhodné tajemství W. To může vytvořit vestavěný generátor náhody, nebo jej může dodat uživatel.
- Požadovaných n hesel je vytvořeno n-násobným použitím kryptografické hašovací funkce H na tajemství W. Vzniká hašový řetězec jednorázových hesel
- H(W), H(H(W)), ..., Hn(W).
- Na konci vytváření hesel je zničeno tajemství W, neboť není dále potřeba a jeho kompromitace by kompromitovala celý systém.
- Uživateli jsou hesla dána v opačném pořadí, tedy Hn(W), Hn−1(W), ..., H(H(W)), H(W).
- Na serveru jsou smazána všechna hesla kromě prvního Hn
Použití hesel
editovatUživatel má tedy k dispozici n hesel. První heslo se nepoužije, začíná se až druhým heslem.
- Uživatel pošle heslo
pwd
, které je na řadě. - Server spočítá H(pwd) a srovná ho s hodnotou, kterou má uloženou. Pokud heslo odpovídá, tak autentizace uspěla a server si uchová
pwd
pro příští srovnání. - Uživatel si škrtne heslo, které již použil.
Bezpečnost
editovatBezpečnost metody S/KEY závisí mimo jiné na bezpečnosti použité kryptografické hašovací funkce, především na její odolnosti vůči útoku nalezením vzoru.
V základní podobě je ovšem metoda S/KEY zranitelná útokem člověka uprostřed a také některými útoky založenými na souběhu.
Odkazy
editovatReference
editovatV tomto článku byl použit překlad textu z článku S/KEY na anglické Wikipedii.