java

SecureRandom 지연이슈

gt1000 2015. 3. 19. 08:56

Facebook 송성곤님 글.. 메모


Linux시스템(Redhat, centos) SecureRandom 지연이슈(JRE1.7)로 삽질 경험 공유합니다.

보안상 secure random을 사용해야 해서 자바 SecureRandom을 사용했는데 키발급과정에서 간혹 수초이상, 약 30초정도까지 지연현상이 있었고 시스템트래이스로 확인해보니 /dev/random에서 read하는 과정에서 블럭되더군요.
결론은 random대신 urandom을 쓰도록 변경(java.security변경)하니 서버 지연현상이 해결되었습니다.

...

아래 링크는 urandom이 nonbloking이기도 하면서 충분이 안전하다는 내용으로 함께 공유합니다.
http://www.2uo.de/myths-about-urandom/

ThreadLocalRandom도 삽질할때 고려하긴 했지만 보안상으로는 안전하지 않아 배제했습니다. (동시 발급 시 같은 값이 나오는 버그: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7051516)