2154163_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2154163_zh-CN

2154163_zh-CN

如何使用安全元件 SE05x:在树莓派上设置即插即用中间件(日文博客)

介绍


许多人对安全元件感兴趣,但或许他们觉得这些元件“使用起来有些困难”。

NXP 的安全元件SE05x附带名为 Plug and Trust Middleware 的中间件。该中间件包含一个专用于 SE05x 的 API,以及 OpenSSL 和 mbed-TLS 等常用库的插件。因此,使用这些库的应用程序(例如 Eclipse Mosquitto ™等)几乎无需修改即可利用安全元件的功能。

shinjihontanib_1-1770695212552.png

该中间件的参考操作系统环境支持“Windows PC”和“各种 NXP MCU/MPU(Linux)”,但也支持现成的“Raspberry Pi”。

Windows 和 Linux 环境下都提供了命令行工具,使得验证各种操作变得容易。

本文介绍了如何在树莓派上设置 Plug and Trust 中间件。


本文撰写过程中使用的硬件、软件及其版本


硬件:


软件:


下载 Plug and Trust 中间件软件包。

首先,请从这里下载Plug and Trust 中间件软件包 (SE05x-PLUG-TRUST-MW) 。

* 下载需要 MyNXP账户 。注册免费且简单。

Keita_Nagashima_0-1770697997899.png

* 解压缩后,您可以从 simw-top/doc/index.html 访问文档(以下,“文档”指的是此 HTML 文件)。


有关将 Plug and Trust 中间件与 Raspberry Pi 一起使用的信息,另请参阅AN12570 。


硬件准备


使用跳线连接 Raspberry Pi 和 OM-SE050ARD-E(或 OM-SE050RPI)。

对于使用跳线进行的连接,请参阅文档中的第 4.5 节。请参考下图了解树莓派的组装方法。

shinjihontanib_0-1755587854058.png

然而,截至撰写本文时,由于树莓派操作系统的 GPIO 控制规范发生了变化,按照上述方式连接的 GPIO22 无法正常工作。

虽然原因和解决方法已经明确,但目前本文将介绍如何通过更改跳线设置来禁用 GPIO22 控制。

要不使用 GPIO22 进行操作,请更改 OM-SE050ARD-E 上的以下两个跳线设置。

J13:1-2

J14:1-2

shinjihontanib_0-1755588509035.png

shinjihontanib_0-1770373763911.png

将 J13 设置为 1-2 可将 SE050 的 ENA 连接到 GND,将 J14 设置为 1-2 可将 SE050 的 VCC 连接到 VIN。

ENA 是 DPD(深度掉电)模式的控制引脚。使用 DPD 模式时,连接 VOUT 和 VCC,并使用 ENA 通过 VOUT 控制电源,以降低电流消耗。

由于本次 ENA 控制功能出现故障,我们将暂时禁用 DPD 设置。

如果不使用 DPD,请保持 VOUT 开路并将 VCC 连接到 VIN,以确保持续供电。

虽然从评估的角度来看,将 ENA 连接到 GND 似乎是可以接受的,但数据手册建议,如果 ENA 未使用,则将其连接到 VCC。


施工前准备


使用 Raspberry Pi Imager 刷写 Raspberry Pi OS 并启动后,打开终端。

启用 I2C

如果运行以下命令后未显示 i2c-1,则表示 I2C 未启用,请启用它。

ls /sys/bus/i2c/devices

执行以下命令后,转到接口选项 -> I2C 并启用 I2C。

sudo raspi-config

- 安装其他构建工具

执行以下操作:

sudo apt-get install cmake cmake-curses-gui cmake-gui libssl-dev libsystemd-dev

中间件设置和运行示例应用程序


将下载的 Plug and Trust 中间件软件包复制到您的 Raspberry Pi 中。

导航到您复制 Plug and Trust 中间件的目录,然后执行以下操作:

cd simw-top
python scripts/create_cmake_projects.py
cd ../simw-top_build/raspberrypi_native_se050_t1oi2c
cmake --build .
sudo make install
sudo ldconfig /usr/local/lib

构建好的应用程序位于 simw-top_build/raspbian_native_se050_t1oi2c/bin 中。

