본문 바로가기
안드로이드 앱

이미지에 텍스트 또는 파일 은닉 및 숨기기(스테가노그래피 기술)

by 젤리아드 2023. 11. 3.
반응형

스테가노그래피는 데이터의 존재를 숨기는 기술입니다.

데이터를 숨긴다는 관점으로 보면 암호화와 비슷하지만 차이점이 있습니다.

암호화는 원래의 데이터를 공개하거나 노출시키지는 않지만 존재 자체를 숨기지는 않습니다.

데이터를 암호화하면 암호문이 나옵니다.

암호문은 원래의 원본 데이터를 보여주지 않고 가려주지만 암호문 자체는 노출되기 때문에 암호화가 되어 있다는 사실을 알 수 있고 암호 해독의 표적이 됩니다.

스테가노그래피는 암호화와는 다르게 존재 자체를 숨깁니다.

이미지 파일에 텍스트나 파일을 숨긴다면 텍스트나 파일의 존재 자체를 숨기는 것이 됩니다.

이미지 파일에 데이터를 숨겨도 사람들에게는 여전히 이미지 파일로 보이기 때문에 존재 자체를 숨길 수 있습니다.

 

암호화와 스테가노그래피를 같이 사용하면 단일로 사용했을 때보다 더 높은 보안을 제공합니다.

1. 암호화 단일 사용 (보안 중)

2. 스테가노그래피 단일 사용 (보안 중)

3. 암호화 + 스테가노그래피 모두 사용 (보안 상)

데이터를 암호화해서 스테가노그래피로 숨겼을 때 최상의 보안을 제공합니다.

 

이미지 스테가노그래피는 이미지 파일 자체를 데이터를 저장하는 저장소 개념으로 생각하면 이해가 빠릅니다.

 

이미지 스테가노그래피의 저장 방식은 대표적으로 2가지가 있습니다.

텍스트 또는 파일이 이미지 안으로 들어가는 그림
이미지 픽셀에 삽입

숨겨야 할 텍스트나 파일을 이미지 픽셀 안에 숨기는 방식입니다.

각각의 이미지 픽셀에서 1bit 씩만 가져와서 데이터를 저장하는 방식입니다.

1bit는 데이터 저장의 최소 단위로 이미지 파일 모든 픽셀의 1bit를 변경한다 해도 인간의 눈으로 원본 이미지와 구분하는 것은 불가능합니다.

따라서 이미지 파일 안에 데이터를 삽입해도 육안으로 보면 티가 나지 않고 원본 이미지와 동일한 이미지로 보입니다.

"이미지 파일 선택" 버튼 누르기
이미지 파일 선택

이미지를 선택하고 텍스트를 입력하거나 숨길 파일을 선택하는 방식으로 사용하면 됩니다.

 

이미지에 숨길 데이터의 타입을 선택하는 화면
숨길 데이터 타입 선택

이미지에 텍스트나 파일 모두 숨길 수 있습니다.

 

이미지에 삽입할 텍스트 입력 후 실행 버튼 누르기
숨길 텍스트 입력

이미지에 텍스트를 숨길 경우 숨길 텍스트를 입력하고 실행 버튼을 누르면 됩니다.

비밀번호 설정이 가능하고 데이터 암호화는 기본적으로 제공됩니다.

비밀번호를 설정하면 비밀번호를 아는 사람만 이미지에서 텍스트를 추출할 수 있습니다.

 

파일 선택 후 이미지 파일 제작 버튼 누르기
파일 숨기기

텍스트가 아닌 파일을 숨길 수도 있습니다.

숨길 파일을 선택하고 이미지 파일 제작 버튼을 누르면 파일을 숨긴 이미지가 생성됩니다.

이미지에 숨겼던 텍스트나 파일을 다시 원본 데이터로 추출하는 것도 당연히 가능합니다.

 

또 다른 저장 방식은 숨길 파일을 이미지 끝에 추가하는 방식입니다.

이미지 파일 끝에 파일을 붙이는 그림
이미지 파일 끝에 추가

파일을 이미지 끝에 붙여도 이미지 뷰어로 봤을 때 원본 이미지만 표시됩니다.

그래서 육안으로는 파일이 붙여졌는지 알 수 없게 됩니다.

파일을 추가하는 방식은 이미지 색상 값을 변경하지 않기 때문에 원본 이미지와 당연히 똑같은 이미지를 출력합니다.

픽셀에 삽입하는 방식은 이미지 색상 값을 미세하게 변경하지만 사람의 육안으로는 그 차이를 구분할 수 없으므로 결국 두 방식 모두 원본 이미지와 똑같은 이미지가 출력됩니다.

이 미세한 차이는 절대로 인간의 눈으로 구분할 수 없습니다.

그렇다면 언제 픽셀에 삽입하는 방식을 사용해야 하고 언제 파일에 추가하는 방식을 사용해야 할지의 문제가 남습니다.

 

픽셀 삽입 방식 특징(=비트 플레인 방식)

-이미지의 픽셀에 데이터를 저장하므로 이미지 크기에 따라 저장할 수 있는 용량이 제한됩니다.

-작은 이미지는 작은 데이터만 저장할 수 있고 이미지 크기가 커질수록 더 많은 데이터를 저장할 수 있습니다.

