이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 16115|회답: 2

Android 7.0 미확인 및 유효하지 않은 인증서 이후의 패킷을 포착하는 솔루션

[링크 복사]
게시됨 2019. 3. 18. 오후 9:38:06 | | | |
배경

패킷 캡처 소프트웨어(예로 Charles를 예로 들면)를 사용해 앱의 https 요청을 캡처할 때, 안드로이드와 Charles 모두 인증서를 올바르게 설치했지만 패킷 캡처가 실패하고 오류가 보고됩니다:

클라이언트 SSL 핸드셰이크 실패: 인증서 처리 중 알 수 없는 문제가 발생했습니다 (certificate_unknown)



원인

Android7.0 이후로는 기본적으로 시스템에 추가된 CA 인증서는 신뢰받지 않습니다:

Android Nougat부터 시작해 Android 생태계 전반에 걸쳐 보다 일관되고 안전한 경험을 제공하기 위해, 호환 기기는 AOSP에서 유지하는 표준화된 시스템 CA만을 신뢰합니다 .


문서 링크:https://android-developers.googl ... ed-certificate.html

즉, SDK24 이상 기반 앱의 경우, 휴대폰에 패킷 캡처 도구 인증서가 설치되어 있어도 https 요청을 캡처할 수 없습니다.

용액

1. 공식 해결책 (코드 수정 필요)

공식 문서:https://developer.android.google ... ecurity-config.html
상세한 시연:https://blog.csdn.net/mrxiagc/article/details/75329629

2. 패킷 캡처 소프트웨어의 인증서를 시스템 인증서로 설치합니다(ROOT 필요)

시스템 인증서 디렉터리: /system/etc/security/cacerts/

각 인증서의 명명 규칙은 다음과 같습니다:
<Certificate_Hash>. <Number>

파일 이름은 해시 값이고, 접미사는 숫자입니다.

파일 이름은 다음 명령어로 계산할 수 있습니다:


예를 들어, 두 인증서에서 계산된 해시 값이 같다면, 한 인증서의 접미사 번호를 0으로 설정할 수 있고, 다른 인증서의 접미사 번호를 1로 설정할 수 있습니다

단계:

위 명령어를 사용하여 패킷 캡처 소프트웨어 인증서의 해시 값을 계산하고, 이름을 바꾼 후 시스템 인증서 디렉터리에 복사하세요



이 시점에서 설정 - > 보안 - > 암호화 및 자격 증명 - > 신뢰할 수 있는 자격 증명의 시스템 탭에서 새로 추가된 인증서를 볼 수 있을 것입니다







이전의:프론트엔드 자바스크립트 면접 기술
다음:랜딩 페이지에서 인증 코드 검증을 구현하는 방법?????
게시됨 2019. 3. 19. 오전 9:13:25 |
소유자분께 여쭤봐도 될까요? 일부 애플리케이션과 APP가 프록시를 통해 패킷을 캡처하지 못할 수 있는데, 어떻게 해결해야 할지 모르겠습니다.
게시됨 2019. 9. 6. 오후 10:55:58 |
사장님을 봐
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com