하드웨어 없이 SIM 카드 기능을 소프트웨어로 구현
하드웨어 의존성 없는 SIM 카드 시뮬레이터 'swsim'이 공개됨
PC/SC 인터페이스를 통해 실제 SIM 카드처럼 전화기와 연동 가능
소스 코드 컴파일로 설치 가능하며, 추가 런타임 의존성 없음
보안 연구 및 개발 환경에서 활용될 잠재력 보유
하드웨어 없는 SIM 카드 시뮬레이션의 기술적 구현
swsim은 전체 소프트웨어 기반의 SIM 카드 시뮬레이터로, 실제 SIM 하드웨어 없이 작동하는 것이 핵심이다. 이는 가상 스마트카드(Virtual Smart Card) 기술을 활용하여 SIM의 APDU(Application Protocol Data Unit) 명령어를 소프트웨어적으로 처리하는 방식이다. 파일 시스템(Filesystem)을 통해 SIM의 내부 구조를 모방하며, 이를 통해 보안 프로토콜(Security Protocol) 및 인증 메커니즘(Authentication Mechanism)을 테스트할 수 있는 환경을 제공한다.
PC/SC 인터페이스를 통한 연동 및 확장성
본 프로젝트는 PC/SC(Personal Computer/Smart Card) 인터페이스를 지원하여 기존 하드웨어 리더기처럼 작동한다. 이를 통해 SIMtrace 2와 같은 도구나 cardem 펌웨어를 사용하는 장치와 연동하여 실제 휴대폰과 통신할 수 있다. 이는 모바일 보안 테스트(Mobile Security Testing)나 통신 프로토콜 분석(Communication Protocol Analysis) 시나리오에서 유용하게 활용될 수 있으며, 다양한 하드웨어 리더기와의 호환성을 확보한다.
설치 및 빌드 과정의 단순성
swsim은 `make`와 `gcc`만을 요구하는 단일 바이너리(Single Binary) 형태로 빌드된다. `git clone --recurse-submodules` 명령어를 통해 서브모듈까지 포함하여 프로젝트를 복제해야 하며, 별도의 런타임 의존성이 없어 개발 및 테스트 환경 설정이 간편하다는 장점이 있다. 이는 빠른 프로토타이핑(Rapid Prototyping)이나 CI/CD 파이프라인 통합(CI/CD Pipeline Integration)에 유리한 조건이다.
실제 SIM 카드와의 상호작용 시뮬레이션
사용자는 `swICC` 카드 서버를 실행하고, `pcsc_scan`과 같은 도구를 사용하여 시뮬레이터에 접근할 수 있다. 이는 마치 실제 SIM 카드가 하드웨어 카드 리더기에 연결된 것과 동일한 경험을 제공한다. `filesystem.swiccfs`와 `usim.json` 같은 설정 파일을 통해 SIM의 파일 시스템과 데이터를 구성하며, 이를 통해 다양한 SIM 애플리케이션(SIM Application)의 동작을 테스트하고 디버깅할 수 있다.