一、协议
https://www.rfc-editor.org/rfc/rfc5246
二、SSL/TLS 概述
Handshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换;
ChangeCipherSpec协议:一条消息表明握手协议已经完成;
Alert协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别,fatal类型的错误会直接中断SSL链接,而warning级别的错误SSL链接仍可继续,只是会给出错误警告;
Record协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等。
1、SSL协议概述
SSL协议组成:SSL记录协议+ SSL握手协议
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
2、TLS协议概述
TLS 记录协议:是一种分层协议,支持信息传输、将数据分段到可处理块、压缩数据、应用MAC 、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机
TLS 握手协议:由三个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。
三、SSL/TLS协议原理
https://blog.csdn.net/luo_boke/article/details/114220450
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
https://ruanyifeng.com/blog/2014/09/illustration-ssl.html
https://blog.csdn.net/qq_38289815/article/details/107591115
https://blog.csdn.net/dream_caoyun/article/details/123092637
https://www.cnblogs.com/jiangzhaowei/p/9341466.html
https://blog.csdn.net/qq_38289815/article/details/107591115
https://blog.csdn.net/mocas_wang/article/details/109476430
四、使用openssl实现TLS
1、参考
https://blog.csdn.net/guoke312/article/details/93846970
2、实现
https://www.openssl.net.cn/column/31.html
五、使用mbedtls实现TLS
1、参考
https://www.trustedfirmware.org/projects/mbed-tls/
六、使用LibreSSL实现TLS
1、参考
https://www.libressl.org/
七、国密SSL
1、参考
https://blog.csdn.net/weixin_42960194/article/details/128542383
https://www.gmssl.cn/gmssl/index.jsp