Lewati ke konten
Kembali ke Nymchat

Basis pengetahuan Berbicara dengan orang-orang

Enkripsi tahan kuantum

Pesan pribadi dan obrolan grup antar pengguna Nymchat dapat dienkripsi bahwa merekamnya saat ini tidak memberikan manfaat apa pun bagi penyerang, bahkan setelah komputer kuantum tiba.

Masalah yang dipecahkannya

Enkripsi Nostr Biasa — NIP-44, yang mana pesan pribadi Dan obrolan grup dibangun di atas — memiliki dua bagian. Setengahnya sebenarnya mengacak teks (ChaCha20, HMAC-SHA256, HKDF) tahan terhadap kuantum komputer. Separuh orang yang setuju dengan kuncinya tidak setuju.

Kesepakatan kuncinya adalah kurva elips Diffie-Hellman di secp256k1, matematika yang sama yang digunakan Bitcoin. Algoritme Shor langsung menyelesaikannya. Siapa pun yang menjalankannya dengan kunci publik akan memulihkannya kunci pribadi, dan dengan itu setiap rahasia bersama yang pernah dihasilkan kunci tersebut.

Panen sekarang, dekripsi nanti

Ini bukanlah masalah yang dimulai ketika komputer kuantum hadir. Musuh dengan cukup penyimpanan dapat merekam lalu lintas terenkripsi Hari ini, duduk di atasnya, dan mendekripsinya bertahun-tahun kemudian. Apa pun yang Anda kirim sekarang yang masih penting sudah terungkap. Itu yang spesifik serang fitur ini dengan kekalahan.

Bagaimana cara kerjanya

Nymchat meninggalkan format pesan NIP-44 sepenuhnya sendiri. perjanjian kunci yang sudah digunakan tidak terpengaruh; yang kedua, independen ditambahkan di sekitarnya.

  • standar secp256k1 ECDH, persis seperti sebelumnya;
  • ML-KEM-768, algoritma pasca-kuantum yang distandarisasi NIST sebagai FIPS 203. Keamanannya bertumpu pada masalah kisi, yang tidak disentuh oleh algoritma Shor.

Keduanya adalah bercampur, tidak bercampurPesan itu dienkripsi dengan NIP-44 persis seperti biasanya, dan teks enkripsi yang selesai kemudian disegel untuk kedua kalinya di dalam lapisan pasca-quantum — ChaCha20-Poly1305, kunci dari ML-KEM rahasia bersama. kunci pengirim, kunci penerima, encapsulation enkripsi teks dan penerima ML-KEM kunci terikat ke dalam derivasi itu sebagai konteks, sehingga lapisan tidak dapat diangkat dari satu pertukaran dan dimainkan kembali pada yang lain.

Kombinator seperti X-Wing atau Signal's PQXDH mencampur kedua rahasia ke dalam satu kunci sebagai gantinya. Nymchat tidak, dan alasannya lebih praktis daripada kriptografis: mencampur membutuhkan output ECDH mentah, dan ekstensi browser atau tanda tangan jarak jauh tidak akan mengirimkannya kembali - itu mengembalikan teks enkripsi selesai, yang merupakan seluruh titik memegang kunci di mana aplikasi tidak dapat menjangkau. Layering menjaga NIP-44 keseluruhan dan diproduksi oleh apa pun yang memegang kunci identitas, tanda tangan termasuk, sehingga login itu adalah peserta biasa daripada yang dikecualikan.

Properti yang penting adalah sama baiknya: hasilnya adalah setidaknya sama kuatnya dengan setengah yang lebih kuatJika kriptografi grid ternyata lebih lemah dari yang diharapkan, memecahkan ML-KEM hanya memotong lapisan luar dan meninggalkan NIP-44 saat ini di bawahnya.

Setiap pesan mendapat pertukaran baru pasca-kuantum, jadi memulihkan satu kunci pesan akan terungkap tidak ada apa-apa tentang yang lain.

