카테고리 없음

SecureRandom blocking, hang, slow 이슈 조치 (보안 관련)

Lawmin 2016. 4. 26. 14:57

SecureRandom 클래스 사용시 blocking 되거나 속도가 느린 증상이 있다.


버그라기보다는 JRE가 설치된 서버별로 동작 방식이 달라 발생하는 것으로 볼 수 있는데,


linux의 경우, 


1) jre/lib/security/java.security 파일의 아래 내용을

securerandom.source=file:/dev/urandom (또는 /dev/random 으로 되어 있음)


아래와 같이 바꿔 주거나,

securerandom.source=file:///dev/urandom


2) 아래와 같이 jvm 실행시 옵션을 추가 해주면 된다.

-Djava.security.egd=file:/dev/./urandom


(/dev/random 의 경우, 서버의 엔트로피(네트워크, 입출력 작업 등)가 어느정도 이상되어야 결과가 나오게 되며, 아닌 경우 대기하는 방식)


자세한 문서는 아래 링크에서 확인할 수 있다.


https://en.wikipedia.org/wiki//dev/random

http://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom