Am făcut un program de mesagerie privată și aș dori să verific dacă nimic nu este stupid în utilizarea criptografiei.
Sunt amator și nimic nu este pentru producție.
Multumesc in avans.
Schimburile de mesaje sunt criptate end-to-end cu AES-OCB.
Cheia de sesiune este schimbată după cum urmează:
La început, se încarcă cheia privată și se generează cheia publică.
Serverul își trimite cheia publică către client.
Clientul verifică cheia publică a serverului cu un fișier know_host.
În acest fișier, adresele gazdei sunt stocate hashing (sha256) cu cheia lor publică (sha256).
Clientul verifică dacă cheia publică primită este cea corectă, în caz contrar amprenta sha256 a cheii publice este afișată pentru verificarea de către utilizator.
Clientul generează cheia de sesiune de 128 de biți și o criptează cu cheia publică a serverului.
Clientul trimite către server: cheia de sesiune criptată, cheia sa publică, semnătura RSASSA-PSS (sha256) a cheii de sesiune.
Serverul verifică identitatea clientului cu propriul fișier know_host.
Decriptează cheia de sesiune. Verifică semnătura cheii de sesiune cu cheia publică a clientului.
Ambele părți sunt autentificate și au cheia de sesiune, începe comunicarea normală.