基础知识
基础知识主要包括 公钥密码算法、数字签名、PKI技术、认证协议,可以自行查找观看。
系统方案
系统主要包括系统密钥的生成、证书签发系统以及节点通信系统三个部分的设计。首先,我们将介绍系统方案的设计思想;接着详细介绍系统的组成以及主要功能模块的设计流程,同时对功能模块的使用流程也进行了描述。
系统设计思想
这是本文的认证系统的基本框架。在网络初始化的时候,我们将建立CA,为后面的密钥管理以及节点通信做准备。首先,每个节点将生成自己的公私钥对,上传中心管理系统,进行密钥的管理(包括存储、更新以及撤销)。随后,节点上传请求文件(包括申请人的公钥、必要身份信息),向CA请求证书,并且这个身份信息将存储在管理模块中。 这个方法将完成对普通节点的证书签发,认证其身份。最后,我们实现节点之间的安全通信系统,实现加密通信。
功能模块介绍
中心管理系统
中心管理系统可以对密钥以及节点信息进行管理(包括存储、更新、撤销),除此之外,还可以建立CA,为节点签发证书,进行双向认证等。具体在后续章节中介绍。
节点间安全通信系统
节点间的通信双方,为了保证安全性,首先要进行身份认证。随后,两者进行加密算法的协商、交换签名信息验证节点双方是否有与其公钥相对应的私钥信息,内容是否被篡改。最后,根据解密得出的密钥信息获取报文信息。
系统功能模块设计与实现
中心管理系统
如上图所示,相应的我们需要两个模块:密钥以及信息管理模块、CA认证模块
密钥以及信息管理模块:主要是负责CA文件下,节点密钥的存储、更新、销毁和撤销工作
CA认证模块:证书的签发、身份认证工作
CA的建立以及证书的签发
我们根据节点向CA申请证书并且进行双向认证的过程,来分析中心管理系统需要实现的模块:
- 建立CA,生成CA的所需的目录和文件;
- 生成CA的私钥和自签名证书;
- 节点请求证书:生成公私钥对、生成请求文件
- CA签发证书;
- 节点接收证书。
设计思路: CA认证:在建立CA前,系统输入版本号、CA身份、证书有效期等参数。系统根据这些参数,进行密钥和证书构造,其中密钥信息主要基于RSA算法。 假设有客户端需要请求证书,则发送自己的公钥以及请求文件,获取证书。此时,CA收到之后返回证书,并对证书和密钥信息进行管理。
服务端界面
客户端界面
操作流程:
- 客户端填写CA标识,或者填写CA服务器的IP地址以及对应的服务端口号,选择自己的公钥请求证书文件,点击证书申请,向CA发送证书申请;
- 接收到客户端申请请求的CA根据其证书申请信息,调用证书签发函数,用CA的私钥进行签名,并将其公钥、证书信息保存在目录文件中,将证书返回;
- 客户端接收到完整的证书后,结合自己的私钥、CA的公钥、返回的证书,获取最终完整的证书
功能测试
该模块的主要功能是构建服务端CA,并为节点签发证书,可以通过系统的公钥来验证签名的合法性。如果达到项目要求,在客户端生成了以节点表示为名称的证书,并且通过系统公钥验证签名合法。
节点间的安全通信系统
在通过中心管理系统中的CA认证系统为申请节点签发证书之后,网络内的节点可以通过证书来认证身份并进行密钥协商。
假设A和B是网络中的两个节点,则A发送信息给B,B接收A的信息的具体方案如下: 客户端A描述: 在客户端,A生成随机密钥K,利用选择的加密模式,对消息M加密,其中,消息M代表了A的身份信息;然后,A向CA获取B节点的公钥证书,读取公钥;随后,用公钥加密密钥K,用自己的私钥对B的证书、信息和密钥进行签名,将签名消息和签名内容发送个B。
客户端B描述: B对签名S进行解密,然后和签名信息进行比较,判断签名的正确性,验证消息是否来自A;之后,B用私钥解密加密密钥K之后,解密加密消息,得到原始信息M。
参考文献: AD-HOC端到端认证系统设计
|