Langkau ke kandungan
Kembali ke Nymchat

Pangkalan pengetahuan Bercakap dengan orang

Penyulitan tahan kuantum

Mesej peribadi dan sembang kumpulan antara pengguna Nymchat boleh disulitkan supaya bahawa merakam mereka hari ini tidak membeli penyerang, walaupun sekali komputer kuantum tiba.

Masalah yang ia selesaikan

Penyulitan Nostr biasa — NIP-44, iaitu apa mesej peribadi dan sembang kumpulan dibina di atas — mempunyai dua bahagian. Separuh itu sebenarnya mengacah teks (ChaCha20, HMAC-SHA256, HKDF) bertahan dengan baik terhadap kuantum komputer. Separuh yang bersetuju dengan kunci tidak.

Perjanjian utama itu ialah lengkung eliptik Diffie-Hellman pada secp256k1, matematik yang sama digunakan Bitcoin. Algoritma Shor menyelesaikannya secara langsung. Sesiapa sahaja yang menjalankannya dengan kunci awam memulihkannya kunci persendirian, dan dengannya setiap rahsia yang dikongsi kunci itu pernah dihasilkan.

Tuai sekarang, nyahsulit kemudian

Ini bukan masalah yang bermula apabila komputer kuantum tiba. Musuh dengan cukup storan boleh merekodkan trafik yang disulitkan hari ini, duduk di atasnya, dan nyahsulitnya bertahun-tahun kemudian. Apa sahaja yang anda hantar sekarang yang masih penting pada masa itu sudah terdedah. Itulah yang spesifik menyerang ciri ini mengalahkan.

Bagaimana ia berfungsi

Nymchat meninggalkan format mesej NIP-44 sepenuhnya sahaja. perjanjian utama yang telah digunakan tidak disentuh; satu kedua, bebas ditambah di sekelilingnya.

  • piawaian secp256k1 ECDH, betul-betul seperti dahulu;
  • ML-KEM-768, algoritma pasca kuantum NIST diseragamkan sebagai FIPS 203. Keselamatannya bergantung pada masalah kekisi, yang tidak disentuh oleh algoritma Shor.

Kedua-dua mereka adalah bercampur, bukan bercampurMesej itu dienkripsi dengan NIP-44 persis seperti biasa, dan teks enkripsi yang selesai kemudian disegel untuk kedua kalinya di dalam lapisan pasca-quantum — ChaCha20-Poly1305, yang dikunci daripada rahsia ML-KEM yang dikongsi. kunci penghantar, kunci penerima, teks enkripsi encapsulation dan kunci ML-KEM penerima terikat ke dalam derivasi itu sebagai konteks, jadi lapisan tidak boleh diangkat daripada satu pertukaran dan diputar semula ke atas yang lain.

Kombinator seperti X-Wing atau Signal's PQXDH menggabungkan kedua-dua rahsia ke dalam satu kunci sebaliknya. Nymchat tidak, dan sebabnya adalah praktikal bukannya kriptografi: menggabungkan memerlukan output ECDH mentah, dan ekstensi pelayar atau penandatangan jarak jauh tidak akan menghantar itu kembali - ia mengembalikan teks enkripsi selesai, yang merupakan seluruh titik memegang kunci di mana aplikasi tidak boleh menjangkau ia. Layering menyimpan NIP-44 keseluruhan dan dihasilkan oleh apa-apa yang memegang kunci identiti, tanda tangan termasuk, jadi logins itu adalah peserta biasa bukannya yang dikecualikan.

Keistimewaan yang penting adalah sama dalam mana-mana cara: hasilnya adalah sekurang-kurangnya sekuat separuh yang kuatMembaca mesej bermakna melalui kedua-dua lapisan.Jika kriptografi rantai ternyata lebih lemah daripada yang diharapkan, memecahkan ML-KEM hanya memotong lapisan luar dan meninggalkan NIP-44 hari ini di bawah.Jika secp256k1 jatuh ke komputer kuantum, lapisan dalaman dibuka tetapi lapisan luar tidak.

Setiap mesej mendapat pertukaran pasca-kuantum baru, jadi memulihkan satu kunci mesej mendedahkan tiada apa-apa tentang yang lain.

