一、单向散列函数
1. HTTP 协议的安全问题?(对比 HTTPS 说一个点)
- HTTP 协议默认是采取明文传输的,因此会有很大的安全隐患
- 常见的提高安全性的方法是:对通信内容进行加密后,再进行传输
2. 一些名词和学前须知(看懂即可)
3. 单向散列函数的特点?(至少说三点)
- 单向性(不可逆)
- 无论密文多长,最后生成的散列值长度相同
- 密文和散列值一一对应
- 计算速度快,能快速计算出散列值
4. 常见的单向散列函数(至少说两种)?
- MD5
- SHA256
二、对称、非对称加密(先考虑只有窃听者Eve,没有攻击者Mallory)
1.无论是哪种加密,都涉及到两样东西,是哪两样?
- 加密算法
- 加密秘钥
2. 对称加密之 DES(了解即可)
3. 既然 DES 已经不安全,那么取代它的是谁?
- AES
4. 简述对称加密存在什么问题?(也就是非对称加密出现的原因)
- 秘钥配送问题
5. 非对称加密有多少把秘钥?通常用什么加密?用什么解密?为什么能解决秘钥配送问题?
- 有两把秘钥:
公钥、私钥
- 通常用
公钥加密
、私钥解密
-
公钥
是可以公开的,随意在网络上传输;私钥
仅仅消息接收者自己保存,不公开,也不经过网络传输
6. 其实由私钥加密的密文,使用于该私钥对应的公钥也能解密。如果单单从加密传输信息的角度来讲,为什么没有意义呢?
- 因为公钥是公开的,你使用私钥加密,谁都能拿到公钥解密,拿到该信息。所以从加密传输的角度来讲是无意义的。
- 但是后面会讲到
签名机制
,就很有意义了。
7. 既然非对称加密
已经解决了秘钥配送问题,我们直接使用非对称加密
加密我们的消息即可吗?(这也就是混合加密的出现原因)
-
非对称加密
虽然能解决秘钥配送
问题,也能进行消息加密
。但是非对称加密算法复杂,加解密速度慢
-
对称加密
无法解决秘钥配送
问题,但是它`算法相对简单,加解密速度快 - 所以我们可以结合两者的优缺点,相互弥补;使用
非对称加密
解决对称加密
的秘钥配送问题,然后再使用对称加密
加解密消息即可。
8. 什么是会话秘钥?混合加密的 - 加密过程?(一定要能凭空描述清楚)
9. 混合加密的 - 解密过程(一定要能凭空描述清楚)
三、数字签名、证书(主要针对攻击者Mallory)
1. 数字签名是为了解决什么问题出现的?
- 篡改、伪装、否认
- 数字签名,只能证明消息到底是谁发的,类似于劳动合同的签名。不要和加密混为一谈
2. 数字签名的过程是怎么样的?如何能保证这个签名是消息发送者自己签的呢?(仔细看第二幅图,是否存在什么问题?)
- 私钥签名,公钥验证签名
- 私钥仅仅消息的持有者拥有
3. 上述签名是否有更好的做法?
- 我们之前学过,非对称加密速度是很慢的
- 使用
私钥
对消息体
进行签名
;然后用公钥
对消息体
进行验证签名
;这两个步骤都将非常耗时,所以上述签名过程需要优化 - 如何优化呢?加入
单向散列算法
,对散列值
进行签名
4. 要能回答出下面三个问题?
5. 几个经典的总结
6. 我们仅仅使用非对称加密就能保证信息安全了吗?如果遭遇中间人攻击呢?简述中间人攻击的过程?(为证书的出场做准备)
7. 证书的介绍(了解即可)
8. 证书的使用(要能描述清楚)
9. 如果在 ① 向 CA 注册证书 ② 向 CA 下载证书
;这两个步骤的时候遭受中间人攻击呢?
- ① 各大 CA 机构的
公钥
是内置
到了浏览器中的,所以可以在注册的时候使用CA 公钥加密
,在下载的时候用CA 公钥签名验证
。这样就能有效防止中间人攻击 - ② 相对于一般机构,CA 机构对安全的防护手段通常高于一般服务器,所以他们在尽量保证这个通道的安全
- ③
安全总是相对的
,攻击者和加密者之间的博弈也从未停止,所以也没有绝对的安全,两方的手段都在不断优化升级