会话流程
从邀请到加密会话
会话从邀请秘密开始,在两端浏览器中建立加密,然后先尝试直连 WebRTC,再使用有限的回退路径。
1. 创建并分享邀请
发起方浏览器创建会话邀请。邀请用于尽快使用,当前界面说明其有效时间约为十分钟。
若邀请通过 URL 片段分享,浏览器不会把该片段包含在普通 HTTP 请求中。但仍需保护链接:在有效窗口内取得它的人可能尝试加入。
2. 让密钥留在浏览器
两端浏览器根据邀请中的秘密和每次连接的随机值生成会话密钥,再用 AES-256-GCM 加密传输内容。
密钥与活动会话状态保留在易失的浏览器内存中;当前只有语言和主题偏好会有意写入 localStorage。
3. 选择可用路径
Orylin 先尝试通过 WebRTC 让两个浏览器直接连接。直连失败时,可使用用户启用的志愿中继。中继只转发加密数据,不会获得会话密钥,其流量和文件大小有限制。
公共 Nostr 救援路径只承载消息和控制事件,不传文件或语音。语音仅在直连时可用,离开直连路径后会暂停。