Post-quantum separuh memerlukan kunci sendiri, dan di mana kunci itu datang adalah apa yang menentukan sama ada keseluruhan perkara itu bernilai apa-apa. bukan Bekerja daripada anda nsecKomputer kuantum yang memecahkan separuh klasik memulihkan nsec daripada kunci awam anda, dan apa-apa yang berasal daripada nsec oleh formula yang diterbitkan keluar dengan ia — dua kunci dibuka oleh satu perhentian. Kode Kuantitatif untuk setiap akaun, sekali, daripada byte acak yang tiada nilai awam mendedahkan. nympq1… dan duduk di sebelahmu nsec dalam butiran Nym anda, didedahkan dan disalin dengan cara yang sama.Ini bukan kata laluan dan bukan log masuk kedua: ia adalah bahan utama yang anda boleh simpan, persis seperti nsec.

Tiada apa-apa untuk dihidupkan

Ini bukan tetapan. Penyulitan pasca-kuantum hanyalah bagaimana Nymchat bercakap dengan Nymchat, the cara yang sama penyulitan biasa ialah cara ia bercakap dengan semua yang lain. Ia terpakai secara automatik kepada setiap mesej peribadi dan sembang kumpulan dengan pengguna Nymchat yang lain.

Seting › Privasi & Keselamatan menunjukkan sama ada ia aktif dan berapa ramai kenalan anda yang ia kini mencapai, tetapi hanya sebagai maklumat - tiada penukar.

Ini berfungsi di mana-mana cara anda log masuk. penyampaian pelayar (NIP-07) atau log masuk penandatangan jauh (NIP-46) tidak pernah memberikan kunci identiti anda kepada aplikasi, yang merupakan titik keseluruhan menggunakan satu - dan ia tidak perlu. Kedua-dua separuh enkripsi disimpan terpisah: penandatangan anda melakukan bahagian yang selalu dilakukan, dan aplikasi melakukan bahagian selepas kuantum dengan kod pemulihan anda, yang disimpan secara langsung. penyampaian dan log masuk penandatangan jauh adalah peserta biasa dalam kedua-dua arah. bar status dalam Settings memberitahu apa yang dikenakan kepada anda.

Tiada apa-apa yang anda sudah mempunyai dipengaruhi. Setiap mesej dalam sejarah anda tetap boleh dibaca pada mana-mana peranti dengan apa-apa kecuali anda nsecsama seperti sebelum ini, dan kekal seperti itu untuk kehidupan akaun. nympq1… kod pemulihan ialah bahan yang tahan kuantum yang ditulis dari sekarang: mesej baru, dan seting disegerakkan dan arsip yang bergerak dengan mereka.

Jadi peranti mesti menyimpan kod itu sebelum ia boleh membuka mereka, dan menambah peranti kini mengambil satu langkah tambahan. nympq1… kod daripada peranti yang sudah mempunyai ia. Ia adalah sekali per peranti, bukan sekali per log masuk. Langkah itu bukan geseran yang kami gagal untuk menghapuskan: kod yang boleh tiba pada peranti baru dengan sendirinya akan perlu untuk pergi ke sana dalam mesej biasa, dan mesej itu adalah persis apa penyerang ciri ini wujud untuk berhenti rekod.

Aplikasi ini menghasilkan nympq1… kod untuk anda, jadi tiada apa-apa untuk dipilih dan apa-apa untuk dicipta. untuk melihatnya: ketuk nym anda untuk membuka Lihat atau Edit Nym's DetailSelepas itu Memperkenalkan kunci peribadi dan kod pemulihan nym iniIa terletak di bawah anda nsec, dengan butang tampilan dan salinan yang sama. anda tidak perlu memikirkannya sehingga hari anda menambah peranti kedua.

Peranti yang tidak dihubungkan tidak dikunci dalam masa itu. ia terus membaca segala-galanya yang ditulis di bawah enkripsi lama dan terus menghantar secara normal, dan sebaik sahaja anda menghubungkan ia, ia kembali dan membuka mesej yang tahan kuantum yang tidak boleh dibaca sebelum ini.

Peranti anda yang lain

Peranti kedua memerlukan dua perkara: versi semasa aplikasi, dan nympq1… kod. pembinaan yang lebih tua terus berfungsi - ia tidak dipotong - tetapi ia tidak boleh membaca format semasa, jadi sementara ia masih dalam akaun salinan yang anda simpan untuk diri sendiri jatuh kembali kepada yang lebih tua yang ia boleh. Peranti yang terkini yang belum dikaitkan masih membaca sejarah lama anda dan meminta kod.

Dengan siapa anda mendapatkannya

Kedua-dua pihak perlukan ia. Setiap pelanggan Nymchat menerbitkan pengumuman kecil yang ditandatangani, yang tamat tempoh yang berkata demikian, dan termasuk kunci pasca-quantum apabila ia mempunyai satu.Mengekalkan pengumuman yang sah untuk seseorang adalah apa yang menjadikan aplikasi menggunakan pertukaran yang lebih kuat dengan mereka.Tidak ada negosiasi untuk mengganggu: sama ada kunci itu ada atau ia tidak, dan kerana pengumuman ditandatangani oleh pengarangnya, kunci penggantian perlu dipalsukan bukannya hanya disampaikan.

Apa penyerang yang mengawal relay boleh Do ialah menahan pengumuman, jadi penghantar tidak pernah melihat kunci dan jatuh kembali kepada enkripsi biasa.Ia bernilai menyatakan dengan jelas.Ia kos perlindungan selepas kuantum untuk mesej-mesej itu; ia tidak boleh membuat satu tidak dapat dibaca, dan ia tidak boleh membuat anda menerima kunci yang bukan milik anda.Pelanggan meminta beberapa relay, jadi menekan ia mengambil kawalan semua daripada mereka.

Pengumuman-pengumuman itu bertahan seminggu dan menyegarkan diri setiap hari semasa anda menggunakan aplikasi.Jika anda berada di luar lebih lama daripada itu, anda terlepas dan anda dibaca sebagai pelanggan Nostr biasa untuk beberapa masa: mesej yang dihantar kepada anda dalam jurang itu disulitkan dengan cara biasa bukannya dengan cara yang tahan kuantum.Mereka masih tiba, dan anda masih boleh membacanya - dan tiada apa yang anda terima sebelum ini dipengaruhi.Buka aplikasi mengumumkan semula pengumuman anda, dan penyulitan yang lebih kuat kembali dengan sendirinya.Tidak ada apa-apa untuk diubah semula.

Orang lain terus bekerja sama seperti sebelum ini. Bitchat pengguna dan mana-mana pelanggan kami yang lain menerima standard NIP-17Tiada yang pecah apabila anda mesej kepada seseorang di luar Nymchat.

Mesej selepas kuantum menggantikan yang standard dan bukannya dihantar bersamanya. Menghantar kedua-duanya adalah sia-sia: penyerang hanya akan memecahkan salinan yang lebih lemah.

Salinan yang ditujukan kepada awak dapatkan juga — yang dibaca oleh peranti anda yang lain, yang arkib di belakangnya, dan tetapan disegerakkan anda, yang bergerak dengan cara yang sama dan membawa anda senarai perbualan, kunci kumpulan anda dan sejarah mesej anda. Meninggalkan mana-mana daripada yang lama penyulitan akan menjadikan mereka perkara paling lemah yang anda simpan: boleh dibaca oleh sesiapa sahaja yang melanggar kriptografi hari ini, tidak kira betapa berhati-hatinya mesej itu sendiri dimeterai.

Kekal boleh dibaca oleh Bitchat

Bitchat tidak boleh membaca format mesej Nymchat, jadi mengikut sejarah Nymchat menghantar salinan kedua setiap mesej dalam format Bitchat kepada sesiapa sahaja yang mungkin menggunakannya — yang, untuk seseorang anda tidak pernah mendengarnya, bermakna semua orang.

Pengumuman di atas menjadikan tekaan itu tidak perlu. Jika seseorang telah menerbitkan satu, mereka adalah menjalankan Nymchat, jadi salinan Bitchat digugurkan dan hanya mesej yang lebih kuat dihantar. Jika mereka belum, tiada apa yang berubah: mereka masih menerima kedua-dua format, sama seperti sebelum ini, jadi tiada apa-apa yang anda hantar boleh menjadi tidak boleh dibaca kerana apl itu salah meneka tentang pelanggan yang digunakan seseorang.

