2017-03-22 11 views
0

AndroidとPCの両方でcryptokiライブラリとしてSoftHSMv2 を使用しています。 Androidデバイスを使用してUSBトークンを置き換え、Androidアプリデータに格納されている証明書と鍵ペアでPCに署名したい
AndroidからPCの証明書ストアに証明書をインポートするだけで、PKCS#11が署名を実行するのに十分ですか?
Androidやその他のデータにデータをプッシュするためにPKCS#11ライブラリを変更する必要はありますか?Androidのアプリデータに秘密鍵で署名する方法

+0

_SoftHSMは、暗号ライブラリ、BotanまたはOpenSSL_に依存しているようです。これはAndroidで動作しますか? – pedrofb

+0

はい、そうです。私はAndroid上にソフトトークンを持っています。 –

答えて

2

対象のPCのオペレーティングシステムを指定していないため、Windowsの1つと仮定しています。

Windows自体はPKCS#11標準をサポートしておらず、CryptoAPIという独自のインターフェイスを備えています。したがって、Microsoft Outlookなどのプログラムで署名操作を実行するには、Cryptographic Service Provider(CSP) またはKey Storage Provider(KSP)を実装する必要があります。または、あなたのアンドロイドデバイスがシステム内でスマートカードとして表現している場合は、Smart Card Minidriverを実装できます。回路図は次のようになります。

Windows -> YOUR_CSP (or YOUR_KSP) -> pkcs11 -> anroid device 

Windows -> Microsoft Base Smart Card Crypto Provider 
(or Microsoft Smart Card Key Storage Provider) -> SCMinidriver -> pkcs11 ->android device 

HereあなたはSDKを入手できます。

また、すべてのプログラムがKSP(CSPのみ)をサポートしているわけではありません。

Windows 7以降では、コード署名証明書付きCSP dll must be signedが必要です。

+0

秘密鍵はAndroidデバイスからエクスポートできないため、PKCS#11がデータをデバイスにプッシュする方法を教えてください。プッシュデータまたは偽のスロット用に独自のPKCS#11ライブラリを作成できますか? –

+0

はい、できます。次に例を示します。CryptSignHash(data_in、data_out) - > your_csp.CPSignHash(data_in、data_out){pkcs11.C_SignInit(); pkcs11.C_Sign(data_in、data_out); } – plstryagain

関連する問題