피드로 돌아가기
Hacker NewsHacker News
Security

/dev/urandom 기반의 CSPRNG를 통한 무차별적 Blocking 문제 해결

Myths about /dev/urandom

2026년 5월 14일20intermediate

Context

Linux 시스템의 /dev/random과 /dev/urandom 간의 엔트로피 처리 방식 차이에 대한 오해가 지속됨. 특히 /dev/random의 Blocking 특성이 보안성을 높인다는 잘못된 믿음으로 인해 시스템 가용성이 저하되는 아키텍처적 병목 발생.

Technical Solution

  • /dev/random과 /dev/urandom 모두 동일한 CSPRNG 메커니즘을 사용하는 구조 확인
  • 약 256 bits의 엔트로피만으로도 계산적으로 충분한 보안성을 확보하는 설계 원리 적용
  • /dev/random의 Entropy Pool 부족 시 발생하는 Blocking 현상을 제거하여 시스템 가용성 확보
  • Boot 시점의 엔트로피 부족 문제를 해결하기 위해 Seed 파일 저장 및 로드 방식 도입
  • Linux 3.17 이후 getrandom(2) syscall을 통해 초기 엔트로피 수집 시에만 Blocking 하고 이후 non-blocking으로 동작하는 최적화된 인터페이스 제공

- 암호화 목적의 난수 생성 시 /dev/random 대신 /dev/urandom을 기본 소스로 채택 - Linux

3.17 이상 환경에서는 getrandom(2) syscall 사용을 우선 검토 - Virtual Machine 클로닝 또는 체크포인트 복원 후 반드시 새로운 엔트로피 Seeding 수행

원문 읽기