중요 정보 메모리에(덤프-hex) 노출하지 않기
중요 정보 메모리에(덤프-hex) 노출하지 않기
중요한 정보를 String 타입에 할당하여 사용하면, 메모리 덤프에서 평문이 노출되게 된다. 비밀번호를 password
라고 설정했다고 가정하자. 이를 변수에 그대로 할당한 의도적으로 메모리를 덤프했을 때 password
가 Hex(16진수) 코드들 사이에 그대로 노출되는 것을 확인할 수 있다. String 변수에 담아 사용 후, 변수에 null을 할당한다고 해도 메모리에는 password
가 여전히 평문으로 남아있다. null은 새로운 메모리 주소에 할당되기 때문이다.
그러므로, 중요 정보는 String 타입에 담지 말고 Char형태를 배열에 담아 사용하도록 하자. 사용 후에는 반드시 다른 값으로 채워주자.