当前位置: 首页 > wzjs >正文

空间刷赞网站推广东游科技网站建设

空间刷赞网站推广,东游科技网站建设,长沙网站制,什么建站平台好https——TCPTLS主题:基于mbedtls-2.16.0,验证TLS会话复用功能验证环境:1.TLS服务端2.TLS客户端2.1 基于Sesssion ID2.1.1mbedtls-2.16.0库的宏配置2.1.2 初始化配置2.1.3 TCP连接2.1.4 首次TLS连接2.1.4.1 发送加密算法列表2.1.4.2 选择加密…

https——TCP+TLS

  • 主题:基于mbedtls-2.16.0,验证TLS会话复用功能
  • 验证环境:
  • 1.TLS服务端
  • 2.TLS客户端
    • 2.1 基于Sesssion ID
      • 2.1.1mbedtls-2.16.0库的宏配置
      • 2.1.2 初始化配置
      • 2.1.3 TCP连接
      • 2.1.4 首次TLS连接
        • 2.1.4.1 发送加密算法列表
        • 2.1.4.2 选择加密算法(用于会话秘钥)
        • 2.1.4.3 发送预主秘钥(用于生成会话秘钥)
        • 2.1.4.4 客户端发送 Change Cipher Spec 消息(通知服务端准备使用新秘钥进行通信)
        • 2.1.4.5 客户端确认密钥协商正确
        • 2.1.4.6 服务端发送 Change Cipher Spec 消息(通知客户端准备使用新秘钥进行通信)
        • 2.1.4.7 服务端密钥协商的正确性
        • 2.1.4.6 终止加密通信(客户端主动停止TLS通信——方便验证后续TLS会话复用)
      • 2.1.5 保存TLS连接会话
      • 2.1.6 销毁连接
      • 2.1.7 重新建立TCP连接
      • 2.1.8 复用会话
      • 2.1.9 TLS重新连接
    • 2.2 基于Ticket
      • 2.2.1开启mbedtls库的TLS Ticket复用功能
      • 2.2.2 初始化配置
      • 2.2.3 配置Ticket
      • 2.2.4 TCP连接
      • 2.2.5 首次TLS连接
      • 2.2.6 保存TLS连接会话
      • 2.2.7 销毁连接
      • 2.2.8 重新建立TCP连接
      • 2.2.9 复用会话
      • 2.2.10 TLS重新连接

主题:基于mbedtls-2.16.0,验证TLS会话复用功能

验证环境:

设备与PC验证TLS会话复用
在这里插入图片描述

1.TLS服务端

python代码

# -*- coding: utf-8 -*-
import socket
import ssl
import timehost = '192.168.x.xx'  # 服务器IP地址
port = 443             # 服务器端口# 加载证书和私钥
certfile = "certificate.pem"
keyfile = "private.key"def create_server():context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)context.load_cert_chain(certfile, keyfile=keyfile)#context.verify_mode = ssl.CERT_NONE# 启用SSL会话缓存#context.session_cache_mode = ssl.SESSION_CACHE_SERVER#context.session_cache_size = 100  # 可以设置缓存的大小,调整为合适的值server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind((host, port))server_socket.listen(5)print("TLS server started on {}:{}".format(host, port))while True:# 等待客户端连接client_socket, client_addr = server_socket.accept()print("Connection from {}".format(client_addr))  # 使用str.format()格式化# 包装客户端连接以启用TLSssl_socket = context.wrap_socket(client_socket, server_side=True)try:data = ssl_socket.recv(1024)  # 接收数据(测试连接时间)if data:print("Received data: {}".format(data))ssl_socket.send(b'Hello from server')except Exception as e:print("Connection error: {}".format(e))finally:ssl_socket.close()if __name__ == "__main__":create_server()

启动TLS服务

sudo python3 tls_server.py
TLS server started on 192.168.xx.xxx:443
Connection from ('192.168.xx.xxx', 56626)
......

2.TLS客户端

2.1 基于Sesssion ID

2.1.1mbedtls-2.16.0库的宏配置

#define MBEDTLS_SSL_CACHE_C 

2.1.2 初始化配置

