SSL/TLS过程解析

首先我们为什么需要SSL?

互联网的通信安全,建立在SSL/TLS协议之上。SSL/TLS协议位于应用层和传输层之间,用于对上层数据包加密之后传输,同时进行身份、数据完整性校验。

简单地讲,SSL/TLS就是同时结合各种密码算法、数字签名算法及数字证书等技术的一套协议,目的就是为了保证通信的安全性。采用SSL/TLS协议,通信双方建立连接之前需要进行握手,目的是协商出会话密钥,用于后续对通信数据的加解密操作。

加密算法分为两大类:

1、对称加密算法 数据加解密使用同一份密钥,加解密速度快,效率高,缺点是密钥的管理难度大,密钥传输绝对不可泄漏。

2、非对称加密算法 数据加解密使用公钥和私钥,公钥用于传输,私钥自己保存,安全性较高,但加解密速度偏慢。

而SSL/TLS则结合两者的优缺点,数据包的加密使用对称加密算法,而对称加密算法的密钥采用非对称加密手段协商获取。
常用的对称加密算法有:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
常用的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
常用的数字签名算法有:MAC、MD5、SHA1

在这里插入图片描述

以与CSDN的一次连接建立为例


C:\Users\DELL>ping CSDN.com

正在 Ping CSDN.com [39.106.226.142] 具有 32 字节的数据:
来自 39.106.226.142 的回复: 字节=32 时间=12ms TTL
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: mbedtls是一款开源的专注于嵌入式设备的网络通信加密库,其中也包含了对证书的解析功能。mbedtls可以解析各种X.509格式的证书,并提供了相应的API来进行操作。 mbedtls库提供了以下几个函数来解析证书: - `mbedtls_x509_crt_parse`:用于将证书的DER或PEM格式的数据解析为X.509证书结构。 - `mbedtls_x509_crt_free`:用于释放解析后的证书结构所占用的内存。 - `mbedtls_x509_crt_info`:用于打印证书的基本信息,如版本号、序列号、有效期等。 - `mbedtls_x509_crt_verify_info`:用于打印验证证书时的信息,如公钥哈希、签名算法、颁布者等。 使用mbedtls解析证书的步骤如下: 1. 调用`mbedtls_x509_crt_init`函数初始化证书结构。 2. 调用`mbedtls_x509_crt_parse`函数解析证书数据,并将解析后的结构存储在证书结构中。 3. 调用`mbedtls_x509_crt_info`函数打印证书的基本信息。 4. 如果需要验证证书的合法性,可以使用`mbedtls_x509_crt_verify_info`函数打印验证时的信息。 5. 调用`mbedtls_x509_crt_free`函数释放证书结构所占用的内存。 需要注意的是,mbedtls仅提供了对证书的解析功能,并不负责证书的验证。如果需要验证证书的合法性,还需要调用其他函数来实现。此外,证书的解析需要提供证书的数据,可以是DER或PEM格式的数据。 总之,mbedtls提供了方便的API来解析证书,并且适用于嵌入式设备。通过调用相关的函数,可以轻松地将证书数据解析为证书结构,并进行相应的操作。 ### 回答2: mbedtls是一个轻量级的加密库,它提供了解析和验证证书的功能。 证书是用于加密和认证通信的数字凭证,常用于HTTPS、SSH等加密协议中。解析证书是指从证书文件中提取出证书中的各个属性信息,例如有效期、颁发者、公钥等。 使用mbedtls解析证书通常包括以下步骤: 1. 加载证书:将证书文件加载到内存中,可以使用mbedtls_x509_crt结构表示证书。 2. 解析证书:使用mbedtls_x509_crt_parse函数解析证书。这个函数会解析出证书中的各个属性信息,并将其存储在mbedtls_x509_crt结构中。 3. 验证证书:使用mbedtls_x509_crt_verify函数对证书进行验证。这个函数会验证证书的合法性,包括检查证书链、有效期、颁发者等,确保证书的可信度。 4. 提取证书信息:使用mbedtls_x509_crt_info函数可以从解析好的证书结构中提取出各个属性信息,如有效期、颁发者、公钥等。可以通过访问mbedtls_x509_name结构获取颁发者信息,通过访问mbedtls_x509_time结构获取有效期信息,通过访问mbedtls_pk_context结构获取公钥信息等。 5. 清理资源:在使用完mbedtls_x509_crt结构后,需要使用mbedtls_x509_crt_free函数释放资源。 mbedtls库提供了简单易用的API来解析和验证证书,只需要几个简单的函数调用即可完成这些操作。它是一个可靠的工具,广泛应用于各个领域的加密通信中。 ### 回答3: mbedtls是一款轻量级的加密与安全通信库,可以用来进行SSL/TLS协议的实现。它不仅提供了SSL/TLS协议的功能,还包括了解析证书的能力。 在使用mbedtls解析证书时,首先我们需要获取证书的二进制数据。可以通过读取文件、网络传输或其他方式获取证书,并将其保存为二进制形式。 接下来,我们可以使用mbedtls_x509_crt结构体来存储解析后的证书信息。这个结构体包含了证书的各个字段,比如公钥、主题等。 使用mbedtls_x509_crt_parse函数可以将二进制证书数据解析为mbedtls_x509_crt结构体。这个函数接受三个参数:解析后的证书结构体、二进制证书数据和二进制数据的长度。函数执行成功后,我们就可以通过访问结构体的成员来获取证书的各个字段信息。 例如,可以通过访问x509_crt结构体的subject或issuer成员来获取证书的主题和颁发者信息。如果证书包含了公钥信息,我们可以通过访问x509_crt结构体中的公钥成员来获取公钥的相关信息。 需要注意的是,mbedtls解析证书时并不会验证证书的有效性,例如是否是受信任的颁发者颁发的证书。如果需要对解析后的证书进行验证,我们可以通过使用mbedtls_x509_crt_verify函数来完成。 总之,mbedtls提供了方便的接口来解析证书,并可以通过访问结构体的成员来获取证书的各个字段信息。它是一款简单易用的解析证书的工具,非常适合用于嵌入式设备等资源有限的场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chi Z犬里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值