Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
op4 — 터미널 기반 암호화 메신저로, 포스트퀀텀 암호화, Double Ratchet 프로토콜, Tor 익명성을 제공합니다. duress passphrase, deniable authentication, seccomp-bpf 및 mlockall을 통한 OS 수준 강화 기능을 갖추고 있습니다. | Kitploit
도구/GitHubGitHub/opfour/op4
Authentication & AuthorizationDefensive ToolsEncryption/Decryption ToolsCryptographyPrivacyAuthentication
GitHubopfour/op4

op4

터미널 기반 암호화 메신저로, 포스트퀀텀 암호화, Double Ratchet 프로토콜, Tor 익명성을 제공합니다. duress passphrase, deniable authentication, seccomp-bpf 및 mlockall을 통한 OS 수준 강화 기능을 갖추고 있습니다.

저장소 보기
6981개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유


op4 — 보안 터미널 메신저

Op4는 Rust로 작성된 터미널 기반 암호화 메시징 애플리케이션입니다. 양자 내성 암호화를 사용한 종단간 암호화 개인 메시징을 제공하며, 모든 트래픽은 Tor 네트워크를 통해 라우팅되어 메시지 내용이나 IP 주소가 상대방을 포함한 누구에게도 노출되지 않습니다.






목차

  1. op4의 기능
  2. 설치
  3. 다른 사용자와 연결하기
  4. 보안 모델
  5. 아키텍처 개요
  6. 프로젝트 구조
  7. 현재 상태

op4의 기능

op4는 두 사람이 IP 주소나 실제 신원을 노출하지 않고 개인 메시지를 교환할 수 있게 합니다. 모든 메시지는:

  • 종단간 암호화 – Signal에서 사용하는 것과 동일한 기본 설계인 Double Ratchet 프로토콜 사용.
  • 양자 내성 강화 – 키 교환 계층이 기존 X25519와 ML-KEM-768(NIST 표준 격자 기반 KEM)을 결합하여, 미래의 양자 컴퓨터가 기록된 트래픽을 역으로 복호화할 수 없도록 함.
  • 익명화 – 모든 트래픽은 Tor 히든 서비스(.onion 주소)를 통해 전송됩니다. IP 주소는 상대방이나 네트워크 관찰자에게 노출되지 않습니다.
  • 로컬 저장 – 서버가 없습니다. 메시지와 연락처는 사용자 기기의 암호화된 볼트 파일에만 저장되며 다른 곳에는 저장되지 않습니다.

op4는 터미널에서만 실행됩니다. GUI, 브라우저 구성 요소, 클라우드 계정이 없습니다. 외부 프로세스로는 사용자 기기에서 실행 중인 Tor 데몬에만 접촉합니다.


설치

모든 다운로드 옵션 – AppImage, 소스 tarball, 클론 및 빌드, 자동 설치 프로그램은 다운로드 및 설치 가이드에 문서화되어 있습니다. 최신 릴리스는 릴리스 페이지에서 확인할 수 있습니다.

Debian / Ubuntu (자동)

Debian 및 Ubuntu에서 install/setup.sh는 하나의 명령으로 모든 것을 처리합니다: Rust 도구 체인, 빌드 종속성, Tor, 제어 포트 구성, 바이너리 컴파일, 시스템 사용자, 데이터 디렉터리 및 AppArmor 프로필.

git clone https://github.com/Opfour/op4.git
cd op4
sudo bash install/setup.sh

스크립트가 완료된 후 op4를 실행하기 전에 반드시 로그아웃 후 다시 로그인해야 합니다. 설치 프로그램은 사용자를 debian-tor 그룹에 추가하여 Tor 쿠키 파일을 읽을 수 있도록 합니다. Linux는 이미 열려 있는 세션에 그룹 변경을 적용하지 않으므로 새 로그인이 필요합니다.

이 단계를 건너뛰면 op4 시작 시 다음 오류가 발생합니다: /run/tor/control.authcookie 읽기 권한 거부됨

그런 다음 스크립트에서 출력된 소스 해시를 해당 버전에 대해 게시된 릴리스 해시와 비교하여 바이너리를 신뢰하기 전에 확인하세요.

릴리스 해시 확인

op4가 시작되면 모든 Rust 소스 파일, Cargo.toml, Cargo.lock, build.rs를 포함하는 소스 해시를 출력합니다. 설치한 버전에 대해 아래 값과 비교하세요.

버전소스 해시
0.3.080820cb41a63575d2c139dadd425d13d1e87e62a9d60200ae7b894ae2e9ad8ed
0.3.148115efb12747fa78b627ddbf7a56c46169f59e777d7d7508941bf89e4fe7521
0.2.0-dev35740577f6c4a4f19c5a08fe85b1f78a10347f2ba9dd7642d126552266bfa5a5
0.1.0e1a94761c7d3fa589ba892b47d5295aa417f95aee126809d51a7e7fb7e78982c

전체 앱을 실행하지 않고도 확인할 수 있습니다:

op4 --print-hash

