TLS协议介绍

TLS协议介绍

TLS提供的服务

SSL/TLS协议提供的服务可以归纳为如下3个方面。

  • 认证:server端应该总是被认证的;client端可以选择性的认证。认证可以通过非对称算法(例:RSA、椭圆曲线数字签名算法(ECDSA)、EdDSA)完成,或一个对称的预共享密钥(PSK)。
  • 机密性:在通道上发送的数据只是对终端可见的。在传输时,TLS不能隐藏它的数据长度,终端能填充TLS记录来隐藏长度并提升对流量分析技术的防护。
  • 完整性:在建立完成的通道上发送的数据不能被攻击者修改。如果修改了就会发现。

TLS加密方法

  • 散列函数Hash
    常见的有 MD5、SHA256,该类函数特点是函数单向不可逆、对输入非常敏感、输出长度固定,针对数据的任何修改都会改变散列函数的结果,用于防止信息篡改并验证数据的完整性。
  • 对称加密
    常见的有 AES-CBC、DES、3DES、AES-GCM等,相同的密钥可以用于信息的加密和解密,掌握密钥才能获取信息,能够防止信息窃听。对称加密的优势是信息传输1对1,需要共享相同的密钥,密钥的安全是保证信息安全的基础。
  • 非对称加密
    即常见的 RSA 算法,还包括 ECC、DH 等算法,算法特点是,密钥成对出现,即公钥和私钥,公钥加密的信息只能私钥解开,私钥加密的信息只能公钥解开。因此掌握公钥的不同客户端之间不能互相解密信息,只能和掌握私钥的服务器进行加密通信,服务器可以实现1:n的通信,客户端也可以用来验证掌握私钥的服务器身份。服务器只需要维持一个私钥就能够和多个客户端进行加密通信,但服务器发出的信息能够被所有的客户端解密,且该算法的计算复杂,加密速度慢。

TLS的基本工作方式是,客户端使用非对称加密与服务器进行通信,实现身份验证并协商对称加密使用的密钥,然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间采用的对称密钥不同,从而可以保证信息只能通信双方获取。

### mbed TLS 协议介绍 mbed TLS 是一个广泛使用的开源安全套件,主要用于嵌入式系统中的加密通信。该库主要由三个核心模块组成: - **密码学工具箱**:提供基础的加密算法实现,如AES、RSA等[^1]。 - **X.509证书处理**:负责公钥基础设施(PKI)相关的操作,包括证书解析和验证等功能。 - **TLS/DTLS协议栈**:实现了传输层安全性(TLS)及其衍生版本—数据报传输层安全性(DTLS),用于保护网络上的应用程序之间的通讯免受窃听或篡改攻击。 对于开发者而言,在搜索引擎上查找资料时建议使用“Mbed TLS”作为关键字,因为这能更精准地定位到所需的技术文档和支持资源[^2]。 ### 使用方法概述 为了帮助理解如何应用此库,可以参考位于`/src/mbedtls-3.4.0/programs`目录下的多个示例程序,特别是`ssl_client1.c`文件展示了基本的安全客户端构建过程[^3]。 下面是一个简单的Python脚本例子展示怎样利用pycryptodome库模拟类似的SSL/TLS客户端行为(注意实际项目应直接调用C语言编写的mbed TLS API): ```python from cryptography.hazmat.primitives.asymmetric import rsa, padding from cryptography.hazmat.primitives import hashes, serialization def generate_rsa_keypair(): private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, ) pem = private_key.private_bytes( encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.TraditionalOpenSSL, encryption_algorithm=serialization.NoEncryption() ) return pem.decode('utf-8') print(generate_rsa_keypair()) ``` 上述代码片段仅作教学用途,并未涉及真实的TLS会话建立;真实场景下应当依据具体需求参照官方提供的API指南编写相应的初始化函数并配置必要的参数选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值