SSL 및 보안 전반에 관해서는 완전히 초보자입니다. 나는 (BTW,이 아파치 HttpClient를를 사용하는) 사용자 정의 SSL 인증서를 신뢰위한 키 스토어를로드하는 방법에 대한 다음과 같은 예를 발견내 키 스토어의 비밀번호를 앱에서 하드 코드해도 괜찮습니까?
private SSLSocketFactory newSslSocketFactory() {
try {
KeyStore trusted = KeyStore.getInstance("BKS");
InputStream in = context.getResources().openRawResource(R.raw.mystore);
try {
trusted.load(in, "ez24get".toCharArray());
} finally {
in.close();
}
return new SSLSocketFactory(trusted);
} catch (Exception e) {
throw new AssertionError(e);
}
}
난 당신이 키 스토어를 수정하기 위해 장치에 액세스해야하는 것 같아요, 하지만 여전히 ... 키 저장소 비밀번호 ("ez24get")가 코드에서 쉽게 사용할 수 있다는 사실에 문제가 있습니까? 이 코드가 포함 된 응용 프로그램을 손상시키는 데는 무엇이 필요합니까?
나는 그것이 냄새라고 말하고 싶지만 나는 안드로이드 개발자가 아니다. 어떤 다른 선택 사항을 저장해야합니까? 해시 될 수 있습니까? – alex
나는 몰라. 나는 어딘가에 그것을 저장하지 않고 응용 프로그램에 암호를 얻을 수있는 방법을 생각하려고 노력하고있어. 암호화 된 패키지를 제공하면 코드에 열쇠가 있어야하므로 같은 문제가 발생합니다. Android에는 BlackBerry처럼 하드웨어 기반 암호화가 내장되어 있지 않습니다. 앱이 처음 시작될 때 다운로드하면 앱이 실제로 다른 앱이 아닌 비밀번호를 요청한다는 것을 확인할 수있는 방법이 필요합니다. 일반적으로 이런 종류의 작업은 SSL로 수행되며 키 스토어에 액세스 할 수 없다면 사용할 수 없습니다. :-P 남자, 나는 어떻게 이런 일들을 알아 내는지 모르겠다. –