Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보 보안에서 텍스트 스테가노그래피란 무엇일까? 핵심 개념과 3가지 기법 총정리

텍스트 스테가노그래피란?

텍스트 스테가노그래피(Text Steganography)는 비밀 텍스트 메시지를 다른 텍스트, 즉 커버 메시지(위장용 텍스트) 안에 숨기거나, 원래의 비밀 메시지와 연관된 새로운 커버 메시지를 생성하는 정보 은닉 기법입니다.

이 기술의 범위는 매우 넓습니다. 기존 텍스트의 서식(format)을 변경하는 것부터, 텍스트 내 단어를 교체하는 것, 무작위 문자열을 생성하는 것,さらには 문맥 자유 문법(CFG)을 활용해 사람이 읽을 수 있는 자연스러운 텍스트를 만들어내는 것까지 다양한 방식이 포함됩니다.

왜 텍스트 스테가노그래피는 가장 까다로울까?

텍스트 스테가노그래피는 이미지, 오디오, 비디오 파일을 이용한 스테가노그래피보다 훨씬 어려운 것으로 평가됩니다. 그 이유는 텍스트에는 멀티미디어 파일에 존재하는 중복 데이터(redundant data)가 거의 없기 때문입니다.

텍스트 문서의 경우 문서의 구조가 곧 식별 가능한 내용과 동일합니다. 반면 사진 같은 다른 유형의 문서에서는 문서의 구조 자체가 실제로 인식되는 내용과 다르기 때문에, 구조상의 미세한 변화를 학습하여 출력물에 눈에 띄는 변화를 주지 않고도 정보를 숨길 수 있습니다.

이미지나 오디오 파일에는 사람이 지각할 수 없는 수준의 변화를 만들 수 있지만, 텍스트 파일에서는 글자 하나나 문장부호 하나만 추가되어도 일반 독자가 쉽게 알아차릴 수 있습니다.

그럼에도 불구하고 텍스트 파일은 저장 용량이 적게 들고, 통신 속도가 빠르며 처리 과정이 간단하다는 장점 덕분에 다른 스테가노그래피 방식보다 선호되는 경우가 많습니다.

텍스트 스테가노그래피의 세 가지 주요 유형

텍스트 스테가노그래피는 일반적으로 포맷 기반 방식, 무작위 및 통계적 생성, 언어학적 방법의 세 가지 유형으로 분류됩니다.

1. 포맷 기반 방식 (Format Based Methods)

포맷 기반 방식은 텍스트의 물리적인 형식을 직접 변경하여 데이터를 숨기는 기법입니다. 하지만 이 방법에는 몇 가지 명확한 약점이 있습니다.

먼저, 스테고 파일(stego file)을 워드 프로세서로 열면 오타나 불필요한 공백이 드러날 수 있습니다. 또한 변경된 글꼴 크기는 사람 독자에게 의심을 살 수 있습니다. 더욱 치명적인 점은, 원본 평문(plaintext)에 접근할 수 있다면 평문과 의심되는 스테가노그래피 텍스트를 서로 비교했을 때 조작된 요소가 상당히 두드러지게 나타난다는 것입니다.

2. 무작위 및 통계적 생성 (Random and Statistical Generation)

원본 평문과의 비교 위험을 피하기 위해, 스테가노그래피 작성자는 자체적으로 커버 텍스트를 생성하는 방법을 택합니다.

한 가지 방법은 무작위로 보이는 문자 시퀀스 안에 데이터를 숨기는 것이고, 다른 방법은 단어 길이와 문자 출현 빈도의 통계적 특성을 활용하여 해당 언어의 실제 단어와 유사한 통계적 성질을 지닌 단어를 생성하는 것입니다. 이렇게 하면 표면적으로는 자연스러운 텍스트처럼 보이면서 정보를 은닉할 수 있습니다.

3. 언어학적 스테가노그래피 (Linguistic Steganography)

언어학적 스테가노그래피는 생성되거나 수정된 텍스트의 언어적 특성을 중점적으로 고려하며, 경우에 따라 언어 구조 자체를 메시지가 숨겨지는 공간으로 활용합니다.

대표적인 예로 문맥 자유 문법(CFG)을 들 수 있습니다. CFG는 트리 구조를 생성할 수 있으며, 이 구조를 이용해 비트를 숨길 수 있습니다. 즉, 왼쪽 가지는 '0'을, 오른쪽 가지는 '1'에 대응시키는 방식입니다.

또한 GNF(Greibach Normal Form) 문법을 활용할 수도 있습니다. 이 경우 생성 규칙(production)의 첫 번째 선택지는 비트 0을, 두 번째 선택지는 비트 1을 정의합니다.

다만 이 방법에도 단점이 존재합니다. 첫째, 문법의 크기가 작으면 동일한 텍스트가 반복해서 생성되기 쉽습니다. 둘째, 생성된 텍스트가 문법적으로는 완벽하더라도 의미적 구조(semantic structure)의 결함이 발생할 수 있습니다. 그 결과 서로 아무런 연관성이 없는 문장들의 나열이 만들어져, 세심한 독자에게는 부자연스럽게 느껴질 수 있습니다.