해시가 일치하지 않으면 바이너리를 사용하지 마십시오 — 다른 커밋에서 빌드되었거나 변조된 것입니다.

Fedora / Arch / 기타 배포판 (수동)

먼저 종속성을 설치한 다음 스크립트를 실행하세요:

Rust 도구 체인 (rust-toolchain.toml을 통해 1.89.0으로 고정):

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

Tor 및 빌드 종속성:

# Fedora
sudo dnf install tor gcc pkg-config openssl-devel

# Arch
sudo pacman -S tor base-devel pkg-config openssl

Tor 제어 포트 구성 – /etc/tor/torrc에 추가:

ControlPort 9051
CookieAuthentication 1
sudo systemctl restart tor

Tor 그룹에 사용자 추가:

sudo usermod -aG tor $USER        # Fedora / Arch

이 단계 후에는 반드시 로그아웃 후 다시 로그인해야 합니다. 그룹 멤버십 변경은 활성 세션에 적용되지 않습니다. 그렇지 않으면 op4가 Permission denied reading /run/tor/control.authcookie 오류로 실패합니다.

완전히 로그아웃하지 않고 변경 사항을 적용하려면 다음을 실행하세요:

newgrp tor

빌드 및 설치:

git clone https://github.com/Opfour/op4.git
cd op4
cargo build --release
sudo bash install/setup.sh

실행

op4
# 또는 시스템 설치 없이:
./target/release/op4

첫 실행 시 op4는 일반 암호와 강요 암호를 설정하도록 안내한 후 신원 키를 생성합니다. 볼트는 ~/.local/share/op4/vault.op4에 저장됩니다.

지원되는 플랫폼

배포판상태
Ubuntu 22.04 / 24.04지원
Debian 12지원
Fedora 39+지원
Arch Linux (현재)지원
Tails OS지원 (설정 가이드)
macOS / Windows / WSL1미지원

최소 커널: 4.15 (5.4+ 권장). 아키텍처: x86-64 (aarch64는 작동해야 하지만 테스트되지 않음).


다른 사용자와 연결하기

두 사람 모두 op4가 설치되고, Tor가 실행 중이며, 볼트가 잠금 해제되어 있어야 합니다. 교환은 비대칭적입니다: 한 사람이 먼저 연락처 코드를 보내고, 다른 사람이 추가한 다음 첫 번째 메시지를 보내면, 첫 번째 사람이 수락할 때까지 보류 중인 요청으로 도착합니다.

1단계 — 첫 실행

첫 실행 시 op4는 일반 암호와 강요 암호를 입력하도록 요청한 후 신원 키를 생성합니다. 이는 한 번만 발생합니다. 볼트는 ~/.local/share/op4/vault.op4에 저장됩니다.

$ op4

2단계 — 연락처 코드 얻기

연락처 코드에는 전체 공개 키 번들과 .onion 주소가 포함되어 있습니다. 상대방이 귀하에게 연락하려면 이 코드가 필요합니다.

  1. 연락처 탭으로 이동 (2 또는 → 누름)
  2. e 를 눌러 연락처 코드 내보내기
  3. 화면에 코드가 나타납니다 — op4:로 시작하는 긴 Base58 문자열입니다.
  4. 복사하여 대역 외로 상대방에게 보냅니다 (Signal, 이메일, 직접 만남 등)

연락처 코드는 비밀이 아닙니다. 공개적으로 공유해도 안전합니다. 공개 키와 onion 주소만 포함되어 있으며 비밀 자료는 없습니다.

3단계 — 상대방을 연락처로 추가

상대방의 연락처 코드를 받은 후:

  1. 연락처 탭에서 a 를 눌러 연락처 추가
  2. 상대방의 op4: 연락처 코드를 붙여넣고 Enter 누름
  3. 이름을 입력하고 Enter 누름

4단계 — 첫 메시지 보내기

  1. 연락처 목록에서 연락처 선택 (↑/↓ 사용, 그 다음 Enter)
  2. 메시지 탭으로 전환 (3 또는 → 누름)
  3. 메시지 입력 후 Enter 누름

이 첫 번째 메시지는 암호화된 핸드셰이크를 시작하고 Tor를 통해 상대방의 .onion 주소로 전달됩니다. 상대방은 이를 보류 중인 연락처 요청으로 보게 됩니다.

5단계 — 수신 요청 수락

누군가 첫 메시지를 보내면 연락처 탭에 대기 중인 요청 수를 표시하는 배지가 나타납니다.

  1. 연락처 탭으로 이동 (2 누름)
  2. p 를 눌러 보류 중인 요청 검토
  3. 발신자의 지문과 첫 메시지가 표시됩니다
  4. 이 연락처의 이름을 입력하고 Enter를 눌러 수락 (거부하려면 Esc 를 눌러 폐기)

수락되면 Double Ratchet이 초기화되고 대화가 즉시 메시지 탭에서 사용 가능해집니다.

6단계 — 지문 확인 (권장)

