2017-04-05 7 views
1

HSM 회사는 일반적으로 HSM과 함께 작동하는 PKCS # 11 API를 제공합니까? 아니면 자체 암호화 API 만 제공합니까?PKCS11 또는 Cryptographic API?

각각의 경우 Linux 응용 프로그램 (OpenSSL을 사용하여 타사 라이브러리에 대한 openssl 엔진을 호출하는 방법과 같은 방법)과 Windows 응용 프로그램에 통합하는 방법은 무엇입니까?

일반적으로 무엇이 선호됩니까? PKCS # 11 API 또는 일반 API?

두 가지의 장단점은 무엇입니까?

HSM 공급 업체는 PKCS # 11 API와 C 언어로 작성된 암호화 API를 모두 제공 할 수 있다고 말했습니다. 나는이 용어와 그러므로이 질문을 이해하려고 노력하고있다!

간단한 개요 나 더 연구 할 것입니다 :)

많은 감사를!

+0

또한 HSM의 유형에 따라 다르지만 대부분의 범용 HSM은 PKCS # 11을 지원하지만 지급과 같은 특수 용도 HSM은 그렇지 않을 수 있습니다. – zaph

답변

1

PKCS # 11 (위키에서 정의) 하드웨어 보안 모듈 (HSM), 스마트 카드, 이름이 표준은 암호화 토큰에 플랫폼 독립적 인 API를 정의 # 11

는 PKCS, API 자체는 "암호화 토큰 인터페이스"의 "암호화 토큰 인터페이스"에서 "Cryptoki"이지만 "PKCS # 11"은 종종 API 및이를 정의하는 표준을 가리키는 데 사용됩니다.

이렇게 일반적으로 모든 HSM 제조업체가 사용하는 표준 API입니다.

이 API를 구현하면 완전히 HSM 공급 업체에 따라 달라집니다. 개발자가 구현 한 경우 모든 플랫폼 (지원하는 경우)의 표준 PKCS # 11 API 또는 소프트웨어와 하드웨어 간의 미들웨어 역할을 할 수있는 제 3 자 라이브러리를 사용하여 하드웨어와 통신 할 수 있어야합니다. 개발자가 구현하지 않으면 대개 플랫폼에 고유하고 자체 장치와 통신 할 수있는 자체 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뿐만 아니라 사용 사례 및 위협 모델에 전적으로 의존합니다.