정보보안의 무결성 (Integrity)
무결성은 정보보안의 3요소(CIA Triad) 중 두 번째 요소로, 정보 자산이 인가되지 않은 방식으로 변경, 파괴되거나 위조되는 것을 방지하고, 정보의 정확성과 완전성을 유지하는 원칙입니다.
1. 무결성의 목표
주요 목표는 데이터가 신뢰할 수 있고 생성된 의도대로 유지되며, 어떤 시점에서도 조작되지 않았음을 보장하는 것입니다.
- 예시:
- 은행 거래 시 이체 금액이 중간에 변경되지 않도록 방지하는 것.
- 서버에 저장된 시스템 파일이나 코드가 해커에 의해 변조되지 않도록 보호하는 것.
- 데이터베이스에 기록된 데이터가 오류 없이 정확하게 유지되는 것.
2. 무결성 확보를 위한 핵심 기술 및 대책
무결성을 달성하기 위한 대책들은 크게 변경 방지와 변경 검증으로 나뉩니다.
① 변경 검증 기술: 해시 (Hash)
데이터의 변경 여부를 확인하는 가장 기본적인 기술입니다.
- 원리: 데이터(파일, 메시지)를 고정된 길이의 고유한 문자열(해시 값, Hash Value)로 변환합니다. 데이터의 내용이 1비트라도 변경되면 해시 값이 완전히 달라지므로, 변조 여부를 즉시 알 수 있습니다.
- 예: 파일 다운로드 후 제공된 SHA-256 해시 값과 다운로드된 파일의 해시 값을 비교.
- 전자 서명 (Digital Signature): 메시지의 발신자 인증과 더불어 메시지의 무결성을 보장하는 데 해시 기술이 사용됩니다.
② 접근 통제 (Access Control)
데이터를 변경할 수 있는 주체를 엄격하게 제한합니다.
- 최소 권한의 원칙: 사용자에게 필요한 최소한의 수정 권한만 부여합니다. (예: 일반 사용자는 조회만, 관리자만 수정/삭제 권한 부여)
- SQLi 방어: SQL 인젝션 공격을 막아 데이터베이스의 무단 변경을 방지합니다.
③ 절차적 보호
- 데이터 백업 및 복구: 데이터 손상 시 원본 데이터를 안전하게 복구할 수 있도록 합니다.
- 트랜잭션 관리: 데이터베이스에서 작업(트랜잭션)이 실패할 경우, 이전 상태로 되돌려 데이터의 일관성을 유지합니다.