2013-05-20 4 views
-1

SSL 연결이 있습니다. 내가 feddler 또는 Charles 응용 프로그램을 사용하고 암호 해독 된 SSL 데이터를 볼 수 있습니다. 이 버그를 어떻게 막을 수 있습니까?신뢰할 수없는 인증서를 차단하는 방법?

업데이트 : 나는 Charles의 인증서를 가져 오지 않았고 내 안드로이드 장치는 뿌리이며 Proxy Droid 앱을 사용하고 신뢰할 수없는 앱을 허용했습니다. 이 조작 후 해독 된 데이터를 볼 수 있습니다. 이 버그를 차단하고 싶습니다 ...

업데이트 2 : 인증서를 확인하기 위해 EasyX509TrustManager.java (Apache) 클래스를 사용합니다. void checkServerTrusted를 볼 수 있습니다. "certificates [0] .checkValidity();"를 사용하면 - 인증서는 항상 유효하지만 "standardTrustManager.checkServerTrusted (certificates, authType);"를 사용하는 경우 " - 인증서가 유효 할 수 있습니다 (찰스 사용 안 함) 또는 유효하지 않습니다 (찰스 사용). "인증서 [0] .checkValidity();"없이 그것은 잘 작동하지만, 그것이 옳은지 나는 확신하지 못한다.

+0

차단하려는 항목 (및 이유)에 대해 좀 더 분명히 알 수 있습니까? 언급 한 두 가지 앱은 사용자가 직접 앱을 가리켜 야 할 때 사용자의 데이터를 해킹하는 데 사용할 수없는 웹 디버깅 프록시입니다. –

+0

앱입니까? 처음에 인증서 확인을 무시합니까? – Bruno

+0

예, 제 신청서입니다. 이 "해킹"을 차단하고 싶지만 모든 인증서를 허용하지는 않습니다. – monyag

답변

0

Charles 또는 Fiddler의 인증서를 가져 오지 않고 여전히 기기의 트래픽이 표시되는 경우 HTTPS를 제대로 사용하지 않는다는 의미입니다. HTTPS 연결을 보호하는 데 사용되는 인증서에서 적절한 체인 확인을 수행하도록 코드를 구성해야합니다. 대부분의 언어/프레임 워크 스택에서이 문제는 자동으로 발생하며이를 무시하는 방법을 벗어나야합니다.

어떤 언어/프레임 워크를 사용하고 있으며 어떤 요청을 보내고 있습니까?

이 있으면 장치에 디버거의 인증서가 가져 왔고, 기본적으로 대부분의 언어/프레임 워크는이를 신뢰할 수있는 것으로 간주합니다. 이를 방지하기 위해 코드가 통신을 진행하기 전에 서버에서 인증서 체인을 가장 직접 평가합니다. 이 기술을 "인증서 고정"이라고합니다.

+0

EasyX509TrustManager.java (apache) 클래스를 사용하여 인증서를 확인합니다. void checkServerTrusted를 볼 수 있습니다. "certificates [0] .checkValidity();"를 사용하면 - 인증서는 항상 유효하지만 "standardTrustManager.checkServerTrusted (certificates, authType);"를 사용하는 경우 " - 인증서가 유효 할 수 있습니다 (찰스 사용 안 함) 또는 유효하지 않습니다 (찰스 사용). 하지만 내 문제를 해결하지 못했다고 생각하니? – monyag

+0

"certificates [0] .checkValidity();"가 없습니다. 그것은 잘 작동하지만, 그것이 옳다면 나는 잘 모르겠습니다. – monyag

관련 문제