HSMA에 RSAPrivateKey를 래핑하여 키 보관을 위해 Microsoft CA로 전송할 수 있어야하며 어떤 접근 방식을 사용해야할지 모르겠습니다.HSM에 Microsoft RSA 키 BLOB를 래핑하는 방법
문제는 Microsoft RSA 키 형식이 독점적이며 내 회사에서 사용하는 pkcs11 또는 nCipher HSM에서 지원하지 않는 것입니다. 이는 HSM에서 키 쌍을 생성하는 간단한 것입니다 단지 RSAPrivateKey 인 경우
http://msdn.microsoft.com/en-us/library/cc250013.aspx
,의 HSM의 포장 키를로드 RSAPrivateKey 랩과 랩 된 열쇠 바이트를 추출합니다. 분명히이 주요 BLOB 형식이 지원되지 않기 때문에 나는 다른 접근법을 취할 필요가있다.
내 첫 번째 생각은 RSAPrivateKey를 확장하고 getEncoded() 메서드를 재정 의하여이 독점 키 형식을 반환하는 것입니다. Java에서 pkcs11에 고급 API를 제공하는 IAIK pkcs11 랩퍼를 사용하고 있으며 벤더 정의 키 유형을 작성하기위한 몇 가지 지원이 있습니다. 그러나 공급 업체 정의 키용 인터페이스는 클라이언트 코드에서 기본 제공 키 유형을 확장하는 편의를 위해서만 존재하며 실제로 HSM에서 키 인코딩을 수정할 수는 없습니다.
두 번째 아이디어는 pkcs11 데이터 개체를 사용하여 간단히 키 블로 브로로 처리 한 다음 래핑 키를 사용하여이를 암호화하는 것입니다. 여기서 같은 문제는 개인 키 바이트를 데이터 객체에 복사하기 위해 애플리케이션 키로 개인 키 바이트를 추출한 다음 거기에서 데이터 객체를 만들어야한다는 것입니다. HSM의 키.
나는이 접근법에 대한 대안을 찾고 있습니까 아니면 pkcs11에 몇 가지 기능이 있습니다. 모든 통찰력은 인정 될 것이다.
감사합니다. 해당 공급 업체에 연락합니다. 그 동안 우리는 HSM 내 nvram을 사용하여 몇 가지 솔루션을 탐색 할 수 있습니다. 해결책을 찾으면 내 질문을 업데이트 할 것입니다. – user1991762
@ user1991762 죄송합니다.하지만 NVRAM으로 문제가 해결되지는 않습니다. –
키를 민감하지 않은 것으로 생성하여 호스트에서 감싸고 C_SetAttributeValues를 사용하여 민감하게 만들 수 있습니다. 세션 키로 생성하고 민감한 토큰 키로 만 만드는 것이 이상적이지만 nCipher의 PKCS # 11 구현은 여전히 허용하지 않습니다. CodeSafe를 사용하여 HSM 내부의 사용자 지정 배치를 이동하는 데 도움이되는 "친절한 컨설턴트, 기침"이 있으면 더 안전하게 할 수 있습니다. – armb