Linux에서 /dev/random을 /dev/urandom에 연결하는 것이 잘못된 것입니까?

Linux에서 /dev/random을 /dev/urandom에 연결하는 것이 잘못된 것입니까?

gpg --genkey현재 Linux 가상 머신에서 테스트 중 입니다 . 불행하게도 이 소프트웨어는 /dev/random엔트로피를 수집하고 무작위 입력 화면을 암호화한 후 사용자에게 화면을 수동으로 입력하도록 정중하게 요청하는 것 같아서 결국 키를 생성할 수 있으며 사용하도록 지시하는 명령줄 인수를 찾지 못했습니다. 다른 파일을 엔트로피의 원천으로 (그 사람이 영상에서같은 문제가 발생했습니다 ...).

그러나 사용자는 자유롭게 선택하여 /dev/urandom사용할 수 있어야 합니다.괜찮아요. 이는 주로 암호화 관점에서 약했던 이전 PRNG 알고리즘을 회상하는 역할을 합니다. 예를 들어, 비록NetBSD 맨페이지이 구별은 초기 시작 단계에서도 여전히 유용하다는 점을 인정하면서 다음과 같이 구별을 설명합니다."민속학"그리고“국방전용 판타지 위협모델의 상상이론”. 아무도 동의하지 않는다명령에 필요한 엔트로피 양엔트로피가 실제로 소비되는 것이라는 사실도 없습니다.GPG 맨페이지("무슨 일을 하고 있는지 모르면 이 명령을 사용하지 마세요. 시스템에서 귀중한 엔트로피가 제거될 수 있습니다!").

나는 그것에 대해 읽었습니다사람들은 rngd데몬을 설치합니다/dev/urandom공급된 엔트로피 소스 로 사용되도록 구성했지만 /dev/random이것이 매우 더러운 것으로 나타났습니다.

FreeBSD 방식으로 문제를 해결하고 /dev/random문제를 제거하고 다음 링크에 연결해 보았습니다 /dev/urandom.

rm /dev/random
ln -s /dev/urandom /dev/random

배경지식 같은거 같은데"나는 /dev/urandom엔트로피의 원천이 된다고 믿는다".

무슨 오류가 날까 걱정했는데, 이제 명령이 즉시 성공적으로 반환되므로 예상한 결과를 제공하는 것 같습니다.

내 질문은 다음과 같습니다/dev/randomLinux 시스템에서 기본적으로 FreeBSD 시스템에 연결 /dev/urandom하면 알려진 실제 버그가 있는 부작용이 있습니까 ?/dev/random아니면 특정 서비스 잠금으로 인해 문제가 반복적으로 발생하는 경우 이를 영구적으로 설정하는 것이 가능합니까(예: 시작 프로세스가 끝날 때 스크립트에서) ?

답변1

바라보다우랜덤에 관한 신화, /dev/random에 대한 공격이 아닌 /dev/urandom에 대한 알려진 공격은 없습니다. Linux 시스템의 주요 문제점은 복제되어 여러 가상 머신으로 실행될 때 복제 후 저장된 엔트로피 풀이 재설정되지 않는다는 것입니다. 이것은 당신이 원하는 것에 접하는 극단적인 경우입니다.

답변2

한 가지 다른 점은 /dev/random엔트로피 풀을 사용한 후에는 출력을 중지한다는 것입니다. 이 시도:

$ cat /dev/random
(a few short lines of gibberish)^C
$ 

/dev/urandom그러나 출력을 계속하기 위해 동일한 풀이 재사용됩니다. 그림과 같이:

$ cat /dev/urandom
(tons of gibberish fills the screen)^C
$

(이러한 특수 장치를 캡처하려고 하면 프롬프트가 엉망이 될 수 있습니다. 입력 reset하고 입력하기만 하면 터미널이 정상으로 돌아갑니다.)

/dev/urandom"무작위" 비트의 지속적인 스트림으로 무언가를 채워야 할 때 사용하세요. /dev/random절대적으로 임의의 키가 필요할 때 사용됩니다.

답변3

Linux에서는 /dev/random고품질 임의 비트를 제공합니다. 그들의 출처는아니요예측 가능하고아니요기계 외부에서 반복 가능합니다. 대신 /dev/urandom(사용 가능한 경우)와 동일한 난수 데이터를 사용하고 /dev/random, 그렇지 않은 경우 의사 난수 생성기를 사용하세요.결정론적인. 대부분의 목적에서는 충분히 예측할 수 없지만아니요매우 까다로운 응용 프로그램(예: 암호화)의 경우, 장기간 유효한 키(예: GPG) 생성은 말할 것도 없습니다.

관련 정보