Dua peristiwa berbeza dipanggil kunci SSH bocor, dan kedua-duanya memerlukan tindak balas berbeza. Pengesahan kunci awam menghantar kunci awam dan tandatangan yang dibuat dengan kunci peribadi, jadi kunci peribadi tidak pernah menjadi medan dalam permintaan. Pemajuan ejen mendedahkan perkara lain, kerana hos jauh yang boleh mencapai ejen yang dimajukan boleh memintanya menandatangani tanpa pernah memegang kunci. Menganggap kedua-duanya sebagai satu peristiwa membawa sama ada kepada penggantian kunci yang sia-sia atau kepada delegasi yang terus berjalan.

Log masuk kunci awam menghantar tandatangan, bukan kunci

Pertukaran pengesahan membawa kunci awam pengguna dan tandatangan atas data sesi. Pelayan memeriksa tandatangan itu dengan kunci yang sudah dipercayainya, sebab itu separuh peribadi boleh kekal pada klien merentasi rangkaian yang tidak dipercayai. Pengendali VPN yang memerhati terowong tetap melihat sesi SSH yang disulitkan.

Itu menerangkan protokol, bukan kebolehpercayaan setiap hujung di laluan. Kekalkan pengesahan identiti hos, kerana klien yang menerima mana-mana kunci hos telah melepaskan kawalan yang berbeza daripada yang dibincangkan di sini. Sesi yang ditangkap dan kunci yang ditangkap adalah penemuan berasingan, dan hanya satu daripadanya kehilangan kelayakan. Simpan kedua-duanya dalam ayat berasingan dalam laporan.

ssh-keygen -lf ~/.ssh/id_ed25519.pub
ssh -o StrictHostKeyChecking=yes [email protected]

Perintah pertama mencetak cap jari awam supaya anda boleh membandingkannya dengan apa yang disenaraikan pelayan. Perintah kedua menjadikan pemeriksaan kunci hos eksplisit daripada bergantung pada nilai lalai yang tidak dibaca sesiapa. Jalankan kedua-duanya sebelum mengubah apa-apa pada kunci, supaya garis dasar didokumenkan.

Memajukan ejen mendelegasikan keupayaan menandatangani

Apabila pemajuan diaktifkan, soket muncul pada hos jauh dan ejen setempat menjawab permintaan yang datang melaluinya. Sesiapa yang boleh menggunakan soket itu sepanjang sesi boleh mengesahkan diri sebagai anda kepada hos yang menerima identiti yang dimuatkan. Tiada kunci peribadi melintasi rangkaian untuk menjadikannya berfungsi.

Pendedahannya ialah keupayaan, bukan fail. Sebab itu pemajuan milik tugas bernama dan hos bernama, bukan setiap sambungan yang dibuat komputer riba. Hos lompat yang menyampaikan sambungan tanpa ejen yang dimajukan biasanya menghapuskan keperluan itu sepenuhnya.

ssh-add -l
ssh -o ForwardAgent=no [email protected]
ssh -J [email protected] [email protected]

Yang pertama menyenaraikan identiti yang dipegang ejen sekarang, yang wajar diketahui sebelum menyerahkan soketnya kepada mesin lain. Yang kedua bersambung tanpa delegasi. Yang ketiga menunjukkan corak hos lompat yang sering menggantikan pemajuan sepenuhnya.

Pilih tindak balas berdasarkan bukti yang anda ada

Identiti penandatangan yang dipercayai terdedah memerlukan proses penggantian dan pembatalan, serta penyingkiran penerimaannya daripada perkhidmatan yang mempercayainya. Menghapuskan salinan pada komputer riba anda membiarkan setiap salinan lain tidak tersentuh. Mulakan dengan perkhidmatan, kemudian bersihkan klien.

Masalah delegasi sementara lebih sempit. Hentikan pemajuan yang tidak diperlukan, dan semak bersama pemilik insiden sesi serta identiti yang diliputinya. Penggantian kunci mungkin menyusul, tetapi bukti yang menentukan, bukan kebimbangan.

Tiada eksport yang diperhatikan hanya membuktikan bahawa mekanisme yang anda takuti tidak muncul. Ia tidak mengatakan apa-apa tentang apa lagi yang boleh dilakukan hos di hujung lain soket itu.

Kekalkan kawalan berasingan dalam laporan

Lindungi bahan peribadi, hadkan siapa yang boleh memintanya menandatangani, kekalkan identiti pihak lain yang disahkan. Itu tiga kawalan yang saling menguatkan, dan tiada satu pun menggantikan yang lain apabila anda menerangkan apa yang berlaku.

Komputer riba yang terjejas atau aplikasi berkeistimewaan di dalamnya ialah kes ketiga dengan julat kesan yang jauh lebih luas. Menukar laluan VPN tidak menyelesaikannya dan tidak memulihkan kepercayaan pada kunci yang mungkin telah dibaca dari cakera.

Catatkan komponen mana yang dipercayai, sama ada pemajuan diaktifkan, dan apa yang benar-benar diperhatikan. Catatan itulah yang menjadikan keputusan seterusnya boleh dipertahankan, bukannya tekaan tentang apa maksud kebocoran.

Artikel berkaitan