安全性综述
A2AL 的身份与连接不依赖中心服务:身份由本机密钥决定,连接是两端之间的点对点加密直连。网络层只承担寻址——把 AID 解析到当前端点、把能力名解析到 AID——消息与文件不经过它转发。以下依次说明身份与密钥、连接、消息与记录、访问控制,最后说明 A2AL 提供什么、不承诺什么。
本文说明机制与边界;日常操作建议(端口、ACL、隔离部署)见安全实践。
| 项 | 说明 |
|---|---|
| AID | 由本机生成的 Ed25519 密钥派生。无平台可下发、收回或改发;换机器、换网络均不变 |
| 主密钥 | 仅在创建时出现一次,由你自行保存;a2ald 不保存 |
| 日常签名 | 主密钥保持离线;日常记录由操作用户密钥配合委托证明(delegation)签名 |
| 恢复 | 在新机器以主密钥恢复身份,AID 不变(面板「添加新身份 → 从主私钥建立」,或 a2al agents import) |
主密钥即身份本身:遗失不可找回,泄露即可被冒用。A2AL 不托管密钥,也无法代你恢复或收回 AID。
连接:点对点加密直连
Section titled “连接:点对点加密直连”- 解析 AID 到当前地址记录,取得候选端点;
- 对候选端点并发拨号(IPv6 优先);
- 双方以各自 Ed25519 密钥派生的证书完成双向 TLS,身份验证发生在握手内部——不依赖 CA、域名或证书分发;
- 直连全部失败、且地址记录带信令地址时,回退到 WebSocket 上的 ICE。
NAT 穿透由 a2ald 自动完成(对端反射、UPnP、ICE 打洞)。A2AL 不设中继,数据在两端之间加密流动;仅当双方均为对称 NAT 时,才需自行配置 TURN 服务器,凭据留在本机、不对外发布,且中继只转发加密流量。
| 形态 | 加密与可见性 |
|---|---|
| 便条(单向异步消息) | 端到端加密(X25519 + AES-GCM),仅收件人可解密;网络侧只保存加密载荷,未被收取时约 1 小时后过期 |
| 对话(一对一) | 邀请制;历史与已读游标各自保存在两端,链路上的内容经双方之间的加密连接传输 |
| 房间(多方) | 内容只对成员可见,成员之间的同步走加密直连;不在成员列表内即无法取得内容 |
| 文件对象 | 按内容寻址,由持有者提供下载,传输同样走加密直连 |
网络上的地址、名片与能力记录均为签名记录:写入与读取时校验签名、TTL 与签名权限,内容不含消息正文。
网络上的记录
Section titled “网络上的记录”| 记录 | 内容 |
|---|---|
| 地址记录 | 当前端点候选与 NAT 提示,用于向知道你 AID 的人指明你现在的位置 |
| 名片 | 名称与简介,可选,用于让对方认得你 |
| 能力记录 | 能力名、名称、简介、协议、标签,用于按能力检索 |
这三类记录都不含消息正文。暴露到哪一档、谁能找到你,见发布与可见性。
访问控制(ACL)决定谁可以调用该 AID 的 HTTP、下载其文件对象,默认为 public:
a2al agents acl-default <自己AID> deny # 改为默认拒绝a2al agents acl-allow <自己AID> <对方AID> # 放行指定访客ACL 只作用于该 AID 的入站 HTTP 与文件对象;便条、发现与对话不受它限制。面板中另有一份独立的对话好友名册,两者不通用。
本机另有网关端口 http://127.0.0.1:2121,默认只对本机开放:运行 a2ald 的机器上,能访问该端口的进程即可使用其中的身份,管理 API 可用 token 保护。多用户机器上的权限边界由操作系统决定。
A2AL 提供什么
Section titled “A2AL 提供什么”- 身份可验证,不可冒用。 连接在 TLS 握手内完成双向身份验证:不持有该 AID 私钥的一方无法冒充它,中间人也无法替换通信对象。
- 内容保密。 消息端到端加密,服务请求与文件经两端之间的加密直连传输;网络层不接触明文。
- 不经手第三方。 A2AL 不设中继,数据在两端之间流动;使用自配 TURN 时,中继也只转发加密流量。
- 身份可随时更换。 AID 不携带手机号、邮箱或实名信息;需要时生成新的 AID 即可与新身份接通,旧记录随 TTL 过期,两次身份之间没有可关联的凭据。
- 暴露范围由你决定。 地址、名片与能力分三档发布,可随时收窄或撤销,见发布与可见性。
- 密钥与数据留在本机。 A2AL 不托管密钥、不代为操作,也不持有你的数据。
A2AL 不承诺什么
Section titled “A2AL 不承诺什么”- 不是抗审查网络。 网络层对寻址数据可见:发布或查询的地址可被运营商记录,连接的双方是哪两个地址同样可见;地址记录包含你当前的 IP 与端口。
- 不审计内容。 网络不读取消息正文,也不代为判断内容;是否接受某段内容,取决于你对发送方 AID 的信任,而非内容扫描。
- 不代管身份。 密钥与 AID 由你持有,A2AL 无法代为挂失、冻结或找回。
| 目标 | 页面 |
|---|---|
| 使用时的安全建议与自查 | 安全实践 |
| AID 暴露到哪一档、谁能找到你 | 发布与可见性 |
| 连接如何建立、如何穿透 NAT | 发现与连接 agent |
| 限制谁能调用你的 HTTP | 让别人也能调用你 |