日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用ID2-SE將設備接入自建的物聯網系統

本文介紹了設備如何通過更安全的身份認證方式(ID2)連接到您自建的物聯網系統(設備管理平臺)。適用于集成了ID2安全芯片的設備。

1. 術語

  1. Soft-KM(Key Management)密鑰管理,由阿里提供的軟件安全沙箱,基于軟件加固和虛擬化技術提供對密鑰(IoT ID2)的安全保護。

  2. OSA(Operation System Abstractor Layer)操作系統抽象層,定義內存申請和釋放、日志打印、系統時間、網絡通信等接口,非遵循POSIX標準的OS,需重新適配這些接口。

  3. HAL(Hardware Abstractor Layer)硬件抽象層,根據設備硬件特性,完成對加解密算法、設備唯一ID、密鑰管理和數據安全存儲的接口適配。

  4. TLS(Transport Layer Security)安全傳輸層協議, 用于兩個通信實體之間,保護通信數據的私密性和完整性。

  5. IoT(Internet of things)物聯網,基于互聯網實現萬物互聯。

  6. LP(Link Platform)阿里云物聯網平臺,提供物聯網的設備管理。

  7. SE(Secure Element)安全元件,也稱安全芯片,單獨的防篡改硬件,專門用于存儲和數據加密。

  8. AT指令,終端設備和外設模塊之間的連接和通信的指令。

  9. ID2安全芯片,或ID2-SE芯片,在安全芯片生產時燒錄ID2密鑰,基于安全芯片的物理防護特性保護ID2密鑰的存儲和運行安全,通過SE AT指令提供ID2密鑰的基礎運算。

2. 產品架構

image.png
  1. ID2控制中心:

  • ID2的Web控制臺,提供對ID2產線灌裝、ID2產品和配額申請、以及ID2使用統計的管理。

  1. ID2服務中心:

    • ID2在云端的應用,提供ID2的各種安全能力,包括ID2密鑰安全分發、設備認證、基于ID2的安全連接協議等;同時,提供各種能力的云端接口,支持業務平臺的二次開發,支持不同的安全業務需求和場景。

  2. ID2 Client SDK:

  • ID2在設備端的功能組件和軟件開發框架,可支持不同操作系統和不同硬件,為IoT設備提供基于ID2的端到端的設備認證、數據加解密等各種安全能力。

3. ID2接入流程

3.1 概述:

image.png
  • 客戶自建服務的方式,ID2通過云端和設備端接口的方式,提供基于ID2的設備認證和會話密鑰加密下發,應用數據通過下發的會話密鑰進行加密傳輸。

  • ID2對接步驟如下:

image.png

3.2 購買ID2:

  1. 購買ID2安全元器件:

image.png

3.3 創建產品:

  1. 登錄產品控制臺,在左側導航欄,選擇常規>集成與部署 > IoT設備身份認證,單擊獨立使用(三方物聯網平臺)卡片的開始接入按鈕。

image.png

  1. 配置產品頁面創建新產品&分配ID2授權,然后單擊下一步按鈕。

  • 選擇產品:請選擇創建新產品,并輸入產品名稱。

  • ID2有效期:請選擇1年、3年、或5年。

  • 分配ID2授權數量:填寫實際的設備數量,不超過賬號下可分配ID2的數量。

image.png

3.4 選擇設備認證算法:

IoT設備身份認證支持國際算法(AES-128、AES-192、AES-256)和國密算法(SM1-128、SM2-256、SM4-128),能滿足企業不同安全等級的需求。

說明

國密算法SM1需要配合ID2安全芯片使用,SM2用于業務數據完整性校驗和加密。

創建的ID2產品默認選擇的設備認證算法是AES-128;如需選擇其他設備認證算法,請按如下步驟操作:

  • 產品控制臺,選擇常規>集成與部署 > IoT設備身份認證,單擊獨立使用(三方物聯網平臺)卡片的開始接入按鈕。

  • 配置產品頁面獲取配置信息,然后單擊下一步按鈕。

  • 選擇產品:請選擇現有產品,在下拉框中勾選產品名稱。

  • 獲取配置信息頁面,單擊設備認證算法后的更換按鈕,查看支持的密鑰類型(如SM4-128),并確認。