Seperti penyulitan itu sendiri, ini adalah automatik dan tidak mempunyai tetapan.

Mengapa tidak hanya meneka daripada aktiviti awam

Nymchat boleh membuat kesimpulan siapa yang menjalankan apa daripada aktiviti saluran awam, dan ia akan melihat orang lebih cepat. Tetapi kesimpulan itu kadang-kadang salah, dan salah di sini bermakna menghantar mesej kepada seseorang apl mereka tidak boleh dibuka, tanpa ralat dan tiada cuba semula. A diterbitkan pengumuman ditandatangani oleh pengarangnya dan tidak boleh dipalsukan, jadi ia digunakan sebagai gantinya.

Dalam sembang kumpulan

Mesej kumpulan sudah disulitkan secara berasingan untuk setiap ahli, jadi kumpulan boleh mencampurkan kedua-dua jenis secara bebas — ahli yang pelanggannya menyokongnya mendapat penyulitan yang lebih kukuh, selebihnya mendapat satu standard, dan kumpulan itu berfungsi seperti biasa dalam apa jua cara.

Kerana itu, mesej kumpulan hanya ditanda tahan kuantum apabila setiap ahli menerimanya dengan cara itu. Jika walaupun satu salinan menggunakan pertukaran standard, salinan itu membawa perkara yang sama mesej, jadi mesej secara keseluruhannya hanya dilindungi seperti salinannya yang paling lemah. Apl itu berkata "tahan kuantum kepada 8 daripada 10 ahli" daripada membulatkan.

Sembang kumpulan juga mengekalkannya kekunci sekali berputar, yang menyembunyikan siapa yang berada dalam kumpulan daripada sesiapa yang menonton relay. Perlindungan itu tidak terjejas dan berfungsi sama seperti yang dilakukannya.

Membaca lencana

Setiap mesej peribadi dan mesej kumpulan membawa perisai di sebelah padlock. Tapping mana-mana tanda menerangkan apa yang ia menunjukkan.

MarkMaknanya
PadlockSiapa yang menghantarnya — sama ada tandatangan itu sepadan dengan pengarang yang dituntut.
PerisaiKedua-dua pihak memegang kod post-quantum mereka sendiri, dan pertukaran hibrida digunakan untuk setiap salinan mesej ini.
Perisai putus-putusSebahagiannya tahan kuantum — mesej kumpulan hanya beberapa ahli menerima salinan yang dilindungi.Karena yang lain membawa teks yang sama, perlakukan mesej sebagai biasa dienkripsi secara keseluruhan.
Melalui perisaiStandard NIP-44 enkripsi - masih end-to-end enkripsi, dan masih tidak dapat dibaca oleh sesiapa kecuali peserta hari ini.
Tiada perisaiPosting saluran awam boleh dibaca pada relay mengikut reka bentuk, jadi tiada tanda enkripsi digunakan.

Tanda yang hilang akan ambigu - ia juga boleh bermakna “tidak tahan kuantum”, “build ini terlalu tua”, atau “indikator itu rosak” - dan indikator keselamatan yang tidak boleh dibezakan daripada yang rosak tidak memberitahu anda apa-apa.

Ia duduk di sebelah padlock daripada menggantikannya kerana kedua-dua menjawab soalan yang berbeza, dan mesej boleh menjadi satu tanpa yang lain - tahan kuantum tetapi dari pengirim yang tidak disahkan, atau disahkan tetapi disulitkan secara konvensional.

Mesej-mesej yang lebih tua mengekalkan perisai-perisai secara kekal. Apa-apa yang dihantar sebelum kedua-dua pihak berada pada pembinaan yang tahan kuantum telah disegel dengan pertukaran konvensional, dan teks enkripsi itu sudah wujud pada relay - ia tidak boleh disegel semula selepas fakta.

Apa yang tidak dilakukannya

