Skip to content

Latest commit

 

History

History
74 lines (55 loc) · 3.01 KB

Pki.md

File metadata and controls

74 lines (55 loc) · 3.01 KB

认证体系

简介

在整个分布式网络中,两个节点(或对象)之间是最初是没有关联的,需要解决以下问题:
标识一个用户或对象
证明一个用户或对象身份
描述用户权限
描述用户之间的关系
描述用户信用
描述用户互相服务能力

系统中用到的常见概念如下:
对象标识
对于确定的文件或内容,我们对之取摘要,再转化成可视的28字节字符串,可以用来标识一个确定内容的对象。

身份标识
一对密钥代表一个身份,密钥为二进制,也过长,不适合去标识
公钥可以取摘要再转化成可视的28字节字符串
这个ID唯一标识了密钥对。可以用来表示用户或节点的身份。
以上是参考了比特币钱包的方式。

1、密钥

这里讲的密钥是非对称加密公钥,使用的密钥算法是ed25519。
节点的密钥放在根目录,名称为hostkey.cfg
Leither第一次启动时,系统检查根目录,如果没有这个文件会自动生成一个。
在根目录下执行lpki命令,参数中需要key,如果不特别指定,缺省使用节点密钥。
密钥可以用于签名和验证

生成密钥对
导出公钥

2、证书

证书通常由以下内容构成:
内容信息,通常是一系列的key value串。
签名信息
签名者信息

自签名证书
证书中的内容如果是证明用户自己的身份,这个证书就是自签名证书

CA证书
用于证明他人身份的证书,是CA证书

生成包含私钥的证书
生成公钥证书

3、通行证

通行证是一个登录某个节点,具备某些权限的证书。
通行证的内容通常包括访问者身份,时效,服务内容

命令行生成通行证

Mac通行证
在内网中,手机电脑等设备访问节点时,可以直接获取节点签发的基于网卡mac能行证。可以和用户绑定,可以实现自动登录。
可以通过Rpc或http两种Api方式获取Mac通行证

微信节点
在Leither架构中和公众号绑定的服务节点叫微信节点
微信节点并不保存用户信息和数据,主要功能是提供用户设备和微信的对接入口和身份鉴别

微信通行证
微信用户在访问公众号时,腾讯服务器会向微信节点发送代表用户的唯一信息。
这个唯一信息如果绑定在用户的信息中,可以做到微信用户自动登录用户节点。 微信节点签发的代表微信用户身份的通行证叫微信通行证

4、服务

向节点申请权限
用户登录之后,在使用节点资源前,先要申请服务访问权限

申请服务