S/KEY

Z Wikipedie, otevřené encyklopedie

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[editovat | editovat zdroj]

Generování hesel v systému S/KEY

Cílový server, který bude ověřovat autentizaci, postupuje následovně:

  1. 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.
  2. 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).
  3. Na konci vytváření hesel je zničeno tajemství W, neboť není dále potřeba a jeho kompromitace by kompromitovala celý systém.
  4. Uživateli jsou hesla dána v opačném pořadí, tedy Hn(W), Hn−1(W), ..., H(H(W)), H(W).
  5. Na serveru jsou smazána všechna hesla kromě prvního Hn

Použití hesel[editovat | editovat zdroj]

Autentizace hesly v schématu S/KEY

Uživatel má tedy k dispozici n hesel. První heslo se nepoužije, začíná se až druhým heslem.

  1. Uživatel pošle heslo pwd, které je na řadě.
  2. 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í.
  3. Uživatel si škrtne heslo, které již použil.

Bezpečnost[editovat | editovat zdroj]

Bezpeč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[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku S/KEY na anglické Wikipedii.