Mengapa satu paket VPN disulitkan boleh menelan kos lebih rendah daripada jangkaan anda
Satu lagi label kriptografi bukan satu lagi unit kerja. Bandingkan seluruh laluan: pembinaan AEAD, sokongan CPU, penampanan dan mod data yang dirundingkan.
Dua profil diuji pada gateway yang sama, satu dengan penyulitan dan satu tanpanya, dan yang disulitkan tidak lebih perlahan. Kadangkala ia lebih pantas, yang biasanya mencetuskan perdebatan panjang sama ada ujian itu dijalankan dengan betul. Hasilnya munasabah, kerana kos sesuatu paket bukan bilangan perkataan kriptografi dalam konfigurasi. Ia ialah set operasi yang dilaksanakan oleh pelaksanaan, pada perkakasan yang ada, mengikut susun atur penampan yang dipilihnya.
Gejalanya: yang perlahan bukan profil yang disulitkan
Katakan satu ujian lama membandingkan sifer AEAD dengan mod „tanpa penyulitan“ yang masih mengira kod pengesahan berasingan bagi setiap paket. Profil kedua menyembunyikan kandungan muatan tetapi mengekalkan cincangan bagi setiap paket, dan pada pemproses tanpa pecutan untuk cincangan itu kosnya boleh melebihi pembinaan bersepadu yang sepatutnya dikalahkannya.
Label dalam konfigurasi menyebut „penyulitan“, dan label itulah segala yang dilihat oleh kebanyakan perbandingan. Laluan paket menyebut sesuatu yang lain: satu profil melakukan operasi gabungan yang pemproses mempunyai arahan untuknya, dan satu lagi melakukan operasi berasingan yang tidak ada. Membaca fail konfigurasi sahaja tidak akan mendedahkan perbezaan itu, kerana kedua-dua entri kelihatan seperti satu baris. Hanya mod yang dirundingkan dan laluan kod di belakangnya menjelaskan hasilnya.
Itulah keseluruhan penjelasan, dan ia tidak memerlukan sebarang dakwaan tentang primitif mana yang lebih pantas secara sejagat. Kedua-duanya boleh menjadi pantas, kedua-duanya boleh menjadi perlahan, dan urutannya bergantung pada mesin dan kod.
Kira operasi, bukan label
Pembinaan AEAD, seperti yang diterangkan dalam RFC 5116, memberikan pelaksanaan satu antara muka yang memulangkan teks sifer dan tag bersama-sama. AES-GCM ialah satu contoh: penyulitan mod pembilang digabungkan dengan pengesah Galois. Antara muka itu tidak menjadikan integriti percuma; ia menjadikan gabungan itu ditakrifkan dengan baik, dan itulah yang membolehkan pelaksanaan mengoptimumkan pasangan itu sebagai satu unit.
Separate authentication path: payload -> independent HMAC -> framed packet AEAD path: payload -> authenticated encryption with tag -> framed packet
Ini lakaran pemprosesan, bukan nasihat konfigurasi. Yang pertama tidak mempunyai kerahsiaan tetapi masih membelanjakan CPU untuk pengesahan, dan itulah sebabnya „matikan penyulitan“ bukan sinonim kepada „matikan kerja kriptografi“.
Yang kedua boleh jadi lebih murah kerana pemproses menyediakan arahan untuk kedua-dua separuh: pusingan AES dan pendaraban tanpa bawa yang digunakan medan Galois. Pustaka juga memproses penampan bebas secara selari, yang mengekalkan arahan itu sibuk dan bukannya menunggu memori.
Apa yang sebenarnya dibolehkan oleh mod yang dirundingkan
Dengan Community OpenVPN, sifer data AEAD bermakna pilihan auth tidak lagi menyumbang HMAC saluran data tersendiri. Rujukan pilihan penyulitan menerangkan skop itu, dan itulah sebabnya dua konfigurasi yang kelihatan serupa dalam fail teks boleh berbeza dalam kerja bagi setiap paket.
Bacalah mod yang dirundingkan dan bukan senarai hasrat. Senarai sifer yang dibenarkan dan nama suite TLS tidak memberitahu anda operasi mana yang berjalan pada muatan, dan baris cipher lama mungkin tidak menerangkan apa yang dipilih oleh sambungan semasa.
openvpn --show-ciphers | head -20 sudo grep -E 'cipher|auth' /etc/openvpn/server.conf
Perintah pertama menyenaraikan sifer yang disokong oleh binari, iaitu senarai keupayaan dan bukan hasil yang dirundingkan. Yang kedua menunjukkan apa yang sebenarnya diminta oleh pelayan. Log sambungan ialah tempat untuk mengesahkan pilihan akhir, kerana klien boleh jatuh kepada sesuatu yang dibenarkan pelayan tetapi tidak dimaksudkan oleh sesiapa.
Ukur beban kerja yang sebenarnya anda jalankan
Penanda aras mikro kriptografi mengukur sesuatu primitif dalam keadaannya sendiri. Pemindahan VPN juga menyalin penampan, menjadualkan benang atau gangguan, memeriksa dasar dan melintasi rangkaian. Bahagian itu sering mendominasi, dan itulah sebabnya primitif yang lebih pantas tidak selalu menghasilkan terowong yang lebih pantas.
openssl speed -evp aes-256-gcm openssl speed -evp sha1
Kedua-dua perintah itu memberi anda perbandingan tempatan kasar bagi primitif pada mesin di hadapan anda, dan kedua-duanya jujur bahawa ia penanda aras mikro. Kedua-duanya tidak menyebut apa-apa tentang daya pemprosesan terowong anda, dan tidak sepatutnya dipetik sebagai sedemikian.
Kemudian ukur beban kerja yang penting, dengan segala-galanya yang lain dikekalkan malar: titik akhir yang sama, saiz paket yang sama, pengangkutan yang sama, dasar pemampatan yang sama. Jika perubahan profil juga mengubah pengangkutan atau lokasi pemprosesan, hasilnya menerangkan kelompok itu dan bukan kriptografi.
Jaga juga objektifnya. Laluan data dengan kapasiti kriptografi berlebihan masih boleh terikat kependaman kerana aplikasi menunggu perjalanan pergi balik, dan keuntungan kapasiti pukal tidak membaiki protokol yang banyak bercakap. Ukur konfigurasi yang disokong dan diluluskan dasar secara keseluruhan, dan perlakukan „kurang kotak mesti lebih pantas“ sebagai hipotesis sebagaimana adanya. Soalan yang berguna bukanlah sama ada penyulitan menelan kos, tetapi sama ada kos itu muncul dalam ukuran yang benar-benar anda pedulikan.