피드로 돌아가기
Hacker NewsSecurity
원문 읽기
/dev/urandom 기반의 CSPRNG를 통한 무차별적 Blocking 문제 해결
Myths about /dev/urandom
AI 요약
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 수행