Khi tôi đăng nhập, nó bị treo cho đến khi bắt đầu hoàn thành


22

Khi tôi đăng nhập bằng LightDM trên máy tính xách tay chạy Debian Không ổn định, gần đây nó đã bắt đầu treo trong khoảng 2 phút cho đến khi journalctlhiển thị thông báo kernel: random: crng init done. Khi tôi nhấn các phím ngẫu nhiên trên bàn phím trong khi treo, nó sẽ đăng nhập nhanh hơn (khoảng 10 giây). Trước khi tôi không gặp phải vấn đề này, có cách nào để tôi có thể khắc phục không?

Chỉnh sửa: sử dụng linux-image-4.15.0-3-amd64thay vì linux-image-4.16.0-1-amd64hoạt động, nhưng tôi không muốn sử dụng kernel cũ hơn.


1
Âm thanh như một cái gì đó đang ăn hết tất cả các hồ bơi entropy.
Kusalananda

1
Chủ đề systemd-journaldvà nhu cầu (được tuyên bố) của nó đối với CSPRNG được gieo mầm đã xuất hiện trong các cuộc thảo luận khác nhau gần đây. Xem danh sách.freedesktop.org/archives/systemd-devel/2018-May/ Khăn chẳng hạn.
JdeBP

1
sudo apt install haveged sudo systemctl enable haveged
virusmxa

Câu trả lời:


15

Có vẻ như một số thành phần của khối hệ thống của bạn trong khi cố gắng lấy dữ liệu ngẫu nhiên từ hạt nhân (tức là đọc từ /dev/urandomhoặc gọi getrandom()) do không đủ entropy (tính ngẫu nhiên).

Tôi không có lời giải thích sẵn sàng cho lý do tại sao sự cố phụ thuộc vào một phiên bản kernel cụ thể hoặc thành phần nào trên hệ thống của bạn thực sự chặn, nhưng bất kể nguyên nhân gốc,

Thật vậy, như Bigon đã chỉ ra trong câu trả lời của mình , nó dường như là một lỗi kernel được giới thiệu trong 4.16:

Lỗi này được giới thiệu bởi thay đổi "crng_init> 0" thành "crng_init> 1" trong cam kết này: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ ? id = 43838a23a05fbd13e47d750d3dfd77001536dd33

Thay đổi này vô tình tác động đến urandom_read, khiến trạng thái crng_init == 1 bị coi là chưa được khởi tạo và khiến urandom bị chặn, mặc dù trạng thái này tồn tại đặc biệt để hỗ trợ các nhu cầu phi mật mã khi khởi động: https://git.kernel.org/pub /scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n1863

Hoàn nguyên 43838a23a05f ("ngẫu nhiên: sửa lỗi crng_ đã () kiểm tra") sửa lỗi (được kiểm tra với 4.16.5-1), nhưng điều này có thể gây ra lo ngại về bảo mật (CVE-2018-1108 được đề cập trong 43838a23a05f). Tôi đang thử nghiệm một bản sửa lỗi cục bộ hơn để có thể dễ dàng hơn để ngược dòng.