Post-quantum separuh membutuhkan kunci sendiri, dan dari mana kunci itu berasal adalah apa yang memutuskan apakah keseluruhan hal itu bernilai apa pun. bukan Bekerja dari Anda nsecSebuah komputer kuantum yang memecahkan setengah klasik memulihkan nsec dari kunci publik Anda, dan apa pun yang berasal dari nsec oleh rumus yang diterbitkan keluar dengan itu — dua kunci yang dibuka oleh satu break. Kode Pasca Kuantum untuk setiap akun, sekali, dari byte acak yang tidak ada nilai publik yang mengekspos. nympq1… Dan duduk di sampingmu nsec Ini bukan kata sandi dan bukan login kedua: itu adalah materi kunci yang dapat Anda simpan, persis seperti nsec.

Tidak ada yang perlu dihidupkan

Ini bukan sebuah pengaturan. Enkripsi pasca-kuantum adalah cara Nymchat berbicara dengan Nymchat, the cara yang sama dengan enkripsi biasa adalah bagaimana ia berbicara dengan yang lainnya. Ini berlaku secara otomatis ke setiap pesan pribadi dan obrolan grup dengan pengguna Nymchat lain.

Pengaturan › Privasi & Keamanan menunjukkan apakah itu aktif dan berapa banyak kontak Anda saat ini, tetapi hanya sebagai informasi - tidak ada switch.

Ini bekerja dengan cara apa pun yang Anda masuk. ekstensi browser (NIP-07) atau login remote-signer (NIP-46) tidak pernah mengirimkan kunci identitas Anda ke aplikasi, yang merupakan seluruh poin menggunakan satu - dan itu tidak perlu. Dua separuh enkripsi disimpan terpisah: penandatangan Anda melakukan bagian yang selalu dilakukan, dan aplikasi melakukan bagian pasca-kuantum dengan kode pemulihan Anda, yang dipegang secara langsung. ekstensi dan login remote-signer adalah peserta biasa di kedua arah. baris status di Pengaturan mengatakan apa yang berlaku untuk Anda.

Setiap pesan dalam riwayat Anda tetap dapat dibaca di setiap perangkat dengan hanya nsec, persis seperti sebelumnya, dan tetap seperti itu untuk kehidupan akun. nympq1… Kode pemulihan adalah materi yang tahan kuantum yang ditulis dari sekarang: pesan baru, dan pengaturan yang disinkronkan dan arsip yang bepergian dengan mereka.

Jadi perangkat harus memegang kode itu sebelum dapat membuka mereka, dan menambahkan perangkat sekarang membutuhkan satu langkah tambahan. nympq1… Ini adalah sekali per perangkat, bukan sekali per login. Langkah itu bukan gesekan yang kami gagal untuk menghapus: kode yang bisa tiba di perangkat baru dengan sendirinya akan harus bepergian ke sana di dalam pesan biasa, dan pesan itu adalah persis apa yang penyerang fitur ini ada untuk berhenti merekam. Langkah ini adalah alasan perlindungan itu nyata.

Aplikasi ini menghasilkan nympq1… kode untuk Anda, sehingga tidak ada yang harus dipilih dan tidak ada yang harus ditemukan. untuk melihatnya: ketuk nym Anda untuk membuka Lihat atau Edit Nym's DetailSetelah itu Mengungkapkan kunci pribadi dan kode pemulihan nym iniIa duduk tepat di bawahmu nsecAnda tidak perlu memikirkannya sampai hari Anda menambahkan perangkat kedua.

Sebuah perangkat yang tidak terhubung tidak terkunci sementara itu. ia terus membaca segala sesuatu yang ditulis di bawah enkripsi lama dan terus mengirimkan secara normal, dan setelah Anda menghubungkannya, itu kembali dan membuka pesan-pesan yang tahan kuantum yang tidak bisa dibaca sebelumnya.

Perangkat Anda Lainnya