Ini melindungi kandungan daripada mesej anda. Ia tidak menjadikan setiap bahagian Nostr kuantum-bukti, dan ia patut menjadi tepat tentang perbezaannya.

  • Tandatangan masih secp256k1. Tanda identiti Nostr dengan Schnorr pada lengkung yang sama. Seorang musuh yang sudah mempunyai komputer kuantum yang berfungsi boleh memalsukan a tandatangan dan menyamar sebagai seseorang dalam masa nyata. Apa yang dihentikan pertukaran hibrid ialah membaca trafik yang direkodkan — kerahsiaan, bukan pengesahan.
  • Tiada rahsia ke hadapan. Kedua-dua kunci bertahan lama: NIP-44 mengambil kunci daripada nsec, dan lapisan pasca-quantum tertanam ke kunci ML-KEM di belakang nympq1… Setiap mesej mendapat encapsulation baru, jadi kunci satu mesej tidak membuka yang seterusnya - tetapi sesiapa yang akhirnya memegang kunci jangka panjang itu boleh membaca segala-galanya yang pernah mereka rekodkan, bukan sahaja apa yang datang selepas. Hujung mesej mengurangkan, dan itulah sebabnya ciri ini bertujuan kepada panen-sekarang-decrypt-kemudian bukannya pada kunci yang diambil.
  • Metadata tidak berubah. Relay masih melihat bahawa acara telah ditujukan kepada kunci, dan kira-kira bila. Itu dikendalikan oleh pembalut hadiah dan kunci sekali sahaja, bukan oleh ini.
  • Bluetooth mesh tidak dilindungi. Mesej yang dihantar melalui yang mesh bergerak dalam sesi Noise XX, yang merupakan pengenkripsi semasa yang kuat tetapi pertukaran kunci klasik - jadi ia tidak membawa lapisan pasca-quantum, walaupun antara dua pengguna Nymchat. Badge mencerminkan ini: mesej yang dihantar di atas mesh tidak ditandai dengan ketahanan kuantum. Menambahkannya di sana bermakna mengubah tangan itu sendiri, yang kedua-dua rakan sebaya mesti lakukan pada masa yang sama, tanpa relay untuk jatuh kembali dan sementara tetap boleh dibaca oleh Bitchat.
  • Kod pemulihan anda adalah perkara kedua yang perlu disimpan. Ia bermula dengan nympq1 Dan anda akan menemukannya dalam Maklumat lanjut NymPada panel yang sama seperti anda nsec — ketik nym anda, kemudian “Mengungkapkan kunci peribadi nym ini dan kod pemulihan”. nsec dengan sendirinya tidak membina semula kunci pasca kuantum anda - itulah sebabnya ia berfungsi - jadi jika tiada peranti yang menyimpan kod itu dan anda tidak mempunyai salinan daripadanya, apa yang telah disegel ke dalamnya tidak boleh dibuka lagi. nsec.
  • Ia tidak dapat melindungi apa yang pihak lain lakukan. Penerima masih boleh tangkapan skrin, salin atau simpan mesej.

Ini adalah kedudukan yang sama yang diambil oleh Isyarat dengan peningkatan pasca kuantumnya sendiri: betulkan pertukaran kunci sekarang, kerana itu adalah bahagian penyerang boleh bertindak secara retroaktif, dan menganggap tandatangan sebagai a masalah berasingan apabila piawaian mengejar.

Menyemak kerja

Implementasi ML-KEM diuji terhadap pegawai Ujian vektor NIST diterbitkan untuk FIPS 203, jadi ia disemak terhadap piawaian itu sendiri bukannya hanya terhadap dirinya sendiri. aplikasi web dan aplikasi mudah alih juga disimpan kepada satu set vektor ujian bersama, yang merupakan apa yang menjamin mesej yang ditulis oleh satu boleh dibaca oleh yang lain.

Kedua-duanya ialah Sumber Terbuka di bawah AGPL-3.0, dan pembinaan aplikasi web boleh diulang — lihat mengesahkan binaan.

Lebih dalam : Perjanjian Kunci Post-Quantum di Nymchat - buku putih teknikal tentang bagaimana kunci ML-KEM disebarkan tanpa direktori, pembinaan yang tepat yang menggabungkan dua pertukaran kunci, dan reka bentuk yang ditolak.