( https://bugs.debian.org/cgi-bin/orpreport.cgi?orms=897572#82 )

... Tuy nhiên, bạn có thể thử sử dụng havegedhoặc rng-toolsthu thập entropy nhanh hơn.


4
Có vẻ như trong Linux 4.16.4, một số thứ liên quan đến CRNG đã thay đổi vì CVE-2018-1108. rng-toolskhông hoạt động trên máy tính xách tay của tôi, vì Intel Celeron N2840 không hỗ trợ AES-NI và do đó không có TRNG tích hợp.
wb9688

3
Lần tải lên cuối cùng của rng-toolsdebian từ năm 2011. Bạn có rng-tools5gói đã được giới thiệu gần đây
Bigon

@Bigon TBH Tôi không biết gì về các gói trong Debian; Tôi không sử dụng nó. Đây là lời khuyên chung, không dành riêng cho Debian.
intelfx

1
Xác nhận với Ubuntu 18.04 (bionic). Có vấn đề này sau khi cài đặt dropbear-initramfsvà mở khóa đĩa của tôi từ xa với cryptroot-unlock. Đơn giản chỉ cần apt install rng-toolslàm cho mọi thứ hoạt động kỳ diệu. Cảm ơn bạn!
một mọt sách trả tiền

Cài đặt havegedlàm việc cho tôi. Tôi có Bộ đôi Intel Core 2 cũ không có Bộ tạo số ngẫu nhiên thực sự.
Balau

7

Đó là một sự thay đổi (lỗi?) Trong kernel, xem: https://bugs.debian.org/cgi-bin/ormsreport.cgi?orms=897572

Để giảm thiểu việc cài đặt rng-tools5dường như có ích. Lưu ý rằng tôi không biết việc cài đặt gói này có ảnh hưởng hay không đối với việc tạo khóa mật mã mạnh

Chỉnh sửa: Rõ ràng việc cập nhật produc-linux 2.32 sẽ khắc phục sự cố


Không, produc-linux 2.32 không khắc phục được sự cố cho tôi.
vinc17

5

Đó là một lỗi kernel có thể xảy ra với các kernel khác nhau.

Chạy apt-get install rng-toolsnhư sutrong thiết bị đầu cuối nên làm việc.


Chạy apt-get install rng-tools vì su trong terminal đã khắc phục sự cố với hộp linux của tôi.
Giovanni Cannizzaro

2

rng-toolschỉ giúp nếu hệ thống của bạn có hỗ trợ phần cứng cho các số ngẫu nhiên, như " Khóa bảo mật " của intel . Cách này được phát minh với Ivy Bridge . Các hệ thống của tôi với bộ xử lý 1037u (dựa trên cầu ivy) không có hỗ trợ phần cứng này. Do đó rng-toolskhông giúp đỡ.

Trên một hệ thống khác ở đây với bộ xử lý i3 cầu cát rng-toolsgiúp đỡ. Các rngddịch vụ phải được bắt đầu từ rất sớm trong quá trình khởi động, để lấp đầy hàng đợi entropy lên. Đây là trường hợp trong trình tự khởi động với Ubuntu, tôi không biết điều này có đúng với các bản phân phối khác không, nhưng bạn có thể tìm hiểu, khi bắt đầu rngdđăng nhập vào syslog.


1
Điều này không hoàn toàn đúng. Bạn có thể chạy rngd -f -r /dev/urandomđể bơm /dev/urandomvào /dev/random, mặc dù không nên chạy theo cách này, đó là một lựa chọn ..
slm

2

Cũng có thể xảy ra sau khi xóa phân vùng trao đổi

Treo trước kernel: random: crng init donecũng có thể xảy ra sau khi xóa một phân vùng trao đổi.

Nếu phân vùng trao đổi bị xóa, tệp cấu hình /etc/initramfs-tools/conf.d/resume sẽ hoàn toàn trống hoặc đọc RESUME=. Xóa bất kỳ số UUID. RESUME=NONEkhông hợp lệ

$ sudo vim /etc/initramfs-tools/conf.d/resume

Hệ thống tập tin RAM ban đầu yêu cầu cập nhật để những thay đổi này có hiệu lực:

$ sudo update-initramfs -u

1

Trong trường hợp của tôi, tôi đã chạy 4.19.0-4-amd64máy ảo Debian Buster (kernel ) trên Proxmox VE.

Giải pháp là thêm một thiết bị VirtIO RNG vào VM. Trên Proxmox, điều này được thực hiện bằng cách chỉnh sửa tệp cấu hình VM .

Trong trường hợp của tôi, tôi đã chỉnh sửa /etc/pve/qemu-server/110.confvà thêm dòng sau:

args: -device virtio-rng-pci

Không có công cụ không gian người dùng (ví dụ rng-toolshoặc haveged) là cần thiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.