중요정보(비밀번호, 개인정보 등) 저장 시 안전한 저장 및 보관 방법을 설계
(보안기능) 암호화 되지 않은 중요정보
(보안기능) 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출
주민번호가 암호화돼 있으면 유출되더라도 도용할 수 없지만 이들 카드사들이 주민번호를 암호화하지 않으면서 스스로 사태를 확대시킨 셈이고 “2차 피해 가능성은 없다”는 카드사들의 주장은 신빙성을 잃어가고 있다.
① 중요정보 또는 개인정보는 암호화해서 저장
② 불필요하거나 사용하지 않는 중요정보가 메모리에 남지 않도록 삭제
① 중요정보가 다뤄지는 “안전영역”을 설정하고 중요정보가 해당 영역 외부로 누출되지 않도록 설계
서버의 DB나 파일 등에 저장되는 중요정보는 반드시 암호화해서 저장해야 하며 “암호연산” 설계항목에서 정의하고 있는 안전한 암호 알고리즘과 암호키를 사용
쿠키, HTML5 로컬저장소와 같은 클라이언트 측 하드 드라이브에는 중요정보가 저장되지 않도록 설계
부득이 중요정보를 저장해야 하는 경우에는 반드시 클라이언트 측에 저장되는 민감 정보를 암호화
클라이언트 언어인 HTML 코드는 사용자에게 공개되어 있는 것과 마찬가지이므로 중요한 로직 및 주석처리는 서버 측 언어에서만 처리되도록 설계
② 개인정보 또는 특정 금융정보를 처리하는 기능 구현 시 더 이상 필요하지 않은 데이터에 대해 메모리를 0으로 초기화
민감한 정보를 포함하는 페이지는 사용자 측 캐싱을 비활성화 하도록 제한적인 캐시정책을 수립
부득이 캐싱을 해야 하는 경우 캐싱되는 정보는 암호화하여 저장하도록 설계
인증정보와 같은 민감한 정보를 포함하는 웹 폼을 구현하는 경우 자동완성 기능을 비활성화
입력 폼 자동완성 비활성화
<input type=’text’ name=‘id’ autocomplete=‘off’/>
<input type=‘password’ name=’pw’ autocomplete=‘off’/>
<form autocomplete=‘off’>
메모리나 디스크에서 처리하는 중요데이터(개인정보, 인증정보, 금융정보)가 제대로 보호되지 않을 경우, 보안이나 데이터의 무결성이 훼손
개인정보, 인증정보 등이 영속적인 쿠키(Persistent Cookie)에 저장된다면, 공격자는 쿠키에 접근할 수 있는 보다 많은 기회를 가지게 되며, 이는 시스템을 취약하게 만든다.