Warning: Missing argument 2 for wpdb::prepare(), called in /home/stromber/public_html/kryptoblog/wp-content/plugins/wp-super-edit/wp-super-edit.core.class.php on line 109 and defined in /home/stromber/public_html/kryptoblog/wp-includes/wp-db.php on line 1222
Test av Yubicos kodgenerator » Kryptoblog

Test av Yubicos kodgenerator

December 11th, 2007 by Joachim Strömbergson Leave a reply »

Jag har precis testat (lekt en stund) med en kodgenerator från svenska Yubico.

Yubico

Den version av YubiKey jag testat är YubiKey Spin.

YubiKey Spin

Enheten ser ut som ett litet USB-minne. Men när jag kopplade in den ville MacOS X att jag skulle hjälpa till att identifiera det okända USB-tangentbord jag precis pluggat in. Eftersom enheten bara har en knapp var det inte så lätt att trycka på de knappar OS:et ville att jag skulle trycka på. Men när jag tryckt på den knapp som finns kom OS:et fram till att den inte kunde identifiera tangentbordet, och enheten sattes helt enkelt till ett generiskt tangentbord.

Och det är precis det här som är det fina i kråksången. Sett från OS:et identifierar och beter sig USB-nyckeln verkligen som om den vore ett tangentbord. Detta blir än mer uppenbart när man startar upp en editor och trycker några gånger på knappen. Vad som kommer ut ser ut ungefär så här:

deaddeadeadgikuhnitkbifdlhgcnjkejbngcvubbft
deaddeadeaditcielkughinkgcnjfrjcnvhlbfbggtg
deaddeadeadjkvrberittikdvereibehjkfrtgrdilf
deaddeadeadndvivdenteuguuncbfrcvjtjjbkchfin
deaddeadeadcuutgtrjjftbknefuindldnbkvkteiiu
deaddeadeadjkhgnvhthubfefintcjdulfhdfbltdvv
deaddeadeadcchggdvjjlrburhklhchbriivefcklvf
deaddeadeaddlgunlnrkctkiehfeujvhccgvtnbfjtb
deaddeadeadvnjuifetlthgedlktuhickehrkicckcf

Varje gång man trycker på knappen kommer det ut en sträng på 44 tecken. Strängen består av en inledande del om 12 tecken som uppenbarligen är en ID-del och sedan 32 tecken som förhoppningsvis representerar värden från en bra rektangelfördelning. (I texten ovan har jag ersatt ID-delen med en fejkad del.)

Det tar enheten runt en sekund att generera en sträng. Inte blixtsnabbt, men mycket snabbare man hinner skriva av koden i ett LCD-fönster.

Vad gäller säkerheten skriver Yubico på sin webbplats om algoritmen som används att:


Apart from present hardware authentication tokens, YubiKey does not rely on a two-way challenge-response protocol, battery-powered time base, keyboard or a display.

Yet, how can a device be so secure when four of the most common security measures present in state-of-the-art authentication devices have been removed?

The YubiKey generates a truly unique 128-bit code at each authentication event and there is no time window during which two authentication codes are equal. All of the unique 128-bit code is encrypted with AES-128 and is then encoded to “readable form”, where the resulting string is transmitted in its full length.

The main components of the unique code comprise:

1. A hidden identity field to verify the decrypted result to a non-published identity. 2. A volatile counter is incremented by one for each code that has been generated. This code is reset at each power-up. 3. A non-volatile counter is incremented by one for each power-up event. The value of this counter is preserved even when power is lost. 4. A non-predictable counter value is fed by a time-base that is highly device and session dependent. Together with a server-based authentication module, this counter can provide a strong protection against “Phishing” attempts. 5.A random seed. 6.A cryptographic checksum.

Together, these fields form a 128-bit value and provide a higher number of combinations than a 3 followed by thirty-eight zeroes. Combined with a further encryption using AES-128 and the fact that a hacker has no information about the plaintext, cryptanalysis is futile.

Det låter bra. Det hade dock varit spännande att läsa en bra analys på algoritmen och veta mer om hur dom använder AES (ex vilken kryptomod) samt gärna sett resultatet av mangling av genererade koder i Marsaglias Diehard-tester.

Enligt Yubico skall nyckeln även kunna fånga upp Caps Lock-tryckningar vilket skall göra att man kan få en kod genererad bara genom att snabbt trycka två gånger på det vanliga tangentbordets Caps Lock-tangent. Detta fick jag dock inte att fungera, vilket antagligen har att göra med vilket generiskt tangentbord som enheten fick som profil.

Detta är knappast ett fullödig test, men mina första intryck är att Yubico användningsmässigt sett tänkt helt rätt. Funkar säkerheten är YubiKey en riktigt smart liten kodgenerator, ex för identifiering på OpenID-webbplatser.

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

Advertisement

6 comments

  1. Flourtanten says:

    Intressant. Bra exempel på hur bra usability (låta enheten identifiera sig som keyboard och därigenom skippa manuell inknappning) kan höja säkerheten genom att man får högre entropi.

    Bara man inte får krångel som sätter käppar i hjulet som t.ex.
    “Detta fick jag dock inte att fungera, vilket antagligen har att göra med vilket generiskt tangentbord som enheten fick som profil.”
    Även om det inte stjälpte hela lasset i det här fallet så kan ju liknande problem med drivers etc. dra ner usabilityn rejält.

    Lite konstigt att det inte verkar finnas några som helst standarder for tokens/2-factor än förresten.

  2. @ Flourtanten:

    Anledningen till att Caps Lock inte funkar är nog att det inte är implmenterat på många av de äldre “spin”-modellerna,

    Också: det finns vissa standarder, i alla fall inom algoritmer. Se exvis http://www.openauthentication.org/ som använder RFC 4226 (och andra).

  3. Flourtanten says:

    tack Hans,
    Anledningen till att jag tyckte det kom sig av att ingen av de fåtal system av 2-factor jag stött på vekar ha använt några speciella standarder (utöver lågnivåsaker som standardiserade primitiver) – så det var lite spontan kommentar.

  4. Är “S. Josefsson Datakonsult” på http://www.yubico.com/about/references/ samma Simon Josefsson som är Head of R&D (http://www.yubico.com/about/people/) på Yubico? 🙂

  5. Joachim says:

    Aloha!

    Fredrik: Japp!

Leave a Reply

You must be logged in to post a comment.