2- 5. 암호화되지 않은 중요정보
가. 개요
사용자 또는 시스템의 중요정보가 포함된 데이터를 평문으로 송·수신 또는 저장할 때 인가되지 않은 사용자에게 민감한 정보가 노출될 수 있는 보안약점이다.
나. 보안대책
개인정보(주민등록번호, 여권번호 등), 금융정보(카드번호, 계좌번호 등), 패스워드 등 중요정보를 통신채널로 전송하거나 저장할 때는 반드시 암호화 과정을 거쳐야 한다. 필요한 경우 SSL 또는 HTTPS 등과 같은 암호채널을 사용해야 하며, HTTPS와 같은 보안 채녈을 사용하여 브라우저 쿠키에 중요 데이터를 저장하는 경우, 쿠키객체에 보안속성을 반드시 설정하여 중요정보의 노출을 방지한다. 중요정보를 읽거나 쓸 경우에 권한인증 등으로 적합한 사용자가 중요정보에 접근하도록 해야 한다.
다. 코드예제
• 중요정보 평문저장
아래 예제는 인증을 통과한 사용자의 패스워드 정보가 평문으로 DB에 저장된다.
다음 예제는 패스워드 등 중요 데이터를 해쉬값으로 변환하여 저장하고 있다.
• 중요정보 평문전송
아래 예제는 패스워드를 암호화하지 않고 네트워크로 전송하고 있다. 이 경우 패킷 스니핑으로 패스워드가 노출될 수 있다.
아래 예제는 패스워드를 네트워크로 서버로 전송하기 전에 AES 등의 안전한 암호알고리즘으로 암호화한 안전한 프로그램이다.