본문으로 건너뛰기
로그인 둘러보기
보안·개인정보 · 오디오·영상·캡처 · 윈도우즈 유틸

NeoStego

0

NeoStego는 Nick Haghiri가 개발한 스테가노그래피 도구로, 이미지 및 오디오 파일 안에 데이터를 숨기고 보이지 않는 워터마크를 적용하는 데 사용됩니다.

데이터 숨기기보안스테가노그래피워터마킹프라이버시

소개

NeoStego는 Nick Haghiri가 개발한 스테가노그래피 도구로, 이미지 및 오디오 파일 안에 데이터를 숨기고 보이지 않는 워터마크를 적용하는 데 사용됩니다. OpenStego를 기반으로 한 최신 포크(fork)로, 콘텐츠 적응형 은닉 알고리즘과 강력한 워터마킹 기능을 갖추고 있습니다. 데스크톱과 Android 양쪽에서 사용할 수 있도록 크로스 플랫폼 UI를 제공하며, 온디스크 포맷은 기존 OpenStego와 호환되도록 설계되었습니다.

상세정보

데이터 은닉 (Data Hiding)

RandomLSBMatch 알고리즘은 ±1 LSB 매칭으로 고전적인 통계적 스테가날리시스에 저항하고, Adaptive(HILL + Syndrome-Trellis Codes) 알고리즘은 텍스처가 풍부한 영역에 변화를 집중시켜 CNN 기반의 현대적 탐지에도 대응합니다. 페이로드는 PBKDF2-HMAC-SHA256(랜덤 솔트, 높은 반복 횟수)과 AES-GCM으로 인증 암호화되며, 암호화되지 않은 기존 OpenStego 데이터도 자동으로 복호화됩니다.

워터마킹 (Watermarking)

DWTSVD 알고리즘으로 실제 멀티비트 페이로드를 임베딩하며, 블라인드(blind) 복구가 가능합니다. JPEG 재압축, 노이즈, 블러, 리샘플링, 밝기 변화, 작은 잘라내기(crop) 후에도 워터마크가 살아남습니다. 비밀번호 기반 키를 사용해 서명을 임베딩합니다.

오디오 및 추가 포맷 지원

비압축 WAV(PCM) 파일에 데이터를 숨길 수 있습니다. 이미지는 PNG/BMP/WebP 커버를 읽고, 내장된 ICC 컬러 프로파일을 보존하며, 워터마킹 시 JPEG 품질을 선택할 수 있습니다.

데스크톱 UX와 CLI

FlatLaf 라이트/다크 테마, 네이티브 OS 파일 대화상자, 드래그 앤 드롭, 비밀번호 표시 토글을 지원합니다. 동일한 코어 엔진을 공유하는 Kotlin/Jetpack Compose 기반 Android 앱이 제공되며, embed / extract / gensig / embedmark / checkmark 등 모든 기능을 스크립트로 제어할 수 있는 풀 CLI도 포함되어 있습니다.

설치 및 기본 사용

데스크톱은 플랫폼별 네이티브 설치 프로그램(MSI/dmg, deb/rpm 또는 포터블 zip)으로 배포되며, 자체 Java 런타임을 내장하고 있어 별도 설치 없이 바로 실행할 수 있습니다. Android는 APK로 설치하거나 Obtainium에 저장소 URL을 등록해 자동 업데이트를 받을 수 있습니다.

CLI 기본 명령

  • neostego algorithms : 사용 가능한 스테가노그래피 알고리즘 목록 표시
  • neostego embed -mf secret.txt -cf cover.png -sf out.png -p <password> : 비밀번호로 암호화하여 이미지에 파일 임베딩
  • neostego extract -sf out.png -xd ./out -p <password> : 비밀번호로 임베딩된 데이터 추출

GUI는 설치된 앱 메뉴 단축아이콘 또는 포터블 zip에 포함된 neostego 런처로 실행합니다.

활용 예시

  • 이미지나 오디오 파일에 비밀 메시지·문서 등을 은닉하여 전송
  • 사진·음원에 비밀번호 기반 보이지 않는 워터마크를 삽입해 무단 복제 감지
  • GUI 대신 CLI로 임베딩/추출을 자동화하여 스크립트 기반 워크플로우 구성
  • Android 기기에서 동일 코어 엔진을 사용해 모바일 환경에서 데이터 은닉

제한 및 확인 사항

  • 숨긴 데이터는 최하위 비트(LSB)에 저장되므로 무손실 포맷으로 저장·공유해야 합니다. JPEG/MP3로 재인코딩(채팅 앱이 사진에 적용하는 재압축 포함)하면 페이로드가 손상됩니다. “사진”이 아닌 “파일”로 공유해야 합니다.
  • 용량은 커버 크기에 비례하며, 대략 페이로드 1바이트당 약 이미지 3픽셀 또는 오디오 샘플 8개가 필요합니다. 콘텐츠 적응형 알고리즘은 보안성 확보를 위해 용량을 일부 포기하므로 평범한 LSB보다 적게 들어갑니다.
  • 투명도(알파 채널)는 라운드트립 시 보존되지만, 데이터는 RGB 채널에만 숨겨집니다.
  • 새로 암호화된 출력은 AES-GCM을 사용하므로 기존 OpenStego로는 읽을 수 없습니다. 상호운용이 필요하면 CLI에서 --legacyencrypt를 지정해 원래 포맷으로 출력할 수 있습니다.
  • 현재 설치 패키지는 서명되어 있지 않아 macOS에서는 우클릭 후 “열기”, Windows에서는 SmartScreen이 나타나면 “추가 정보 → 그대로 실행”을 선택해야 할 수 있습니다.

시스템 요구사항

설치형 패키지는 자체 Java 런타임을 내장하므로 별도의 런타임 설치가 필요하지 않습니다. 빌드 환경에서 소스 코드를 직접 컴파일하려면 JDK 21이 필요하며, Android APK 릴리스 빌드에는 Android SDK가 추가로 요구됩니다. SmartScreen이 표시되는 경우 "추가 정보 → 그대로 실행"을, macOS에서는 첫 실행 시 dmg를 우클릭하여 "열기"를 선택해야 할 수 있으며, 이는 설치 패키지가 현재 서명되어 있지 않기 때문입니다.