Cara DNSCrypt menyelesaikan masalah sijil tamat tempoh dengan memperkenalkan tempoh sah 24 jam

Cara DNSCrypt menyelesaikan masalah sijil tamat tempoh dengan memperkenalkan tempoh sah 24 jam

Dahulu, sijil sering tamat tempoh kerana perlu diperbaharui secara manual. Orang ramai terlupa untuk melakukannya. Dengan kemunculan Let's Encrypt dan prosedur kemas kini automatik, nampaknya masalah itu harus diselesaikan. Tetapi baru-baru ini cerita Firefox menunjukkan bahawa ia, sebenarnya, masih relevan. Malangnya, sijil terus tamat tempoh.

Sekiranya anda terlepas cerita itu, pada tengah malam pada 4 Mei 2019, hampir semua sambungan Firefox tiba-tiba berhenti berfungsi.

Ternyata, kegagalan besar-besaran berlaku disebabkan oleh fakta bahawa Mozilla sijil telah tamat tempoh, yang digunakan untuk menandatangani sambungan. Oleh itu, mereka ditandakan sebagai "tidak sah" dan tidak disahkan (butiran teknikal). Di forum, sebagai penyelesaian, adalah disyorkan untuk melumpuhkan pengesahan tandatangan sambungan dalam about: config atau menukar jam sistem.

Mozilla dengan cepat mengeluarkan patch Firefox 66.0.4, yang menyelesaikan masalah dengan sijil yang tidak sah, dan semua sambungan kembali normal. Pemaju mengesyorkan memasangnya dan jangan guna tiada penyelesaian untuk memintas pengesahan tandatangan kerana ia mungkin bercanggah dengan tampung.

Walau bagaimanapun, cerita ini sekali lagi menunjukkan bahawa tamat tempoh sijil masih menjadi isu yang mendesak hari ini.

Dalam hal ini, adalah menarik untuk melihat cara yang agak asli bagaimana pembangun protokol menangani tugas ini DNSCrypt. Penyelesaian mereka boleh dibahagikan kepada dua bahagian. Pertama, ini adalah sijil jangka pendek. Kedua, memberi amaran kepada pengguna tentang tamat tempoh jangka panjang.

DNSCrypt

Cara DNSCrypt menyelesaikan masalah sijil tamat tempoh dengan memperkenalkan tempoh sah 24 jamDNSCrypt ialah protokol penyulitan trafik DNS. Ia melindungi komunikasi DNS daripada pemintasan dan MiTM, dan juga membolehkan anda memintas penyekatan pada peringkat pertanyaan DNS.

Protokol membungkus trafik DNS antara klien dan pelayan dalam binaan kriptografi, beroperasi melalui protokol pengangkutan UDP dan TCP. Untuk menggunakannya, kedua-dua klien dan penyelesai DNS mesti menyokong DNSCrypt. Sebagai contoh, sejak Mac 2016, ia telah didayakan pada pelayan DNSnya dan dalam penyemak imbas Yandex. Beberapa pembekal lain juga telah mengumumkan sokongan, termasuk Google dan Cloudflare. Malangnya, tidak banyak daripada mereka (152 pelayan DNS awam disenaraikan di laman web rasmi). Tetapi program dnscrypt-proxy boleh dipasang secara manual pada klien Linux, Windows dan MacOS. Terdapat juga pelaksanaan pelayan.

Cara DNSCrypt menyelesaikan masalah sijil tamat tempoh dengan memperkenalkan tempoh sah 24 jam

Bagaimanakah DNSCrypt berfungsi? Ringkasnya, pelanggan mengambil kunci awam pembekal yang dipilih dan menggunakannya untuk mengesahkan sijilnya. Kunci awam jangka pendek untuk sesi dan pengecam suite sifir sudah ada. Pelanggan digalakkan untuk menjana kunci baharu untuk setiap permintaan, dan pelayan digalakkan untuk menukar kunci setiap 24 jam. Apabila menukar kunci, algoritma X25519 digunakan, untuk menandatangani - EdDSA, untuk penyulitan blok - XSalsa20-Poly1305 atau XChaCha20-Poly1305.

