Miks krüpteeritud VPN-pakett võib maksta vähem, kui arvate
Veel üks krüptograafiline silt ei ole veel üks tööühik. Võrrelge kogu teekonda: AEAD-konstruktsioon, protsessori tugi, puhverdamine ja kokku lepitud andmerežiim.
Kahte profiili mõõdetakse samal lüüsil, ühte krüpteerimisega ja teist ilma, ja krüpteeritud ei ole aeglasem. Mõnikord on see kiirem, mis tavaliselt tekitab pika vaidluse selle üle, kas test viidi läbi õigesti. Tulemus on usutav, sest paketi hind ei ole krüptograafiliste sõnade arv konfiguratsioonis. See on toimingute kogum, mida rakendus teeb, olemasoleval riistvaral ja valitud puhvri paigutuse kohaselt.
Sümptom: aeglane ei ole krüpteeritud profiil
Oletame, et ajalooline test võrdleb AEAD-šifrit režiimiga „ilma krüpteerimiseta“, mis arvutab siiski iga paketi kohta eraldi autentimiskoodi. Teine profiil peidab kasuliku koormuse sisu, kuid säilitab paketipõhise räsi, ja protsessoril, millel puudub selle räsi kiirendus, võib see maksta rohkem kui integreeritud konstruktsioon, millest see pidi üle olema.
Konfiguratsiooni silt ütleb „krüpteerimine“ ja silt on kõik, mida enamik võrdlusi vaatab. Paketi teekond ütleb midagi muud: üks profiil teeb liitoperatsiooni, mille jaoks protsessoril on käsud, ja teine eraldi operatsiooni, mille jaoks neid ei ole. Ainuüksi konfiguratsioonifaili lugemine ei paljasta kunagi seda erinevust, sest mõlemad kirjed näevad välja nagu üks rida. Tulemust selgitavad ainult kokku lepitud režiim ja selle taga olev kooditeekond.
See on kogu selgitus ja see ei nõua ühtegi väidet selle kohta, milline primitiiv on universaalselt kiirem. Mõlemad võivad olla kiired, mõlemad võivad olla aeglased, ja järjekord sõltub masinast ja koodist.
Loendage toiminguid, mitte silte
AEAD-konstruktsioon, nagu seda kirjeldab RFC 5116, annab rakendusele ühe liidese, mis tagastab šifriteksti ja sildi koos. AES-GCM on üks näide: loendurirežiimis krüpteerimine koos Galois’ autentijaga. Liides ei tee terviklikkust tasuta; see teeb kombinatsiooni hästi määratletuks ja just see võimaldab rakendusel paari üksusena optimeerida.
Separate authentication path: payload -> independent HMAC -> framed packet AEAD path: payload -> authenticated encryption with tag -> framed packet
Need on töötlemise visandid, mitte konfiguratsiooninõuanded. Esimesel puudub konfidentsiaalsus, kuid see kulutab siiski protsessorit autentimisele, ja täpselt seetõttu ei ole „lülita krüpteerimine välja“ sünonüüm sõnaga „lülita krüptograafiline töö välja“.
Teine võib olla odavam, sest protsessorid pakuvad käske mõlema poole jaoks: AES-i ringid ja Galois’ välja kasutatav ülekandeta korrutamine. Teegid töötlevad ka sõltumatuid puhvreid paralleelselt, mis hoiab need käsud hõivatuna, selle asemel et mälu oodata.
Mida kokku lepitud režiim tegelikult võimaldab
Community OpenVPN-i puhul tähendab AEAD-andmešiffer, et valik auth ei lisa enam oma eraldi andmekanali HMAC-i. Krüpteerimisvaliku viide kirjeldab seda ulatust ja see on põhjus, miks kaks tekstifailis sarnaselt näivat konfiguratsiooni võivad paketipõhises töös erineda.
Lugege kokku lepitud režiimi, mitte soovinimekirja. Lubatud šifrite nimekiri ja TLS-komplekti nimi ei ütle teile, millised toimingud koormusel jooksevad, ja vana cipher rida ei pruugi kirjeldada, mida praegune ühendus valis.
openvpn --show-ciphers | head -20 sudo grep -E 'cipher|auth' /etc/openvpn/server.conf
Esimene käsk loetleb šifrid, mida binaarfail toetab, mis on võimaluste nimekiri, mitte kokku lepitud tulemus. Teine näitab, mida server tegelikult küsib. Ühenduse logi on koht lõpliku valiku kinnitamiseks, sest klient võib langeda tagasi millegi peale, mida server lubab, kuid mida keegi ei kavatsenud.
Mõõtke koormust, mida tegelikult jooksutate
Krüptograafiline mikromõõtmine mõõdab primitiivi selle enda tingimustes. VPN-i ülekanne kopeerib ka puhvreid, ajastab lõimi või katkestusi, kontrollib poliitikat ja läbib võrgu. Need osad domineerivad sageli, mistõttu kiirem primitiiv ei anna alati kiiremat tunnelit.
openssl speed -evp aes-256-gcm openssl speed -evp sha1
Need kaks käsku annavad teile ligikaudse kohaliku võrdluse primitiividest teie ees oleval masinal ja need on ausad, et on mikromõõtmised. Need ei ütle midagi teie tunneli läbilaskevõime kohta ja neid ei tohiks kunagi sellisena tsiteerida.
Seejärel mõõtke koormust, mis loeb, hoides kõik muu muutumatuna: sama lõpp-punkt, samad paketi suurused, sama transport, sama tihenduspoliitika. Kui profiili muudatus muutis ka transporti või töötlemiskohta, kirjeldab tulemus seda kimpu, mitte krüptograafiat.
Hoidke ka eesmärk silme ees. Vaba krüptograafilise võimsusega andmeteekond võib siiski olla latentsusega piiratud, sest rakendus ootab edasi-tagasi reise, ja suure mahutavuse võidud ei paranda jutukat protokolli. Mõõtke toetatud ja poliitikaga heakskiidetud konfiguratsiooni tervikuna ning käsitlege „vähem karpe peab olema kiirem“ hüpoteesina, milleks see on. Kasulik küsimus ei ole, kas krüpteerimine midagi maksab, vaid kas kulu ilmub mõõtmises, mis teile tegelikult oluline on.