본문 바로가기

Flutter2

[iOS] 플러터(Flutter) HTTPS 프록시 연결 지난 글에서 플러터(Flutter) 앱의 프록시 설정에 대해서 다룬 바 있다. 하지만 해당 설정 만으로는 HTTPS 패킷을 캡처할 때 오류가 발생한다. [iOS] 플러터(Flutter) 앱 프록시 설정 Flutter 앱은 시스템 프록시를 인식하지 않으며 자체 인증서 저장소를 사용하기 때문에 시스템 내 Wi-Fi 설정에서 프록시를 설정해도 의미가 없고 설정을 통해 인증서를 설치해도 유효성이 검증되 noasand.tistory.com 플러터가 사용하는 다트는 시스템 내 CA 인증서 저장소 대신 앱 자체 인증서 저장소를 사용하기 때문에 프레임워크 내 SSL 인증서 검증을 실시하는 함수에 대한 후킹을 통해 검증 절차 우회가 필요하다. 프록시 설정 이후 HTTPS 통신 발생 시 발생하는 'SSL handshake.. 2022. 2. 7.
[iOS] 플러터(Flutter) 앱 프록시 설정 Flutter 앱은 시스템 프록시를 인식하지 않으며 자체 인증서 저장소를 사용하기 때문에 시스템 내 Wi-Fi 설정에서 프록시를 설정해도 의미가 없고 설정을 통해 인증서를 설치해도 유효성이 검증되지 않는다. 따라서 패킷 캡처를 위해선 트래픽을 따로 자체 프록시 서버로 리다이렉션 시키는 과정과 인증서의 유효성 검증 과정을 우회하는 절차가 필요하다. 먼저 트래픽 리다이렉션은 'iptables'를 활용하면 수월하지만 iOS 시스템의 커널은 이를 지원하지 않는다. 때문에 iOS 시스템의 트래픽이 모두 중간 노드를 거치게 하는 과정이 추가로 필요하다. 'iptables' 기능이 있는 중간 서버를 만들고 이 서버에 VPN을 구성하여 iOS 장치를 연결하면 해당 서버의 모든 트래픽을 프록시 서버로 리다이렉트 시켜 패.. 2022. 1. 29.