网络组成部分
主机:客户端和服务端
路由器:
网络协议
网络结构:区域网络、城域网和广域网
信息交换方式:电路交换和分组交换
网络分层:应用层(快递公司)、传输层(卡车)、网络层(高速公路)、链路层、物理层。
网络协议:标头和载荷
网络安全
网络安全三要素
机密性:攻击者无法获知通信内容 完整性: 攻击者对内容进行篡改时能被发现 身份验证: 攻击者无法伪装成通信双方的任意一方与另一方通信
网络安全:对称加密和非对称加密
对称加密:加密、解密用同样的密钥 非对称加密: 加密、解密使用不同的密钥 (公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
网络安全密码散列函数 (哈希函数)
输入: 任意长度的内容 输出:固定长度的哈希值 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值在计算上是不可能的
注意:如何实现机密性?
1.已知: 网络是明文的 2.如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
3.所以根要通过明文通信交换秘密信息,通信双方需要先有秘密信息
如何实现完整性?
密码散列函数性质: 找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的。
1.有明文 m,密码散列函数 H,计算 H(m) 获得哈希值 h,将 m和h 组合成新信息 m + h。 2.接收方拆分 m + h,重新计算 H(m) 得 h,对比 h'和 h。
要想实现完整性,通信双方需要先有秘密信息
1.有明文 m,密码散列函数 H,以及一个密钥 s;计算 H(m + s) 获得哈希值 h;将 m和h 组合成新信息 m + h。 2.接收方拆分 m +h,重新计算 H(m + s)得 h,对比 h'和 h。
如何实现身份验证?
数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
HTTPS
把 HTTP 的明文换成密文,再验证身份,即 HTTPS HTTPS = HTTP + TLS TLS = 身份验证 + 加解密 身份验证靠 PKI 服务端身份验证靠 PKI,客户端身份验证靠 HTTP 协议