日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PKCS#11 in OP-TEE

發布時間:2025/3/21 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PKCS#11 in OP-TEE 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

        • 1、PCCS#11簡介
        • 2、PKCS#11 specifications
        • 3、Achievements
        • 4、編譯和運行
        • 5、libckteec

1、PCCS#11簡介

PKCS#11標準定義了獨立于平臺的的密碼令牌API(如硬件安全模塊(HSM)和智能卡),并將API本身命名為“Cryptoki”(來自“加密令牌接口”,發音為“crypto-key” 。 但是“PKCS#11”通常用于指代API以及定義它的標準)。 API定義了最常用的加密對像類型(RSA密鑰,X.509證書,DES / 三重DES密鑰等)以及使用,創建/生成,修改和刪除這些對象所需的所有功能。

在密碼系統中,PKCS#11是公鑰加密標準(PKCS, Public-Key Cryptography Standards)中的一份子 ,由RSA實驗室(RSA Laboratories)發布[1],它為加密令牌定義了一組平臺無關的API ,如硬件安全模塊和智能卡。

由于沒有一個真正的標準加密令牌,這個API已經發展成為一個通用的加密令牌的抽象層。 PKCS#11 API定義最常用的加密對象類型( RSA密鑰,X.509證書,DES /三重DES密鑰等)和所有需要使用的功能,創建/生成,修改和刪除這些對象。注意:pkcs#11只提供了接口的定義, 不包括接口的實現,一般接口的實現是由設備提供商提供的,如usbkey的生產廠商會提供 符合PKCS#11接口標準的API的實現。這樣你只要通過接口調用API函數即可實現其功能

廢那么多話干啥!!! PKCS#11就是一個標準,一組API,主要應用場景是智能卡、HSM

2、PKCS#11 specifications

pkcs11-base-v2.40-errata01-os.
pkcs11-base-v3.0

一些標準package也都支持PKCS#11:

PackageDescriptionreserved
OpenSSHgithub.com/OpenSC/OpenSC/wiki/OpenSSH-and-smart-cards-PKCS%2311fossies.org/linux/openssh/ssh-pkcs11-helper.8
gnuTLSwww.gnutls.org/reference/gnutls-pkcs11.html
OpenSSLNo PKCS#11 engine in native OpenSSL. OpenSC proposes one (RedHat, Ubuntu, …)
pythonpypi.org/project/python-pkcs11/
AWSUse PKCS#11 for the cryptographic operations control and alternate user authentication
LUKS0pointer.net/blog/unlocking-luks2-volumes-with-tpm2-fido2-pkcs11-security-hardware-on-systemd-248.html
OP-TEE

OP-TEE & GPD TEE specifications

(1)、OP-TEE is an enclave that

  • 管理隔離的可信應用程序(PKCS#11 令牌不是唯一的安全服務)
  • 將安全對象作為安全操作的密鑰進行管理
  • 利用平臺功能(硬件加速,…)
  • 支持 Arm7/v8 Cortex-A CPU,正在開發 RiscV
  • 主要是 2 個條款 BSD 許可條款
  • https://github.com/OP-TEE
    2014年開始,2018年開始3.x.0系列,最新是3.12.0

(2)、OP-TEE 基于 GPD TEE API

  • 不向客戶端公開對象/加密 API 函數
  • 客戶端向受信任的應用程序打開/關閉會話。 并調用命令(4 個參數)
  • 2017 年,Linaro 對 HKG18-402 上展示的 pkcs11 TA 進行了調研

(3)、Regression tests: pkcs11 testsuite in OP-TEE xtest, hosted in optee_test.git

(4)、參考代碼:
TA:optee_os/ta/pkcs11/src/
CA:optee_client/libckteec/src/

3、Achievements

  • 插槽和令牌發現(Slot and token)
  • 用戶會話管理
  • 用戶認證(PIN & Linux ACL)
  • 對象(會話和永久)創建和生成(AES 密鑰和通用機密)
  • 密鑰推導(AES 加密)
  • 加密(AES:CBC & ECB)
  • MAC 計算(SHA*_HMAC)
  • 摘要 (SHA*)
  • 隨機數生成
  • 在 OP-TEE CI 中運行的自制 pkcs11 回歸測試

4、編譯和運行

For Qemu (default.xml)

make run CFG_PKCS11_TA=y

For qemu_v8.xml

make run CFG_PKCS11_TA=y CFG_USER_TA_TARGET_pkcs11=ta_arm64

運行:

sh> pkcs11-tool --list-token-slots

5、libckteec

  • 一個Cryptoki API函數對應一個pkcs11 TA command ID
  • 序列化客戶端參數以發送給 TA(屬性列表,傳遞的各種結構)
  • 反序列化從 TA 發回的數據(檢索對象屬性)
  • 不需要復雜的處理:一個精簡的 API 包裝器

在 3.13.0 之前,幾乎所有主要 API 函數都在 pkcs11 TA API支持

C_Initialize() C_Finalize() C_GetInfo() C_GetFunctionList() C_GetSlotList() C_GetSlotInfo() C_GetTokenInfo() C_GetMechanismList() C_GetMechanismInfo() C_InitToken() C_InitPIN() C_SetPIN() C_OpenSession() C_CloseSession() C_CloseAllSessions() C_GetSessionInfo() CK_C_Login() C_Login() C_Logout() C_CreateObject() C_CopyObject() C_DestroyObject() C_GetObjectSize() C_GetAttributeValue() C_SetAttributeValue() C_FindObjectsInit() C_FindObjects() C_FindObjectsFinal() C_EncryptInit() C_Encrypt() C_EncryptUpdate() C_EncryptFinal() C_DecryptInit() C_Decrypt() C_DecryptUpdate() C_DecryptFinal() C_DigestInit() C_Digest() C_DigestUpdate() C_DigestKey() C_DigestFinal() C_SignInit() C_Sign() C_SignUpdate() C_SignFinal() C_VerifyInit() C_Verify() C_VerifyUpdate() C_VerifyFinal() C_GenerateKey() C_GenerateKeyPair() C_WrapKey() C_UnwrapKey() C_DeriveKey() C_SeedRandom() C_GenerateRandom()

但仍有一點點還未支持

C_GetOperationState() C_SetOperationState() C_SignRecoverInit() C_SignRecover() C_VerifyRecoverInit() C_VerifyRecover() C_DigestEncryptUpdate() C_DecryptDigestUpdate() C_SignEncryptUpdate() C_DecryptVerifyUpdate() C_GetFunctionStatus() C_CancelFunction() C_WaitForSlotEvent()

總結

以上是生活随笔為你收集整理的PKCS#11 in OP-TEE的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。