Linux에서 / dev / random을 / dev / urandom에 연결하는 것이 잘못 되었습니까?


13

현재 gpg --genkeyLinux VM 에서 테스트 중 입니다. 불행히도,이 소프트웨어는 /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엔트로피 소스로 신뢰 한다 " 는 설정으로 본다 .

나는 어떤 종류의 오류가 발생할 것을 두려워했지만 명령이 즉시 성공적으로 반환되므로 예상 결과를 제공하는 것 같습니다.

내 질문은 : FreeBSD 시스템에서 기본적으로 수행되는 Linux 시스템에서 링크 /dev/random로 인한 알려진 실제적이고 잘못된 부작용이 /dev/urandom있습니까? 또는 /dev/random일부 서비스 잠금 으로 인해 반복적 인 문제가 발생하는 경우 부팅 프로세스 종료시 스크립트에서이를 영구적으로 설정할 수 있습니까?

답변:


2

urandom대한 신화를 참조하십시오 . / dev / random에 대한 공격이 아닌 / dev / urandom에 대한 알려진 공격은 없습니다. Linux 시스템의 주요 문제점은 복제 후 저장된 엔트로피 풀을 재설정하지 않고 여러 VM으로 복제하고 실행할 때입니다. 그것은 당신이 원하는 것에 접하는 코너 케이스입니다.


0

/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
OP의 문제는 FreeBSD 시스템에서 기본적으로 수행 된 Linux 시스템에서 / dev / random을 / dev / urandom에 링크하는 것으로 알려진 실제적이고 잘못된 부작용이 있습니까?
카운터 모드

흥미롭게도, 차이점이 두드러지면 서로 연결되어서는 안됩니다. 대부분의 다른 토론은 부팅 후 차이에 대한 합의에 도달하지만이 동작은 더 긴 차이를 나타낼 수 있습니다.
KalleMP

-2

Linux에서는 /dev/random고품질 임의 비트를 제공합니다. 그것들은 머신 외부에서 예측할 수 없고 반복 할 수 없는 소스에서 파생됩니다 . 대조적으로, (가능한 경우) 와 동일한 임의의 데이터를 사용합니다. 없는 경우 의사 난수 생성기를 사용 합니다. 이는 결정적 입니다. 대부분의 경우 예측할 수는 없지만 암호화와 같은 매우 까다로운 응용 프로그램 에는 적합 하지 않으며 GPG와 같이 오래 지속되는 키를 만드는 데 훨씬 적습니다./dev/urandom/dev/random


6
이것은 잘못이다. /dev/urandom암호화에 좋습니다.
Gilles 'SO- 악의를 멈춰라'

@ 편집증의 정도에 따라 달라집니다. GPG의 경우 모든 사람 이 귀하의 키에 의해 간접적으로 영향을받습니다.
vonbrand

5
신뢰하지 않으면 /dev/urandomGPG도 신뢰할 이유가 없습니다.
Gilles 'SO- 악마 그만두 다'

3
@vonbrand : 편집증의 정도에 따라 수학적으로 확인 된 PRNG 중에서 무작위를 생성하거나 가비지 "asdfghasdfghasdfgh"의 전체 화면을 입력 해야하는 사용자를 선택 해야하는 경우 소프트웨어 PRNG를 훨씬 선택합니다. 컴퓨터가 무작위를 생성하는 데는 좋지 않지만 인간은 컴퓨터를 더 나쁘게한다는 점을 이해합니다. 그럼에도 불구하고 urandomvs. random토론을 제외하고 내 질문으로 돌아가려면 /dev/random파일을 링크로 바꾸면 다른 부작용이 없어야한다고 rngd언급 했습니까?
WhiteWinterWolf

2
이것은 잘못이다. 엔트로피가 충분하지 않다고 생각되면 동일한 RNG를 사용하지만 임의의 블록을 사용합니다.
Duncan X Simpson 3
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.