学习记录696@网络安全之认证、报文完整性、密钥分发与证书

认证

即通信双方如何认证对方身份。

这种情况存在问题:trudy可以伪造A的IP地址。就算带上密码也可能被截获,用于重放攻击。

解决重放攻击的办法是随机数挑战,每次认证时,B都发一个挑战码给A。A加密后再传给B,如果B可以解密,那么就可以完成认证。

注意,加密可以使用对称密钥体系,也可以使用公开密钥体系。如果是堆成密钥体系,那么必须保证双方在这之前就完成了安全的密钥分发。如果是公开密钥体系,那么必须保证A获得的确实是A的公开密钥。这就引发了两个问题,第一个密钥分发问题,第二个是证书问题。


报文完整性

这涉及到三个问题:报文没有被伪造、接收方可以验证报文是发送方发的,发送方不可抵赖自己发了报文。

这需要用到数字签名技术。

A用自己的私钥对报文或者报文摘要(报文摘要算法一般是MD5或者SHA)进行签名(加密),然后将报文和签名的东西发给B,B用A的公钥解密签名,然后和原始报文或者以同样方法计算的报文摘要进行对比,如果一致,则保证了报文完整性。这样就可以证明报文没有被伪造,接收方验证报文是发送方发的,发送方不可抵赖自己发了报文,因为B可以把签名和原始报文出具给第三方,第三方用A的公钥核对正确,就认定是A发的。

注意这里的前提是B可以确定公钥是A的。这也涉及证书的问题。

密钥分发与证书

在认证和报文完整性中,提到了密钥分发和证书的前提。密钥分发指的是如何安全的将密钥分发给通信双方,证书是第三方颁发的,用于验证公钥与密钥所有者的真实性。

对称密钥分发

一般通过密钥分发中心KDC实现,KDC是各方认可的第三方机构,前提是各方与KDC间通过密钥(这个密钥是可靠的)通信。


证书

证书由认证机构CA颁发,证书内容可以简单的理解为注册实体E与公钥的绑定。之后其他实体就可以通过CA获得E的公钥,这个公钥就一定是E的。当然了,这个公钥是被CA的私钥签署了的,需要拥有CA的公钥才能获取到,CA公钥的获取通过的是另一种机制,叫做CA认证树,你甚至可以认证别人网站,通过不断的认证得到了如今的整个互联网认证树结构。

大多数现代操作系统和浏览器都内置了受信任的根证书存储。当您访问使用有效SSL证书保护的网站时,这些内置的根证书会自动用于验证网站的证书。


相关推荐
凌辰揽月32 分钟前
Servlet学习
hive·学习·servlet
网安小白的进阶之路1 小时前
A模块 系统与网络安全 第三门课 网络通信原理-3
网络·windows·安全·web安全·系统安全
HumanRisk1 小时前
HumanRisk-自动化安全意识与合规教育平台方案
网络·安全·web安全·网络安全意识教育
魔芋红茶2 小时前
spring-initializer
python·学习·spring
西岭千秋雪_2 小时前
Redis性能优化
数据库·redis·笔记·学习·缓存·性能优化
随便取个六字2 小时前
GIT操作 学习
git·学习
chuanauc2 小时前
Kubernets K8s 学习
java·学习·kubernetes
小张是铁粉2 小时前
docker学习二天之镜像操作与容器操作
学习·docker·容器
小张是铁粉2 小时前
oracle的内存架构学习
数据库·学习·oracle·架构
HERR_QQ3 小时前
【unify】unify的微信小程序开发学习 (to be continued)
学习·微信小程序·小程序