服务器保护什么
NarraLeaf Team 服务器保护什么,以及部署时必须据以规划的两个决定
NarraLeaf Team 服务器保存账号,并决定谁访问哪个项目。本页是部署时据以规划的内容,其余的在仓库的安全文档里,包括已接受的风险
据以规划的两个决定
服务器上的每个账号都能访问它上面的每一个项目。 没有按项目划分的访问权。不希望某个人看到的项目应当放在另一台服务器上。要阻止某个人,就停用他的账号
任何账号都可以把任何项目移出列表。 仓库和其中的每一个版本都不受影响,重新按同一个仓库 id 登记即可恢复该项目。丢失的是留在它上面的批注。移出之前先从 nlteam project list 读下仓库 id,移出之后列表上不再有任何东西保存它
连接建立在什么之上
Studio 对服务器说的一切都到达同一个端口,背后是同一张证书。除非团队提供了自有证书,服务器会自己签发它,而指纹由人核对一次,通过即将建立的这条连接之外的渠道
首次核对之后,Studio 会保存它见到的颁发机构,并拒绝此后出示不同证书的服务器
持有对应名字证书的团队可以完全省去这次核对,见部署服务器
令牌能证明什么
Studio 用口令换取令牌,并在每次请求时出示它。服务器每次都会核对:
- 签名,对照它发布的密钥
- 签发者、受众和有效期
- 账号是否仍然存在且未被停用
- 令牌是否签发于该账号访问权被收回之前
因此一个三十天的令牌,并不意味着被收回访问权的账号还能继续用三十天
谁能做什么
| 持有者 | 可以访问 |
|---|---|
| 一个账号 | 服务器上的每个项目,以及它们上面的批注 |
| 一个运维 | 账号、设置、签名密钥和访问记录 |
| 持有服务器目录的人 | 全部,包括为任何账号签发令牌的密钥 |
最后一行不是缺口。服务器只能从它自己的目录恢复,所以那个目录正是部署时要用所在机器的权限去保护的东西
报告安全问题
请通过 GitHub 的安全公告表单私下报告。不要为安全问题创建公开的 issue