2014-10-21 2 views
2

나는 다음과 같은 코드를 사용하여 프로그래밍 안드로이드에 클라이언트 인증서를 설치하려고 해요 :대화 상자없이 Android 클라이언트 인증서를 프로그래밍 방식으로 설치 하시겠습니까?

Intent clientCertInstall = KeyChain.createInstallIntent(); 
clientCertInstall.putExtra(KeyChain.EXTRA_PKCS12, clientCert); 
clientCertInstall.putExtra(KeyChain.EXTRA_NAME, "Client Cert"); 
MyActivity.this.startActivityForResult(clientCertInstall, REGISTER_CLIENT_CERT); 

하면 설치 작업 출시, 안드로이드 요청이 비밀번호 없음 그냥 있지만 (인증서의 암호를 입력하는 사용자 클릭 작동 확인)

enter image description here

더 이상 내가 "KeyChain.EXTRA_NAME"매개 변수에 그에게 이름을 준 있지만 확인을 사용자가 인증서의 이름을 입력하기 위해 안드로이드에 의해 요청을 클릭 한 후.

enter image description here

는이 문제는, 그들이 인증서에 대해 이해하지 못하는 내 사용자를 귀찮게 그냥 내가 어떻게 이것을 달성 할 수 있습니다, 그것은 대화 상자없이 자동으로 설치하려면? 하나의 대화를 피하는 것이 매우 도움이 될 것입니다.

감사합니다,

답변

0

"by design"입니다. 앱이 사용자 승인없이 인증서를 설치하도록 허용하면 온라인 뱅킹과 같은 SSL 보안 통신 채널에 대한 중간자 (man-in-the-middle) 공격의 가능성이 열리게됩니다. 즉, 대화 상자에는 아무 것도 알려주지 않으며 사용자가 말한 것과 관계없이 의심 할 여지없이 OK를 누를 것입니다.