Kunci WireGuard pada ESP32: setiap peranti atau satu terbina dalam?
Kunci yang dikompil ke dalam firmware ESP32 ialah identiti rakan sebaya, bukan kata laluan. Tentukan dengan tiga syarat: pemilikan, perlindungan flash dan penggunaan semula seluruh armada.
Lakaran meletakkan kunci peribadi WireGuard dalam tatasusunan aksara, dan terowong berfungsi, sebab itulah soalan ini berulang. Keputusan yang sebenarnya perlu anda buat bukan «adakah ini selamat» tetapi «syarat mana antara tiga yang terpakai pada penggunaan ini». Iaitu: siapa boleh memegang peranti secara fizikal, apa yang dibaca daripada flash pada bahagian anda, dan sama ada armada berkongsi satu kunci atau setiap satu membawa kuncinya sendiri. Jawab semuanya dan reka bentuk akan menyusul, kerana setiap syarat mengubah kos kunci yang bocor, bukan hakikat bahawa ia boleh bocor.
Apa yang dibenarkan oleh kunci
WireGuard mengesahkan rakan sebaya dengan kunci awam. Pelayan memetakan kunci awam setiap rakan sebaya kepada alamat dan AllowedIPs senarai, jadi kunci peribadi itulah yang membolehkan klien menghantar trafik dari alamat itu.
Entri yang sama menentukan destinasi yang boleh dicapai oleh peranti, jadi kunci yang bocor mendedahkan rangkaian di belakang terowong serta alamat terowong.
Syarat pertama: siapa boleh memegang peranti
Jika unit berada dalam almari berkunci dan tiada sesiapa di luar pasukan anda menyentuhnya, pendedahan itu kebanyakannya soal pengedaran firmware. Jika ia dihantar kepada pelanggan, berada dalam kenderaan atau kembali dalam tempoh jaminan, pemilikan fizikal ialah kelayakan dan kerahsiaan binari adalah sekunder. Orang yang memegang peranti tidak perlu membaca kunci, kerana firmware yang berjalan akan membuka terowong untuknya. Sebab itulah jawapan di sebelah pelayan mesti merangkumi pembatalan dan jangka hayat terhad, bukan hanya imej terlindung.
Tentukan syarat ini sebelum dua yang lain, kerana ia menetapkan belanjawan untuk kedua-duanya.
Syarat kedua: apa yang dibaca daripada flash
Sesiapa yang boleh membaca imej flash mendapat semula kunci yang disimpan sebagai literal, sama ada melalui sambungan nyahpepijat, fail kemas kini, sandaran atau unit yang dipulangkan. Penyulitan flash meningkatkan kos dump langsung, dan dokumentasi ESP-IDF menerangkan apa yang diliputi ciri ini untuk bahagian dan konfigurasi tertentu. Ia tidak menjadikan kunci tidak boleh diekstrak di bawah setiap model serangan, dan ia tidak melakukan apa-apa untuk kes peranti di tangan. Anggap ia satu lapisan yang mengubah kos, bukan jawapannya.
Baca dokumentasi platform untuk cip dan konfigurasi tepat anda sebelum mendakwa sesuatu sifat dalam semakan reka bentuk.
Syarat ketiga: penggunaan semula seluruh armada
Satu kunci untuk satu kelompok pengeluaran bermakna setiap unit berkongsi satu identiti. Pelayan tidak dapat membezakannya dalam log, tidak dapat membatalkan satu tanpa membatalkan semua, dan tidak dapat membezakan klon daripada asal. Kunci setiap peranti menyelesaikan ketiga-tiganya, dengan kos satu langkah pendaftaran dan pemetaan nombor siri kepada kunci awam. Pemetaan itulah aset yang menjadikan pembatalan sebagai perubahan satu baris dan bukannya nyahkilat semula seluruh armada.
Jika armada itu lima unit di atas bangku, berkongsi kunci mungkin pertukaran yang wajar. Jika lima ratus di lapangan, ia sama sekali bukan pertukaran.
Corak pendaftaran yang menjadikan kunci setiap peranti praktikal
Jana pasangan kunci pada peranti semasa but pertama, simpan separuh peribadi dalam storan tidak meruap yang dilindungi, dan hantar hanya kunci awam kepada perkhidmatan pendaftaran yang memperuntukkan alamat dan menulis entri rakan sebaya. Sahkan respons pendaftaran, jika tidak penyerang di rangkaian tempatan boleh mendaftarkan kuncinya sendiri pada akaun anda. Jangan sekali-kali mencetak kunci peribadi ke konsol bersiri semasa peruntukan. Catat nombor siri peranti di sebelah kunci awam, supaya unit yang hilang sepadan dengan tepat satu entri rakan sebaya.
Itu perkhidmatan kecil, dan itulah perbezaan antara armada yang boleh anda audit dan armada yang hanya boleh anda nyahkilat semula.
Masa, titik akhir dan keputusan
Contoh menyegerakkan masa sebelum memulakan terowong, dan itu penting di luar TLS: jabat tangan WireGuard membawa cap masa untuk perlindungan main balik, jadi peranti yang but dengan jam salah boleh mendapat jabat tangan yang ditolak. Titik akhir ialah nama hos, yang meletakkan DNS dalam laluan kepercayaan walaupun kunci awam pelayan masih mengesahkan rakan sebaya. Alamat yang salah membazirkan percubaan dan mendedahkan bila peranti berada dalam talian. Selesaikan kedua-duanya sebelum berbahas tentang kunci.
Kemudian tentukan: kunci dikongsi hanya selagi pemilikan terkawal dan armada kecil, kunci setiap peranti sebaik sahaja salah satu daripada dua itu tidak lagi benar.