Manager de parole hardware sau cum să oprești introducerea parolelor și să începi să trăiești +53
- 10.02.16 10:52 •
- dmitry502 •
- # 276967
- Habrahabr •
- Din nisip •
- 143 •
- 45900
- la fel ca Forbes, doar mai bine.
Numele meu este% username%, sunt de ani și sunt paranoic. Și în fiecare zi lumea informațiilor îmi complică viața. Tehnologia devine din ce în ce mai mare, pragul de intrare în IT scade, iar noi devenim o realitate în care defectele de securitate brute sunt normale. Și, de asemenea, puterea tehnologiei informatice crește în fiecare an. În consecință, parolele noastre, stocate așa cum vor, vor deveni publice.
Securitatea nu este moartă, ci încapsulată și agonizantă. Și în fiecare an baterea de pe capacul cutiei neagră este tot mai liniștită, iar țipetele stoarse nu mai sunt audibile. Mă doare foarte multe abstracții.
Nu știm cum ne păstrează parolele obișnuite parolele noastre, așa că trebuie să ne ocupăm de securitatea noastră, dar, de asemenea, devine și mai dificilă în fiecare an. Și cantitatea de servicii necesare unei vieți confortabile crește doar. Și pentru toată lumea trebuie să aveți o parolă puternică și unică. De aceea nu mi-am schimbat viața personală.
Prin urmare, am venit cu abordarea noastră de hacking pentru stocarea și introducerea parolelor.
PSD NU este un înlocuitor pentru jetoanele criptografice. Acestea sunt zone complet diferite. Aici vorbim numai despre parolele de caractere, care vor fi introduse automat prin emularea tastaturii.
Ce problemă pot rezolva?
Parolele simbolice sunt o moștenire care va fi folosită de un număr mare de servicii de ceva timp. Nu voi începe chiar acum despre faptul că nu toți oamenii care folosesc programele folosesc tehnicile corecte de stocare a parolelor pe server.
Un exemplu de modalitate mai sigură de stocare a parolei
În cea mai mare parte, rezolv problema problemei de a introduce o parolă. Și acest lucru este mai important decât pare.
Utilizatorii ICloud pot calcula cu ușurință prin parolele lor, deoarece au adesea o scrisoare de majuscule, prima sau ultima scrisoare. Denumirea și data de naștere / vârsta frecvent utilizate
Cum să rezolv problema înainte de mine
Unii administratori de parole vă permit să completați automat unele câmpuri. Dar niciun manager de programe nu va funcționa fără unul încărcat, permițându-vă să executați binarele altor persoane, sistemul de operare. În plus, este imposibil să colectați codul de manager pentru toate sistemele de operare existente. Care duce la problema incapacității de a introduce automat parole într-un număr mare de yuzkeysov.
Iată câteva dintre ele:
PSD din perspectiva utilizatorului
Mai mult
Sistemul este format din trei dispozitive.
Computerul de acasă (MAIN_PC) cu programul de pe el:
Dispozitiv special (PSD):
PSD înseamnă dispozitivul de satisfacere a paranoiei
Cum se fac parole în sistem:
Cum să le folosiți pe toate:
PSD din punctul de vedere al securității
Și acum este o parte interesantă. Este necesar să le facem în siguranță. Desigur, este imposibil să faci un sistem indestructibil, dar puteți minimiza numărul de vectori de atac la fel de mult ca și noi.
Obiectivele pe care le-am stabilit pentru sistem sunt:
Să începem cu baza calculatorului. Acesta este primul lucru pe care utilizatorul îl creează și totul este răsturnat în el. E doar JSON criptat. Criptare - AES256 / CBC / PKCS7Padding. În curând intenționăm să trecem la formatul KeePass.
Nu uitați că din orice dispozitiv poate fi considerată memorie. Prin urmare, este imposibil să păstrați parolele în formă clară pe PSD în orice caz. Dar, de asemenea, criptarea va ajuta puțin, deoarece atunci parola va fi stocată în aceeași memorie. Prin urmare, sa decis să nu se păstreze deloc parolele complete (cu excepția unei baze de date de rezervă privind MAIN_PC).
Algoritmul de stocare a parolelor este foarte simplu:
- Scrieți în password_part_1 128 octeți aleatorii
- Facem XOR-ul parolei de utilizator cu parola_part_1 și primești password_part_2
În consecință, pentru fiecare parolă obținem două părți (parola_partență, parola_participare2), din care XOR ne va da parola originală (cu umplutură din \ 0 la final). Deoarece avem multe parole, parola este o matrice. În consecință, vom avea o serie de parole pentru fiecare dispozitiv.
parola_part_1 [i]. password_part_2 [i] == parola [i]
Criptarea traficului
Dar dacă hackerul decide să intercepteze traficul și să fure PSD-ul. Încă mai poate citi memoria cu EEPROM și primește parolele, ale căror părți a obținut de la trafic. Deci, traficul ar trebui să fie criptat (nu deosebit de original, da).
Traficul ar trebui criptat astfel încât, dacă pierdeți PSD-ul, nu puteți decripta pachetele. Problema este că hackerul știe tot ce știe PSD-ul. Dacă PSD poate decripta traficul datorită informațiilor de pe acesta, atunci hackerul va putea decripta traficul. Vom folosi chei unice care sunt actualizate cu fiecare pachet nou. PSD va avea cheia numai pentru următorul pachet, dar nu pentru cel primit anterior. Inițial, aceleași chei sunt setate de computer (MAIN_PC) la scrierea bazelor de date.
BtKey și HBtKey sunt cheile pentru criptarea și verificarea integrității pachetului. Ambele se schimbă cu fiecare mesaj. Pentru a verifica integritatea, se utilizează HMAC bazat pe SHA256. Cheia pentru aceasta este HBtKey [i]. Pentru a cripta pachetul în sine, se utilizează AES256 / CBC / PKCS7Padding. Pachetul trece passwords_part_1 și PassId. De asemenea, în pachet există și chei pentru decriptarea următorului pachet (HBtKey [i + 1], BtKey [i + 1]).
Mai multe liste ale listelor dumnezeiești:
concluzie
Sa dovedit lucru destul de convenabil, interesant și sigur.
Un dispozitiv va avea capacitatea de a rula firmware-uri personalizate pentru a implementa orice funcționalitate care va fi necesară (de exemplu, bluetooth usb-keyboard). Și există și câteva lucruri interesante în abordarea siguranței.
Acum avem un dispozitiv prototip de lucru, firmware pe dispozitiv, programul Android și două programe (gui și consola) de pe computer.
Programele de calculator sunt scrise în .net și funcționează bine în mono. Dar, în sistemele Linux, biblioteca pe care o folosesc pentru a comunica cu PSD nu văd dispozitive, dar intenționez să o rezolv.
În planurile noastre avem următoarele:
Vulnerabilitate scanare
Apropo, în protocolul descris mai există o vulnerabilitate logică. Nu poate fi operat de la distanță (este mai ușor să instalezi un keylogger) și este fixat fără cârje. Puteți încerca să găsiți această vulnerabilitate (vulnerabilitatea este logică, nu la nivel de cod) și prima persoană care o găsește, promitem să oferim dispozitivul gata (în cazul în care începem producția în masă).
Firește, în cazul unei lansări, această vulnerabilitate va fi închisă.
Răspunsul lui hash: 28dbc42aa86100dc5e325c4bea80c67c980cfd26
Numai utilizatorii înregistrați pot participa la sondaj. Conectați-vă. te rog.