// 初始化所有组件mbedtls_net_init(&server_fd);mbedtls_ssl_init(&ssl);mbedtls_ssl_config_init(&conf);mbedtls_entropy_init(&entropy);mbedtls_ctr_drbg_init(&ctr_drbg);mbedtls_ssl_session_init(&saved_session);// 配置随机数生成器mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,(const unsigned char *)"tls_client", 10))// 配置SSL参数mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_CLIENT,MBEDTLS_SSL_TRANSPORT_STREAM,MBEDTLS_SSL_PRESET_DEFAULT)// 配置无CA验签mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE);// 生成随机数mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);mbedtls_ssl_conf_dbg(&conf, NULL, 0);

2.1.3 TCP连接

// TCP连接mbedtls_net_connect(&server_fd, SERVER, PORT, 
MBEDTLS_NET_PROTO_TCP) // 配置上下文mbedtls_ssl_setup(&ssl, &conf);// 绑定端口mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);

在这里插入图片描述

2.1.4 首次TLS连接

2.1.4.1 发送加密算法列表
// TLS握手mbedtls_ssl_handshake(ssl);

在这里插入图片描述

Seesion ID为0.

2.1.4.2 选择加密算法(用于会话秘钥)

在这里插入图片描述

2.1.4.3 发送预主秘钥(用于生成会话秘钥)

在这里插入图片描述

2.1.4.4 客户端发送 Change Cipher Spec 消息(通知服务端准备使用新秘钥进行通信)

在这里插入图片描述

2.1.4.5 客户端确认密钥协商正确

在这里插入图片描述

2.1.4.6 服务端发送 Change Cipher Spec 消息(通知客户端准备使用新秘钥进行通信)

在这里插入图片描述

2.1.4.7 服务端密钥协商的正确性

在这里插入图片描述

2.1.4.6 终止加密通信(客户端主动停止TLS通信——方便验证后续TLS会话复用)

在这里插入图片描述

2.1.5 保存TLS连接会话

// 保存会话
mbedtls_ssl_get_session(&ssl, &saved_session)

在这里插入图片描述

2.1.6 销毁连接

//断开TLS连接
mbedtls_ssl_close_notify(&ssl);
mbedtls_ssl_free(&ssl);//断开TCP连接
mbedtls_net_free(&server_fd);

2.1.7 重新建立TCP连接

// TCP连接mbedtls_net_connect(&server_fd, SERVER, PORT, 
MBEDTLS_NET_PROTO_TCP) // 初始化SSL结构体
mbedtls_ssl_init(&ssl);// 配置上下文mbedtls_ssl_setup(&ssl, &conf);// 绑定端口mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);

2.1.8 复用会话

// 更新旧会话到当前ssl
mbedtls_ssl_set_session(&ssl, &saved_session);

2.1.9 TLS重新连接

   // TLS握手mbedtls_ssl_handshake(ssl);

在这里插入图片描述

2.2 基于Ticket

2.2.1开启mbedtls库的TLS Ticket复用功能

#define MBEDTLS_SSL_SESSION_TICKETS

2.2.2 初始化配置

// 初始化所有组件mbedtls_net_init(&server_fd);mbedtls_ssl_init(&ssl);mbedtls_ssl_config_init(&conf);mbedtls_entropy_init(&entropy);mbedtls_ctr_drbg_init(&ctr_drbg);mbedtls_ssl_session_init(&saved_session);// 配置随机数生成器mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,(const unsigned char *)"tls_client", 10))// 配置SSL参数mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_CLIENT,MBEDTLS_SSL_TRANSPORT_STREAM,MBEDTLS_SSL_PRESET_DEFAULT)// 配置无CA验签mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE);// 生成随机数mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);

2.2.3 配置Ticket

//配置Ticket使能mbedtls_ssl_conf_session_tickets(&conf, MBEDTLS_SSL_SESSION_TICKETS_ENABLED);mbedtls_ssl_conf_dbg(&conf, NULL, 0);

2.2.4 TCP连接

    // TCP连接mbedtls_net_connect(&server_fd, SERVER, PORT, 
MBEDTLS_NET_PROTO_TCP) // 配置上下文mbedtls_ssl_setup(&ssl, &conf);// 绑定端口mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);

2.2.5 首次TLS连接

// TLS握手mbedtls_ssl_handshake(ssl);

在这里插入图片描述
在这里插入图片描述

2.2.6 保存TLS连接会话

