Înțeleg destul de bine matematica din spatele RSA, Elgamal, AES, SHA, dar nu cum sunt folosite lucrurile în practică. În ce se deosebesc subcheile de cheia principală? Înțeleg scopul său de la diverse site-uri web, dar cum este implementat intern? Cum este legată de cheia principală? Este o terminologie OpenPGP?

Comentarii

Răspuns

Acest post de utilizator rjh din 2008 în forumul enigmail răspunde bine:

Inițial în PGP 2.6, la începutul anilor 90, aveai doar o pereche de chei și a fost utilizată atât pentru criptare, cât și pentru semnare. Capacitatea de a avea perechi de chei suplimentare a prezentat unele provocări inginerești. În cele din urmă, s-a decis ca perechile de chei suplimentare să fie numite „subchei”, în ciuda faptului că nu există nimic „sub” despre ele. De asemenea, ceea ce numiți „cheia” dvs. nu este deloc o cheie – terminologia este o reținere din zilele în care o cheie era într-adevăr o cheie. În zilele noastre, o cheie este într-adevăr o colecție de chei, împreună cu unele metadate pentru identificatorii de utilizator, semnături etc.

De exemplu, „cheia” mea are patru perechi de chei pe ea: 5B8709EB , D0C6AAE4, 71E177DB și 8DB02BBB3.

Ceea ce GnuPG numește „cheia dvs. publică” este într-adevăr cea mai veche cheie de semnare din colecție. De exemplu, de când a fost creat primul 5B8709EB, GnuPG numește întregul set de chei și metadate „cheia 5B8709EB”.

Deci, „este posibil să aveți o cheie care să fie utilizată pentru criptare și semnare fără deloc subcheie? „Răspunsul este nu, deoarece toate perechile de taste dintr-o cheie sunt subchei. Chiar dacă există doar una dintre ele.

Răspuns

Subchei

Pachetele Subcheie sunt definite în RFC 4880, OpenPGP, 5.5 Pachetul de materiale cheie . Acestea „se disting doar printr-un alt ID de pachet și necesită o semnătură obligatorie pentru a fi de fapt utilă (vezi mai jos).

Un pachet Public-Subkey (etichetă) 14) are exact același format ca un pachet de chei publice, dar denotă o subcheie.

Utilizarea subcheii

Subcheile OpenPGP sunt utilizat în scopuri diferite:

  • A putea stoca cheia primară offline sau un dispozitiv mai sigur. Dacă o mașină cu o subcheie este afectată, puteți revoca cu ușurință subcheia, fără toate problemele de revocare cheia dvs. principală (partajarea unei noi chei, obținerea de semnături noi, …).
  • Având diferite chei secundare pe diferite mașini, de exemplu o cheie secundară de semnare pe un server de compilare. Din nou, revocarea unor chei simple este ușoară.
  • Utilizarea unei chei primare mai mari pentru o durată lungă de viață și subchei mai scurte, dar mai rapide, pentru utilizarea de zi cu zi.
  • Unii algoritmi nu acceptă atât criptarea, cât și semnarea. De exemplu, o cheie primară DSA necesită o altă cheie pentru criptare ption, de obicei asociat cu ElGamal.

Semnături de legare

Există subtipuri speciale de semnături pentru a lega subcheile de cheile primare (și viceversa), listate în RFC 4880, OpenPGP, 5.2.1 Tipuri de semnături :

0x18: Semnatură de legare sub-cheie

Această semnătură este o declarație a cheii de semnare de nivel superior care indică faptul că deține subcheia. Această semnătură este calculată direct pe cheia primară și subcheia, și nu pe niciun ID de utilizator sau alte pachete. O semnătură care leagă o subcheie de semnare TREBUIE să aibă un subpachet de semnătură încorporată în această semnătură de legare care conține o semnătură 0x19 făcută de subcheia de semnare pe cheia primară și subcheia.

0x19: Semnatura de legare a cheii primare

Această semnătură este o declarație a unei subchei de semnare, care indică faptul că este deținută de cheia primară și de subcheia. Această semnătură este calculată la fel ca o semnătură 0x18: direct pe cheia principală și subcheia, și nu pe niciun ID de utilizator sau alte pachete.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *