GNU/Linux >> Belajar Linux >  >> Linux

Kesalahan LUKS Selama Boot

Secara sadar, saya tidak yakin ini memengaruhi kekuatan enkripsi Anda.

Saya telah memeriksa kode sumbernya dan selama saya menafsirkan apa yang saya baca dengan benar, Anda tidak perlu khawatir tentang hal ini.

Kode ini milik modul 'stdrng'. Setidaknya pada Fedora 23 ini dibangun ke dalam kernel daripada diekspor sebagai modul kernel.

Saat stdrng diinisialisasi untuk pertama kali, panggilan berikut terjadi.

Dalam crypto/drbg.c inisialisasi dimulai di sini.

1997 module_init(drbg_init);

Ini mendaftarkan semua drbgs yang diketahui sistem..

1985         for (j = 0; ARRAY_SIZE(drbg_cores) > j; j++, i++)
1986                 drbg_fill_array(&drbg_algs[i], &drbg_cores[j], 1);
1987         for (j = 0; ARRAY_SIZE(drbg_cores) > j; j++, i++)
1988                 drbg_fill_array(&drbg_algs[i], &drbg_cores[j], 0);

Itu kemudian meneruskannya ke fungsi pembantu yang melakukan inisialisasi:

1989         return crypto_register_rngs(drbg_algs, (ARRAY_SIZE(drbg_cores) * 2));

Di crypto/rng.c ini hanya mengulangi setiap rng untuk mendaftarkannya..

210         for (i = 0; i < count; i++) {
211                 ret = crypto_register_rng(algs + i);
212                 if (ret)
213                         goto err;
214         }

Fungsi ini melakukan banyak langkah inisialisasi lalu memanggil fungsi lain untuk alokasi.

196         return crypto_register_alg(base);

Yang tidak begitu jelas adalah apa yang terjadi selama pendaftaran.

Modul lain disebut tcrypt juga dibangun ke dalam kernel menerima pemberitahuan tentang algoritma baru yang dimasukkan. Setelah melihat algoritme terdaftar baru, ia menjadwalkan pengujiannya. Inilah yang menghasilkan keluaran yang Anda lihat di layar.

Saat pengujian selesai, algoritme masuk ke status TERUJI. Jika tes gagal, saya bayangkan (Saya tidak dapat menemukan bit yang menghasilkan perilaku ini) tidak dapat dipilih untuk penelusuran jika Anda memberikan tanda yang tepat.

Lulus atau tidaknya tes pasti disimpan secara internal.

Selain itu, memanggil generator nomor acak psudeo menyebabkan daftar algoritme diulang dari prngs dalam urutan kekuatan seperti yang ditentukan oleh catatan ini di crypto/drbg.c

107 /*
108  * The order of the DRBG definitions here matter: every DRBG is registered
109  * as stdrng. Each DRBG receives an increasing cra_priority values the later
110  * they are defined in this array (see drbg_fill_array).
111  *

Karena yang terkuat tidak gagal (hmac sha256), kecil kemungkinannya Anda menggunakan yang gagal meskipun mereka dapat dipilih.

Untuk meringkas -

  • Ini terjadi ketika stdrng modul diperlukan untuk sesuatu.
  • Memuat semua algoritme yang diketahui.
  • Semua algoritme yang dimuat akan diuji. Beberapa bisa gagal (mengapa tidak dipertimbangkan dalam jawaban ini).
  • Pengujian algoritme yang gagal seharusnya tidak tersedia untuk dipilih nanti.
  • PRNGS diurutkan berdasarkan kekuatan dan PRNGS kuat yang lulus akan dicoba terlebih dahulu.
  • Hal-hal yang bergantung pada stdrng semoga tidak menggunakan algoritme ini sebagai dasar untuk sumber PRNG mereka.

Anda dapat melihat algo mana yang berhasil dan lulus tes menggunakan perintah berikut:

 grep -EC5 'selftest.*passed' /proc/crypto

Anda juga dapat melihat prioritas pemilihan dengan bidang 'prioritas'. Semakin tinggi nilainya semakin kuat PRNG menurut pembuat modul.

Jadi, senang salah di sini karena saya tidak menganggap diri saya seorang programmer kernel tetapi, sebagai kesimpulan -

Ketika stdrng memuat tampaknya memilih algoritme lain dari daftar algo yang dapat diterima yang dianggap lebih kuat daripada algoritme yang gagal, ditambah algoritme yang gagal kemungkinan besar tidak akan dipilih.

Karena itu, saya percaya bahwa ini tidak ada risiko tambahan bagi Anda saat menggunakan luks.


Linux
  1. pygrub:Tidak dapat menemukan partisi yang berisi kernel

  2. 'init:proses utama plymouth-upstart-bridge berakhir, muncul kembali' pesan kesalahan saat boot.

  3. Tidak dapat menemukan Module/Load/Conditional.pm [Solusi]

  1. Kesalahan Perl:Modul PERL XML-Parser memerlukan pengembangan expat

  2. Modul PERL DB_File membutuhkan db4-devel [Fix]

  3. Kesalahan Tidak dapat membangun modul saat membangun modul Perl eksternal

  1. FATAL:Kesalahan modul tidak ditemukan menggunakan modprobe

  2. kesalahan pemasangan python-dev:ImportError:Tidak ada modul bernama apt_pkg

  3. Bagaimana cara memberikan nilai ke modul kernel Linux bawaan saat boot?