![]() Keybase标志 | |
网站类型 | 社交网络服务 |
---|---|
创始人 | Chris Coyne Max Krohn 等 |
网址 | keybase |
商业性质 | 否 |
注册 | 公開 |
推出时间 | 2013年9月 |
Keybase是一个基于PGP技术的社交网络平台,它可以将用户的身份映射到公钥,反之亦然。[2]目前在keybase
Keybase允许用户“查验”某些在线身份(例如Twitter或Reddit帐户)与其加密密钥之间的链接。身份证明不是使用OAuth之类的系统,而是通过以用户希望证明其所有权的帐户发布签名声明来完成的。这使得身份证明可以公开验证——用户无需信任服务的真实性,而是可以自己查找和检查相关的证明声明,并且Keybase客户端会自动执行此操作。
除了网页界面之外,Keybase还为Windows、[5][6]Mac、[5][6]Android、[7][6]iOS[6]以及大多数桌面Linux发行版[6]提供了客户端应用程序,该应用程序使用Go编写,并使用Electron作为前端。该应用程序提供了网站之外的附加功能,例如端到端加密聊天、团队功能以及将文件添加到其个人和团队Keybase文件系统存储以及访问其中的私有文件的功能。运行客户端应用程序的每个设备都通过由其他设备或用户的PGP密钥进行的数字签名进行授权。每个设备还拥有一个设备专用的NaCl(读作英语“salt”)密钥,用于执行加密操作。
Keybase聊天是Keybase内置的一款端到端加密聊天工具,于2017年2月推出。Keybase聊天的一项独特功能是,它允许Keybase用户使用在线别名(例如reddit帐户)向某人发送消息,即使他们尚未注册Keybase。[8]
如果接收者(在线别名所有者)拥有Keybase帐户,他们将无缝接收消息。如果接收者没有Keybase帐户,并且以后注册并证明了在线帐户与其设备之间的链接,则发送者的设备将根据接收者发布的公开证明对消息进行密钥更新,从而允许他们读取消息。由于Keybase应用程序会检查证明,因此它避免了首次使用信任问题。[9]
Keybase允许用户在名为Keybase文件系统的云存储中免费存储高达250GB[10]的文件。目前没有存储升级服务,但计划推出允许存储更多数据的付费计划。[11]该文件系统分为三个部分:公共文件、私有文件和团队文件。在类Unix机器上,文件系统被挂载到/keybase
,而在Microsoft Windows系统上,它通常被挂载到K盘。[12]目前,Keybase客户端的移动版本只能从 kbfs 下载文件,而不能挂载它。但是,它们支持必要时的文件密钥更新等操作。2017年10月,Keybase推出了端到端加密的Git存储库。[13]
公共文件存储在/public/用户名
中,并且是公开可见的。公共文件系统中的所有文件都会由客户端自动进行数字签名。[14] 但是,只有该文件夹命名所指的用户才能编辑其内容,不过文件夹的名称可以是用逗号分隔的用户列表(例如,文件夹/public/foo,bar,three
可以由用户“foo”、“bar”和“three”编辑)。[14]
任何用户都可以访问公共文件。单用户文件夹显示在keybase/public/foo,bar,three
)只能通过系统的已挂载版本访问。
私有文件存储在/private/用户名
中,并且只有“用户名”可见。与公共文件夹一样,私有文件夹的名称也可以使用多个用户(例如,文件夹/private/foo,bar,three
可以由用户“foo”、“bar”和“three”读取和编辑)。私有文件也可以设置为仅对“#”后的用户可读(例如,文件夹/private/writer1,writer2,#reader1,reader2
可由用户“writer1”和“writer2”读取和编辑,但仅对“reader1”和“reader2”可读)。[14]与公共文件不同,所有私有文件在上传之前都会进行加密和签名,从而实现端到端加密。[15]
团队文件存储在/team/团队名称
中,并且对团队成员公开可见。团队文件系统中的所有文件都会由客户端自动进行数字签名和加密。[14]只有被标记为写入者的用户才能编辑其内容,但是任何读者都可以访问存储在那里的文件。[16]
2017年9月,Keybase推出了Keybase团队。[17]每个团队在Keybase文件系统中都有一个私有文件夹,以及多个聊天频道(类似于Slack)。团队还可以通过在团队名称中放置.
来划分为“子团队”。例如,wikipedia.projects
将是wikipedia
的子团队,而wikipedia.projects.foobar
将是wikipedia.projects
的子团队(因此也是wikipedia
的子团队)。
团队管理主要通过向链中添加签名来完成。每个签名可以添加、删除或更改用户在团队中的成员身份,以及何时对子团队进行更改。
每个链都以团队所有者做出的签名开始,随后的操作由团队管理员或用户签名。[18]这确保了每个操作都由授权用户执行,并且任何拥有所用公钥的人都可以验证操作。
Keybase maps your identity to your public keys, and vice versa.