一、计算机网络面临的安全性威胁
1、典型的网络安全事件
- 1988年11月2日,美国康奈尔大学的学生罗伯特·莫里斯在网络上释放了Internet第一个“蠕虫”程序,几个小时之内,数千台电脑受传染,损失接近1亿美元。
- 2002年,黑客用Ddos攻击13个根DNS中的8个,使整个Internet的通信受到破坏
- 2006年,“熊猫烧香”木马致使我国数百万台计算机受感染。能终止反病毒软件进程并且会删除扩展名为gho的备份文件。
- 2010年,“维基解密”网站公开了多达9.2万份驻阿美军秘密文件。
- 2011年,CSDN网站被黑客攻击,600余万份注册邮箱帐号和对应的明文密码泄漏,堪称中国互联网史上最大的泄密事件。
- 2017年5月12日晚,WannaCry蠕虫病毒在全球大肆爆发。该病毒带有加密功能,它利用Windows在445端口的安全漏洞潜入电脑并对多种文件类型加密,攻击者称需支付比特币解锁。
- 2018年3月,Facebook爆出史上最大数据泄露事件。SCL和剑桥分析公司利用了Facebook上5000万用户的个人资料数据。【剑桥分析公司被指利用5000万用户个人资料,来创建档案,在2016美国总统大选期间针对这些人进行定向宣传。】
- Apple用户只需透过 Group FaceTime 拨号给某人后,即使对方没有接听的话,系统都能够藉着麦克风接收到对方的说话,甚至是会在不知情下开启相机镜头。 这意味着Apple 用户将可能会不知不觉地曝露私隐,这个漏洞的出现对用户而言绝对是一个极为严重的错误。
2、安全的计算机网络
- 数据保密性:用于加密数据以防被窃听
- 端点鉴别:用于保证通信的真实性,证实接收的数据就来自所要求的源方。
- 数据完整性:用于保证所接受的消息为未经插入、篡改或重放
- 访问控制:用于防止对网络资源的非授权访问
- 不可否认:防止通讯双方中某一方抵赖所传输的消息
2.1 数据加密
- 利用技术手段将数据变成乱码,到达目的地后再还原为原数据。
- 古典加密技术:Caesar密码、单表置换密码
二、两类密码体制
- 对称密钥密码体制
- 加密密钥与解密密钥是相同的密码体制
- 数据加密标准 DES( Data Encryption Standard )
- 公钥密码体制
- 使用不同的加密密钥与解密密钥
- RSA 体制
1、对称密钥密码体制 - DES
- DES使用相同的加密密钥与解密密钥
- DES 的保密性仅取决于对密钥的保密,而算法是公开的。
2、公钥密码体制 - RSA
公钥密码体制产生的原因:
- 对称密钥密码体制中的密钥分配问题
- 对数字签名的需求
- RSA使用
不同的
加密密钥与解密密钥。 - 加密密钥(即公钥) PK 是公开信息,而解密密钥(即私钥或秘钥) SK 是需要保密的
- RSA基于数论中大数分解难题:分解两个大素数(100位~200位十进制数)之积是公认的数学难题。
- 虽然秘钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。
发送者 A 用 B 的公钥 PKB 对明文 X 加密(E 运算)后,在接收者 B 用自己的私钥 SKB 解密(D 运算),即可恢复出明文:
解密密钥是接收者专用的秘钥,对其他人都保密。
加密密钥是公开的,但不能用它来解密,即
加密和解密的运算可以对调,即
3、对称加密与公钥加密的比较
三、数字签名
- 数字签名必须保证以下三点:
(1) 报文鉴别——接收者能够确信报文是发送者发送的,别人无法伪造对报文的签名;
(2) 报文的完整性——接收者能够确信报文是完整的,没有被纂改过;
(3) 不可否认——发送者事后不能抵赖对报文的签名。
公钥密码体制实现数据加密如下:
公钥密码体制实现数字签名
如何证明 B 伪造了报文?
因为除 A 外没有别人能具有 A 的私钥,所以除 A 外没有别人能产生这个密文。因此 B 相信报文 X 是 A 签名发送的。若 A 要抵赖曾发送报文给 B,B 可将明文和对应的密文出示给第三者。第三者很容易用 A 的公钥去证实 A 确实发送 X 给 B。反之,若 B 将 X 伪造成 X‘,则 B 不能在第三者前出示对应的密文。这样就证明了 B 伪造了报文。
公钥密码体制实现具有保密性的数字签名
四、鉴别
- 验证通信的对方的确是自己要通信的对象而不是冒充者
- 报文鉴别
- 接收者能够确信报文是发送者发送的,别人无法伪造
- 对每一个收到的报文都要鉴别报文的发送者
- 实体鉴别
- 对通信的进程进行鉴别,通常在系统接入时验证一次
1、报文鉴别
- 数字签名
缺点:对很长的报文进行数字签名开销太大
- 报文摘要MD (Message Digest)
发送方:
- A 将报文 X 经过报文摘要算法运算后得出很短的报文摘要 H
- 然后用自己的私钥对 H 进行数字签名,得到MAC
- 将MAC其追加在报文 X 后面发送给 B
接收方:
- 首先把MAC和报文 X 分离
- 用A的公钥对MAC进行运算,得出报文摘要 H ,对报文X计算出H,比较两个H
优点:短得多的定长报文摘要 H 进行数字签名开销小
2、实体鉴别
A 发送给 B 的报文的被加密,使用的是对称密钥 KAB。
B 收到此报文后,用共享对称密钥 KAB 进行解密,因而鉴别了实体 A 的身份。
- 使用不重数进行鉴别 【不重数就是一个不重复使用的大随机数】
- 使用不重数进行鉴别(公钥密码体制)
- 中间人攻击
五、密钥分配
- 对称密钥的分配
- 目前常用的密钥分配方式是设立密钥分配中心 KDC (Key Distribution Center),通过 KDC 来分配密钥。
密钥分配中心
KDC
的任务是给需要进行通信的两个用户临时分配一个对称密钥,且仅在这次通信中使用。
- 目前常用的密钥分配方式是设立密钥分配中心 KDC (Key Distribution Center),通过 KDC 来分配密钥。
- 公钥的分配
- 一个值得信赖的机构——即认证中心CA (Certification Authority)来管理
1、对称密钥的分配
- 密钥分配协议:Kerberos
- Kerberos既是鉴别协议,也是密钥分配中心KDC
2、公钥的分配
公钥的传输过程也存在风险,如果中间商篡改了公钥,那么他就可以伪造数字签名
通过认证中心CA (Certification Authority)
来将公钥与其对应的实体(人或机器)进行绑定。认证中心一般由政府出资建立。
六、运输层安全协议
现在广泛使用的有以下两个协议:
- 安全套接字层
SSL (Secure Socket Layer)
- 运输层安全
TLS (Transport Layer Security)
SSL/TLS 的位置
- 在发送方,SSL 接收应用层的数据(如 HTTP ),对数据进行加密,然后把加了密的数据送往 TCP 套接字。
- 在接收方,SSL 从 TCP 套接字读取数据,解密后把数据交给应用层。
1、SSL安全会话建立过程如下
2、TLS 工作流程
此为服务端单向认证,还有客户端/服务端双向认证,流程类似,只不过客户端也有自己的证书,并发送给服务器进行验证
TLS:位于 HTTP 和 TCP 之间的协议,其内部有 TLS握手协议、TLS记录协议
HTTPS 经由 HTTP 进行通信,但利用 TLS 来保证安全,即 HTTPS = HTTP + TLS【HTTPS 使用 TLS 保证安全,这里的“安全”分两部分,一是传输内容加密、二是服务端的身份认证】
2.1 TLS 使用的密码技术
- 伪随机数生成器:秘钥生成随机性,更难被猜测
- 对称密码:对称密码使用的秘钥就是由伪随机数生成,相较于非对称密码,效率更高
- 消息认证码:保证消息信息的完整性、以及验证消息信息的来源
- 公钥密码:证书技术使用的就是公钥密码
- 数字签名:验证证书的签名,确定由真实的某个 CA 颁发
- 证书:解决公钥的真实归属问题,降低中间人攻击概率
TLS 是一系列密码工具的框架,作为框架,它也是非常的灵活,体现在每个工具套件它都可以替换,即:客户端与服务端之间协商密码套件,从而更难的被攻破,例如使用不同方式的对称密码,或者公钥密码、数字签名生成方式、单向散列函数技术的替换等。
文章参考:https://blog.csdn.net/ustccw/article/details/76691248 以及 谢希仁著. 计算机网络(第7版)