23、加密与远程访问客户端开发详解

加密与远程访问客户端开发详解

1. 加密模块与连接创建

要使程序正常工作,需要两个模块。第一个是 ssl 模块,它包含了SSL和TLS功能,尽管SSL已被弃用多年,但由于这个缩写长期广泛使用,即便现在已过渡到TLS,人们仍习惯称其为SSL。另一个模块是 socket 模块,它负责处理底层连接。

创建连接时,首先要为连接创建一个默认上下文。若客户端认证需要证书,过程会更复杂,但这里只需使用默认的SSL上下文。接着,使用 socket.create_connection() 创建一个处理连接的套接字,传入包含主机名和端口号的元组。然后,将得到的变量 sock 包装在已有的SSL上下文中,通过调用上下文变量的 wrap_socket() 方法实现,同时要传入上一步创建的 sock 变量和服务器名称,这样在握手时能验证服务器,确保服务器证书中的通用名称与提供的名称匹配,即确保连接到预期的服务器。

加密能确保数据的机密性,检查证书中的服务器名称是否与访问的服务器一致是另一项安全控制措施。若两者名称不匹配,数据可能未发送到预期的服务器,这会破坏数据机密性,因为可能有第三方介入。如果是为了监控而有第三方介入,这种情况可能是合理的,但通常会有相应的处理机制,避免每次访问网站都出错。若攻击者介入,他们可能无法提供合法证书,名称肯定不匹配。由于配置错误可能导致名称不匹配和其他加密错误,用户可能习惯了接受这些错误,而未意识到潜在风险。

2. TLS服务器的创建

创建TLS服务器时,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值