学习记录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证书保护的网站时,这些内置的根证书会自动用于验证网站的证书。


相关推荐
tedcloud1231 小时前
cc-switch评测:多AI Coding Agent管理工具详解
数据库·人工智能·sql·学习·自动化
胡图图不糊涂^_^2 小时前
测试BUG篇
学习·bug·测试
宋浮檀s2 小时前
春秋云镜——CVE-2020-25540
网络·安全·web安全
郑洁文2 小时前
面向Web安全的Python渗透测试系统设计与实现
python·安全·web安全
humors2214 小时前
学习方法的系统梳理与实践应用
学习·学习方法
爱讲故事的4 小时前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
胡图图不糊涂^_^5 小时前
测试用例篇——设计测试用例的方法
笔记·学习·测试用例·判定表法·正交法生成用例测试·等价类·边界值
woniu_buhui_fei6 小时前
常见的网络攻击
web安全
Fanfanaas6 小时前
C++ 继承
java·开发语言·jvm·c++·学习·算法
飞翔中文网6 小时前
Java学习笔记之抽象类
java·笔记·学习