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

텍스트 스테가노그래피란? 정보 보안의 핵심 은닉 기법 총정리

스테가노그래피(Steganography)는 하나의 메시지를 다른 메시지 안에 은밀하게 숨기는 예술이자 과학입니다. 외부인의 의심을 받지 않으면서 오직 의도된 수신자만이 숨겨진 메시지를 식별할 수 있도록 설계된 기술로, 정보 보안 분야에서 중요한 역할을 담당합니다.

텍스트 스테가노그래피에는 다양한 기법이 활용됩니다. 지금부터 대표적인 방식들을 하나씩 살펴보겠습니다.

라인 시프트 코딩(Line-shift Coding)

라인 시프트 코딩은 텍스트 줄의 위치를 변경하여 특징을 삽입하는 방식으로, 인코딩 여부를 파악하기 어렵게 만듭니다. 텍스트 줄을 수직 방향으로 이동시켜 정보를 인코딩하며, 포맷 파일이나 페이지의 비트맵에 적용할 수 있습니다.

예를 들어 문서의 짝수 번째 줄마다 1/300인치씩 위 또는 아래로 이동시키면, 파일을 정상적으로 암호화하고 복호화할 수 있습니다. 다만 이 방식은 인코딩을 해제하는 과정이 복잡하고, 텍스트 은닉 기법 중에서는 가장 눈에 띄기 쉽다는 단점이 있습니다.

워드 시프트 코딩(Word-shift Coding)

워드 시프트 코딩은 단어 간격을 고정된 패턴으로 조정하여, 메시지가 존재한다는 사실조차 알아차리기 어렵게 만드는 기법입니다. 자연스러운 간격의 외관을 유지하면서 텍스트 줄 내부에서 단어의 수평 위치를 변경하는 방식으로 정보를 코드화합니다.

구체적으로는 단어 사이에서 가장 넓은 간격과 가장 좁은 간격을 먼저 찾습니다. 그런 다음 한 줄을 인코딩할 때 가장 넓은 간격은 일정량만큼 줄이고, 가장 좁은 간격은 동일한 양만큼 늘립니다. 이렇게 하면 줄의 전체 길이가 유지되므로 변화가 육안으로 드러나지 않습니다.

하지만 이 방법 역시 완전히 안전하지는 않습니다. 단어 사이의 간격을 정밀하게 계산하면 인코딩된 정보가 노출될 수 있기 때문입니다.

피처 코딩(Feature Coding)

피처 코딩은 글자 자체의 특징을 수정하는 방식입니다. 특정 문자를 쓰는 세부적인 방식이 그 자체로 하나의 코드가 되며, 예를 들어 d, h, b 같은 문자의 세로획 끝부분(end-line)을 변경하는 방식으로 구현할 수 있습니다.

이 기법은 식별이 극히 어렵고 이미지 파일에 직접 적용할 수 있다는 장점이 있습니다. 이 코드를 무력화할 수 있는 유일한 방법은 모든 세로획 끝부분을 일정한 값으로 보정하는 것이지만, 이는 매우 번거롭고 수고가 많이 드는 작업이기 때문에 실제로 수행되는 경우는 드뭅니다.

새롭게 연구 중인 대체 기법

위의 기법들 외에도 흥미로운 대체 방식들이 존재하지만, 아직 초기 연구 단계에 머물러 있습니다.

  • 문법(Grammar)을 활용한 데이터 인코딩
  • 통사적(Syntactic) 인코딩
  • 의미론적(Semantic) 인코딩

텍스트 스테가노그래피 소프트웨어

텍스트에 정보를 숨기는 소프트웨어는 Texthide, Webstego, Steganos 등 여러 종류가 출시되어 있습니다. 이러한 도구들은 제3자가 인식할 수 없는 형식으로 일반 텍스트 파일을 통해 암호화된 민감한 정보를 주고받을 수 있게 지원합니다.

통사적 방법(Syntactic Method)

통사적 방법은 마침표(.), 쉼표(,) 등의 문장 부호를 이용해 비트 0과 1을 숨기는 기술입니다. 다만 이 접근 방식은 문장 부호를 삽입할 적절한 위치를 정확히 판단해야 한다는 어려움이 있습니다. 독자가 부자연스러운 문장 부호 사용을 눈치챌 수 있으므로, 이 방법을 적용할 때는 세심한 주의가 필요합니다.