×
模拟电子 > 模拟电路设计 > 详情

打造区块链应用的安全性-使用交钥匙型解决方案进行快速部署

发布时间:2022-04-02 发布时间:
|

除了其在加密货币中的常见用途外,区块链技术还可以为开发人员提供具有广泛适用性的安全基础架构。它的去中心化架构消除了对中央管理机构的需求,转而依靠私钥和加密方法来保护资产及其在各方之间的交换。因此,区块链系统的安全性关键取决于密钥的安全性以及它们在稳健算法中的正确使用。

尽管有现成的合适算法,但是实现需要大量的专业知识和经验,这样才能开发出安全的解决方案并将其整合到目标应用中。如果没有合适的工具将区块链构建到应用的核心中,开发人员就会发现他们的工作停滞不前,甚至容易受到网络窃贼的攻击。

本文向开发人员展示如何使用 英飞凌 提供的基于硬件的交钥匙型区块链安全解决方案,以更轻松地方式保护区块链交易。

私钥安全性

区块链消除了要有中央管理机构批准交易的需要。取而代之的是,这项技术依靠共识机制来维持区块链的完整性,而区块链则通过使用加密方法和私钥/公钥对进行签名和验证的一组交易来持续扩展。实际上,私钥在区块链系统中充当所有权凭据。因意外或盗窃而造成的私钥丢失或暴露已经造成了重大的加密货币损失。因此,私钥的安全性是部署区块链应用时最重要的问题。

早期基于软件或有限硬件安全性的方法可能会使私钥容易受到各种攻击。相比之下,更强大的解决方案构建于可针对各种直接和间接威胁提供深度保护的安全控制器之上。Infineon Blockchain Security 2Go 入门套件 (BLOCKCHAINSTARTKITTOBO1) 使用基于此类安全控制器的解决方案,提供了区块链安全所需的深度保护。

开发人员无需再面对实现自有解决方案的挑战,而是可以为用户提供内置区块链安全机制支持的非接触式智能卡,包括支持交易签名,这是扩展区块链的关键第一步(图 1)。

图 1:Infineon Blockchain Security 2Go 智能卡通过对区块链机制(包括用于扩展区块链的签名交易)的内置支持,简化了区块链安全的部署。(图片来源:英飞凌)

安全平台

Infineon Blockchain Security 2Go 入门套件为区块链系统集成商提供了一个交钥匙型的安全解决方案,且不需要获取安全设备通常所需的保密协议。

该套件旨在使用 Infineon 提供的开源软件进行快速部署,包括五张智能卡,可实现包括生成安全密钥、创建签名和 PIN 身份验证在内的关键区块链机制。此外,开发人员还可从相关的 Infineon Security 2Go 10 卡包 (BLOCKCHAIN10CARDSTOBO1) 获得智能卡。

这些卡在某些地区符合用于常规支付卡和身份证的 ISO/IEC 7810 ID-1 标准。关于连接性,这些智能卡集成了一根基于 ISO/IEC 14443 标准的 1 类天线,适用于使用近场通信 (NFC) 的非接触式卡。

嵌入每张卡中的安全控制器提供了基于硬件的安全性,用于创建和存储多达 255 个私钥/公钥对以及执行加密算法。除了集成真随机数发生器 (TRNG),这些卡片还支持两种算法:一种是使用 256 位高级加密标准 (AES) 的对称加密算法;另一种是使用 256 位椭圆曲线加密 (ECC) 并预载了 secp256k1 ECC 曲线(通常用于包括比特币和以太坊在内的加密货币)的非对称加密算法。

凭借对区块链安全机制的专门支持,这些卡为保护区块链交易提供了即时解决方案。区块链系统集成商无需花费时间来构建安全的签名方法,而只需将智能卡交给用户,让其在与已部署的区块链系统进行交互时使用。

交互更简单

对于用户而言,智能卡提供了一种简单的方法,在其私钥受到充分保护的情况下执行区块链交易。这些卡旨在与接口设备(例如 NFC 智能手机或配备独立 NFC 智能卡读取器的计算机)上运行的软件搭配使用。在运行区块链应用时,用户通过将卡放置在接口设备上来激活卡的功能(图 2)。

图 2:如下所示,用户可以通过将智能卡靠近 NFC 读取器天线(例如 Google Pixel 智能手机背面的光泽区域)来调用智能卡的功能。(图片来源:英飞凌)

