Cilvēki VPN apraksta kā „tādu, kas izmanto publiskās atslēgas šifrēšanu“, un pēc tam iedomājas, ka katra pakete tiek aizslēgta ar servera sertifikātu. Šis priekšstats ir nepareizs tādā veidā, kam ir nozīme, lasot konfigurācijas failu vai pakešu ierakstu. VPN publiskās atslēgas puse ir par to, lai pierādītu, kas ir partneris, un vienotos par slepenu materiālu; simetriskā puse ir tā, kas patiešām aizsargā trafiku, paketi pēc paketes, visu sesijas mūžu.

Abām pusēm ir atšķirīgs kalpošanas laiks, atšķirīgi atteices režīmi un atšķirīgas lietas, ko var droši publicēt. Kad tās atdala, jautājumi kā „vai RSA 2048 ir vājāks par AES-128“ vairs nemulsina, jo tie nekad nav bijuši salīdzināmi.

Trīs darbības, ko bieži sajauc

Publiskās atslēgas kriptogrāfija ir lietussargs pār vismaz trim atšķirīgām darbībām. Paraksts pierāda, ka privātās atslēgas turētājs ir apstiprinājis noteiktu ziņojumu. Atslēgu vienošanās ļauj diviem partneriem no publiski apmainītām vērtībām atvasināt kopīgu noslēpumu. Publiskās atslēgas šifrēšana paslēpj datus zem kāda publiskās atslēgas tā, ka tos var atvērt tikai privātā atslēga.

VPN rokasspiedieni pārsvarā izmanto pirmās divas. Sertifikāts nav šifrēšanas atslēga; tas ir parakstīts paziņojums, kas saista vārdu ar publisko atslēgu un ļauj otrai pusei izlemt, vai uzticēties tikko saņemtajai atslēgai. Piemēram, TLS 1.3 atslēgu izveide balstās uz (EC)DHE atslēgu vienošanos un sertifikāta parakstiem, nevis uz sesijas šifrēšanu ar servera publisko atslēgu.

Ko īstenībā rada rokasspiediens

Mūsdienu rokasspiedienā katra puse ģenerē efemēru atslēgu pāri, apmainās ar publiskajām pusēm un aprēķina kopīgu noslēpumu, kas nekad nešķērso vadu. Pēc tam šis noslēpums tiek laists caur atslēgu atvasināšanas funkciju, lai radītu atsevišķas atslēgas katram virzienam, kā arī nonce un IV materiālu, kas nepieciešams ierakstu slānim. WireGuard to dara ar savu uz Noise balstīto konstrukciju; TLS 1.3 to dara ar HKDF pār rokasspiediena transkriptu.

Ilgtermiņa akreditācija — sertifikāts un privātā atslēga vai statiska WireGuard atslēga — autentificē šo apmaiņu. Tā paraksta vai iemaisās transkriptā, lai svešinieks nevarētu pabeigt rokasspiedienu partnera vietā. Pēc tam akreditācija neveic darbu katrai paketei. Ja veiktu, katrai paketei būtu vajadzīga privātās atslēgas operācija, un noslogots tunelis būtu ierobežots ar lēnāko operāciju kaudzē.

No tā izriet divas blakusparādības. Pirmkārt, sesijas atslēgas katru reizi ir svaigas, tāpēc uzbrucējs, kas vēlāk nozog ilgtermiņa atslēgu, nevar atšifrēt iepriekš ierakstītas sesijas, ja vienošanās bija efemēra. Otrkārt, noplūdusi sesijas atslēga apdraud vienu sesiju, nevis identitāti.

Kāpēc lieli datu apjomi izmanto simetriskās atslēgas

Simetriskie šifri labi tiek galā ar apjomu: AES-GCM vai ChaCha20-Poly1305 apstrādā katru paketi ar jau atmiņā esošu atslēgu, autentificē galveni un palielina skaitītāju. Uztvērējpuse pārbauda nonce un autentifikācijas atzīmi un atmet visu, kas neizdodas vai atkārtojas. Tas ir pietiekami lēti, lai darbotos ar līnijas ātrumu parastā aparatūrā, un tā pati konstrukcija vienā piegājienā dod konfidencialitāti un integritāti.

Konstrukcija ir arī vieta, kur dzīvo lielākā daļa ieviešanas kļūdu. Atkārtots nonce GCM sabojā konfidencialitāti un autentiskumu uzreiz, tāpēc protokoli atvasina atslēgas katram virzienam un uztur skaidru skaitītāju vai laikmetu. Ja lasāt pakešu ierakstu un šifrētā teksta garums atbilst atklātajam tekstam plus fiksēts papildu apjoms, tad strādā simetriskais slānis, nevis publiskās atslēgas operācija katrai paketei.

Kalpošanas laiks, atslēgu atjaunošana un uz priekšu vērsta slepenība

Sesijas atslēgas ir paredzētas izbeigšanās brīdim. TLS 1.3 ļauj KeyUpdate ziņojumam ritināt trafika atslēgas; WireGuard atjauno sesiju pēc konfigurēta laika vai ziņojumu skaita un īsu brīdi patur veco paketēm ceļā. OpenVPN pēc grafika no jauna vienojas par sava datu kanāla atslēgām, un reneg-sec kontrolē intervālu.

Neviena no šīm rotācijām nav tas pats, kas sertifikāta atjaunošana. Sertifikāts var būt derīgs gadu, kamēr sesijas atslēgas mainās ik pēc dažām minūtēm, un sertifikātu var nomainīt, neaizskarot darbojošā tuneļa atslēgas. Plānojot derīguma termiņu, pajautājiet, kuru objektu jūs rotējat; atbilde nosaka, vai klienti savienosies no jauna vai tikai atjaunos atslēgas.

Konfigurāciju un diagnostikas lasīšana, nesajaucot objektus

Praksē jūs izvēlaties pilnu protokolu un tā atbalstītos primitīvu, nevis veidojat savu. OpenVPN --tls-crypt atslēga aizsargā vadības kanālu; datu kanāls izmanto saskaņotas simetriskās šifrēšanas. WireGuard PrivateKey un PublicKey ieraksti ir identitātes materiāls, bet tā transporta atslēgas tiek atvasinātas iekšēji. Šo lauku lasīšana kā viena veida noslēpuma noved pie kļūdām, piemēram, publiskās atslēgas ielīmēšanas tur, kur pieder privātā.

Turiet publisko materiālu atsevišķi no privātā. Sertifikāts, WireGuard publiskā atslēga un pirkstu nospiedums ir droši kopīgojami biļetenā. Privātā atslēga, iepriekš kopīgota atslēga un eksportēta sesijas atslēga nav. Salīdzinot stiprumu, salīdziniet viena tipa ietvaros: elipses līknes identifikators, RSA moduļa izmērs un AES atslēgas izmērs mēra dažādas lietas pie dažādiem pieņēmumiem. TLS 1.3 specifikācija ir noderīga atsauce par to, kā abi slāņi sader kopā, arī tad, ja jūsu tunelis nav TLS.

Saistītie raksti