安全和加密 安全算法 加密算法 SSL协议

信息安全防护的目标

安全算法

安全技术

加密算法

对称密钥加密算法

特性:

  1. 加密和解密使用同一个密钥,效率高
  2. 将原始数据分割成固定大小的块,逐个进行加密

缺陷:

  1. 密钥过多
  2. 传输困难,密钥难以分发
  3. 数据来源无法确认

加密算法

  • DES:Data Encryption Standard,56bits
  • 3DES
  • AES:Advanced (128, 192, 256bits)
  • Blowfish,Twofish
  • IDEA,RC6,CAST5

非对称密钥加密算法

特点:

  1. 密钥成对出现
  2. 公钥(public key)公开给所有人,私钥(secret key)自己留存,必须保证其私密性
  3. 用公钥加密数据,只能使用与之对应的私钥解密,反之亦然

缺点:
密钥长,加密、解密效率低

功能:

  1. 数字签名:主要用于让接收方确认发送方的身份
  2. 对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方
  3. 数据加密:适合加密较小数据

加密算法

  • RSA(用于加密,数字签名)
  • DSA(数字签名)
  • ELGamal

单向加密算法

单向散列算法

将任意数据缩小成固定大小的“指纹”
特点:

  • 任意长度输入
  • 固定长度输出
  • 若修改数据,指纹也会改变(不会产生冲突)
  • 无法从指纹中重新生成数据(单向)

功能:确保数据完整性

加密算法

md5:128bits,sha1:160bit,ssh224,sha256,sha384,sha512

算法组合

1、非对称
Pa[Sb[data]]

2、非对称+hash
Pa[data+Sb[hash(data)]]

3、对称+非对称+hash
key[data+Sb[hash(data)]]+Pa[key]

工具

md5sum | sha1sum [–check] file

SSL协议

分为握手阶段和应用阶段

握手阶段(协商阶段): 客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套件以及主密钥。后续通信使用的所有密钥都是通过MasterSecret生成。

应用阶段: 在握手阶段完成后进入,在应用阶段通信双方使用握手阶段协商好的密钥进行安全通信

Handshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换

ChangeCipherSpec 协议:一条消息表明握手协议已经完成

Alert 协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别,fatal类型错误会直接中断SSL链接,而warning级别的错误SSL链接仍可继续,只是会给出错误警告

Record 协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等

HTTPS 协议:就是“HTTP 协议”和“SSL/TLS 协议”的组合

HTTP over SSL”或“HTTP over TLS”

HTTPS结构
image

HTTPS工作过程
image