SSL 与 TLS

概述

参考:

为了解决人类在互联网世界信息的安全性,所研究出来的相关技术

安全机制:加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证

安全服务:认证、访问控制、数据保密性(连接保密性、无连接保密性、选择与保密性、流量保密性)、数据完整性、不可否认性

SSL/TLS 介绍

Secure Socket Layer(安全的套接字层,简称 SSL) # 一个安全协议

Transport Layer Security(传输层安全,简称 TLS)# SSL3.0 的升级版

SSL/TLS 就是在应用层与传输层中间又加了半层,应用层协议可以自行决定改层的功能,比如 http 协议用了这半层,就是 https。

SSL/TLS 的分层设计

  1. 最底层,基础算法原语的实现,比如 aes,rsa,md5 等
  2. 各种算法的实现
  3. 组合算法实现的半成品
  4. 用各种组件拼装而成的各种成品密码学协议/软件,tls,ssh 等 openssh 也是用 openssl 实现的软件

key(密钥) # 在密码学中,是指某个用来完成加密、解密、完整性验证等密码学应用的秘密信息。对于加密算法,key 指定明文转换成密文;对于解密算法,key 指定密文转换成明文

  • Plaintext or Cleartext(明文) # 在密码学中,明文是未加密的信息,可以供人类和计算机读取的信息
  • Ciphertext or Cyphertext(密文)# 在密码学中,密文是明文通过加密算法计算后生成的人类或计算器无法读取的一种信息

PKI:Public Key Infrastructure(公开密钥基础建设,简称 PKI),又称公开密钥基础架构、公钥基础建设、公钥基础设施、公开密码匙基础建设或公钥基础架构,是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。

PKI 是借助 CA(权威数字证书颁发/认证机构)将用户的个人身份跟公开密钥链接在一起,它能够确保每个用户身份的唯一性,这种链接关系是通过注册和发布过程实现,并且根据担保级别,链接关系可能由 CA 和各种软件或在人为监督下完成。PKI 用来确定链接关系的这一角色称为 RA(Registration Authority, 注册管理中心),RA 能够确保公开密钥和个人身份链接,可以防抵赖,防篡改。在微软的公钥基础建设下,RA 又被称为 CA,目前大多数称为 CA。

PKI 组成要素 从上面可以得知 PKI 的几个主要组成要素,用户(使用 PKI 的人或机构),认证机构(CA,颁发证书的人或机构),仓库(保存证书的数据库)等。

  1. 签证机构:CA(Certificate authority)证书权威机构
  2. 注册机构:RA
  3. 证书吊销列表:CRL
  4. 证书存取库:
  5. x.509:一种证书格式规范

通信加密安全实例

甲要发送数据给乙,甲为了只让乙看到

  1. 首先,甲用单向加密算法提取数据的特征码,然后用自己的私钥加密这段特征码,并附加在这段数据的后面。
  2. 甲用对称密钥,把整个数据加密。再用乙的公钥加密这个对称密钥,并附加在特征码后面
  3. 乙先用自己的私钥解密出来对称密钥是什么。再使用对称加密机制,用解密出来的对称密钥解密整个数据和加密的特征码。
  4. 乙再对方的公钥解密特征码,得到特征码,使用同样的单向加密算法计算特征码是否一样,则说明数据完整

密钥交换:IKE,DH

openSSL 与 gpg(pgp 协议)

关联文件

Linux 发行版中,有一个目录会保存一些常见的 CA 证书,称之为[信任仓库](/docs/7.信息安全/Cryptography(密码学)/公开密钥加密/证书%20 与%20PKI.md 与 PKI.md):

  • CentOS 发行版
    • /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt # 包含所有证书,每个证书前一行有注释
  • Ubuntu 发行版
    • /etc/ssl/certs/ # 该目录中一个证书一个文件