【网络安全技术】密钥管理

一、分级密钥概念

典型的密钥分级分为三级,三级密钥就是一次会话的session key,用来加密通信,所以通常使用对称密钥。

二级密钥就是分发三级密钥的密钥,用来加密三级密钥来分发三级密钥。

一级密钥就是分发二级密钥的密钥,一级密钥通常不通过线上分发,通过安全的线下手段分发。很少更换。二级密钥要一段时间通过一级密钥重新分发。

所以生命周期一级>二级>三级。

二、如何分发公私钥对中的公钥

二级密钥通常是非对称密钥,想要通过非对称密钥来加密三级密钥,并传输,需要首先获得对方的公钥来加密。如何获得对方的公钥是一个问题,网络是一个不受信任的传输通道。

考虑以下四种方式

1.public announcement:直接就通过网络告诉对方,这明显不安全,被中间人截获了就坏了。而且任何人都有可能冒充任何人来宣布公钥。

2.publicly available directory:一个公共可用的公钥库,这面临被篡改、被污染。

3.public-key authority:这个跟刚才那个差不多,这个也很类似于kerbors,只不过kerbors是通过注册,在数据库中存储用户、对称密钥信息,通过对称密钥来验证身份,然后直接分发对称密钥;而这个是通过注册,存储用户、公钥信息,之后别人通过这个权威来获得别人的公钥。

以下是一个典型的获取公钥的过程。

1)a想要发起和b的通信,他首先向权威要b的公钥

2)权威返回给a一条消息,这条消息用权威的私钥签名,包含b的公钥,a的request和time1,返回request确保了a可以正确将这条回复对应到他的request上,返回time1防止重放攻击。

3)a用b的公钥加密a的用户名和一个随机数N1,发送给b

4)b拿着a的id,向权威要a的公钥。

5)权威还是一样,用自己的私钥签名(a的公钥,request,time2)返回给b。

6)b用拿到的a的公钥,加密先前a发来的随机数,证明他确实是b(因为只有b能解开用b的公钥加密的随机数N1),然后再产生一个随机数N2发过去。

7)a收到之后,用自己的私钥解开里面的随机数N2,用b的公钥加密,回给b,证明自己确实是a。

以上步骤没有涉及对称密钥的分发,这个过程可以伴随着上述身份认证过程中进行。

且以上步骤存在一些冗余,比如不需要每次都找权威要,权威可以为公钥签名,颁发证书,这样公钥就是被认可的了,就不用每次都找权威确认了。

4.public-key certificates:这就是改进办法,a可以自己产生公钥之后,找权威去签名,权威对这个公钥做哈希,然后用自己的私钥签名,这个就是证书,他把这个证书还给a,a之后把自己的公钥,附上权威的签名发给别人就好。别人收到之后,对公钥哈希,然后再用CA的公钥解签名证书,解出来的和自己哈希的一样,那就证明没被篡改。

上图就是一个典型的过程,只不过这里证书不是用的哈希,是直接用CA的私钥把公钥封进去了。

三、X.509标准

下图是一个典型的使用场景,用户id,公钥哈希之后,给CA让他拿他的私钥签名,签完之后附在原来的用户名,公钥后面,就是认证后的公钥了,别人拿到这个之后,自己哈希,然后在对证书部分用CA的公钥解签名,然后对比是否一致,被篡改过的用户id和公钥会被发现。

相关推荐
其实防守也摸鱼6 小时前
Fastjson 反序列化漏洞(JNDI注入)
android·数据库·安全·oracle·自动化·fastjson·反序列化
跨境小彭6 小时前
Temu拉美站点铺货实操复盘:手动复制痛点与批量自动化解决方案
服务器·人工智能·搜索引擎·自动化·temu电商运营
心之语歌6 小时前
Tkinter 画布基本梳理
运维·服务器·python
泛联新安8 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
域智盾软件分享9 小时前
电脑文件加密软件实战部署:从试点到全业务落地完整教程
其他·安全
Fcy64810 小时前
Linux下 进程间关系与守护进程
linux·运维·服务器·守护进程
g105655913910 小时前
公有云_云运维服务
java·运维·服务器
well061210 小时前
Linux粘滞位与Makefile机制深度解析
linux·运维·服务器
hzxpaipai10 小时前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
smartpi_ai11 小时前
通用脱机烧录器为什么烧不进 CI-03?下载协议的门槛、免唤醒 10 条的建议值属性
服务器·网络·ci/cd