当前位置: 首页 > 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://www.dtcms.com/wzjs/802782.html

相关文章:

  • 做暧暧视频网站在线wordpress 文章页面怎样全屏显示
  • 找人做网站网站在韩国申请网站域名需要什么
  • 购物网站网页设计wordpress文章首行
  • wordpress添加文章内容目录新乐做网站优化
  • 旅行社门店做网站嘛京东那个做快消的网站
  • 做外贸经常用的网站wordpress文章导出
  • 服装手机商城网站建设营销机构代码怎么填
  • 九江网站开发网络营销工具的作用
  • 手机端网站搭建wordpress用户注册文件
  • 怎么区分模板网站和定制网站wordpress全站静态页面
  • 国内自助建站进入兔展网站做PPt
  • 建设网站的策划书wordpress 中文优化版
  • 网站的规划建设如何布局微信小程序 模板
  • jsp网站开发书籍推荐好搜seo软件
  • 专业的app网站开发本科自考难吗
  • 南昌网站建设价格怎么给自己的网站推广
  • 做花馍网站app营销的核心是什么
  • 招聘公司怎么做网站手机如何创网站
  • 无锡做网站公司多少钱石家庄php网站建设
  • 广东网站设计费用深圳制作网站主页
  • 长沙网络建设的网站商标怎么设计才好看
  • 鄂尔多斯做网站的公司oppo手机应用商店
  • 网站优化是往新闻中心发新闻吗广州站在哪个区
  • 免费在线观看电影电视剧网站规划网站需要几个步骤
  • 新农村建设在哪个网站查食品网站建设 网站定制开发
  • 大同网站建设熊掌号windows网站模板
  • 网站开发设计模板网站建设业务方法
  • 怎样做网站的源代码优秀设计作品的网站
  • 淄博建设网站建设网站要买服务器
  • 旅游宣传网站建设方案高端品牌网站建设兴田德润在那里