nethical6/conversation-steganography

GitHub: nethical6/conversation-steganography

一个利用本地 AI 模型将加密信息伪装成自然对话文本的隐私通讯隐写工具。

Stars: 889 | Forks: 53

# 对话隐写术 **在看似正常的聊天文本中隐藏秘密信息。** 对话隐写术允许两个人通过*任何*即时通讯应用(WhatsApp、Telegram、Signal、iMessage、电子邮件,甚至 Instagram 私信)进行完全私密的交谈。你的秘密信息会被加密,然后伪装成由本地 AI 模型生成的无辜且听起来自然的文本。任何阅读该聊天记录的人都无法看出里面有隐藏信息。 ## 为什么选择对话隐写术? - 各国政府正趋向于扫描私人信息 - 发送普通的加密信息是有风险的,因为这可能会因为“涉嫌可疑”而对你进行标记 - 今天还“只是 CSAM”。天知道明天会变成什么 **你的实际信息在未加密状态下绝不会离开你的设备。** 通讯平台只能看到无辜的掩护文本。 ## 快速开始 ### 1. 安装 ``` # Clone 和 build git clone https://github.com/nethical/conversation-stenography.git cd conversation-stenography go build -o conversation-stenography ./cmd/conversation-stenography ``` ### 2. 首次运行 —— 设置向导 ``` ./conversation-stenography ``` 首次运行时,对话隐写术会引导你完成所有设置: - 让你选择 AI 模型(并根据你的系统提供建议) - 自动下载模型 - 创建你的配置文件 这就行了。你可以开始聊天了。 ### 在一台设备上测试两个用户 你不需要两台电脑或手机来验证对话隐写术是否有效。在 设置完成后,启动本地双人模拟: ``` ./conversation-stenography simulate ``` 出现提示时,输入你们共享的秘密短语。终端以 Alice 的身份启动: ``` Alice> Meet me outside at six. Generating and transporting cover text... Cover text (what the messaging app would see): Bob decoded: Meet me outside at six. Bob> That works for me. ``` 每一轮使用两个独立的协议参与者。其中一个生成掩护 文本,另一个对其进行解码,然后提示会自动切换用户。 这会演练在不同设备之间使用的相同加密、模型编码、解码和对话 链。 模拟命令: | 命令 | 作用 | |---|---| | `/switch` | 切换当前用户但不发送信息 | | `/show` | 显示模拟的明文对话 | | `/help` | 显示模拟帮助 | | `/quit` | 退出;模拟状态不会被保存 | 名称和测试对话可以自定义: ``` ./conversation-stenography simulate -user-a Alex -user-b Samir -conversation test-chat ``` ### 3. 开始聊天 ``` ./conversation-stenography ``` 该工具会提示你输入对话名称和你的名字,然后让你进入聊天: ``` ┌─────────────────────────────────────┐ │ 🔒 Secure Chat Active │ └─────────────────────────────────────┘ Conversation: coffee-plans You are: alex HOW TO USE: • Type a message and press Enter → generates cover text to copy • /paste SENDER → paste a message you received from someone • /help → see all commands • /quit → save and exit alex> ``` ### 4. 发送信息 只需输入你的秘密信息: ``` alex> Hey, can we meet tomorrow at noon? ⏳ Generating cover text... ┌─── COPY THIS into your messaging app ───┐ I was thinking about trying that new place downtown. Have you been there before? I heard they have great pasta. └─── END — send as alex ───────────────────┘ ``` 复制掩护文本并将其粘贴到 WhatsApp/Telegram/Signal 中。 ### 5. 接收信息 当你的朋友通过通讯应用向你发送回复时: ``` alex> /paste bob Paste the exact message received from bob below. Then type /end on a new line when done: Yeah the pasta place sounds great! My friend went last week and said the carbonara was incredible. /end 📩 Message from bob: Sure, noon works! See you there. ``` ## 工作原理(供好奇者了解) ``` Your secret message ↓ [AES encryption] ↓ [AI model generates innocent text that encodes the encrypted bytes in its token choices] ↓ Normal-looking chat text → WhatsApp/Telegram/Signal → Friend's Conversation Stenography ↓ ↓ [AI model recovers [Same process the encrypted bytes in reverse] from token choices] ↓ ↓ Your secret message [AES decryption] ↓ Original message ``` **核心安全特性:** - **AES-SIV 加密** —— 军用级别的身份验证加密 - **对话链** —— 每条信息在密码学上都与上一条信息相连;能够检测到任何篡改、删除或重新排序行为 - **本地 AI 模型** —— 模型完全在你的设备上运行,不会向云端发送任何内容 - **共享秘密短语** —— 使用 600,000 轮迭代的 PBKDF2 派生;绝不存储在磁盘上 ## 两人设置 双方需要**完全相同**的配置: 1. **当面会合**并就以下内容达成一致: - 一个**秘密短语**(6 个以上的随机词汇,例如 `"purple elephant dances under crimson moonlight"`) - 一个**对话名称**(例如 `"coffee-plans"`) - **相同的模型**(例如,双方都在设置向导中选择选项 1) 2. **每人各自运行:** ./conversation-stenography # 输入相同的对话名称 # 输入你自己的名字 # 出现提示时输入共享的秘密短语 3. **通过任何通讯应用交换信息** —— 只需复制/粘贴掩护文本即可。 ## 命令 | 命令 | 作用 | |---|---| | `./conversation-stenography` | 开始聊天(或首次运行设置) | | `./conversation-stenography setup` | 重新运行设置向导 | | `./conversation-stenography simulate` | 在一台设备上测试两个独立用户 | | `./conversation-stenography conversations` | 列出你已保存的对话 | | `./conversation-stenography chat -conversation NAME -me NAME` | 使用显式标志启动 | ### 聊天内命令 | 命令 | 作用 | |---|---| | _(直接输入)_ | 发送加密信息 | | `/paste NAME` | 解码来自 NAME 的已接收信息 | | `/send` | 多行信息(以 `/end` 结束) | | `/show` | 显示对话历史记录 | | `/status` | 显示同步信息(用于调试) | | `/help` | 列出所有命令 | | `/quit` | 保存并退出 | ## 支持的模型 设置向导提供以下模型: | 模型 | 大小 | Runtime | 最适用场景 | |---|---|---|---| | **Llama 3.2 3B (4-bit)** | ~2 GB | MLX | Apple Silicon Macs(推荐) | | **Llama 3.2 1B (4-bit)** | ~1 GB | MLX | Apple Silicon(轻量级) | | **Llama 3.1 8B (4-bit)** | ~5 GB | MLX | Apple Silicon(质量最佳) | | **GPT-2** | ~500 MB | Transformers | 任何系统 | | **GPT-2 Medium** | ~1.5 GB | Transformers | 任何系统(质量更好) | ### 前置条件 - **Go 1.22+**(用于构建) - **Python 3.9+** 设置向导会在必要时创建一个隔离的虚拟环境,并 安装 `mlx-lm`(适用于 Apple Silicon)或 `torch + transformers`(适用于其他系统), 以及 `huggingface-hub`。你不需要单独安装 `hf` 命令。 ## 环境变量 用于自动化和脚本编写: | 变量 | 用途 | |---|---| | `CONVERSATION_STENOGRAPHY_SECRET` | 共享短语(替代交互式提示) | | `CONVERSATION_STENOGRAPHY_KEY` | Base64 密钥(遗留用法,推荐使用 `CONVERSATION_STENOGRAPHY_SECRET`) | | `CONVERSATION_STENOGRAPHY_CONFIG` | 配置文件的路径(默认:`conversation-stenography.local.json`) | | `CONVERSATION_STENOGRAPHY_MODEL` | 覆盖模型路径 | | `CONVERSATION_STENOGRAPHY_PYTHON` | 覆盖 Python 路径 | | `CONVERSATION_STENOGRAPHY_RUNTIME` | 覆盖 Runtime(`mlx` 或 `transformers`) | Runtime 配置是特定于机器的,因此被刻意设置为不进行提交。 运行 `conversation-stenography setup` 来生成 `conversation-stenography.local.json`,或者复制 `conversation-stenography.example.json` 并根据你的环境进行调整。 切勿提交本地模型路径、解释器路径或凭证。 在迁移过程中,现有的安装可以继续使用 `decalgo.local.json`、 `~/.decalgo/conversations` 和 `DECALGO_*` 变量。新的 文件和文档使用 Conversation Stenography 名称。 ## 进阶:脚本化使用 用于 Shell 自动化(例如机器人、CI、自动化中继): ``` export CONVERSATION_STENOGRAPHY_SECRET='purple elephant dances under crimson moonlight' ./conversation-stenography chat -conversation coffee-plans -me alex ``` ### 多方链(进阶) 用于程序化的多方信息交换: ``` export CONVERSATION_STENOGRAPHY_KEY="$(openssl rand -base64 32)" # Bob 发送 printf 'hi alex' | ./conversation-stenography chain-send \ -conversation friends -state bob.state -from bob > record-1.json # Alex 接收 ./conversation-stenography chain-receive \ -conversation friends -state alex.state < record-1.json ``` ## 重要注意事项 - **信息必须原封不动地复制。** 不应有自动纠错,不改变格式,不使用智能引号。请逐字节地复制和粘贴掩护文本。 - **按顺序处理信息。** 双方必须按照信息在通讯应用中出现的准确顺序粘贴接收到的信息。 - **必须使用相同的模型。** 双方必须使用相同的 AI 模型、相同的版本和相同的设置。设置向导会处理这些。 - **秘密短语绝不会被存储。** 每次启动 Conversation Stenography 时,你都需要重新输入它(或者设置 `CONVERSATION_STENOGRAPHY_SECRET`)。 ## 安全模型 - 信息使用 **AES-SIV**(合成初始化向量)加密,可同时提供机密性和完整性。 - 每条信息都是链式相连的 —— 每个载体都会验证发送者、对话 ID、信息索引以及之前所有信息的哈希值。 - 共享短语通过 **PBKDF2-HMAC-SHA-256**(600,000 次迭代)进行拉伸。 - AI 模型 **100% 在本地** 运行。没有 API 调用,没有云端,没有遥测。 - 对话状态使用 AES-GCM 进行静态加密。 ## 从源码构建 ``` git clone https://github.com/nethical6/conversation-stenography.git cd conversation-stenography go build -o conversation-stenography ./cmd/conversation-stenography go test ./... ``` ## 许可证 详情请参阅 [LICENSE](LICENSE)。
标签:DLL 劫持, EVTX分析, Go语言, 信息隐藏, 凭据扫描, 大语言模型, 安全通信, 日志审计, 程序破解, 端到端加密, 系统调用监控, 网络安全, 逆向工具, 隐写术, 隐私保护