-데이터 저장 구조가 복잡하고 분석하기 어렵습니다.(보안 상승)

-저장된 비트값이 색상 정보인지 숨긴 데이터의 비트인지 구분하기 어렵고 모호한 부분이 있습니다.(보안 상승)

 

파일 추가 방식 특징

-이미지 파일 끝에 숨길 파일을 추가하는 방식이라 이미지 크기에 따른 저장 용량의 제한이 없습니다.

-추가하고 싶은 만큼 이미지 파일 끝에 연달아 붙이면 됩니다.

-이미지 퀄리티에 비해 너무 큰 용량의 파일을 붙이면 이미지 용량이 커지고 누가 봐도 수상함이 감지되고 데이터가 숨겨져 있을지도 모른다는 의심을 사게 됩니다.

-데이터 저장 구조를 분석하기 쉽습니다.

 

두 방식의 특징을 살펴보면 저장할 데이터의 성격에 따라 어떤 방식으로 저장해야 할지 결정됩니다.

용량은 적지만 보안적으로 중요한 데이터는 픽셀 삽입 방식(=비트 플레인 방식)으로 저장하는 것이 좋고 보안적으로 덜 중요하고 용량이 비교적 큰 데이터는 파일 추가 방식으로 저장하면 됩니다.

 

예제 파일

sample_stegano.zip
3.16MB

 

sample_stegano.zip SHA256 해시 지문
fdbf3fc0a1a8a255955a6fb5fd56d85b79cc6f9a6035d1b29525de0254cc6770
disk_pigeon.png SHA256 해시 지문
ef913810d7090c389fd15f8d8d1f97207d5a1e8c424088bd4d840c6563cb9aa3
elecPiano.png SHA256 해시 지문
ec9245a8451160d89c4b0067c005338b02e14a80bb81150e9d55d75000081700

예제 파일 목록
disk_pigeon.png
elecPiano.png
예제 파일 목록

예제 ZIP 파일의 압축을 풀면 2개의 이미지 파일이 들어있습니다.

disk_pigeon.png 비둘기라고 쓰인 디스켓 이미지는 겉으로 보기에는 디스켓으로 보이지만 이미지 파일 안에는 진짜 비둘기 이미지가 숨겨져 있습니다.

픽셀 삽입(=비트 플레인) 방식으로 저장되어 있으며 데이터를 추출하면 예쁘게 생긴 비둘기를 볼 수 있습니다.

 

elecPiano.png 파일은 겉으로 보기에는 그냥 피아노 이미지 파일이지만 이미지 파일 안에 진짜 피아노 음악 파일이 숨겨져 있습니다.

음악 파일은 파일 추가 방식으로 이미지 끝에 연결되어 있으며 음악 파일에 대한 정보 텍스트가 픽셀 삽입 방식으로 이미지 픽셀 안에 삽입되어 있습니다.

 

disk_pigeon.png로부터 진짜 비둘기 이미지 추출하기

Play스토어

https://play.google.com/store/apps/details?id=com.sinsoft.steganographytool

 

이미지스테가노그래피툴 - Google Play 앱

이미지에 텍스트나 파일을 숨기거나 추출하는 기능을 가진 앱

play.google.com

원스토어

https://m.onestore.co.kr/mobilepoc/apps/appsDetail.omp?prodId=0000772563

 

이미지 스테가노그래피 툴 - 원스토어

이미지에 텍스트나 파일을 숨기거나 추출하는 기능을 가진 앱

m.onestore.co.kr

 

픽셀 삽입 방식 버튼
픽셀 삽입 방식 버튼

이미지 스테가노그래피 툴 메인 메뉴에서 픽셀 삽입 방식 버튼을 누릅니다.

 

이미지로부터 데이터 추출 버튼
데이터 추출 버튼

이미지로부터 데이터 추출 버튼을 누릅니다.

 

"파일 추출" 선택 후 "추출 준비" 버튼 누르기
추출 준비

파일 추출을 선택하고 추출 준비 버튼을 누릅니다.

 

외부 저장소 버튼
외부 저장소 버튼

외부 저장소 버튼을 누르고 disk_pigeon.png 파일을 선택합니다.

 

선택 파일 추출하기 버튼
선택 파일 추출

선택 파일 추출하기 버튼을 누르면 진짜 비둘기 이미지 파일이 추출됩니다.

 

elecPiano.png로부터 진짜 음원 파일 추출하기

메인 메뉴에서 파일 추가 방식 버튼 누르기
파일 추가 방식

메인 메뉴에서 파일 추가 방식 버튼을 누릅니다.

 

이미지에 숨긴 파일 추출하기 버튼
추출하기 버튼

이미지에 숨긴 파일 추출하기 버튼을 누릅니다.

외부 저장소를 선택하고 elecPiano.png 파일을 선택하면 진짜 음원 파일이 추출되고 음악을 감상할 수 있습니다.

음악에 대한 정보는 이미지 픽셀 안에 저장되어 있습니다.

메인 메뉴에서 픽셀 삽입 방식을 선택하고 elecPiano.png로부터 텍스트를 추출하면 음악에 대한 정보를 확인할 수 있습니다.

텍스트 추출 선택하고 추출 준비 버튼 누르기
텍스트 추출

728x90

댓글