2011-11-21 1 views
0

저는 파벨이고 주로 자바 개발자입니다. 여기에 내 문제 :Java Sun PKCS # 11 공급자, HSM 토큰 LOGIN REQUIRED 플래그가 설정되지 않고 빈 별명 목록

Java Sun PKCS # 11 공급자를 사용하여 HSM 슬롯에 별칭을 나열하려고하는데 빈 목록이 나타납니다. 필자는 Windows XP/Server 플랫폼에서 Java 6 및 7을 사용해 보았습니다. Sun PKCS # 11 소스를 다운로드하여 검사 한 후 디버깅을 켜고 마침내 토큰에 LOGIN_REQUIRED 플래그가 설정되어 있지 않으므로 별칭 맵이 비어 있음을 발견했습니다. Sun PKCS # 11 구현에는 IF 구조가 있으므로이 플래그가 설정되지 않은 경우 PIN 바이트가 키 저장소에 제공 되어도 C_Login 호출이 없습니다! 이상하게 보입니다. PKCS # 11 프로 바이더의 Sun 구현의 버그인가, 그 배후에 일반적인 생각이있는 경우, 누군가 나를 설명 할 수 있습니까? 어쨌든 원본 소스를 "해킹"하여 제공된 PIN이있는 경우 LOGIN_REQUIRED 플래그가 설정되어 있는지 여부와 관계없이 토큰에 대한 로그인 작업을 수행하며 토큰에서 별칭을 얻었습니다!

답변

0

맞습니다. Sun PKCS # 11 공급자는 별칭을 찾을 때 공개적으로 (로그인하지 않고) 볼 수있는 모든 개인 키를 찾으려고 시도합니다. 그런 다음 개인 키에 대한 실행 가능한 인증서 체인을 찾습니다 (먼저 PKCS # 11 ID로, X509 발급자로).

실마리가 없지만 PKCS # 11 공급자가 암호화 프로세서가 포함 된 Sparc T1 프로세서 (Niagara)가 출시 된 시점에 생겼습니다. Sun/Oracle이 제공 한 호환성 데이터는 한번도 없었습니다. 주로 주력으로 T1이 Java 내에서 작동하는 것으로 추측합니다. 그러나 이것은 추측입니다. 물어볼 수있는 유일한 방법.

더 나은 제공 업체를 원할 경우 IAIK 소프트웨어 (하위/오픈 소스 구현이 Sun/Oracle에서 사용됨)를 살펴볼 수 있습니다. 그들은 지원 및 호환성 문을 제공합니다. 그러나 이것은 상용 제품입니다.

또는 패치를 수락 할 수 있습니다. 옵션에 로그인해야 사용할 수있는 개인 키가 PKCS # 11 FindObjects를 사용하여 조회됩니다. 버그 보고서를 제출하면 반드시 투표 할 것입니다.

관련 문제