image.png
  • 獲取配置信息頁面,記錄下ProductKey、ProductSecret

  • ProductKey:設備所屬產品的ProductKey。

  • ProductSecret:由IoT設備身份認證頒發的產品密鑰,與 ProductKey 成對出現。

3.5 集成云端SDK

3.5.1 阿里云賬號的AccessKey

  • AccessKey是調用阿里云API的身份憑證,請參見獲取AccessKey

  • 需要注意的是AccessKey的歸屬賬號必須與創建產品時的賬號保持一致。

3.5.2 下載云端SDK

  1. 集成云端SDK頁面,單擊點擊下載右側的圖標,獲取云端SDK的下載地址。然后在設備端執行wget命令獲取設備端SDK。

wget https://id2-schip-online.oss-cn-shanghai.aliyuncs.com/static_resources/id2_server_sdk/ID2_Server_SDK.tar
  1. 在云端環境執行命令tar -xvf ID2_Server_SDK.tar 完成解壓,執行命令cd <解壓SDK后的目錄>。設備端SDK的目錄說明見表格內容:

目錄/文件

說明

demos

ID2云端的示例代碼

lib

ID2云端的Jar包

3.5.3 集成云端SDK

  1. 添加Maven項目依賴,引入阿里云Java SDK公共包。

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.6</version>
</dependency>
  1. 導入云端SDK中的lib/aliyun-java-sdk-id2-1.1.4.jar到項目工程中,初始化云端SDK。

public static String ACCESS_KEY = null;
public static String ACCESS_SECRET = null;

public static String REGION_ID = "cn-shanghai";
public static String END_POINT = "id2." + REGION_ID + ".aliyuncs.com";

// Load ACCESS_KEY and ACCESS_SECRET From Config File
loadConfigProperties("xxx.conf");

IClientProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY, ACCESS_SECRET);
DefaultProfile.addEndpoint(REGION_ID, PRODUCT_CODE, END_POINT);
client = new DefaultAcsClient(profile);
  1. 發起調用,ID2云端SDK為每個API封裝了一個類,命名為${API名稱}+"Request",如VerifyRequest,用于API的調用請求,ID2云端API列表請參考服務端API

  • ID2空發

OtpGetId2Request request = new OtpGetId2Request();
request.setDeviceAuthCode(authCode);
request.setApiVersion(1.1.2);

OtpGetId2Response response = client.getAcsResponse(request);
  • 獲取ID2認證挑戰字

GetServerRandomRequest request = new GetServerRandomRequest();
request.setId2(id2Id);
request.setApiVersion(1.1.2);

GetServerRandomResponse response = client.getAcsResponse(request);
System.out.println("GetServerRadom requestId:" + response.getRequestId());
  • ID2設備認證和業務密鑰加密

VerifyAndEncryptRequest request = new VerifyAndEncryptRequest();
request.setApiVersion(1.1.2);
request.setProductKey(productKey);
request.setId2(id2Id);
request.setAuthCode(authCode);
request.setData(keyInfo);

VerifyAndEncryptResponse response = client.getAcsResponse(request);
System.out.println("VerifyAndEncrypt requestId:" + response.getRequestId());
  1. 應用集成ID2云端SDK的示例代碼,請參考demos/ID2SPDemo

3.6 集成設備端SDK:

3.6.1 ID2設備端SDK框架:

image.png
  1. IoT Application:

  • 設備端的應用程序,負責業務數據處理,包括設備認證、設備建連和數據收發等。

  1. IoT Linkkit:

    • 阿里云物聯網平臺的接入SDK,提供IoT設備安全連接到阿里云IoT平臺,提供數據連云的安全通道,以及業務數據的管理。

  2. ID2 Client SDK:

  • ID2:IoT設備認證的對外接口,上層應用/協議基于此接口進行開發。

  • KM:密鑰管理模塊,支持不同形式的載體:

  • Soft-KM:軟件沙箱,基于軟件加固和虛擬化技術提供對ID2密鑰的安全保護。

    • SE:安全芯片,基于物理防護機制,提供對ID2密鑰的安全保護,通過AT指令對設備提供ID2的運算。

  • Crypto:提供統一的加解密算法接口。

  • OSA:操作系統適配接口,廠商需根據使用的OS,重新進行接口適配。

  • HAL:硬件適配接口,提供算法庫和Soft-KM的適配接口,廠商需根據選擇的硬件平臺,重新進行接口適配。

