Apa yang sebenarnya dilindungi oleh frasa laluan pada kunci peribadi VPN
Ia mengunci fail pada cakera, bukan terowong yang berjalan atau log masuk akaun anda. Ketahui apa yang diliputi gesaan, apa yang tidak, dan apa yang perlu dilakukan jika ia bocor.
Gesaan yang muncul apabila klien VPN bermula mudah disalahtafsir. Ia bukan kata laluan akaun VPN, bukan kata laluan untuk terowong, dan memasukkannya tidak membuktikan sambungan itu selamat. Ia membuka satu perwakilan tersimpan kunci peribadi supaya klien boleh membaca bahan kunci dan menggunakannya untuk pengesahan. Semua yang berlaku selepas itu ialah soalan lain.
Dalam amalan jawapannya salah di tepi: orang menganggap frasa laluan melindungi terowong yang berjalan, atau menukarnya membatalkan salinan kunci yang sudah bocor. Kedua-dua andaian gagal, dan kedua-duanya gagal dengan cara yang membiarkan kelayakan terdedah sementara pengendali percaya ia sudah diurus.
Satu dialog, beberapa rahsia berbeza
Frasa laluan kunci peribadi menyahsulit fail. Kata laluan akaun mengesahkan anda kepada perkhidmatan. Kata laluan import PKCS#12 menyahsulit berkas yang mengandungi kunci dan sijilnya, dan ia mungkin bukan rentetan yang sama dengan frasa laluan kunci itu sendiri. Gesaan ini boleh kelihatan hampir serupa, dan meneka rahsia mana pergi ke mana ialah cara kunci berakhir terlekat dalam medan yang salah.
Penyulitan terowong itu sendiri ialah perkara keempat. Saluran data menggunakan kunci sesi yang dirundingkan semasa jabat tangan; frasa laluan kunci peribadi tidak memainkan peranan dalam melindungi paket individu. Jika seseorang boleh membaca fail kunci, dia boleh cuba meneka frasa laluan secara luar talian, tetapi jika dia boleh membaca paket, frasa laluan itu tidak relevan.
Apa yang diliputi penyulitan pada cakera
Kunci PEM yang disulitkan hadir dalam dua bentuk, dan pengepala memberitahu anda yang mana satu anda ada. Bentuk PKCS#8 moden bermula dengan -----BEGIN ENCRYPTED PRIVATE KEY-----; bentuk PEM lama, masih biasa dalam persediaan OpenVPN lama, bermula dengan -----BEGIN RSA PRIVATE KEY----- dan membawa Proc-Type: 4,ENCRYPTED dan baris DEK-Info terus di bawahnya. Fail menyimpan kunci peribadi disulitkan di bawah kunci yang diterbitkan daripada frasa laluan anda, biasanya melalui KDF berasaskan kata laluan dengan bilangan lelaran atau faktor kerja yang dinyatakan. Dokumentasi OpenSSL pkey meliputi format dan pilihan frasa laluan yang terpakai semasa membacanya.
Dua akibat menyusul. Frasa laluan lemah boleh diserang secara luar talian pada kadar yang dibenarkan KDF, jadi kebenaran fail dan akses sandaran masih penting walaupun fail disulitkan. Dan penyerang yang hanya memperoleh fail tanpa frasa laluan mesti meneka; sesiapa yang memperoleh fail dan frasa laluan mempunyai kunci itu, sama seperti ia tidak pernah disulitkan.
head -3 vpn.key
openssl pkey -in vpn.key -noout -pubout
openssl pkcs12 -in bundle.p12 -info -noout
head -3 menunjukkan pengepala dan, pada fail lama, baris Proc-Type dan DEK-Info yang membuktikan penyulitan; satu baris sahaja bukan bukti ke mana-mana arah. Baris pkey meminta frasa laluan dan mencetak separuh awam sahaja, yang membuktikan fail dan frasa laluan berfungsi tanpa mendedahkan kunci peribadi. Jangan gunakan -text untuk pemeriksaan itu: ia mencetak komponen peribadi, privateExponent, prime1, prime2 dan selebihnya, dan output itu tidak boleh pernah ditampal di mana-mana, tidak dalam tiket, sembang atau log. Perintah PKCS#12 juga memberitahu sama ada berkas mempunyai kata laluan MAC atau penyulitan berasingan, yang wajar diketahui sebelum anda menyerahkannya kepada rakan sekerja.
Apa yang berhenti dilindungi selepas kunci dimuatkan
Membuka kunci ialah peristiwa sehala bagi proses itu. Klien meminta kunci daripada KDF, menyahsulit fail, dan menyimpan kunci peribadi dalam memori selagi diperlukan. Sejak saat itu frasa laluan tidak melindungi apa-apa tentang sesi yang berjalan: bukan memori proses, bukan core dump, bukan sesi nyahpepijat yang dipasang pada klien, dan bukan sandaran mesin yang diambil semasa kunci digunakan.
Ini ialah sempadan yang sama dengan kunci SSH berfrasa laluan, atau peti besi pengurus kata laluan yang terbuka. Ia menaikkan kos mencuri fail dalam keadaan diam dan tidak melakukan apa-apa terhadap perisian hasad yang berjalan sebagai pengguna anda, aplikasi dibenarkan yang meminta klien menandatangani, atau pentadbir yang boleh membaca memori. Anggap ia sebagai satu lapisan, bukan kawalan yang menjadikan kunci selamat ditinggalkan.
Mengapa gesaan terus kembali
Klien yang bertanya lagi pada setiap sambungan semula tidak semestinya rosak. Sesetengah klien menyimpan frasa laluan dalam cache untuk sesi, sesetengah menyimpannya dalam rantai kunci OS, dan sesetengah boleh dihalakan kepada pembantu yang menyediakannya, jadi tingkah laku yang anda dapat bergantung pada klien dan konfigurasinya, bukan pada fail kunci.
Jika gesaan berulang ialah aduan sebenar, periksa pilihan cache dan pengesahan klien sebelum membuang penyulitan daripada kunci. Membuang frasa laluan menukar fail terlindung menjadi kunci teks biasa, dan sambungan semula menjadi senyap dengan kos satu-satunya kawalan semasa diam yang anda ada. Jawapan yang lebih baik biasanya stor kelayakan yang disokong dengan kebenaran fail yang sama seperti yang anda akan gunakan.
Kehilangan dan pendedahan bukan pembaikan yang sama
Frasa laluan yang hilang tidak boleh dipulihkan daripada sijil. Sijil ialah bahan awam yang mengikat nama kepada kunci; ia tidak mengandungi jalan kembali kepada kunci peribadi dan tiada petunjuk tentang frasa laluan. Pilihan praktikal ialah sandaran kunci yang dibenarkan, atau identiti baharu yang dikeluarkan melalui proses biasa pengendali. Sesiapa yang menawarkan 'memulihkan' frasa laluan menawarkan untuk menekanya.
Pendedahan memerlukan tindak balas berbeza. Menyulitkan semula kunci yang sama dengan frasa laluan baharu membiarkan bahan kunci tidak berubah, jadi salinan yang sudah dibuka di tempat lain masih berfungsi. Pembaikannya ialah membatalkan atau menggantikan kelayakan: keluarkan kunci dan sijil baharu, edarkannya, dan persarakan yang lama di rakan. Sehingga itu berlaku, menukar kata laluan fail ialah kerja rumah, bukan pembendungan. Simpan fail lama di luar sandaran hanya selepas identiti baharu disahkan berfungsi, dan catat nombor siri atau cap jari mana yang menggantikannya.