IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> CA认证与节点保密通信系统的设计与实现 -> 正文阅读

[网络协议]CA认证与节点保密通信系统的设计与实现

基础知识

基础知识主要包括
公钥密码算法、数字签名、PKI技术、认证协议,可以自行查找观看。

系统方案

系统主要包括系统密钥的生成、证书签发系统以及节点通信系统三个部分的设计。首先,我们将介绍系统方案的设计思想;接着详细介绍系统的组成以及主要功能模块的设计流程,同时对功能模块的使用流程也进行了描述。

系统设计思想

这是本文的认证系统的基本框架。在网络初始化的时候,我们将建立CA,为后面的密钥管理以及节点通信做准备。首先,每个节点将生成自己的公私钥对,上传中心管理系统,进行密钥的管理(包括存储、更新以及撤销)。随后,节点上传请求文件(包括申请人的公钥、必要身份信息),向CA请求证书,并且这个身份信息将存储在管理模块中。
这个方法将完成对普通节点的证书签发,认证其身份。最后,我们实现节点之间的安全通信系统,实现加密通信。

功能模块介绍

中心管理系统

中心管理系统可以对密钥以及节点信息进行管理(包括存储、更新、撤销),除此之外,还可以建立CA,为节点签发证书,进行双向认证等。具体在后续章节中介绍。

节点间安全通信系统

节点间的通信双方,为了保证安全性,首先要进行身份认证。随后,两者进行加密算法的协商、交换签名信息验证节点双方是否有与其公钥相对应的私钥信息,内容是否被篡改。最后,根据解密得出的密钥信息获取报文信息。

系统功能模块设计与实现

中心管理系统

在这里插入图片描述

如上图所示,相应的我们需要两个模块:密钥以及信息管理模块、CA认证模块

密钥以及信息管理模块:主要是负责CA文件下,节点密钥的存储、更新、销毁和撤销工作

CA认证模块:证书的签发、身份认证工作

CA的建立以及证书的签发

我们根据节点向CA申请证书并且进行双向认证的过程,来分析中心管理系统需要实现的模块:

  1. 建立CA,生成CA的所需的目录和文件;
  2. 生成CA的私钥和自签名证书;
  3. 节点请求证书:生成公私钥对、生成请求文件
  4. CA签发证书;
  5. 节点接收证书。
    在这里插入图片描述
    设计思路
    CA认证:在建立CA前,系统输入版本号、CA身份、证书有效期等参数。系统根据这些参数,进行密钥和证书构造,其中密钥信息主要基于RSA算法。
    假设有客户端需要请求证书,则发送自己的公钥以及请求文件,获取证书。此时,CA收到之后返回证书,并对证书和密钥信息进行管理。

服务端界面

在这里插入图片描述

客户端界面

在这里插入图片描述
操作流程

  1. 客户端填写CA标识,或者填写CA服务器的IP地址以及对应的服务端口号,选择自己的公钥请求证书文件,点击证书申请,向CA发送证书申请;
  2. 接收到客户端申请请求的CA根据其证书申请信息,调用证书签发函数,用CA的私钥进行签名,并将其公钥、证书信息保存在目录文件中,将证书返回;
  3. 客户端接收到完整的证书后,结合自己的私钥、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端到端认证系统设计

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-06-23 01:01:03  更:2022-06-23 01:01:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:22:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码