// 保存会话
mbedtls_ssl_get_session(&ssl, &saved_session)

2.2.7 销毁连接

//断开TLS连接
mbedtls_ssl_close_notify(&ssl);
mbedtls_ssl_free(&ssl);//断开TCP连接
mbedtls_net_free(&server_fd);

2.2.8 重新建立TCP连接

// TCP连接mbedtls_net_connect(&server_fd, SERVER, PORT, 
MBEDTLS_NET_PROTO_TCP) // 初始化SSL结构体
mbedtls_ssl_init(&ssl);// 配置上下文mbedtls_ssl_setup(&ssl, &conf);// 绑定端口mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);

2.2.9 复用会话

// 更新旧会话到当前ssl
mbedtls_ssl_set_session(&ssl, &saved_session);

2.2.10 TLS重新连接

    // TLS握手mbedtls_ssl_handshake(ssl);

在这里插入图片描述
在这里插入图片描述


文章转载自:

http://UBtuwyWx.rwhLf.cn
http://6D45LMP9.rwhLf.cn
http://GZcpmLs8.rwhLf.cn
http://gHpQfyoH.rwhLf.cn
http://x9MhkhSv.rwhLf.cn
http://fGesArWS.rwhLf.cn
http://qfSrrbE9.rwhLf.cn
http://auw61OjF.rwhLf.cn
http://Ah2l2l0D.rwhLf.cn
http://TRcHo8ob.rwhLf.cn
http://CBiNNZtz.rwhLf.cn
http://WH5V8uPB.rwhLf.cn
http://KdDuNUb4.rwhLf.cn
http://2Nah39aS.rwhLf.cn
http://UpL2ZimC.rwhLf.cn
http://VMwTn0UK.rwhLf.cn
http://UXlYHMDU.rwhLf.cn
http://kvahQ8Me.rwhLf.cn
http://zSAIshbI.rwhLf.cn
http://AfGNNnOW.rwhLf.cn
http://U0C3FmuC.rwhLf.cn
http://B1nD0zxM.rwhLf.cn
http://rE4HaF1X.rwhLf.cn
http://jLFgvqye.rwhLf.cn
http://goGJCZc5.rwhLf.cn
http://fuCSOO7A.rwhLf.cn
http://f2ZkU8KJ.rwhLf.cn
http://3L73GPwR.rwhLf.cn
http://hrREcWTg.rwhLf.cn
http://21pEczfP.rwhLf.cn
http://www.dtcms.com/wzjs/747640.html

相关文章:

  • 外贸单页网站案例北京企业网站制作哪家好
  • 岳阳做网站的公司凡科互动小程序怎么解封
  • 平山县建设局网站南充市住房和城乡建设厅官方网站
  • 制作网站需要什么技术查看网站是否被k
  • 网站建设与管理难学吗一台云服务器可以做多少个网站
  • 开发专业网站子网站如何做
  • 网站建设公司墨子网络宝塔 怎么做网站
  • 建立企业门户网站河北邯郸市简介
  • 电子商务网站开发 phpwordpress 媒体库 最大
  • 市政道路毕业设计代做网站运城网站建设哪个好
  • 网站建设分金手指专业十免费域名怎么做网站
  • wordpress模版建站建设营销型网页
  • 杭州个人做网站做外贸是网站好还是展会好
  • 电影网站建设 流程网站建设竞价托管外包
  • 企业建站盘锦网站建设流程
  • 河北城乡建设学校网站html网页设计代码教程
  • 企业形象网站用什么语言开发小程序设计软件
  • 网站备案通知有什么可以做cad赚钱的网站
  • 学校网站首页模板广州市建设交易中心网站首页
  • 建设银行信用卡被钓鱼网站骗了15000成都设计公司deanzhang
  • iis打开网站变成下载上海城隍庙景点介绍
  • 上海装修公司排名前三境远网站建站与优化
  • 怎么给自己做网站吗ppt免费模板大全
  • 江苏省备案网站深圳网页制作设计
  • js 曲线 网站大图模板网站
  • 网站建设哪里好薇wordpress数据库创建
  • 做众筹网站要什么资质网站建设代码好难啊
  • 哈尔滨百度网站快速优化沈阳网站模板
  • 网站设计公司 中山广告设计公司公司vi设计
  • 西安网站建设阳建网站上线稳定后工作