연락처를 신뢰하기 전에 상대방이 자신의 화면에서 보여주는 지문과 일치하는지 확인하세요. 이는 초기 연락처 교환 중 중간자 공격을 방지합니다.

  1. 연락처 탭에서 연락처 선택
  2. 오른쪽 지문 패널에 16개 그룹의 16진수 문자열(예: A3F2:91BC:…)이 표시됩니다
  3. 상대방에게 자신의 연락처 항목에 대한 지문을 읽어달라고 요청 — 정확히 일치해야 함
  4. 확인은 음성 통화, 직접 만남, 또는 신원을 확인할 수 있는 다른 채널을 통해 수행 가능

탐색 참조

키동작
1 / ← →탭 전환 (연락처 / 메시지 / 설정)
↑ ↓선택 이동
Enter대화 열기 / 확인
Esc취소 / 뒤로 가기
e연락처 코드 내보내기 (연락처 탭)
a연락처 추가 (연락처 탭)
p보류 중인 요청 검토 (연락처 탭)
d선택한 연락처 삭제 (연락처 탭)
r키 회전 (설정 탭)
q종료

키 회전

신원 키가 손상되었다고 생각되면:

  1. 설정 탭으로 이동 (4 또는 오른쪽으로 이동)
  2. r 을 눌러 키 회전
  3. op4는 새 키 쌍을 생성하고, 이전 키로 폐기 인증서에 서명한 후 Tor를 통해 모든 연락처에 브로드캐스트합니다
  4. 연락처 코드가 변경됩니다 — 새 코드를 연락처와 공유하세요

보안 모델

암호화 프리미티브 (모두 RustCrypto 생태계에서)

목적알고리즘
볼트 키 파생Argon2id (m=64 MiB, t=3, p=1)
볼트 암호화ChaCha20-Poly1305 (256비트 키, 96비트 nonce)
메시지 암호화ChaCha20-Poly1305 (래칫에서 파생된 메시지별 키)
키 파생 (래칫)HKDF-SHA256
부인 방지 인증HMAC-SHA256
기존 키 교환X25519
양자 내성 키 교환ML-KEM-768 (FIPS 203)
기존 서명Ed25519
양자 내성 서명ML-DSA-65 (FIPS 204)
전송 익명성Tor v3 히든 서비스 (.onion)

Double Ratchet

op4는 전방향 보안을 위해 Double Ratchet 프로토콜(Signal Protocol과 유사)을 사용합니다. 즉:

  • 각 메시지는 래칫 체인에서 파생된 고유 키로 암호화됩니다.
  • 하나의 메시지 키가 손상되어도 다른 메시지가 노출되지 않습니다.
  • 기기가 압수된 경우, 이미 삭제된 과거 메시지는 공격자가 볼트 암호를 알게 되어도 복호화할 수 없습니다.

하이브리드 양자 내성 키 교환

KEM 단계는 X25519와 ML-KEM-768을 다음과 같이 결합합니다:

shared_secret = HKDF(X25519_ss || MLKEM_ss)

공격자는 키 교환을 손상시키기 위해 두 알고리즘을 모두 깨야 합니다. 이는 양자 공격자(ML-KEM-768)로부터 보호하면서 ML-KEM-768에 알려지지 않은 결함이 있을 경우(X25519 폴백) 기존 공격에 대해 안전하게 유지됩니다.

부인 방지 인증

메시지는 공유 래칫 상태에서 파생된 키를 사용하여 HMAC-SHA256으로 인증됩니다. 양측이 동일한 HMAC 키를 보유하고 있기 때문에 어느 쪽이든 주어진 MAC을 생성할 수 있습니다. 이는 OTR 및 Signal에서 사용하는 것과 동일한 부인 방지 속성입니다: 법정 절차에서 메시지를 암호화 방식으로 특정 발신자에게 귀속시킬 수 없습니다.

볼트 및 강요 암호

~/.local/share/op4/vault.op4의 볼트 파일은 모든 연락처, 대화 및 신원 키를 저장합니다. 두 개의 독립적인 Argon2id 파생 키로 보호됩니다:

  • 일반 암호 — 실제 연락처와 메시지에 액세스할 수 있습니다.
  • 강요 암호 — 시각적으로 동일하지만 비어 있는 가짜 받은 편지함을 엽니다. 앱을 강제로 열어야 하는 상황에서 사용하세요. 외부에서는 두 암호를 구분할 수 없습니다.

네트워크 익명성

op4는 받은 편지함을 위해 Tor v3 히든 서비스를 생성합니다. .onion 주소는 신원 키에서 결정론적으로 파생되므로(HKDF 사용) 별도의 키를 저장할 필요 없이 재시작 후에도 안정적입니다. 발신 메시지는 Tor SOCKS5 프록시를 통해 전송됩니다. op4와 관련된 네트워크 패킷에 실제 IP 주소가 나타나지 않습니다.

커버 트래픽(평균 간격 30초의 푸아송 분포 더미 메시지를 자신에게 전송)은 트래픽 양을 관찰하여 네트워크 관찰자가 누군가와 활발히 메시지를 주고받는지 알 수 없도록 합니다.

OS 수준 강화

도구 다운로드