簡體   English   中英

如何在Android上安全地存儲模數,公共指數和私有指數?

[英]How to store modulus, public exponent and private exponent securely on Android?

我已經給出了模數,公共指數和私有指數,我需要在Android上安全地存儲這些值。 我怎樣才能做到這一點?

大多數示例都是在不獲取n,d,e參數的情況下創建公鑰和私鑰。 我已經給出了這些n,e,d值,並希望安全地存儲它們,然后使用這些值來創建我的ICC公鑰證書,並簽署我的動態數據。

我怎樣才能做到這一點?

使用密鑰庫系統

setEntry()允許您存儲實現KeyStore.Entry的任何對象。 如果需要存儲不符合默認值的數據,則可以簡單地實現自己的子類型。 (雖然有RSAPrivateCrtKey ,你可以存儲在PrivateKeyEntry中 。)

也許,Android設備上唯一安全的存儲就是Android Keystore System。

關鍵材料永遠不會進入申請流程。

密鑰材料可以綁定到安全硬件。

(見http://developer.android.com/training/articles/keystore.html

問題在於,您可以在其中存儲的內容受到限制。 KeyChain類允許您存儲私鑰和證書鏈。 同時,密鑰庫提供程序支持以下類型的條目:PrivateKeyEntry,SecretKeyEntry,TrustedCertificateEntry根據文檔。 實際上,嘗試放置SecretKeyEntry實例會導致異常。

我建議在密鑰庫中放兩個條目。

  1. KeyStore.PrivateKeyEntry你可以實例化給定一個PrivateKey(使用RSAPrivateKeySpec和KeyFactory從模數和私有指數生成)
  2. 帶有自簽名證書的KeyStore.TrustedCertificateEntry,您必須使用java keytool預生成並在運行時從資產加載。 根據定義,它不應該是秘密的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM