2014-09-09 2 views
2

Android에서 PKCS # 11 카드를 사용하여 SSL 클라이언트 인증을 설정하려고합니다. 나는 Certificate를 정상적으로 읽을 수는 있지만, 안타깝게도 개인 키를 추출 할 수 없으므로이를 사용하여 KeyStore를 만들 수 없습니다. 이후 나는 어떤 Lib을 공급 업체로부터 얻지 못했고 PKCS11의 SUN 구현을 사용할 수 없다. 안드로이드에 의해 지원되지 않기 때문에 서명 과정을 처리하는 방식을 변경하기 위해 SSLContext를 재정의해야한다고 생각한다. 카드를 통해 핸드 셰이크를 암호화하고 해독 할 수 있습니까?SSL 핸드 셰이크에 PKCS 11 토큰 사용

CK_RV C_GenerateKeyPair

CK_RV C_GenerateRandom

CK_RV C_Decrypt

CK_RV C_Sign

CK_RV :

또한 나는 다음과 같은 방법있어 전체 PKCS11 API를 사용할 수 없습니다 C_Encrypt

카드에 대한 로그인은 다른 소프트웨어에 의해 사전 처리되므로 이미 액세스 할 수 있습니다.

그래서 기본적으로 두 가지 질문 : 개인 키에 액세스 없이위한 인증을 처리 할 수있는 쉬운 방법이

  1. 있습니까?

  2. 카드를 통해 SSL 서명을 처리하기 위해 무엇을 대체해야합니까?

+1

PKCS # 11 카드를 사용하는 사용자 정의 KeyStoreSpi 구현은 어떻습니까? – Robert

+0

그게 내가 이해할 때까지 내가 시작한 일이다. 맞춤 키 스토어에서 나는 여전히 개인 키가 필요할 것이다. 그렇지 않습니까? – Morphyum

+0

그들이 구현하는 [SunPKCS11] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/security/pkcs11/SunPKCS11.java)의 출처를 살펴보십시오. KeyStore뿐만 아니라 PrivateKey의 PKCS11 버전 (카드 키에 대한 참조), Cipher 등이 포함됩니다. 이게 보이는 길이야. – Robert

답변

0

개인 키에 액세스하지 않고위한 인증을 처리하는 쉬운 방법이 있나요?

아니요 개인 키에 대한 액세스없이 인증을 처리하는 방법이 있습니다.

카드를 통해 SSL 서명을 처리하기 위해 무엇을 대체해야합니까?

Android는 반드시 어떤 형태의 PKCS # 11 처리기를 제공해야합니까? 그렇지 않다면 IAIK가 무료로 만들 수 있습니다. 저는 수년 전에 AIX 용으로 만들었습니다.

+0

"개인 키에 대한 액세스없이 인증을 처리 할 방법이 없습니다." 나는 개인 키에 액세스 할 수 있지만 API의 해독 및 서명 기능을 통해서만 처리 할 수 ​​있으므로 SSL 진행 상황에서 무언가를 무시해야합니다. – Morphyum

+0

"Android에서 PKCS # 11 처리기의 일부 양식을 제공해야합니다. 그렇지 않으면 IAIK가 무료로 만들 수 있습니다. 저는 수년 전에 AIX 용으로 만들었습니다. " 안드로이드는 PKCS11과 관련된 어떠한 이유도 제공하지 않습니다. IAIK 제공 업체는 래퍼 만 무료로 제공하지는 않습니다. JNI를 사용하여 래퍼가 수행하는 작업 (API 액세스)을 달성 한 이후로 필자는 필요 없습니다. – Morphyum

+0

자신이 모순됩니다. PKCS # 11에서는 카드에있는 개인 키 (사용 가능하지만 액세스 할 수 없음)를 사용할 수 있지만 첫 번째 문장에서는 개인 키에 액세스 할 수 없기 때문에 불가능하다고 말할 수 있습니다. – Robert

관련 문제