Perangkat kedua membutuhkan dua hal: versi saat ini dari aplikasi, dan nympq1… Sebuah build yang lebih tua terus bekerja - itu tidak dipotong - tetapi tidak dapat membaca format saat ini, jadi sementara itu masih di akun salinan yang Anda simpan untuk diri sendiri jatuh kembali ke yang lebih tua yang bisa. Perangkat terbaru yang belum terhubung masih membaca riwayat lama Anda dan meminta kode.

Dengan siapa Anda mendapatkannya

Kedua belah pihak membutuhkannya. setiap klien Nymchat menerbitkan pengumuman kecil yang ditandatangani, berakhir dengan mengatakan demikian, dan mencakup kunci pasca-quantum ketika ia memiliki satu. Memegang pengumuman yang valid untuk seseorang adalah apa yang membuat aplikasi menggunakan pertukaran yang lebih kuat dengan mereka. Tidak ada negosiasi untuk mengganggu: baik kunci ada atau tidak, dan karena pengumuman ditandatangani oleh penulisnya, kunci pengganti harus disamarkan bukannya hanya dilayani.

Apa penyerang yang mengendalikan relay bisa melakukan adalah menahan pengumuman, sehingga pengirim tidak pernah melihat kunci dan jatuh kembali ke enkripsi biasa. yang layak untuk menyatakan dengan jelas. Ini biaya perlindungan pasca-quantum untuk pesan-pesan itu; itu tidak dapat membuat satu tidak dapat dibaca, dan itu tidak dapat membuat Anda menerima kunci yang bukan milik Anda. klien meminta beberapa relay, jadi menekan itu mengambil kendali atas semua dari mereka.

Pengumuman-pengumuman itu berlangsung selama seminggu dan menyegarkan diri setiap hari saat Anda menggunakan aplikasi.Jika Anda jauh lebih lama dari itu, Anda hilang dan Anda dibaca sebagai klien Nostr biasa untuk sementara waktu: pesan yang dikirim ke Anda dalam kesenjangan itu dienkripsi dengan cara normal daripada cara yang tahan kuantum.Mereka masih tiba, dan Anda masih dapat membacanya - dan tidak ada yang Anda terima sebelumnya terpengaruh.Meng buka aplikasi mempublikasikan kembali pengumuman Anda, dan enkripsi yang lebih kuat kembali dengan sendirinya.Tidak ada yang harus diulang.

Semua orang tetap bekerja persis seperti sebelumnya. Bitchat Pengguna dan klien kami lainnya menerima standar NIP-17Tidak ada yang rusak ketika Anda mengirim pesan kepada seseorang di luar Nymchat.

Pesan pasca-kuantum menggantikan yang standar daripada dikirim bersamaan. Mengirim keduanya tidak ada gunanya: penyerang hanya akan merusak salinan yang lebih lemah.

Salinannya ditujukan kepada Anda dapatkan juga — yang dibaca oleh perangkat Anda yang lain arsip di belakangnya, dan pengaturan Anda yang disinkronkan, yang berjalan dengan cara yang sama dan membawa Anda daftar percakapan, kunci grup Anda dan riwayat pesan Anda. Meninggalkan semua itu pada yang lama enkripsi akan menjadikannya hal terlemah yang Anda simpan: dapat dibaca oleh siapa saja yang membobolnya kriptografi saat ini, tidak peduli seberapa hati-hati pesan itu sendiri disegel.

Tetap dapat dibaca oleh Bitchat

Bitchat tidak dapat membaca format pesan Nymchat, jadi secara historis Nymchat mengirimkan salinan kedua setiap pesan dalam format Bitchat kepada siapa pun yang mungkin menggunakannya — yang mana, untuk seseorang Anda belum pernah mendengarnya, maksudnya semua orang.

Pengumuman di atas membuat tebakan itu tidak perlu dilakukan. Jika seseorang telah menerbitkannya, itu memang benar menjalankan Nymchat, sehingga salinan Bitchat dihapus dan hanya pesan yang lebih kuat yang dikirim. Jika mereka belum, tidak ada yang berubah: mereka masih menerima kedua format tersebut, persis seperti sebelumnya, jadi tidak ada yang Anda kirim mungkin tidak dapat dibaca karena aplikasi salah menebak klien mana yang digunakan seseorang.

