CSS 기반 텍스트 스테가노그래피와 RSA 공개키 암호를 이용한 안전한 정보 은닉 기법
초록
본 논문은 웹 페이지 스타일시트(CSS)를 매개로 텍스트 스테가노그래피를 구현하고, 삽입된 비밀 메시지를 RSA 공개키 암호화로 보호하는 새로운 은닉 체계를 제안한다. CSS 파일 내 공백, 주석, 속성 순서 등을 변형하여 은닉 용량을 확보하고, 암호화된 데이터를 복호화하기 위해 키 관리와 전송 절차를 설계한다. 실험을 통해 은닉 성공률, 탐지 회피성, 그리고 RSA 암호화에 따른 보안성을 평가한다.
상세 분석
이 연구는 기존 텍스트 스테가노그래피가 주로 문서 파일이나 이미지 메타데이터에 의존하는 반면, 웹 개발 환경에서 필수적인 CSS 파일을 새로운 은닉 매개체로 활용한다는 점에서 차별성을 가진다. CSS는 브라우저가 해석하기 전에 클라이언트 측에 그대로 전달되며, 스타일 규칙은 인간이 직접 읽기 어려운 형태(예: 중괄호, 세미콜론, 공백)로 구성된다. 이러한 구조적 특성을 이용해 은닉 채널을 설계한다. 구체적으로는 다음과 같은 기법이 논문에 제시된다.
- 공백 기반 변조: 속성값 뒤에 삽입되는 스페이스와 탭을 0·1 비트로 매핑한다. 예를 들어, ‘color: #000;␣␣␣␉␉␉’와 같이 연속된 공백 패턴을 비트 스트림으로 해석한다.
- 주석 활용: CSS 주석 ‘/* … */’ 내부에 암호화된 텍스트를 삽입한다. 주석은 렌더링에 영향을 주지 않으면서도 파일 크기를 크게 늘리지 않는다.
- 속성 순서 변조: 동일한 스타일을 정의하는 여러 속성(예: margin, padding)의 순서를 바꾸어 비트 값을 표현한다. 순서가 바뀌어도 시각적 효과는 동일하므로 탐지가 어려워진다.
- 선택자 이름 변형: 의미 없는 클래스·아이디명을 무작위 문자열로 교체하고, 그 문자열의 문자 길이 혹은 알파벳/숫자 비율을 비트로 변환한다.
이러한 은닉 방법은 각각 독립적으로 혹은 조합하여 사용 가능하며, 은닉 용량은 CSS 파일의 크기와 복잡도에 비례한다. 논문은 은닉 용량을 평균 1KB당 8~12비트 수준으로 측정했으며, 이는 일반적인 텍스트 스테가노그래피와 비슷하거나 약간 낮은 수준이다.
보안 측면에서는 은닉된 비트 스트림을 RSA 공개키 암호화(RSA‑2048)로 보호한다. 송신자는 수신자의 공개키로 비트를 암호화하고, 암호문을 CSS에 삽입한다. 수신자는 자신의 개인키로 복호화하여 원본 메시지를 복원한다. RSA를 적용함으로써 단순히 은닉된 데이터가 노출되더라도, 암호 해독이 어려워 실질적인 기밀성을 확보한다.
하지만 몇 가지 한계점도 존재한다. 첫째, RSA 암호화는 블록 단위(예: 245바이트)로 작동하므로, 큰 메시지는 여러 블록으로 나누어야 하며, 이는 CSS 파일 내에 다수의 암호문 블록을 삽입하게 만든다. 둘째, 공백·주석·속성 순서 변조는 CSS 압축(minify) 도구에 의해 자동으로 정리될 위험이 있다. 따라서 실제 배포 환경에서는 압축을 비활성화하거나, 압축 후에도 은닉 정보를 유지할 수 있는 변조 방식을 추가로 설계해야 한다. 셋째, 탐지 회피성을 평가하기 위해 기존 스테가노그래피 탐지 도구(NSteg, Stegdetect 등)를 적용했지만, 공백·주석 기반 변조는 통계적 특성 변화가 미미해 탐지율이 낮은 반면, 속성 순서 변조는 특정 패턴이 반복될 경우 탐지 가능성이 상승한다.
전반적으로 이 논문은 웹 개발 흐름에 자연스럽게 녹아들 수 있는 은닉 매체로 CSS를 활용하고, 공개키 암호화와 결합함으로써 기밀성·무결성을 동시에 보장하는 설계를 제시한다. 향후 연구에서는 자동화된 은닉·복원 도구 개발, 압축 친화적 은닉 기법, 그리고 다중 채널(HTML, JavaScript, 이미지) 연계 스테가노그래피에 대한 확장이 기대된다.
댓글 및 학술 토론
Loading comments...
의견 남기기