-
PKI:Public key infrastructure
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库
x.509:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法ID
发行者名称
有效期限
主体名称
主体公钥
发行者唯一标识
主体的唯一标识
扩展
发行者签名 -
SSL:Secure Socket Layer
-
TLS:Transport Layer Security
1995:SSL 2.0 ,Netscape
1996:SSL 3.0
1999:TLS 1.0
2006:TLS 1.1 RFC 4346
2008:TLS 1.2
2015:TLS 1.3
分层设计:
1、最底层:基础算法原语的实现,aes,rsa,md5
2、向上一层:各种算法的实现
3、再向上一层,组合算法实现的半成品
4、用各种组件拼装而成的种种成品密码学协议/软件:tls,ssh -
OpenSSL:开源项目
- 三个组件:
openssl:多用途的命令行工具
libcrypto:公共加密库
libssl:库,实现了ssl及tls - openssl命令:
openssl version:程序版本号
标准命令、消息摘要命令、加密命令
标准命令:enc,ca,req,…- 对称加密:
- 工具:openssl enc,gpg
- 算法:3des,aes,blowfish,twofish
- enc命令:
- 加密:openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext
- 解密:openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab
-des3
openssl ?
- 单向加密:
- 工具:md5sum,sha1sum,sha224sum,sha256sum,…,openssl dgst
- dgst命令:openssl dgst -md5 /path/to/somefile
- MAC:Message Authentication Code ,单向加密的一种延伸应用,用于实现在网络通信中保证所传输的数据的完整性
- 机制:CBC-MAC
- HMAC:使用md5或shal算法
- 生成用户密码:
- passwd命令:openssl passwd -l -salt SALT
- 生成随机数:openssl rand -base64 | -hex NUM
NUM:表示字节数:-hex时,每个字符4位,出现的字符数为NUM*2; - 公钥加密:
- 加密:
- 算法:RAS,ELGamal
- 工具:gpg,openssl rsautl
- 数字签名:
- 算法:RSA,DSA,ELGamal
- 密钥交换
- 算法:dh
- DSA:Digital Signature Algorithm
- DSS:Digital Signature Standard
- RSA:
- 生成密钥对儿:openssl genrsa -out /path/to/privatekey.file num_bits
umask 077 ;openssl genrsa -out key-pri 2048
提取出公钥:
openssl rsa -in /path/from/privatekey.file -pubout - 随机数生成器:
/dev/random:仅从熵池返回随机数:随机数用尽,阻塞
/dev/urandom:从熵池返回随机数:随机数用尽,会利用软件生成伪随机数:非阻塞
- 对称加密:
- 三个组件: