시작 시 Syslog 메시지: 초기화되지 않은 무작위 읽기

시작 시 Syslog 메시지: 초기화되지 않은 무작위 읽기

중앙처리장치는AMD GX-412TC SoC:

GX-412TC GE412TIYJ44JB 4 6W 2MB 1.0GHz/ 1.4GHz 해당 없음 DDR-1333 0-90°C

그들 중 아무도 없습니다 rdrand:

grep rdrand /proc/cpuinfo
# nothing

syslog머신이 부팅된 후 다음 메시지가 표시됩니다.

kernel: random: dd: uninitialized urandom read (512 bytes read)
kernel: random: cryptsetup: uninitialized urandom read (32 bytes read)

이 메시지는 무엇을 의미합니까? 어떡해?

이것은 의미 dd하고 cryptsetup읽으려고 노력 /dev/urandom하지만 엔트로피가 충분하지 않습니까?

데몬을 사용하고 있는데 haveged이 메시지가 나타난 후 부팅 프로세스 후반에 데몬이 시작되었습니다.

내 부팅 스크립트 시작 순서는 다음과 같습니다.

/etc/rcS.d/S01hostname.sh
/etc/rcS.d/S01mountkernfs.sh
/etc/rcS.d/S02mountdevsubfs.sh
/etc/rcS.d/S03checkroot.sh
/etc/rcS.d/S04checkfs.sh
/etc/rcS.d/S05mountall.sh
/etc/rcS.d/S06bootmisc.sh
/etc/rcS.d/S06procps
/etc/rcS.d/S06urandom
/etc/rcS.d/S07crypto-swap
/etc/rc2.d/S01haveged
/etc/rc2.d/S01networking
/etc/rc2.d/S04rsyslog
/etc/rc2.d/S05cron
/etc/rc2.d/S05ssh

시스템 로그의 메시지는 다음 두 스크립트에서 나옵니다.

/etc/rcS.d/S06urandom  -> dd
/etc/rcS.d/S07crypto-swap -> cryptsetup

어느 것부터 haveged시작 해야 할까요 urandom?

저는 데비안 10을 사용하고 있습니다.

또한 이 기계는 베어보드이며 키보드가 없다는 점을 덧붙이고 싶습니다. 유일한 인터페이스는 직렬 콘솔입니다. 나는 이것이 사용 가능한 엔트로피에 영향을 미칠 것이라고 생각합니다. 이것이 haveged제가 처음에 그것을 설치한 이유입니다. 그렇지 않으면 haveged엔트로피 sshd가 충분하지 않기 때문에 데몬이 몇 분 동안 시작되지 않습니다.

답변1

진단이 정확합니다. 빈 엔트로피 풀에서 읽어보세요. 이것은"시작 시간 엔트로피 기아".

EFI 시스템이 있는 경우 systemd-boot를 활용할 수 있습니다.경고 무시(당신은 예측 가능한 암호화폐를 사용하고 있지만,최대암호화하지 않는 것보다 더 나은 사용 사례) 또는 다른 소스의 엔트로피를 고려해보세요.가능한 경우- 커널 명령줄에 추가

rng_core.default_quality=X

(X=1000에서 시작하여 거기에서 아래로 내려갑니다).

엔트로피를 수집하는 다른 기술이 있습니다. SOC에는 사용 가능한 핀이 있을 수 있으며, 해당 핀에서 엔트로피를 수집할 수 있는 하드웨어 드라이버 모듈이 있습니다. 그런 다음 적절한 트랜지스터와 저항기 설정(또는 경우에 따라 일렉트릿 마이크)을 연결하여 열 잡음을 수집합니다.

또는 5.4+ 시리즈 커널은 더 효율적인 엔트로피 수집을 제공하므로 충분할 수 있습니다.

답변2

hasged가 작동하려면 커널과 호환되어야 합니다. 문제가 있습니다. hasged는 5.x 이상의 커널 버전에서 아무 작업도 수행하지 않습니다.Haggard가 여전히 유용하거나 관련성이 있나요? 57화GitHub에서.

관리자는 친절하게도 기능을 다시 도입했지만 해당 패치를 릴리스한 다음 먼저 다양한 배포판에 적용해야 했습니다... 이전 버전은 전혀 부팅되지 않거나 실행 중인데도 실제로 아무것도 하지 않습니다. )를 사용하여 확인하면 strace커널의 엔트로피 풀이 더 이상 고갈되지 않는 것처럼 보이지만 어떤 이유로 crng init에는 여전히 시간이 걸립니다.

또한 매우 일찍 실행되어야 하므로 initramfs를 사용하는 경우 임의 장치를 사용하기 전에 일정 시간 동안 initramfs에서 실행을 시작해야 합니다. 전통적인 init 시스템에서는 Haveged가 /proc /sys /dev사용 가능해지는 즉시 실행되어야 합니다.

Haveged가 커널에 엔트로피를 보내는 데 정확히 얼마나 걸리는지 잘 모르겠습니다. 먼저 임의성 자체를 수확해야 하며 이에 대한 품질 테스트도 실행합니다. 내 마지막 테스트(패치된 hasged 사용)에서는 hasged 시작과 커널 보고 사이에 약 0.5초의 지연이 있었습니다 random: crng init done.

해시하는 것 외에도 무작위 시드를 저장/복원하는 것도 고려할 수 있으며, 네트워크가 있는 경우 약간의 트래픽이 커널이 엔트로피를 수집하는 데 도움이 될 수도 있습니다.

관련 정보