由于在前面描述的安装过程中,文件被复制到了 /usr/local/bin/ 目录,因此您可以运行该程序而无需指定该位置的文件。


运行 se05x_GetInfo 以验证操作,将显示设备信息。

shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top_build/raspbian_native_se050_t1oi2c $ se05x_GetInfo
Failed to export Enable pin : Invalid argument
Failed to open GPIO value file : No such file or directory
Failed to unexport GPIO : Invalid argument
App :INFO :Running se05x_GetInfo
App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments.
App :INFO :PlugAndTrust_v04.07.01_20250519
sss :INFO :atr (Len=35)
01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00
01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31
00 00 00
App :WARN :No SemsLite Applet Available.
App :INFO :Running se05x_GetInfo
App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments.
sss :INFO :atr (Len=35)
01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00
01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31
00 00 00
sss :WARN :Communication channel is Plain.
sss :WARN :!!!Not recommended for production use.!!!
App :WARN :#####################################################
App :INFO :uid (Len=18)
04 00 50 01 6A 17 2A E0 43 2E 7C 04 27 6A D2 9C
1D 90
App :WARN :#####################################################
App :INFO :Applet Major = 7
App :INFO :Applet Minor = 2
App :INFO :Applet patch = 0
App :INFO :AppletConfig = 3F9F
App :INFO :With ECDSA_ECDH_ECDHE
App :INFO :With EDDSA
App :INFO :With DH_MONT
App :INFO :With HMAC
App :INFO :WithOut RSA_PLAIN
App :INFO :WithOut RSA_CRT
App :INFO :With AES
App :INFO :With DES
App :INFO :With PBKDF
App :INFO :With TLS
App :INFO :With MIFARE
App :INFO :With I2CM
App :INFO :Internal = FFFF
App :WARN :#####################################################
App :INFO :Tag value - proprietary data 0xFE = 0xFE
App :INFO :Length of following data 0x45 = 0x45
App :INFO :Tag card identification data (Len=2)
DF 28
App :INFO :Length of card identification data = 0x42
App :INFO :Tag configuration ID (Must be 0x01) = 0x01
App :INFO :Configuration ID (Len=12)
00 01 A9 21 89 0A 6F 56 4A 23 9C 41
App :INFO :OEF ID (Len=2)
A9 21
App :INFO :Tag patch ID (Must be 0x02) = 0x02
App :INFO :Patch ID (Len=8)
00 00 00 00 00 00 00 01
App :INFO :Tag platform build ID1 (Must be 0x03) = 0x03
App :INFO :Platform build ID (Len=24)
4A 33 52 33 35 31 30 32 39 42 34 31 31 31 30 30
1A 08 FA 50 67 B5 F2 56
App :INFO :JCOP Platform ID = J3R351029B411100
App :INFO :Tag FIPS mode (Must be 0x05) = 0x05
App :INFO :FIPS mode var = 0x00
App :INFO :Tag pre-perso state (Must be 0x07) = 0x07
App :INFO :Bit mask of pre-perso state var = 0x00
App :INFO :Tag ROM ID (Must be 0x08) = 0x08
App :INFO :ROM ID (Len=8)
2E 5A D8 84 09 C9 BA DB
App :INFO :Status Word (SW) (Len=2)
90 00
App :INFO :se05x_GetInfoPlainApplet Example Success !!!...
App :WARN :#####################################################
App :INFO :cplc_data.IC_fabricator (Len=2)
47 90
App :INFO :cplc_data.IC_type1 (Len=2)
D3 21
App :INFO :cplc_data.Operating_system_identifier (Len=2)
47 00
App :INFO :cplc_data.Operating_system_release_date (Len=2)
00 00
App :INFO :cplc_data.Operating_system_release_level (Len=2)
00 00
App :INFO :cplc_data.IC_fabrication_date (Len=2)
41 50
App :INFO :cplc_data.IC_Serial_number (Len=4)
13 93 77 21
App :INFO :cplc_data.IC_Batch_identifier (Len=2)
05 57
App :INFO :cplc_data.IC_module_fabricator (Len=2)
00 00
App :INFO :cplc_data.IC_module_packaging_date (Len=2)
00 00
App :INFO :cplc_data.ICC_manufacturer (Len=2)
00 00
App :INFO :cplc_data.IC_embedding_date (Len=2)
00 00
App :INFO :cplc_data.IC_OS_initializer (Len=2)
07 27
App :INFO :cplc_data.IC_OS_initialization_date (Len=2)
6A 33
App :INFO :cplc_data.IC_OS_initialization_equipment (Len=4)
39 33 37 37
App :INFO :cplc_data.IC_personalizer (Len=2)
00 00
App :INFO :cplc_data.IC_personalization_date (Len=2)
00 00
App :INFO :cplc_data.IC_personalization_equipment_ID (Len=4)
00 00 00 00
App :INFO :cplc_data.SW (Len=2)
90 00
App :INFO :ex_sss Finished
Failed to open GPIO value file : No such file or directory
Failed to unexport GPIO : Invalid argument
Failed to unexport GPIO : Invalid argument


