TLS 改变密码标准协议(Change Cipher Spec Protocol) 就是加密传输中每隔一段时间必须改变其加解密参数的协议...

SSL修改密文协议的设计目的是为了保障SSL传输过程的安全性,因为SSL协议要求客户端或服务器端每隔一段时间必须改变其加解密参数。当某一方要改变其加解密参数时,就发送一个简单的消息通知对方下一个要传送的数据将采用新的加解密参数,也就是要求对方改变原来的安全参数。

 

SSL修改密文协议是使用SSL记录协议服务的SSL高层协议的3个特定协议之一,也是其中最简单的一个。协议由单个消息组成,该消息只包含一个值为1的单个字节。该消息的唯一作用就是使未决状态复制为当前状态,更新用于当前连接的密码组。为了保障SSL传输过程的安全性,双方应该每隔一段时间改变加密规范。

SSL修改密文协议的报文格式

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于TLS1.3协议是基于加密套件的,因此在实现TLS1.3协议服务端时,需要选择双方都支持的加密套件用于传输数据。以下是一个使用C语言实现的示例代码: ```c #include <openssl/ssl.h> #include <openssl/err.h> #include <openssl/conf.h> int main() { SSL_CTX *ctx; SSL *ssl; int sock; // 初始化OpenSSL库 SSL_library_init(); SSL_load_error_strings(); OpenSSL_add_all_algorithms(); OPENSSL_config(NULL); // 创建SSL上下文 ctx = SSL_CTX_new(TLS_server_method()); // 设置支持的加密套件 SSL_CTX_set_cipher_list(ctx, "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256"); // 加载证书和私钥 SSL_CTX_use_certificate_file(ctx, "server.crt", SSL_FILETYPE_PEM); SSL_CTX_use_PrivateKey_file(ctx, "server.key", SSL_FILETYPE_PEM); // 创建socket并监听 sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // 绑定socket // 监听socket // 接受连接请求 // 创建SSL对象 ssl = SSL_new(ctx); // 将socket和SSL对象关联 SSL_set_fd(ssl, sock); // SSL握手 SSL_accept(ssl); // 发送和接收数据 // ... // 关闭连接 SSL_shutdown(ssl); SSL_free(ssl); close(sock); // 释放SSL上下文 SSL_CTX_free(ctx); // 清除OpenSSL库 CONF_modules_unload(1); EVP_cleanup(); ERR_free_strings(); return 0; } ``` 在上述代码,通过调用`SSL_CTX_set_cipher_list`函数设置支持的加密套件为`TLS_AES_256_GCM_SHA384`和`TLS_AES_128_GCM_SHA256`,这两个加密套件都是TLS1.3协议支持的加密套件。在建立SSL连接时,双方会协商选择一个双方都支持的加密套件,用于传输数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值