반응형
올바르지 않은 난수 취약점
자바에서 랜덤 난수를 발생시킬때 보통 Math.random()을 많이 사용하여 작성하였는데, 해당 메소드의 사용은 예상가능한 난수를 사용하는것으로 시스템 보안에 약점을 유발한다고 합니다...😥
해당 메소드는 시드값을 설정 할 수 없고 사용하는 알고리즘이 밝혀지면 취약해질 수 있기때문이라고 합니다.
결론은 해당 메소드 대신 차용할 메소드가 필요한데, 제시된 방법으로 java.util.Random
또는 java.security.SecureRandom 클래스 사용을 추천합니다.
이런 문제로 기존에 작성된 부분을 SecureRandom으로 변경하였습니다.
https://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html
사용법👀
Math.random()과 SecureRandom 클래스의 각각 사용법 비교를 해보겠습니다.
간단한 int 데이터 변수 생성 방법
- Math.random()
int div = (int) Math.floor( Math.random() * 2 )
- SecureRandom
SecureRandom sr = new SecureRandom();
int div = sr.nextInt(2);
정수형 난수 데이터를 구할때 올림, 내림처리도 필요없고 타입이 지정된 난수를 호출하기에 캐스팅도 없습니다.
앞으로 랜덤값을 생성해주는 SecureRandom클래스 자주 사용해야겠습니다.
반응형
'JAVA' 카테고리의 다른 글
Java - Try With Resources 자원 해제하기 (0) | 2022.07.01 |
---|---|
JAVA - replace메소드, 정규식등에서 $, \등 일반 문자열 처리하기(quoteReplacement) (0) | 2022.04.21 |
JAVA - replaceFirst 치환시 주의점(특수문자 문자열 치환) (0) | 2021.08.12 |
JAVA - zip파일 내부 파일 리스트 확인하기 (0) | 2021.06.22 |
JAVA - Jsch를 활용한 SSH 연결, 명령어, 파일전송 (0) | 2021.02.02 |