■ 환경구성
- Android 7 버전 이상 기기 ( 실습은 Nox - Android 7.1 )
- 칼리 리눅스(kali-linux-2020.1a-installer-amd64)
- 이전 https://ndw29.tistory.com/12?category=847906 실습 과정을 통해 http/https 패킷은 정상적으로 잡히는 것을 확인할 수 있었다. 하지만 일부 webview, 브라우저 통신 시 보안 인증서 에러로 인해 통신이 제대로 잡히지 않았다. 이유는 버프 인증서의 기간이 구글의 인증서 허용 기간을 초과했기 때문이다. 이 문제점을 해결하기 위해 인증서 허용 기간 내 사용자 인증서를 생성하여 시스템 위치에 인증서를 설치하는 과정을 진행하려고 한다.
1. 칼리리눅스를 통해 사용자 인증서 생성
- 칼리 리눅스 터미널 접속 후 openssl 설치
- 폴더(certification) 생성 후 oenssl.cnf 파일을 생성한 폴더로 복사
- openssl.cnf 파일을 이용하여 개인키 생성 / Country Name만 KR로 입력하고 이후 입력은 임의로 입력해도 상관없다.
- 생성한 개인키 DER 형식으로 변환
- 생성한 개인키 pkcs8 형식으로 변환
- 디렉터리 내 5개의 파일이 생성된 것을 확인할 수 있다.
- ca.der 파일을 ca.pem 파일로 변환
- ca.pem 내 해시 값 추출(cefa3ed8)
- ca.pem 파일을 추출한 해시 값.0 형태로 변경
- 파일 관리자 메뉴를 통해 파일들이 존재하는 디렉터리로 이동한 뒤, PC로 파일 이동
- cmd 창 하나 열고, adb 명령어를 통해 기기 쉘 화면으로 접속한다. 위 과정에서 추출한 인증서 파일을 시스템 위치에 복사해야하는데, 시스템 디렉터리 기본 권한이 읽기 권한밖에 없어서 복사가 되지 않는다. 이럴 때는 mount 명령어를 사용하여 권한 변경을 하고 나서, 파일 복사를 하면 정상적으로 복사가 되는것을 확인할 수 있다.
- 기기 재부팅 후 [보안 - 신뢰할 수 있는 자격증명 - 시스템]에 인증서가 정상적으로 설치된것을 확인할 수 있다.
- 버프 프록시 키고나서 [ Proxy - Options - Import / export CA certificate - Import - Certificate and private key in DER format ] 클릭 후 생성한 인증서 파일을 넣어준다.
- 버프 프록시 설정 후 인터넷 브라우저 접속 시 인증서 에러 없이 정상적으로 통신이 이루어지는것을 확인할 수 있다.
'모바일 > 안드로이드' 카테고리의 다른 글
안드로이드 루팅(Magisk 앱) (0) | 2023.12.21 |
---|---|
Android 7 버전 이상 버프인증서 설치 -1 (1) | 2020.04.09 |