저는 현재 Windowsland가 아닌 일부 운영 체제를 스스로 가르치려고 노력하고 있으며 Ubuntu Server 16.04가 시작하기에 가장 좋은 곳이라고 생각합니다. 이제 LVM을 "마스터"했으므로 cryptsetup 및 LUKS에 익숙해지려고 노력하고 있습니다.
이제 이해가 되기 시작했는데, 한 가지 혼란스러운 점은...
...--use-urandom 또는 --use-random 옵션에 의해 생성된 난수의 목적은 무엇입니까?
cryptsetup 명령의 맥락에서 예를 들면 다음과 같습니다.
$ sudo cryptsetup luksFormat --cipher=aes-xts-plain64 --key-size=512 --hash=sha256 --use-random /dev/sdb1 --key-file=/crypto/keyfile
여기서 /dev/random(난수 엔트로피를 추출하기 위해 --use-random이라고 가정함)을 사용하면 시스템이 더 많은 엔트로피를 생성하기 때문에 시간이 오래 걸린다는 내용을 읽었습니다. 따라서 어떤 경우에는 이렇게 하는 것이 좋습니다. --use-urandom(따라서 /dev/urandom에서 가져오며, 내가 아는 한 완전히 의사 무작위임)을 사용하면 시스템이 엔트로피 풀이 "리필"될 때까지 기다리지 않아도 됩니다.
나는 암호화를 완전히 이해하지는 못하지만추측하다이 옵션을 한 번만 사용하여 전체 암호화 체계의 초기 상태를 설정하면 됩니다. 그렇다면 내 데이터를 보호하기 위해 훌륭하고 지저분한 암호화 베드를 기다리는 데 아무런 문제가 없습니다. 하지만 디스크를 읽고 쓸 때마다 이 문제를 처리해야 한다면... 아마도 꽤 빠를 것입니다. .
내가 맞나요? 이거 그냥 일회성인가요? 아니면 내 명령에 --use-random을 설정하면 장기간 LUKS 열기 및 닫기, 읽기 및 쓰기 등을 할 수 없게 됩니까?
답변1
(...)를 사용하면
/dev/random
시스템이 더 많은 엔트로피를 생성하므로 시간이 오래 걸리는 경우가 있습니다.
옳은.
어떤 경우에는 --use-urandom을 사용하는 것이 좋습니다(각각
/dev/urandom
거의 모든 경우에는 사용하지 않는 것이 좋습니다 /dev/random
./dev/urandom의 rand는 로그인 키에 안전합니까?또는우랜덤에 관한 신화.
/dev/urandom
, 내가 이해하는 한, 이것은 완전히 의사 무작위입니다.
아니요, urandom
의사 무작위가 아닙니다. "의사 무작위"는 "결정적"을 의미합니다. urandom
결정론적이지 않으며 (암호학적 품질) 결정론적 무작위 생성기를 사용합니다.파종엔트로피를 통해 소량의 비결정적 데이터로부터 사실상 무한한 임의 바이트 스트림이 생성됩니다.
이러한 옵션은 키가 생성될 때 발생하는 상황 --use-random
에만 --use-urandom
영향을 미치며 볼륨이 사용될 때 발생하는 상황에는 영향을 미치지 않습니다. 따라서 --use-random
볼륨 사용을 느리게 만드는 것이 아니라 볼륨을 느리게 만드는 것뿐입니다. 그래도 --use-urandom
일반적으로 괜찮고 --use-random
대화형 사용에는 괜찮지만 시스템에 엔트로피 수를 늘릴 수 있는 것이 없으면 영원히 차단될 수 있으므로 스크립트에서는 권장되지 않습니다. 이것이 작동하지 않는 유일한 /dev/urandom
경우는 엔트로피를 수집할 시간이 없는 새로 설치되고 새로 부팅된 시스템입니다. 불행하게도 urandom
이 경우 예측 가능한 데이터가 반환됩니다. 시스템을 몇 분 동안 사용한 후에는(또는 시스템 설치 후 재부팅하더라도) /dev/urandom
안전합니다.
답변2
기본적으로 이는 암호화용 키를 생성하는 데 사용되며 일회용이므로 맞습니다.
무작위 대 urandom의 경우 일반적으로 urandom을 사용하는 것이 더 좋습니다.
바라보다/dev/random과 /dev/urandom을 사용하는 경우피투성이의 세부 사항을 위해.