rudrapshukla/Guptavarta
GitHub: rudrapshukla/Guptavarta
一款为零配置 Instagram 私信提供端到端加密的 Chrome 扩展,使用 AES-256-GCM 在消息离开设备前自动加密。
Stars: 0 | Forks: 0
# Guptavarta
**全球首款零配置、自动加密的 Instagram DM 扩展。**
**Instagram DM 的端到端加密。**
毕竟,显然一家市值万亿的公司也需要帮助才能理解“私密”这个词的含义。
## 这是什么
一款 Chrome 扩展,在你的 Instagram DM 离开设备之前,使用 **AES-256-GCM** 对其进行加密。Instagram 的服务器收到的只是一堆数学乱码。只有安装了 Guptavarta 的人才能解密。
无需账户。无需管理密钥。零配置。安装即用。
Meta 移除了 Instagram DM 的 E2E 加密。所以我把它加回来了。不客气,Zuckerberg。

## 工作原理
```
You type → AES-256-GCM encrypts it → Instagram sees: GPV:k2jH9mX...
↓
Receiver sees: Decrypt button
↓
Original message
```
从技术上讲:
- 一个 **PBKDF2** 函数(100,000 次迭代,SHA-256)从密码短语派生出一个共享的 AES-256 密钥
- 为每一条消息生成一个**全新的随机 12 字节 IV** —— 相同的明文绝不会产生相同的密文
- **AES-256-GCM** 使用该密钥 + IV 加密消息
- 仅在 `/direct/` 页面上激活 —— 评论、帖子、Reels 完全不受影响
## 安装
1. 下载或克隆此仓库
2. 前往 `chrome://extensions`
3. 启用 **Developer Mode**(右上角)
4. 点击 **Load unpacked** → 选择 `guptavarta` 文件夹
5. 固定它。打开 Instagram。开始聊天。
```
git clone https://github.com/rudrapshukla/guptavarta.git
```
## 使用方法
| 操作 | 结果 |
|---|---|
| 打开 Instagram DM | 扩展自动激活 |
| 输入消息 + 回车 | 在 Instagram 可见之前已加密 |
| 收到加密消息 | 显示 🔒 *Encrypted message* + 解密按钮 |
| 点击解密 | 消息淡入显示 |
| 在弹出窗口中关闭 | 恢复普通 Instagram,无加密 |
**双方都需要安装此扩展。** 这是唯一的要求。
## 安全性 —— 诚实说明
Guptavarta 使用内置于扩展中的共享密钥进行对称加密。没有谎言,没有小字条款:
✅ Instagram 的服务器仅接收并存储加密后的乱码
✅ 此扩展不在任何地方存储元数据
✅ 每条消息使用全新的 IV —— 没有密文模式可供分析
✅ AES-256-GCM —— 银行和军方使用的同一标准
⚠️ 共享密钥存在于 `content.js` 中 —— 任何安装此扩展的人都可以解密使用它发送的任何消息。这是为了零配置可用性而做出的设计权衡,而非疏忽。这可以保护你免受 Meta 和大规模监控——而不是免受有能力访问你设备或此代码库的坚定攻击者的威胁。
⚠️ 如果你的设备被入侵,没有任何加密能救你。Signal 也是如此。
这是一个隐私工具,不是间谍工具。搞清楚区别。相应地使用它。
对于需要每用户私钥的威胁模型 —— v2 版本已在路线图中。
## 为什么叫 *Guptavarta*
**गुप्त** (Gupta) —— 隐藏、秘密、受保护。也是印度黄金时代王朝的名字。刻意选择。
**वार्ता** (Varta) —— 消息、新闻、通讯。
*秘密消息。* 用梵语说。3000 年过去了,这仍然是对其功能最准确的描述。
## 技术栈
| 层级 | 技术 |
|---|---|
| 加密 | AES-256-GCM |
| 密钥派生 | PBKDF2 · SHA-256 · 100,000 次迭代 |
| 加密引擎 | Web Crypto API(浏览器原生,零依赖) |
| 扩展 | Chrome Manifest V3 |
| 依赖 | 无。零。绝对没有。 |
没有 npm。没有 webpack。没有 400MB 的 `node_modules` 文件夹在那里存在主义危机。
只有每个 Chromium 浏览器中都已经内置的浏览器原生加密技术。
## 文件结构
```
guptavarta/
├── manifest.json # Extension config
├── content.js # The brain — encryption, injection, DOM scanning
├── content.css # Styling for injected UI elements
├── popup/
│ ├── popup.html # Extension popup
│ └── popup.js # Toggle logic
└── icons/
├── icon16.png
├── icon48.png
└── icon128.png
```
## 路线图
- [ ] Firefox 支持
- [ ] 公钥/私钥架构(v2 —— 用于不假设信任的场景)
- [ ] Chrome Web Store 上架(待支付 $5 —— 你知道该怎么做)
- [ ] 按会话覆盖密钥
## 贡献
发现了 Bug?提一个 issue。
有更好的想法?提一个 PR。
想争论加密问题?我的邮箱就在那里,或者在 Instagram 上私信我
这是开源的,因为隐私工具应该是可审计的。如果你能阅读这段代码并发现缺陷,那你正是应该做出贡献的那种人。
## 作者
**Rudra Pratap Shukla**
[GitHub](https://github.com/rudrapshukla) · [Email](mailto:rudrapshukla@proton.me) · [Instagram](https://www.instagram.com/rudrapshukla/)
## 许可证
MIT —— 随你怎么做,只要别把它卖回给 Meta,也许给个小小的署名,这就够了
*असतो मा सद्गमय*
*Lead me from falsehood to truth.*
标签:AES-256-GCM, E2EE, Instagram, PBKDF2, 即时通讯加密, 对称加密, 数据可视化, 本体建模, 浏览器插件, 消息安全, 社交媒体, 端到端加密, 网络安全, 网络安全, 自动化审计, 自定义脚本, 通信安全, 隐私保护, 隐私保护, 零设置