Salah satu pembangun protokol Frank Denis menulisbahawa penggantian automatik setiap 24 jam menyelesaikan masalah sijil tamat tempoh. Pada dasarnya, klien rujukan dnscrypt-proxy menerima sijil dengan sebarang tempoh sah, tetapi mengeluarkan amaran "Tempoh kunci dnscrypt-proxy untuk pelayan ini terlalu lama" jika ia sah selama lebih daripada 24 jam. Pada masa yang sama, imej Docker dikeluarkan, di mana perubahan pantas kunci (dan sijil) telah dilaksanakan.

Pertama, ia amat berguna untuk keselamatan: jika pelayan terjejas atau kunci bocor, maka trafik semalam tidak boleh dinyahsulit. Kuncinya sudah berubah. Ini mungkin akan menimbulkan masalah untuk pelaksanaan Undang-undang Yarovaya, yang memaksa penyedia untuk menyimpan semua lalu lintas, termasuk lalu lintas yang disulitkan. Implikasinya ialah ia kemudiannya boleh dinyahsulit jika perlu dengan meminta kunci daripada tapak. Tetapi dalam kes ini, tapak itu tidak dapat menyediakannya, kerana ia menggunakan kunci jangka pendek, memadamkan yang lama.

Tetapi yang paling penting, Denis menulis, kunci jangka pendek memaksa pelayan untuk menyediakan automasi dari hari pertama. Jika pelayan bersambung ke rangkaian dan skrip perubahan kunci tidak dikonfigurasikan atau tidak berfungsi, ini akan dikesan serta-merta.

Apabila automasi menukar kunci setiap beberapa tahun, ia tidak boleh dipercayai dan orang ramai boleh melupakan tamat tempoh sijil. Jika anda menukar kunci setiap hari, ini akan dikesan serta-merta.

Pada masa yang sama, jika automasi dikonfigurasikan secara normal, maka tidak kira berapa kerap kunci ditukar: setiap tahun, setiap suku atau tiga kali sehari. Jika semuanya berfungsi selama lebih daripada 24 jam, ia akan berfungsi selama-lamanya, tulis Frank Denis. Menurutnya, cadangan putaran kunci harian dalam versi kedua protokol, bersama-sama dengan imej Docker siap sedia yang melaksanakannya, berkesan mengurangkan bilangan pelayan dengan sijil tamat tempoh, pada masa yang sama meningkatkan keselamatan.

Walau bagaimanapun, sesetengah pembekal masih memutuskan, atas sebab teknikal tertentu, untuk menetapkan tempoh sah sijil kepada lebih daripada 24 jam. Masalah ini sebahagian besarnya diselesaikan dengan beberapa baris kod dalam dnscrypt-proxy: pengguna menerima amaran maklumat 30 hari sebelum sijil tamat tempoh, mesej lain dengan tahap keterukan yang lebih tinggi 7 hari sebelum tamat tempoh dan mesej kritikal jika sijil mempunyai baki kesahan.kurang daripada 24 jam. Ini hanya terpakai kepada sijil yang pada mulanya mempunyai tempoh sah yang panjang.

Mesej ini memberi pengguna peluang untuk memberitahu pengendali DNS tentang tamat tempoh sijil yang akan datang sebelum terlambat.

Mungkin jika semua pengguna Firefox menerima mesej sedemikian, maka seseorang mungkin akan memaklumkan kepada pembangun dan mereka tidak akan membenarkan sijil itu tamat tempoh. "Saya tidak ingat satu pelayan DNSCrypt dalam senarai pelayan DNS awam yang telah tamat tempoh sijilnya dalam dua atau tiga tahun yang lalu," tulis Frank Denis. Walau apa pun, mungkin lebih baik untuk memberi amaran kepada pengguna dahulu daripada melumpuhkan sambungan tanpa amaran.

Cara DNSCrypt menyelesaikan masalah sijil tamat tempoh dengan memperkenalkan tempoh sah 24 jam


Sumber: www.habr.com

Tambah komen