Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
op4 — ポスト量子暗号、Double Ratchet プロトコル、Tor による匿名性を備えたターミナルベースの暗号化メッセンジャー。デュレスパスフレーズ、否認可能な認証、seccomp-bpf と mlockall による OS レベルの堅牢化を特長とします。 | Kitploit
ツール/GitHubGitHub/opfour/op4
認証と認可防御ツール暗号化/復号化ツール暗号化プライバシー認証
GitHubopfour/op4

op4

ポスト量子暗号、Double Ratchet プロトコル、Tor による匿名性を備えたターミナルベースの暗号化メッセンジャー。デュレスパスフレーズ、否認可能な認証、seccomp-bpf と mlockall による OS レベルの堅牢化を特長とします。

リポジトリを見る
6981ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有


op4 — セキュアターミナルメッセンジャー

Op4 は Rust で書かれたターミナルベースの暗号化メッセージングアプリケーションです。ポスト量子暗号によるエンドツーエンド暗号化プライベートメッセージングを提供し、すべてのトラフィックは Tor ネットワーク経由でルーティングされるため、メッセージの内容も IP アドレスも、通信相手を含む誰にも公開されません。






目次

  1. op4 の機能
  2. インストール
  3. 別のユーザーへの接続
  4. セキュリティモデル
  5. アーキテクチャ概要
  6. プロジェクト構成
  7. 現在のステータス

op4 の機能

op4 を使用すると、双方が IP アドレスや実の身元を明かすことなくプライベートメッセージを交換できます。すべてのメッセージは次のようになります。

  • エンドツーエンド暗号化 — Double Ratchet プロトコルを使用。Signal でも採用されているのと同じ基本設計です。
  • ポスト量子耐性 — 鍵交換レイヤーは古典的な X25519 と ML-KEM-768 (NIST 標準の格子ベース KEM) を組み合わせており、将来の量子コンピューターでも記録されたトラフィックを遡って復号できません。
  • 匿名化 — すべてのトラフィックは Tor ヒドゥンサービス (.onion アドレス) 経由で転送されます。あなたの IP アドレスは相手やネットワーク上の観測者に一切公開されません。
  • ローカル保存 — サーバーは存在しません。メッセージと連絡先は自分のマシン上の暗号化されたボールトファイルにのみ保存され、他のどこにも保存されません。

op4 は完全にターミナル内で動作します。GUI もブラウザコンポーネントもクラウドアカウントもありません。接続する外部プロセスは、自分のマシンで動作している Tor デーモンだけです。


インストール

すべてのダウンロード方法 — AppImage、ソース tarball、clone & build、および 自動インストーラー — は ダウンロード & インストールガイド に記載されています。 最新リリースは リリースページ から入手できます。

Debian / Ubuntu (自動)

Debian と Ubuntu では、install/setup.sh が Rust ツールチェーン、ビルド依存関係、Tor、コントロールポート設定、バイナリのコンパイル、システムユーザー、データディレクトリ、AppArmor プロファイルをすべて 1 つのコマンドで処理します。

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

スクリプトの実行後、op4 を起動する前に一度ログアウトして 再ログインする必要があります。 インストーラーは Tor クッキーファイルを 読み取れるように、あなたのユーザーを debian-tor グループに追加します。 Linux ではグループ変更は既に開かれているセッションには適用されません — 新しいログインが必要です。

この手順を省略すると、起動時に op4 は次のエラーで失敗します: Permission denied reading /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
# or, without system install:
./target/release/op4

初回起動時に op4 は通常のパスフレーズとデュレスパスフレーズの設定を案内し、その後アイデンティティキーを生成します。ボールトは ~/.local/share/op4/vault.op4 に保存されます。

サポート対象プラットフォーム

ディストリビューションステータス
Ubuntu 22.04 / 24.04サポート
Debian 12サポート
Fedora 39+サポート
Arch Linux (current)サポート
Tails OSサポート (セットアップガイド)
macOS / Windows / WSL1サポート対象外

最小カーネル: 4.15 (5.4+ 推奨)。アーキテクチャ: x86-64 (aarch64 は動作するはずですが未テストです)。


別のユーザーへの接続

2 人はそれぞれ 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-bit key, 96-bit nonce)
メッセージの暗号化ChaCha20-Poly1305 (per-message key from ratchet)
鍵導出 (ラチェット)HKDF-SHA256
否認可能な認証HMAC-SHA256
古典的な鍵交換X25519
ポスト量子鍵交換ML-KEM-768 (FIPS 203)
古典的な署名Ed25519
ポスト量子署名ML-DSA-65 (FIPS 204)
トランスポートの匿名性Tor v3 hidden services (.onion)

Double Ratchet

op4 は前方秘匿性のため、Double Ratchet プロトコル (Signal Protocol に類似) を使用します。つまり、次のことを意味します:

  • 各メッセージはラチェットチェーンから導出された一意の鍵で暗号化されます。
  • 1 つのメッセージ鍵が漏洩しても、他のメッセージは公開されません。
  • デバイスを押収された場合でも、既に削除された過去のメッセージは、攻撃者がボールトのパスフレーズを知ったとしても復号できません。

ハイブリッドポスト量子鍵交換

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 のボールトファイルには、すべての連絡先、会話、アイデンティティキーが保存されます。これは 2 つの独立した Argon2id 導出キーで保護されています:

  • 通常のパスフレーズ — 実際の連絡先とメッセージをロック解除します。
  • デュレスパスフレーズ — 見た目は同じだが空のおとりの受信箱をロック解除します。アプリのロック解除を強要された場合に使用します。外見上、2 つのパスフレーズは区別できません。

ネットワークの匿名性

ツールをダウンロード