0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

传输层安全性和安全元素的工作原理

星星科技指导员 来源:microchip 作者:microchip 2023-05-06 10:47 次阅读

传输层安全性的目的

TLS 的目的是为嵌入式安全支柱做出贡献:

机密性(加密数据)

完整性(保护数据不被篡改/损坏)

身份验证(在客户端和主机之间建立信任)

TLS 和身份验证齐头并进。TLS 将启动并执行加密操作,以建立经过身份验证和加密的通信隧道。安全元素将存储和保护TLS协议请求的相关加密密钥,私钥是迄今为止最关键的密钥。继续阅读以了解为什么如果没有强大的安全密钥存储来保护至少私钥,加密会很弱。

TLS 用于保护网站到网站的通信,也用于保护基于互联网协议 (IP) 的物联网IoT) 连接设备。开放系统互连 (OSI) 模型是概念性的,大多数技术并不完全属于这些层。下面显示了 TLS 在会话层和表示层之间的位置。

pYYBAGRVv4CAHUgrAAEjROmM5xA250.png

TLS 和身份验证

TLS 的一个重要部分是身份验证阶段。对于物联网市场,通常的做法是云平台和物联网设备相互进行身份验证,这称为相互身份验证。最常用的技术利用 X509 证书和公钥基础设施,因为它只是在嵌入式 deice 上尽可能优化运行计算饥渴的加密算法所需的处理能力,并保持它们相对实惠。有几个标准,如物联网消费者EN303645,物联网工业IEC / ISA62443,电动汽车充电ISO15118和开放充电点协议(OCPP),都建议使用TLS的安全密钥存储。ISO15118甚至会告诉我们,如果私钥由攻击者控制,并且与支付要交付给车辆的费用相关的金融交易是否可以被冒充并因此被盗。此外,如果您的私钥被盗,攻击可能会渗透到整个网络

让我们深入了解身份验证原则:

数字签名算法 (DSA)

证书签名

证书验证

证书身份验证

数字签名算法 (DSA)

在这里,我们解释了数字签名算法如何工作的基础知识:

DSA使用宿主和主体的概念。

主持人向主题发送消息。它们中的每一个都有各自的公钥/私钥对,其中公钥是从私钥中计算出来的

主题公钥分发到主机

受试者将提供一个称为签名的答案

签名是使用主题私钥的消息的加密“签名”操作的输出。

然后,主机将使用使用者公钥验证签名。

poYBAGRVv32AHWJAAADZ-9N8DpM724.png

现在,我们有一个由私钥签名的质询(消息),并获得了由主机公钥验证的签名。请记住:私钥签名,公钥验证。

证书签名

让我们扩大范围并将 DSA 概念扩展到 TLS 中使用的 X509 证书以及对证书的哪一部分进行签名。我们来介绍一下权威和主体关系的概念。两者都有其公钥/私钥对。我们开始使用公钥基础结构 (PKI) 关联到证书链。PKI可以建立在证书链上,证书颁发机构位于链的顶部:颁发机构。

poYBAGRVv3qAXvNkAAFwKHfCLGI984.png

使用者向颁发机构发送证书签名请求 (CSR

机构将使用其公钥对其进行验证

验证 CSR 后,证书的“待签名”(TBS) 部分将通过前面讨论的 DSA。在此图中,我们将特别提及椭圆曲线数字签名协议(著名的 ECDSA)。

要签名的证书部分包含:

权威信息

证书信息

主题信息

主题公钥

然后我们需要在这组数据的末尾附加签名以转到下一个概念。

证书验证

在上一步中,证书使用颁发机构私钥签名,在使用者和颁发机构之间创建绑定,但绑定尚未完成。主机需要验证使用者证书的签名 TBS 部分是否可信:

主体向主持人(不同于权威机构)提供他的 TBS 和签名。

主机使用先前分发给它的颁发机构公钥,并使用它来验证使用者的签名并收集使用者的 TBS。

在我们的案例中,验证是使用 ECDSA 验证完成的。

现在证书已验证,让我们讨论实际的证书身份验证。

证书身份验证

使用者会将其证书发送到具有权限公钥的主机

使用者证书包含使用者公钥

主机将向主体发送随机质询(也称为随机数),主体将使用 ECDSA 签名操作并使用主体私钥对其进行签名。

签名被发送回主机,主机将使用先前分发的主题公钥对其进行验证。

pYYBAGRVv3WADEXpAAEU5015tcU003.png

这是对证书的不同看法。我们可以了解签名的内容,证书的静态部分是什么,证书的动态部分是什么。CryptoAuthLib 是与我们的安全元素一起使用的库,用于处理证书静态和动态部分的解析。公钥、签名和私钥将由安全元素安全边界内的必要加密操作处理。

poYBAGRVv2aANgTNAAEoFMGFZS0452.png

图 2:完整的 X509 证书

加密和完整性

现在,已经涵盖了身份验证的基本概念,我们可以回顾一下加密和完整性概念以及TLS如何处理它们。

这里的想法是,客户端和物联网世界中的服务器创建了前向保密的概念。为此,我们需要即时生成临时对称密钥,也称为临时密钥。通常,非对称操作很慢,因此对称密钥用于加密和完整性。我们需要从密钥交换(也称为密钥协议)开始。服务器和客户端计算出两端相同的预主密钥。

pYYBAGRVv2OANm-DAACDayCl97E987.png

在加密术语中,我们将使用椭圆曲线Diffie Hellman Ephemeral (ECDHE)操作,如下所示。

每个客户端和服务器发出一个随机数,代表他们自己唯一的私钥

一方面,私钥通过 ECDH 运行,但使用另一端公钥来计算预主密钥。

另一方将执行相同的操作

poYBAGRVv1-Afnh6AAF0FnQ6CtQ415.png

现在,每一方都有一个相同的预主密钥。接下来,我们需要一个伪随机函数(PRF)来生成额外的密钥材料:

客户端和服务器加密密钥

客户端和服务器初始化向量 (IV)

客户端和服务器消息身份验证代码 (MAC) 密钥

如果我们参考 ATECC608TA100,它们都具有 PRF 模式下的密钥派生函数 (KDF),这是使用 HMAC/SHA1 实现 TLS2.256 PRF 所必需的。让我们看看PRF在TLS中做了什么。

pYYBAGRVv1yAblFyAAAp4nsxPdI871.png

从预主密钥中,PRF 生成更多密钥!从预主密钥中,我们将通过另一个 PRF 运行预主密钥和种子,以计算通常长为 48 字节的主密钥。

“种子”本身由客户端随机数、服务器随机数和主密钥组成。

pYYBAGRVv1iAMLq2AACSBZrDB0g359.png

最后,我们进入密钥扩展阶段,该阶段从前一阶段获取主密钥,包含客户端随机数、服务器随机数和“密钥扩展”的种子。种子和主密钥都通过 PRF 运行以输出密钥材料。

poYBAGRVv1WAQ3kpAADGiwAA4ZA180.png

请注意,有单独的加密和完整性检查:

AES128 CBC 用于加密

HMAC-SHA256 用于 MAC

但也有组合的加密和完整性检查:

经过身份验证的关联数据加密 (AEAD

GCM - 伽罗瓦计数器模式

CCM - 带 CBC-MAC 的计数器

下面我们将说明 ATECC608TA100 将实现的对称加密流。它说明了如何使用所讨论的步骤建立前向保密。

poYBAGRVv1GAecunAAEt2L2MAjQ475.png

TLS 握手和密码套件

TLS构建得非常灵活,并提供不同的密码套件。每个密码套件都由多个加密参数组成,我们刚刚在这篇博文中回顾了这些参数。

密钥交换算法

身份验证算法

密码

算法、密钥强度、模式

MAC 或 PRF

您可以在以下链接中参考密码套件的广泛列表。如果您考虑所有现有的密码套件,则必须考虑嵌入式系统的限制。嵌入式物联网设备(如烟雾探测器或监控摄像头)没有数据中心的马力 - 您会认为这是显而易见的,对吧?三思而后行。通常,嵌入式系统的计算能力最小,内存有限,功耗有限,安全性会打击所有三个系统,因为加密可能会耗费计算,从而影响功耗。就此而言,我们将把示例重点放在以下密码套件 ATECC608 excel 上,因为它提供了非常成本优化的体系结构和高级别的密钥保护(通用标准联合解释库 (JIL) 高): TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,让我们分解它:

ECDHE 密钥交换/协议算法

ECDSA 服务器身份验证算法

AES 密码算法

128 密码强度

GCM 密码模式

SHA256 PRF(伪随机函数)

密码模式为 AEAD(结合加密和完整性检查)

最后一部分指定 PRF 算法。

您需要 RSA 吗?请考虑 TA100 和以下密码套件:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256。 我们已经看到它用于汽车应用,但也用于基于Linux®的应用,如网关,需要网络密码改造,因为旧的连接设备仍然对基础设施至关重要,在带有RSA的网络上运行。同样,我们有以下密码学:

ECDHE 密钥交换/协议算法

RSA 服务器身份验证算法

AES 密码算法

128 密码强度

CBC 密码模式

SHA256 MAC(消息身份验证代码)

它将加密和完整性检查算法分开。最后一部分指定 MAC 算法。

如您所见,ECC 私钥或 RSA 私钥是安全建立 TLS 会话的最重要基础的机密。如果该密钥是公开的或可访问的,则依赖于它的任何加密都与公开的密钥一样弱。因此,必须通过在 TA608 安全元件的 ATECC100 中隔离私有设备来保护私有设备。这样,私钥就与代码、用户、开发人员和制造商“隔绝”。在使用 Microchip 安全配置服务时,这种隔离性会更加增强。以下是 TA100 将支持的一组密码套件作为示例:

TLS1.2 : TLS_ECDHE_WITH_AES_128+CBC+SHA256 RSA AES_123 CBC SHA256

TLS1.3 : TLS_AES_128_GCM_SHA256

TLS1.3 : TLS_AES_128_CCM_SHA256

TLS1.3 : TLS_AES_128_CCM_8_SHA256

如何使用 ATECC608 或 TA100 实现 TLS:信任平台设计套件

让我们动手操作代码和硬件,并查看实现细节。首先,下载信任平台设计套件。这里有几个TLS用例,包括简化的交易图和交钥匙C代码项目,以帮助您开始使用我们的安全元件,微控制器和WiFi模块:

Trust&GO ATECC608 for AWS IoT

Trust&GO ATECC608 for Microsoft Azure

适用于 AWS IoT 的 TrustFLEX ATECC608

TrustFLEX ATECC608 for Microsoft Azure

在TPDS之外,你可以找到来自WolfSSL和mbedTLS的代码示例,利用PKCS#11 for Linux®平台。

现在我们将详细介绍涉及 ATECC608 的 TLS 的实际事务图。TA100在概念上是相似的(使用talib而不是atcab进行API调用)。下图主要关注微控制器单元 (MCU) 和 ATECC608 之间的 CryptoAuthLib 回调。您可以通过搜索“atcab”API 调用轻松识别它们。

poYBAGRVv0GAYghEAACnjF06UNU160.png

poYBAGRVv0WAZXgnAACcoHW3Mq0713.png


pYYBAGRVv0qALQgfAAD49cld9go368.png

这就是实现带有安全元素的TLS的方式。请记住下载信任平台设计套件并测试 C 代码项目。请记住,此安装意味着您选择的TLS堆栈需要具有对CryptoAuthlib的回调,例如mBedTLS或WolfSSL。请注意,我们的WFI32 WiFi MCU模块将WiFi堆栈与TLS和微控制器集成在一个模块或芯片架构中。 如果您的系统具有某种类型的操作系统RTOS,那么您可以使用PKCS#11访问CrytpoAuthLib API并向安全元素发送命令。PKCS#11 将删除与 TLS 堆栈提供程序的任何依赖项,但需要一个能够通过 PKCS#11 进行通信的嵌入式系统。如果您有裸机实施,那么我们提供的说明将满足您的系统要求。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 互联网
    +关注

    关注

    54

    文章

    10908

    浏览量

    100769
  • 物联网
    +关注

    关注

    2870

    文章

    41659

    浏览量

    358426
  • 服务器
    +关注

    关注

    12

    文章

    8125

    浏览量

    82542
收藏 人收藏

    评论

    相关推荐

    nios如何保证安全性

    在工业设计当中,fpga的安全性是很严重的(个人认为),烧写在epcs上的程序,只要用逻辑分析仪就可以实现程序盗用,nios也是同样的不靠谱,在flash当中,一样没有加密,会有安全问题。所以我觉得
    发表于 08-15 14:42

    边缘智能的边缘节点安全性

    层协议。TLS常用于保护互联网流量并提供端到端安全性。尽管TLS使用TCP,而很多物联网设备利用UDP进行通信,但DTLS(数据报传输安全性)可在UDP上
    发表于 10-22 16:52

    安全闪存铸就高安全性智能卡

    和无纸化交通票务等。灵活性、安全性和总成本的重要我们需要各种各样的个性化解决方案,以便提高持卡用户的舒适安全性,而这就使得设计出具备最大灵活性的产品,使其能够对市场新趋势做出快速
    发表于 12-07 10:19

    各国汽车安全性怎么测试

    曾经有一项问卷调查是对10万名消费者进行调查,结果显示他们最关心的汽车性能是安全性,无论性价比如何高,只要安全性不好的话消费者都不会想购买的。其实全世界其它国家的消费者也是这么想的。各国为了提高汽车
    发表于 05-16 06:11

    详解太赫兹通信频段和MAC工作原理

    技术在通信领域的应用与当今比较成熟的微波通信和光纤通信相比,具有更多的优点,比如说,传输速率高,方向性好,安全性高,散射小,以及穿透好等。之前的文章《详解IEEE 802.11ad(60 GHz
    发表于 06-17 06:24

    蓝牙mesh系列的网络安全性

    蓝牙mesh网络安全性概览为何安全性如此关键?安全性可谓是物联网(IoT)最受关注的问题之一。从农业到医院、从智能家居到商业智能建筑、从发电站到交通管理系统,物联网系统和技术将触及我们生活的方方面面
    发表于 07-22 06:27

    视频安全性好处

    视频安全性好处
    发表于 09-26 18:43

    实现更强大IoT设备安全性的步骤

    本文将讨论实现更强大IoT设备安全性的步骤,并解释嵌入式安全性背后的不同概念,以及如何针对嵌入式设备安全性实施一致且包罗万象的方法。发现设备漏洞
    发表于 02-22 06:26

    什么是蓝牙mesh网络安全性

    蓝牙mesh网络安全性的基本概念
    发表于 02-25 08:22

    为什么基于硬件的安全性更有效?

    我们一直认为这些都是非常安全的产品。例如婴儿监视器、玩具、安全摄像头(非常讽刺),甚至医疗设备。已经快速采用IoT技术的领域将是最脆弱环节 ;设备越智能则越不安全对于其它许多行业而言,安全性
    发表于 03-05 07:18

    关于FPGA设计的安全性你看完就懂了

    关于FPGA设计的安全性你看完就懂了
    发表于 04-30 06:19

    FPGA设计的安全性不看肯定后悔

    FPGA设计的安全性不看肯定后悔
    发表于 05-07 06:52

    汽车安全性的内容和影响因素是什么?

    汽车安全性的内容和影响因素是什么? 电子技术在汽车行驶安全上的应用有哪些?
    发表于 05-14 06:43

    数据库安全性概述

    本文主讲 数据库的安全性,欢迎阅读~????目录一、数据库安全性概述二、数据库安全性控制1. 用户标识与鉴别2. 存取控制3. 自主存取控制方法4. 授权与回收5. 数据库角色6. 强制存取控制方法
    发表于 07-30 06:42

    实现功能安全性冗余CAN参考设计

    描述该参考设计展示了如何在物理实施冗余(并行)CAN 以实现功能安全性。其中包括两个 SN65HVD257 CAN 收发器以及可确保两个收发器收到相同数据的额外逻辑。特性较短的传播延迟和快速的循环
    发表于 09-23 07:09