前三步是建立TCP连接(三次握手)
1. 建立连接后客户端向服务器发起数字证书请求,而后服务器下发数字证书,并确认使用非对称加密算法种类
2. 得到服务器下发的数字证书后,客户端会向第三方认证机构认证此证书是否有效
3. 客户端本地随机生成一组非对称加密密钥,同时将密钥本身通过公钥(数字证书中包含)加密后传给服务端
4. 服务端拿到密钥后就可以与客户端进行加密通讯
对称加密算法
- DES Data encrption standard , 56 bits
- 3DES 使用DES加密三次
- AES advanced encrption standard
- AES192
- AES256
- AES512
- Blowfish
单向加密
- MD4
- MD5
- SHA1
- SHA192,SHA256
- CRC-32
公钥加密
身份认证(数字签名)--主要
数据加密
- RSA
- DSA
普通的模型
应用层(HTTP 、FTP 、SMTP 、TELNET)封装 -- 传输层封装(TCP、UDP) -- 网络层封装(IP包)
安全模型
应用层(HTTP 、FTP 、SMTP 、TELNET)封装 -- 调用SSL库对数据进行加密 -- 传输层封装(TCP、UDP) -- 网络层封装(IP包)
SSL : Secure Socket Layer
TLS : Transport Layer Security (国际标准化组织)
OpenSSL :SSL开源实现(加密工具)
libcrypto :加密库
linssl:TLS/SSL实现
openssl:多用途命令行工具,私有证书颁发
命令:openssl ? 可以列出openssh支持加密类型
root@ubuntu:/etc# openssl ?openssl:Error: ‘?‘ is an invalid command.Standard commandsasn1parse ????????ca ???????????????ciphers ??????????cms ??????????????crl ??????????????crl2pkcs7 ????????dgst ?????????????dh ???????????????dhparam ??????????dsa ??????????????dsaparam ?????????ec ???????????????ecparam ??????????enc ??????????????engine ???????????errstr ???????????gendh ????????????gendsa ???????????genpkey ??????????genrsa ???????????nseq ?????????????ocsp ?????????????passwd ???????????pkcs12 ???????????pkcs7 ????????????pkcs8 ????????????pkey ?????????????pkeyparam ????????pkeyutl ??????????prime ????????????rand ?????????????req ??????????????rsa ??????????????rsautl ???????????s_client ?????????s_server ?????????s_time ???????????sess_id ??????????smime ????????????speed ????????????spkac ????????????srp ??????????????ts ???????????????verify ???????????version ??????????x509 ?????????????Message Digest commands (see the `dgst‘ command for more details)md4 ??????????????md5 ??????????????rmd160 ???????????sha ??????????????sha1 ?????????????Cipher commands (see the `enc‘ command for more details)aes-128-cbc ??????aes-128-ecb ??????aes-192-cbc ??????aes-192-ecb ??????aes-256-cbc ??????aes-256-ecb ??????base64 ???????????bf ???????????????bf-cbc ???????????bf-cfb ???????????bf-ecb ???????????bf-ofb ???????????camellia-128-cbc ?camellia-128-ecb ?camellia-192-cbc ?camellia-192-ecb ?camellia-256-cbc ?camellia-256-ecb ?cast ?????????????cast-cbc ?????????cast5-cbc ????????cast5-cfb ????????cast5-ecb ????????cast5-ofb ????????des ??????????????des-cbc ??????????des-cfb ??????????des-ecb ??????????des-ede ??????????des-ede-cbc ??????des-ede-cfb ??????des-ede-ofb ??????des-ede3 ?????????des-ede3-cbc ?????des-ede3-cfb ?????des-ede3-ofb ?????des-ofb ??????????des3 ?????????????desx ?????????????rc2 ??????????????rc2-40-cbc ???????rc2-64-cbc ???????rc2-cbc ??????????rc2-cfb ??????????rc2-ecb ??????????rc2-ofb ??????????rc4 ??????????????rc4-40 ???????????seed ?????????????seed-cbc ?????????seed-cfb ?????????seed-ecb ?????????seed-ofb
使用
#使用sha1 算法对passwd文件进行加密root@ubuntu:/etc# openssl sha1 /etc/passwd#MD5加密root@ubuntu:/etc# openssl sha1 /etc/passwd#获得随机数root@ubuntu:/etc# openssl rand -base64 123
HTTPS 协议
原文地址:https://www.cnblogs.com/xiaoliwang/p/9031221.html