암호학: Steganography
Steganography 개요입니다. 암호화와 은닉의 차이, 전통적 예시, LSB 개념, 파일 분석 명령과 탐지 관점의 한계를 정리했습니다.
암호학: Steganography
Steganography는 메시지를 암호문으로 바꾸는 기술이 아니라, 메시지가 존재한다는 사실 자체를 숨기는 기술이다. 암호화가 내용을 읽지 못하게 만드는 쪽이라면, 스테가노그래피는 내용이 숨어 있다는 사실을 눈치채기 어렵게 만드는 쪽에 가깝다.
암호화와 다른 점
암호화된 파일은 열어 보면 무작위 데이터처럼 보여서 보호된 내용이 있다는 사실이 드러난다. 반면 스테가노그래피는 정상 이미지, 문서, 오디오 파일처럼 보이는 운반체 안에 작은 데이터를 숨긴다. 그래서 기밀성만이 아니라 은닉성이 목적이 된다.
- 암호화: 메시지 내용 보호가 핵심이다.
- 스테가노그래피: 메시지 존재 은폐가 핵심이다.
- 실무적으로는 둘을 함께 써야 한다. 숨겨진 데이터가 발견되더라도 암호화되어 있어야 한다.
전통적인 예시
종이 문서에서는 문자 마킹, 보이지 않는 잉크, 핀 구멍 같은 방식이 사용됐다. 이런 방식은 만들기는 쉽지만 숨길 수 있는 정보량이 작고, 방법이 노출되면 같은 방식의 재사용 가치가 급격히 떨어진다.
character marking : 특정 문자에 아주 작은 표시를 남김
invisible ink : 열이나 화학 처리 후에만 보이는 잉크 사용
pin punctures : 빛을 비춰야 보이는 작은 구멍을 문서에 남김디지털 이미지에서의 LSB 개념
디지털 이미지에서는 각 픽셀의 최하위 비트(Least Significant Bit)를 조금 바꾸는 방식이 대표적인 학습 예시다. 최하위 비트는 색상 변화가 작기 때문에 사람이 보기에는 겉보기에는 거의 같아 보일 수 있다. 다만 압축, 리사이즈, 포맷 변환을 거치면 숨긴 데이터가 쉽게 손상된다.
original pixel channel : 11010110
hide one bit '1' : 11010111
사람 눈에는 변화가 작지만, 분석 도구로는 통계적 흔적이 남을 수 있다.학습용 파일 실험
아래 예시는 개인 실습 파일에만 사용한다. 다른 사람의 파일, 업무 자료, 외부 서비스에 은닉 데이터를 넣어 유통하는 행위는 보안 사고나 정책 위반이 될 수 있다.
mkdir -p steg-lab
cd steg-lab
printf 'visible memo\n' > cover.txt
printf 'hidden lab message\n' > secret.txt
sha256sum cover.txt secret.txt이미지 파일을 다룰 때는 기준 값과 결과물을 분리하고 해시를 남겨 둔다. 분석 관점에서는 파일 크기, 메타데이터, 해시 변화, 포맷 변환 후 손상 여부를 함께 본다.
file cover.png hidden.png 2>/dev/null || true
stat -c '%n %s bytes' cover.png hidden.png 2>/dev/null || true
exiftool cover.png hidden.png 2>/dev/null || true
sha256sum cover.png hidden.png 2>/dev/null || true한계와 탐지 관점
- 숨길 수 있는 데이터 양이 제한적이다.
- 압축, 크롭, 리사이즈, 재인코딩에 취약하다.
- 파일 크기와 통계 분포가 비정상적으로 바뀔 수 있다.
- 방식이 노출되면 같은 운반체와 규칙은 재사용하기 어렵다.
- 은닉 자체는 보안이 아니므로 민감 내용은 별도 암호화가 필요하다.
정리하면, Steganography는 암호학의 기밀성 도구라기보다 은닉 채널을 설명하는 개념으로 이해하는 편이 맞다. 보안 실무에서는 방어적 분석, 악성 파일 조사, 데이터 유출 경로 점검 관점에서 함께 다룬다.