Seperti enkripsinya sendiri, ini otomatis dan tidak memiliki pengaturan.

Kenapa tidak menebak-nebak saja dari aktivitas masyarakat

Nymchat dapat menyimpulkan siapa yang menjalankan apa dari aktivitas saluran publik, dan hal itu akan diketahui orang lebih cepat. Namun kesimpulan itu terkadang salah, dan salah di sini maksudnya mengirim pesan kepada seseorang yang aplikasinya tidak dapat dibuka, tanpa kesalahan dan tanpa percobaan ulang. Sebuah diterbitkan pengumuman ditandatangani oleh penulisnya dan tidak dapat dipalsukan, sehingga digunakan sebagai gantinya.

Dalam obrolan grup

Pesan grup sudah dienkripsi secara terpisah untuk setiap anggota, sehingga grup dapat menggabungkan kedua jenis pesan tersebut secara bebas — anggota yang kliennya mendukungnya mendapatkan enkripsi yang lebih kuat, sisanya mendapatkan enkripsi yang lebih kuat yang standar, dan grup bekerja dengan normal.

Oleh karena itu, pesan grup hanya ditandai tahan kuantum ketika setiap anggota menerimanya seperti itu. Jika satu salinan saja menggunakan pertukaran standar, salinan itu akan membawa hal yang sama pesan, jadi pesan secara keseluruhan hanya terlindungi seperti salinan terlemahnya. Aplikasi itu mengatakan "tahan kuantum terhadap 8 dari 10 anggota" daripada dibulatkan.

Obrolan grup juga tetap ada memutar kunci satu kali, yang menyembunyikan siapa yang ada dalam grup dari siapa pun yang menonton estafet. Perlindungan itu tidak terpengaruh dan berfungsi persis seperti sebelumnya.

Membaca lencana

Setiap pesan pribadi dan grup membawa pesan kecil. tameng Di sebelah padlock. mengetuk tanda itu menjelaskan apa yang ditunjukkan.

TandaArti
GembokSiapa yang mengirimkannya — apakah tanda tangannya cocok dengan penulis yang diklaim.
TamengKedua belah pihak memegang kode post-quantum mereka sendiri, dan pertukaran hibrida digunakan untuk setiap salinan pesan ini.
Perisai putus-putusPartly quantum-resistant — sebuah pesan kelompok hanya beberapa anggota menerima salinan yang dilindungi.Karena yang lain membawa teks yang sama, perlakukan pesan sebagai secara konvensional dienkripsi secara keseluruhan.
Melalui perisaiStandar NIP-44 enkripsi - masih end-to-end enkripsi, dan masih tidak dapat dibaca oleh siapa pun kecuali peserta hari ini.
Tidak ada perisaiPosting saluran publik dapat dibaca pada relay berdasarkan desain, sehingga tidak ada tanda enkripsi yang berlaku.

Sebuah tanda yang hilang akan ambigu - itu juga bisa berarti “tidak tahan kuantum”, “build ini terlalu tua”, atau “indikator rusak” - dan indikator keamanan yang tidak dapat dibedakan dari yang rusak tidak memberi tahu Anda apa-apa.

Ini duduk di samping padlock bukannya menggantikannya karena keduanya menjawab pertanyaan yang berbeda, dan pesan dapat satu tanpa yang lain - tahan kuantum tetapi dari pengirim yang tidak terverifikasi, atau terverifikasi tetapi terenkripsi secara konvensional.

Pesan-pesan yang lebih tua menjaga perisai yang meledak secara permanen. Apa pun yang dikirim sebelum kedua belah pihak berada pada konstruksi yang tahan kuantum disegel dengan pertukaran konvensional, dan bahwa teks enkripsi sudah ada pada relay - itu tidak dapat disegel kembali setelah fakta.

Apa yang tidak dilakukannya

