스테가노그래피(Steganography)의 개념
스테가노그래피는 비밀로 유지해야 할 메시지를 다른 메시지나 데이터 안에 몰래 숨기는 정보 보안 기법입니다. 이 기법을 사용하면 비밀 메시지 자체의 존재까지도 외부로부터 은폐할 수 있습니다.
스테가노그래피는 이미지, 동영상 파일, 오디오 파일 등 다양한 매체에 적용할 수 있습니다. 일반적으로 해시 마킹(hash marking)과 같은 문자 형태로 작성되지만, 이미지 내부에 삽입하는 방식 역시 널리 활용됩니다. 이러한 기법은 자료의 불법 복제와 무단 열람으로부터 콘텐츠를 보호하는 데 효과적입니다.
대표적인 활용 사례: 디지털 워터마킹
스테가노그래피의 대표적인 활용 예로 디지털 워터마킹이 있습니다. 워터마킹은 저작권 관련 데이터를 문서나 미디어 파일에 겹쳐 삽입하여 육안으로는 감지할 수 없게 만드는 기술입니다. 이를 통해 불법 복제 등 사기 행위를 방지하고, 저작권이 보호된 미디어에 한층 강력한 보호막을 제공합니다.
스테가노그래피의 핵심 목표
스테가노그래피의 주된 목표는 완전히 식별할 수 없는 방식으로 안전하게 통신하면서, 숨겨진 정보가 전송되고 있다는 의심조차 받지 않도록 하는 것입니다.
여기서 중요한 점은, 스테가노그래피가 타인이 숨겨진 정보의 '내용'을 이해하지 못하도록 막는 것이 아니라는 것입니다. 진짜 목적은 애초에 그러한 정보가 '존재한다는 사실' 자체를 들키지 않게 하는 데 있습니다. 따라서 스테가노그래피 기법이 제3자로 하여금 전송 채널을 의심하게 만든다면, 그 방법은 실패한 것으로 간주됩니다.
스테가노그래피의 기본 모델: 3가지 구성 요소
스테가노그래피의 기본 모델은 캐리어(Carrier), 메시지(Message), 패스워드(Password)라는 세 가지 요소로 구성됩니다.
1. 캐리어(Carrier)
캐리어는 커버 객체(cover-object)라고도 불리며, 메시지가 삽입되는 대상입니다. 메시지의 존재를 숨기는 역할을 담당합니다.
2. 메시지(Message)
메시지는 발신자가 기밀로 유지하고자 하는 정보입니다. 일반 텍스트, 암호문, 다른 이미지 등 비트 스트림에 삽입 가능한 모든 것이 될 수 있으며, 저작권 표시, 은밀 통신 내용, 일련번호 등이 포함됩니다.
3. 패스워드(Stego-Key)
패스워드는 스테고 키(stego-key)라고 부르며, 해당 복호화 키를 알고 있는 수신자만이 커버 객체에서 메시지를 추출할 수 있도록 보장합니다. 비밀 메시지가 삽입된 커버 객체는 스테고 객체(stego-object)라고 지칭합니다.
메시지 복원 과정
스테고 객체에서 메시지를 복원하려면 원래의 커버 객체가 필요하며, 인코딩 단계에서 스테고 키가 사용되었다면 상응하는 복호화 키 또한 필요합니다. 다만 대부분의 응용 프로그램에서 원본 이미지는 반드시 필요하지 않을 수도 있습니다.
커버 객체로 적합한 매체의 종류
커버 객체로 활용하기 적합한 매체는 다음과 같습니다.
- 네트워크 프로토콜: TCP, IP, UDP 등
- 오디오: WAV, MIDI, AVI, MPEG, MPI, VOC 등 디지털 음성 포맷
- 파일 및 디스크: 슬랙 공간(slack space)을 활용하여 문서를 숨기고 추가하는 방식
- 텍스트: 널(null) 문자 활용, 모스 코드처럼 HTML과 Java 코드에 숨기는 방식
- 이미지 파일: BMP, GIF, JPG 등 컬러 및 그레이스케일 이미지
정보 은닉 절차: 두 단계로 이해하기
일반적으로 정보 은닉 절차는 커버 객체에서 중복 비트(redundant bits)를 추출하는 방식으로 진행되며, 크게 두 단계로 나뉩니다.
1단계: 중복 비트 인식
커버 객체 내에서 중복 비트를 식별합니다. 중복 비트란 커버 객체의 특성이나 본질을 손상시키지 않고 변경할 수 있는 비트를 의미합니다.
2단계: 임베딩(삽입) 절차
임베딩 절차에서는 중복 비트 중 일부를 선택하여 비밀 메시지의 데이터로 교체합니다. 선택된 중복 비트를 메시지 비트로 대체함으로써 최종적으로 스테고 객체가 생성됩니다.