如前所述,GPIO 控制存在问题,因此消息的开头和结尾将显示与 GPIO 相关的错误,但这不会影响操作。

如果您看到如下所示的读取 uid(唯一标识符)的部分,则说明它工作正常。由于每个设备的 uid 值都不同,因此应根据所使用的开发板读取不同的值。

App :INFO :uid (Len=18)
04 00 50 01 6A 17 2A E0 43 2E 7C 04 27 6A D2 9C
1D 90

还会显示以下消息,表明主机与 SE050 之间的通信保护(消息认证和加密)未启用。


在批量生产期间,我们强烈建议更改中间件构建设置以启用保护功能。

sss :WARN :Communication channel is Plain.
sss :WARN :!!!Not recommended for production use.!!!


设置命令行工具 (ssscli)


ssscli 是一个基于 Python 的命令行工具,用于控制 SE05X。

文件 9.3.1.3。我们将按照树莓派的说明书进行设置。

以下说明将在 simw-top/pycli 中创建一个虚拟环境,但您可以根据自己的喜好进行更改。

cd simw-top/pycli
sudo apt-get install python3-pip python3-dev libffi-dev
sudo apt install python3-virtualenv
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
cd src
pip install --editable .

完成上述步骤后,尝试使用 ssscli 获取 uid。

(venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli $ ssscli connect se05x t1oi2c none
(venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli $ ssscli se05x uid
sss :INFO :atr (Len=35)
01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00
01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31
00 00 00
sss :WARN :Communication channel is Plain.
sss :WARN :!!!Not recommended for production use.!!!
040050016a172ae0432e7c04276ad29c1d90
Unique ID: 040050016a172ae0432e7c04276ad29c1d90
(venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli $ ssscli disconnect

得到的 ID 与之前执行 se05x_GetInfo 时得到的 ID 相同,表明该函数运行正常。


至此,Plug and Trust 中间件的设置完成。

具体使用示例将在另一篇文章中介绍。


=========================

我们目前无法 回复 此帖子“
评论”部分留下的评论。 对于由此造成的不便,我们深表歉意,但 在进行咨询时, 请 参考“ NXP 技术问题 - 如何联系我们 ( 日语博客 ) ” 。
(如果您已经是 恩智浦的 分销商或 与 恩智浦 有合作关系 ,您可以直接咨询您的代表。)

许多人对安全元件感兴趣,但或许他们觉得这些元件“使用起来有些困难”。

NXP 的安全元件SE05x附带名为 Plug and Trust Middleware 的中间件。该中间件包含一个专用于 SE05x 的 API,以及适用于 OpenSSL 和 mbed-TLS 等常用库的插件。因此,使用这些库的应用程序(例如 Eclipse Mosquitto ™等)几乎无需修改即可利用安全元件的功能。

该中间件的参考操作系统环境支持 Windows PC 和各种 NXP MCU/MPU(Linux),但也支持现成的 Raspberry Pi。

Windows 和 Linux 环境下均有命令行工具可用,使得验证各种操作变得容易。

本文介绍了如何在树莓派上设置 Plug and Trust 中间件。

(操作时间:20分钟)

安全技术聚焦日本博客
タグ(1)
評価なし
バージョン履歴
最終更新日:
‎03-30-2026 08:00 PM
更新者: