layergram/layergram

GitHub: layergram/layergram

一款基于 Flutter 的本地加密隐写消息传递工具,实现端到端加密与零宽度 Unicode 隐写,无需服务器。

Stars: 1 | Forks: 0

# Layergram **隐私优先的加密消息传递 — 传输无关、完全本地化、零服务器。** Layergram 是使用 Flutter 构建的官方开源 Layergram 应用程序。 它允许用户在本地加密敏感内容,并通过**任意**现有的基于文本的通信渠道分享 — WhatsApp、Telegram、Signal、iMessage、电子邮件、社交网络、SMS 或任何保留 Unicode 文本的平台。 消息使用零宽度 Unicode 隐写术隐藏在普通文本中,使其在视觉上无法与正常对话区分,同时将加密流程完全保留在设备本地。 ## 官方项目链接 - **官网:** https://layergram.app - **GitHub 组织:** https://github.com/layergram ## 发布与分发模式 - 本仓库包含官方 Layergram 应用的公共源代码。 - 任何人可根据 [Apache License 2.0](LICENSE) 检查、编译、修改和运行该应用。 - 官方 Layergram 构建版本也可由 Layergram 免费通过 Apple App Store、Google Play 和 Microsoft Store 分发。 - 首个公开的开放源代码版本**不**提供 Web 分发目标。 - 该公开版本发布时未启用高级功能。 - 未来可选的付费插件可能单独开发,**不**属于本仓库范围。 ## 支持的平台 | 平台 | 状态 | |------|------| | Android | 已准备 | | iOS | 已准备 | | macOS | 已准备 | | Windows | 已准备 | | Linux | 可从源码编译 | | Web | 本发布不分发 | ## 核心功能 ### 安全性 - **端到端加密** — X25519 密钥协商 + AES-GCM-256 - **隐写编码** — 加密负载隐藏在零宽度 Unicode 字符中 - **应用锁** — 生物识别解锁,支持 PIN 备用 - **安全本地存储** — 敏感状态在静止时受保护 - **屏幕保护** — 在支持的情况下提供可选的隐私屏蔽 ### 核心功能 - **撰写并分享** — 通过任意基于文本的通道加密发送消息 - **解码** — 将收到的消息粘贴到应用中进行解码 - **身份管理** — 创建、导出和导入公共身份(通过二维码、深链接或文本块) - **本地聊天历史** — 发送和接收消息的加密归档 - **固定 / 搜索 / 删除** — 会话管理 - **自毁消息** — 可选过期和阅读后删除 - **内置 42 种语言** ### 架构 - **能力接口** — 为未来可选插件提供清晰的扩展点 - **Riverpod** 状态管理 - **Hive + 安全存储** 用于本地持久化 - **关注点分离** — 加密、存储、UI 与能力边界清晰划分 ## 本仓库包含内容 - 公开的 Layergram Flutter 应用 - 开放的 **Layergram 消息格式 (LMF)** 规范 - 本地身份、加密、隐写和持久化安全逻辑 - 能力插件的空操作实现(用于明确超出公共仓库范围的功能) ## 本仓库不包含内容 - 专有的消息网络、中继或后端 - 托管用户账户或云端消息存储 - 闭源高级实现或计费逻辑 ## 项目结构 ``` lib/ ├── core/ │ ├── capabilities/ # Capability interfaces + no-op stubs │ ├── crypto/ # Encryption, key management, message format │ ├── domain/ # Domain types (IdentityId, etc.) │ ├── security/ # App lock, biometrics, screen protection │ └── storage/ # Hive repositories, secure storage ├── features/ │ ├── home/ # Chat list, message composer/viewer │ ├── settings/ # Settings & about screens │ └── premium/ # Optional entry points kept inactive in the public OSS release ├── app.dart # App entry point └── main.dart # Bootstrap ``` ## 能力接口 Layergram 使用能力接口保持公共仓库的简洁,同时为未来的官方插件保留扩展点。 | 能力 | 描述 | |------|------| | `IdentityCapability` | 多身份管理 | | `BackupCapability` | 加密备份与恢复 | | `CoverGeneratorCapability` | AI 辅助封面消息生成 | | `ChatFoldersCapability` | 自定义聊天文件夹组织 | | `MediaLightCapability` | 轻量级媒体附件 | | `SecureKeyboardCapability` | 应用内触摸键盘,支持多语言布局和可选按键混淆 | 在本公共仓库中,这些可选能力默认为**安全的空操作实现**。任何未来的官方付费插件将位于本仓库之外,并有意从公共代码库中排除。 未来的可选插件可能为触摸设备提供应用内安全键盘,以便敏感输入可避免使用系统 IME,并可选地使用按键混淆布局。此设计仅作为纵深防御:它可以减少暴露于第三方键盘遥测和智能建议的风险,但无法防止操作系统被攻破、屏幕录制、滥用辅助功能工具或直接视觉观察。 ## 快速开始 ### 前置条件 - Flutter SDK >= 3.4 - Dart SDK >= 3.4 - 平台相关工具(iOS/macOS 使用 Xcode、Android SDK、Windows 使用 Visual Studio、Linux 使用相应工具链) ### 构建与运行 ``` flutter pub get flutter run flutter run -d macos flutter run -d windows flutter run -d linux ``` ### 验证 ``` flutter analyze flutter test ``` ### 生成 API 文档 ``` dart doc ``` ## 规范说明 - [Layergram 消息格式 (LMF)](specs/LAYERGRAM_MESSAGE_FORMAT.md) - [加密出口合规说明](specs/CRYPTOGRAPHY_EXPORT_COMPLIANCE.md) ## 贡献指南 欢迎贡献。 在提交大型功能拉取请求前,请阅读 [CONTRIBUTING.md](CONTRIBUTING.md),尤其是涉及加密、存储、协议行为或公共应用与未来可选插件边界的内容。 ## 安全 如果您发现安全漏洞,**请勿公开创建问题**。 请私下报告至 **security@layergram.app**,并参考 [SECURITY.md](SECURITY.md) 的报告策略。 如需了解通用项目信息,请访问 https://layergram.app。 ## 许可证 ### Apache License 2.0 Layergram 根据 [Apache License, Version 2.0](LICENSE) 发布。 您可以在遵守许可条款的前提下使用、修改和再分发本代码 — 包括在商业和闭源产品中。 ### 商标声明 名称 **Layergram**、Layergram 标志、官方 Layergram 商店列表及相关品牌资产归 **Simone Riccetti** 所有。 更多法律与商标信息请访问 https://layergram.app/legal。 本开源许可证**不**授予您使用 Layergram 名称或品牌发布您自己的分叉的权利。 ### 衍生作品 如果您基于本仓库创建分叉或衍生应用,您必须: - 使用您自己的产品名称、标志和品牌。 - 明确说明您的项目源自 Layergram 且**不是**官方 Layergram 发布。 - 使用您自己的 URI 方案和应用标识符,除非获得 **Simone Riccetti** 的明确书面许可。详见 https://layergram.app/legal 获取更多法律与商标指导。 ### URI 方案 自定义 URI 方案 `layergram://` 保留给官方 Layergram 应用和明确授权的可互操作客户端使用。 分叉和衍生项目必须使用其自己的 URI 方案(例如 `yourapp://`),除非已获得 **Simone Riccetti** 的书面许可。详见 https://layergram.app/legal 获取更多法律与商标指导。
标签:AES-GCM-256, Android, DSL, Flutter, iMessage, iOS, IPv6支持, PIN码, Signal, Telegram, WhatsApp, X25519, 加密消息, 安全存储, 密钥协商, 屏幕保护, 应用锁, 开源, 操作系统检测, 敏感数据保护, 文本通道, 无服务器, 本地加密, 生物识别解锁, 电子邮件, 短信, 社交媒体, 端到端加密, 隐写术, 隐私优先, 隐私通讯, 隐蔽通信, 零宽Unicode