Ini melindungi isi pesan Anda. Itu tidak membuat setiap bagian dari Kami memiliki bukti kuantum, dan perbedaannya perlu diperjelas secara tepat.

  • Tanda tangan masih secp256k1. Identitas Nostr ditandatangani dengan Schnorr di kurva yang sama. Musuh yang sudah memiliki komputer kuantum yang berfungsi dapat memalsukan a tanda tangan dan meniru seseorang secara real time. Apa yang dihentikan oleh pertukaran hybrid sedang terbaca lalu lintas yang direkam — kerahasiaan, bukan otentikasi.
  • Tidak ada rahasia ke depan. Kedua kunci bertahan lama: NIP-44 mengambil kunci dari nsec, dan lapisan pasca-kuantum tertanam ke kunci ML-KEM di belakang nympq1… Setiap pesan mendapatkan encapsulation segar, sehingga kunci satu pesan tidak membuka pesan berikutnya - tetapi siapa pun yang akhirnya memegang kunci jangka panjang itu dapat membaca semua yang pernah mereka rekam, tidak hanya apa yang datang setelahnya. Pesan yang Berakhir mengurangi, dan itulah sebabnya fitur ini ditujukan untuk panen-sekarang-decrypt-sekarang, bukan pada kunci yang diambil.
  • Metadata tidak berubah. Relai masih melihat bahwa suatu peristiwa telah dialamatkan kunci, dan kira-kira kapan. Itu ditangani oleh bungkus kado dan kunci sekali pakai, bukan oleh ini.
  • Bluetooth mesh tidak tertutup. Sebuah pesan yang disampaikan dengan mesh Perjalanan di dalam sesi Noise XX, yang kuat, enkripsi saat ini tetapi pertukaran kunci klasik - sehingga tidak membawa lapisan pasca-quantum, bahkan antara dua pengguna Nymchat. badge mencerminkan ini: pesan yang dikirim di atas mesh tidak ditandai dengan ketahanan kuantum. Menambahkan itu berarti mengubah peregangan tangan itu sendiri, yang harus dilakukan pada saat yang sama, tanpa relay untuk jatuh kembali dan sementara tetap dapat dibaca oleh Bitchat.
  • Kode pemulihan Anda adalah hal kedua yang harus dipertahankan. Ini dimulai dengan nympq1 Dan kamu akan menemukannya di Rincian dari NymPada panel yang sama dengan Anda nsec — ketuk nym Anda, kemudian “Mengungkapkan kunci pribadi nym ini dan kode pemulihan”. nsec sendiri tidak membangun kembali kunci pasca-kuantum Anda - itulah sebabnya mengapa itu bekerja - jadi jika tidak ada perangkat yang memegang kode itu dan Anda tidak memiliki salinan dari itu, apa yang disegel ke dalamnya tidak dapat dibuka lagi. nsec.
  • Ia tidak bisa melindungi apa yang dilakukan pihak lain. Penerima masih dapat mengambil tangkapan layar, menyalin atau menyimpan pesan.

Ini adalah posisi yang sama yang diambil Signal dengan peningkatan pasca-kuantumnya: memperbaiki pertukaran kunci sekarang, karena itu adalah bagian yang dapat ditindaklanjuti oleh penyerang secara surut, dan memperlakukan tanda tangan sebagai a masalah terpisah ketika standar mengejar ketinggalan.

Memeriksa pekerjaan

Implementasi ML-KEM diuji melawan resmi Pengujian vektor NIST Untuk FIPS 203Aplikasi web dan aplikasi seluler juga dipegang oleh satu set vektor tes bersama, yang merupakan apa yang menjamin pesan yang ditulis oleh satu dapat dibaca oleh yang lain.

Keduanya adalah Sumber terbuka di bawah AGPL-3.0, dan pembuatan aplikasi web dapat diulang — lihat memverifikasi bangunan.

Melangkah lebih dalam: Perjanjian Kunci Post-Quantum di Nymchat Sebuah whitepaper teknis tentang bagaimana kunci ML-KEM didistribusikan tanpa direktori, konstruksi yang tepat yang menggabungkan dua pertukaran kunci, dan desain yang ditolak.