🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.security
Article #64339

Request for Comments: generator haseł jednora zowych

#64339
From: Michoo
Date: Mon, 05 Apr 2010 18:53
89 lines
5103 bytes
Szanowni grupowicze,
chciałbym przedstawić "do recenzji" swój pomysł - mile widziane 
wszystkie uwagi odnośnie jego bezpieczeństwa jak i "okołoprojektowe".

Projekt ten to sprzętowy generator haseł jednorazowych służących do 
logowania po ssh (a właściwie to każdego via PAM). Wiem, że istnieją 
przynajmniej 2 projekty powiązane z generowaniem haseł jednorazowych 
(OPIE  i OTPW), ale ich główną wadą jest czas potrzebny na zalogowanie - 
działają one na zasadzie challenge-response przez co każde logowanie 
składa się z sekwencji - odczytanie numeru - wygenerowanie 
hasła/odnalezienie hasła na kartce - wpisanie hasła. Ich głównymi 
zaletami jest brak dodatkowych urządzeń (generator w komórce albo lista 
na kartce).

Mój pomysł opiera się o emulowaną klawiaturę usb - dzięki czemu bez 
sterowników da się użyć w prawie każdym sprzęcie o ile ma on port usb 
(co jest zarazem jego największą wadą - nie ma usb - trzeba się logować 
'standardowo').

Sprzęt:
wymiary około 50x15 mm
atmega8
minimum 2 diody led do sygnalizowania stanu
2 przyciski do wprowadzania pinu i wysyłania hasła
(ewentualnie) rtc

Zasada działania:
Po naciśnięciu przycisku urządzenie wyśle hasło zakończone return.

Jako hasło generowane będzie md5 z:
1. losowego ciągu kilkudziesięciu znaków zapisanych w pamięci EEPROM - 
jego zadaniem jest utrudnienie ataków brute-force, wyciągnięcie go z 
urządzenia jest teoretycznie niemożliwe (zmiana programu wymaga 
wyczyszczenia EEPROMu), chyba, że znajdzie się na nie (urządzenie) 
eksploit, no i jest potrzebny fizyczny dostęp
2. numeru sekwencyjnego - system będzie sprawdzał np 100 następnych 
haseł (albo znacznie mniej aby utrudnić ataki brute-force umożliwiając 
jednocześnie atak DOS) i po poprawnym zweryfikowaniu nie akceptował 
wcześniejszych tak więc wygenerowane w chwili nieuwagi właściciela hasło 
na nic się nie przyda jeżeli tylko się on zaloguje przed jego 
wykorzystaniem, przypadkowe wygenerowanie hasła też nie będzie problemem
3. (opcjonalnie) kodu pin generowanego za pomocą naciskania 2 przycisków 
- dodatkowe zabezpieczenie aby ktoś, kto "pożyczy" sobie token nie mógł 
się zalogować, ani wygenerować zestawu haseł do zużycia przed naszym 
kolejnym logowaniem. W połączeniu z wykładniczymi opoźnieniami (np 2^n 
sekund gdzie n jest liczbą błędnych prób) już 4 kliknięcia (16 
możliwości) poważnie utrudniają a 6-8 (64-256 możliwości) praktycznie 
uniemożliwia sprawdzenie wszystkich kombinacji.
Pin wystarczy podać raz po podłączeniu urządzenia do komputera. Nie jest 
on w żaden sposób weryfikowany przez token.

Czy są jakieś uwagi co do tej metody? - mile widziane wytknięcie błędów 
w rozumowaniu jak i miejsc dla możliwych przeoczeń w implementacji.

W przypadku propozycji innych algorytmów liczenia hasha proszę pamiętać 
o ograniczeniach:
1KB RAM
6KB wolnego FLASHa
512B EEPROM
12MHz
brak sprzętowego dzielenia (tylko mnożenie)
FPU jedynie emulowane.


Rozszerzenie:
do urządzenia zostaje domontowany RTC (jest to pewien problem, gdyż 
tanie są niedokładne a dokładne są drogie i prawie niedostępne w Polsce, 
więc się nim zajmę tylko jeżeli otrzymam sample od Maxima)

czas liczony w odcinkach 2..5 minutowych staje się częścią sumy 
kontrolnej - zabezpiecza to przed wygenerowaniem sobie listy haseł "na 
później".



Dodatkowa funkcjonalność:
Generowanie wielu zestawów haseł - urządzenie trzyma wiele zestawów 
danych potrzebnych do wygenerowania hasła i pozwala się między nimi 
przełączać sygnalizując aktualny diodą.



Cały projekt jeżeli tylko dojdzie do etapu w którym nada się do 
pokazania skończy jako open hardware/open source.


-- 
Pozdrawiam
Michoo
Technical Details
Message-ID: <hpdbif$a11$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!goblin2!goblin.stu.neva.ru!newsfeed.freenet.de!feeder.news-service.com!feeder3.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.246.MISMATCH!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!news.underley.eu.org!moderators!marcinw

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!goblin2!goblin.stu.neva.ru!newsfeed.freenet.de!feeder.news-service.com!feeder3.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.246.MISMATCH!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!news.underley.eu.org!moderators!marcinw
From: Michoo <michoo_news@vp.pl>
Newsgroups: pl.comp.security
Subject: Request for Comments: generator haseł jednora zowych
Date: Mon, 05 Apr 2010 20:53:07 +0200
Organization: http://onet.pl
Lines: 89
Message-ID: <hpdbif$a11$1@news.onet.pl>
NNTP-Posting-Host: ghostwheel.underley.eu.org
Mime-Version: 1.0
X-Trace: news.onet.pl 1270493583 10273 89.72.132.251 (5 Apr 2010 18:53:03 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Mon, 5 Apr 2010 18:53:03 +0000 (UTC)
User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090706)
X-Moder-Tool: ModerGate.pl v3.0 (c) 2008 Daniel Podlejski
X-Orig-NNTP-Posting-Host: chello089072132251.chello.pl
X-Orig-Newsgroups: pl.comp.security
Approved: marcinw.pcs@gmail.com
X-Post-Key: 5cd33efaa390a44632f022a34194bff1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit