Apple 공식 API를 재구현하지 않는 조건에서, iOS 내장 SSL Pinning을 래핑해 고객이 호스트·인증서만 등록해도 MITM을 막도록 설계 — 4모듈 파이프라인 구성, 공개키 빌드 타임 고정에 따른 재빌드 필요는 안내에 명시
기간
2025.09 – 2025.12 · 4개월
소속
스틸리언
수행 인원
본인 주도 (일부 구현·가이드 팀 협업)
본인 역할
Premium iOS의 SSL Pinning 기능을 설계 주도했습니다. iOS 내장 SSL Pinning을 래핑하는 방식을 결정하고, 정적 라이브러리(런타임 검증)·빌드 후처리·macOS 데스크톱 도구·재서명 자동화 플러그인 네 모듈이 맞물리는 구조를 잡았습니다. 구현과 가이드 일부는 팀과 함께 했습니다.
정량 임팩트
Premium iOS 릴리즈에 SSL Pinning 기능을 정식 포함했다. 공개키를 빌드 타임에 고정하는 방식을 써서 해외 앱 심사 체크리스트 요건을 만족했다. Charles Proxy로 MITM을 검증하는 5단계 절차를 표준화해 사내와 고객사가 같은 방식으로 확인했다. 이후 개선 회차에서 인증서 등록·재등록 흐름을 안정화했다.
버전·릴리즈
AppSuit Premium iOS 정기 릴리즈에 포함 / SSL Pinning 개선 (Toolbox·가이드 완료)
언어
Swift
Objective-C
Python3
기술
XCFramework
Code Signing
Binary Instrumentation
환경
Xcode
PyCharm
Premium iOS의 SSL Pinning 기능을 4모듈 파이프라인으로 설계하고 구현했습니다.
배경·과제
해외 일부 앱 심사 체크리스트가 SSL Pinning 기능 포함을 요구했습니다. Premium iOS에 새로 설계해야 했습니다.
Apple 공식 API를 우회하거나 재구현하지 않고, 고객이 최소 설정만으로 MITM을 막는 구조가 필요했습니다.
수행·기여
iOS 내장 SSL Pinning을 래핑하는 방식을 썼습니다. 공식 API는 그대로 두고, 고객은 호스트와 인증서만 등록하면 됩니다.
4모듈 파이프라인을 구성했습니다. 정적 라이브러리(런타임 검증), 빌드 후처리 단계, macOS 데스크톱 도구(인증서 등록 GUI), 재서명 자동화(Toolbox·CLI_XcodePlugin)가 맞물립니다.
공개키를 빌드 타임에 고정하는 방식을 선택했습니다. 인증서 갱신 시 재빌드가 필요하다는 점을 고객 안내에 명시했습니다.
Charles Proxy를 이용한 MITM 검증 절차를 5단계로 정리했습니다. 사내와 고객사 기술지원 엔지니어(SE)가 같은 절차로 검증할 수 있게 문서화했습니다.
훅킹 도구로 URLSession을 건드려 우회할 가능성은 훅킹·탈옥 탐지 옵션 조합으로 대응하도록 안내했습니다.