2017-04-05 8 views
1

HSM企業は、通常、HSMと連携するPKCS#11 APIを提供していますか、または独自のCryptographic APIを提供していますか?PKCS11またはCryptographic API?

それぞれの場合、Linuxアプリケーション(OpenSSLを使用して、サードパーティのライブラリ用にopensslエンジンを呼び出す方法と同じように)とWindowsアプリケーションに統合する方法はありますか?

何が一般的に好ましいですか? PKCS#11 APIまたは汎用API?

2つのメリットとデメリットは何ですか?

HSMベンダーは、PKCS#11 APIとC言語で書かれた暗号APIの両方を提供できることを教えてくれました。私はこの言葉を理解しようとしています。

簡単な概要を私はさらに調査するでしょう:)

感謝を!

+0

また、HSMのタイプにもよりますが、ほとんどの汎用HSMはPKCS#11をサポートしていますが、支払いなどの専用HSMはそうでない可能性があります。 – zaph

答えて

1

PKCS#11(ウィキから定義)

PKCS#11標準は、暗号化、ハードウェアセキュリティモジュール(HSM)と、スマートカードなどのトークン、および名前にプラットフォームに依存しないAPIを定義API自体は "暗号トークンインターフェイス"から "暗号キー"と発音されますが、 "PKCS#11"はAPIとそれを定義する標準を参照するためによく使用されます。

これは、一般的にHSMの製造元が使用する標準APIです。

このAPIを実装するかどうかは、HSMベンダーによって異なります。実装していれば、(サポートしていれば)どのプラットフォームの標準PKCS#11 APIや、ソフトウェアとそのハードウェアのミドルウェアとして機能するサードパーティのライブラリを使用して、ハードウェアと通信できるはずです。彼らはそれを実装していない場合は、通常、プラットフォームに固有の独自のAPIを作成し、デバイスとのみ通信します。これにより、APIを使用してハードウェア(この場合はHSM)と通信する必要があります。

したがって、標準のPKCS#11 APIを使用した場合、将来別のHSMベンダーと共同作業する場合、同じコードを使用して新しいHSMと通信できます(PKCS#11はスタンダード)。しかし、独自のAPIを使用し、新しいHSMベンダーと通信する場合、APIはデバイスでのみ機能するため、コードを再利用することはできません。

1

一般に、そのようなライブラリも提供する他の製品と競合するには、PKCS#11ライブラリが提供されます。 PKCS#11は、ソフトウェアから使用できる共通のインタフェースです。 OpenSSL PKCS#11エンジンやJava言語のPKCS#11セキュリティプロバイダなど、PKCS#11トークン標準の使用を可能にする多くのソフトウェアパッケージがあります。

PKCS#11は拡張可能ですが、HSMのすべての機能を必ずサポートできるわけではありません。 PKCS#11は、比較的低レベルのインタフェースです。特定のユースケースに合わせて独自のAPIを使用する方が理にかなっていることがあります。暗号化されたプロトコルの多くの部分が保護されたデバイス上で実行されるほどよいでしょう。

どちらが優れているかは、提供可能な暗号APIだけでなく、使用例や脅威モデルに完全に依存します。

関連する問題