为了即时评估 Security 2Go 智能卡,Infineon 提供了一个 Android 移动应用,以演示其在典型场景下的使用。该移动应用在支持 NFC 的智能手机上启动后,会提示用户将智能卡贴放在智能手机的 NFC 天线区域,从而启用完整的移动应用界面(图 3)。

图 3:由 Coinfinity GmbH 为 Blockchain Security 2Go 入门套件开发的一款预置 Android 应用。这款应用显示了在卡请求与智能卡(左)建立联系后,如何使用智能卡功能来演示不同的使用场景(右)。(图片来源:英飞凌)

在此移动应用和其他部署的幕后,智能手机或其他接口设备上运行的软件会发出命令来执行各种功能,例如生成新的密钥对或获取有关现有密钥对的信息。在这些命令和其他命令序列的整个执行过程中,私钥永远不会离开智能卡。在响应涉及私钥的命令时,智能卡最多将一个密钥句柄返回至接口设备。接口设备软件进而使用该句柄来执行相关的命令,例如检索与特定私钥配对的公钥(图 4)。

通过这种方法,在接口上运行的软件可以在不损害私密数据的情况下,完成与区块链系统交互所需的全部操作。

图 4:智能手机或智能卡读取器等接口设备会向 Infineon Blockchain Security 2Go 智能卡发出诸如此密钥生成请求之类的命令,而智能卡则会创建私钥/公钥对并返回公钥而不泄露私钥。(图片来源:英飞凌)

接口设备软件保留执行应用特定功能的责任,例如将公钥转换为用于每个交易的(通常是唯一的)区块链地址。例如,比特币地址使用公钥作为单向哈希算法的输入,该算法会生成一个依赖于公钥但不能用于重新创建公钥的地址。

类似地,为了对交易请求进行签名,接口会向智能卡发出一条命令和随附的哈希结果。作为响应,智能卡将签名返回给接口设备(图 5)。

图 5:对交易进行签名需要使用私钥,但是利用 Infineon Blockchain Security 2Go 智能卡,接口设备可以在不暴露最要紧的私钥的情况下接收签名。(图片来源:Infineon)

应用协议数据单元

对于每个命令和响应,接口设备和智能卡之间使用 ISO/IEC 7816 标准第 4 部分中定义的应用协议数据单元 (APDU) 进行交互。对于与智能卡的每次交互,接口设备均以 ISO/IEC-7816 标准命令 APDU 格式发出服务请求,并以标准响应 APDU 格式接收(可选的)响应(图 6)。

图 6:ISO/IEC 7816 标准命令 APDU 和响应 APDU 格式构成了接口设备与相容智能卡(例如 Infineon Blockchain Security 2Go 智能卡)之间的通信基础。(图片来源:英飞凌)

在命令 APDU 中,智能卡提供商根据目标应用领域中使用的行业标准定义受支持的指令和参数。Infineon 为其 Blockchain Security 2Go 智能卡定义了一组利用智能卡功能所需的核心命令(表 1)。

表 1:Infineon Blockchain Security 2Go 智能卡的命令集。(表来源:由 Digi-Key Electronics 根据 英飞凌 提供的数据创建)

例如,要启动新会话,接口设备软件将使用 Infineon 为 Blockchain Security 2Go 入门套件提供的固定应用标识符 (AID) 的数据值来构建 SELECT APPLICATION 命令 APDU。在收到该命令 APDU 后,智能卡将针对新会话进行自身初始化,并发送相应的响应 APDU,其中包括一些智能卡元数据(图 7)。

图 7:Infineon 为其 Blockchain Security 2Go 智能卡提供了命令所需的以及在响应和错误代码中预期出现的特定 APDU 字段值,例如这组用于初始化智能卡的字段值,其中包括由 Infineon 提供的固定应用标识符 (AID)。(图片来源:英飞凌)

总结

区块链技术提供了一个框架,在不损害信息完整性或真实性的情况下扩展了信息的可访问性。区块链系统不依赖于中央管理机构,而是使用加密方法来验证交易并保护交易不被修改。对于这种方法至关重要的是,私钥需要有强大的安全机制,以防止对用户交易失去控制和区块链系统受到破坏。

如图所示,Infineon Blockchain Security 2Go 入门套件及其随附的开源软件为区块链系统集成商提供了一种即时安全的解决方案,并为用户提供了一种更简单、更安全的方法执行区块链交易。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
怎么用运算放大器电路精确控制光的强度