3.6.2 下載設備端SDK:

  1. ID2 SDK下載:

  1. ID2 Release Package目錄:

目錄/文件

說明

modules

核心模塊代碼

include

頭文件

app

測試代碼,可用于集成調試

sample

ID2的示例代碼

doc

文檔

make.settings

ID2 SDK統一配置文件:

  • CONFIG_LS_ID2_DEBUG:調試開關

  • CONFIG_LS_ID2_ROT_TYPE:ID2安全載體,SE-安全芯片

  • CONFIG_LS_ID2_KEY_TYPE:ID2的密鑰類型

make.rules

編譯系統配置文件,可配置編譯工具鏈和編譯參數

makefile

編譯腳本

3.6.3 集成設備端SDK:

image.png
  1. 設備硬件及系統層集成, 詳情請參考ID2安全Agent適配接口

  • OSA接口適配:實現src/osa/ls_osa.c中的接口。

  • IROT HAL接口適配:

    • 進入modules/irot/se目錄。

      • 在chipset目錄, 創建新增安全芯片的目錄(如fm1280),復制template中全部文件到新增的目錄,并修改makefile指定到新建的目錄。

      • 打開chipset/fm1280/se_driver/se_driver.c, 適配SE芯片驅動接口:

  • se_open_session - SE初始化

    • se_transmit - 發送APDU指令,并獲取response。

      • se_close_session - SE關閉。

  1. 設備應用層集成,詳情請參考設備端API

  • 設備應用首先調用ID2的初始化函數,完成設備端SDK的初始化。

{
    int ret;

     ret = id2_client_init();
     if (ret != IROT_SUCCESS) {
        ls_osa_print("id2 client init fail, %d\n", ret);
        return -1;
     }
}
  • 獲取設備端的ID2 ID。

{
    int ret;

     ret = id2_client_init();
     if (ret != IROT_SUCCESS) {
        ls_osa_print("id2 client init fail, %d\n", ret);
        return -1;
     }
}
  • ID2認證挑戰字的網絡請求和響應。

{
    int ret;

     ret = id2_client_init();
     if (ret != IROT_SUCCESS) {
        ls_osa_print("id2 client init fail, %d\n", ret);
        return -1;
     }
}
  • 獲取設備端的ID2認證碼。

{
    int ret;

     ret = id2_client_init();
     if (ret != IROT_SUCCESS) {
        ls_osa_print("id2 client init fail, %d\n", ret);
        return -1;
     }
}
  • 設備端認證和數據加密的網絡請求和響應。

    • cipherData:ID2云端下發的加密數據

{
    int ret;

     ret = id2_client_init();
     if (ret != IROT_SUCCESS) {
        ls_osa_print("id2 client init fail, %d\n", ret);
        return -1;
     }
}
  • 解密ID2云端加密下發的數據。

{
    int ret;

     ret = id2_client_init();
     if (ret != IROT_SUCCESS) {
        ls_osa_print("id2 client init fail, %d\n", ret);
        return -1;
     }
}
  1. 設備端SDK的編譯:

  • 在ID2 SDK的根目錄,執行命令vi ./make.settings打開文件:

    • 修改CONFIG_LS_ID2_ROT_TYPE的值為SE

    • 修改CONFIG_LS_ID2_KEY_TYPE的值,同ID2產品選擇的認證算法保持相同

image.png
  • 執行命令“make clean & make plat=xxx”進行編譯

    • Linux x86_64默認使用系統中的GCC作為編譯工具,且默認指定“plat=x86_64”參數

    • 如要編譯其他架構,如armhf,在make.rules中配置編譯工具,運行編譯命令“make clean & make plat=armhf”

image.png

3.7 業務數據加密

  1. 運行設備端自有的應用和自建的SPDemo Server,進行ID2認證和加密,以及業務數據加密的調試。

  2. 查看設備狀態:

  • 登錄產品控制臺,在左側導航欄,選擇資產>設備,查看設備狀態為正常,安全狀態為安全。

image.png