ipsw 파일

ipsw 파일

2024년 12월 12일

ipsw #

Apple 기기의 펌웨어 파일의 확장자이다. iOS 운영체제와 관련된 시스템 이미지, 부트 로더, 베이스밴드, 커널, 애플 자체 앱 및 각종 시스템 리소스 등을 포함한 일종의 패키지 파일 형식이다.

기기의 운영체제를 설치하는데 사용되며, 애플서버에서 서명을 지원하는 동안만 사용 가능하다.

서명 #

애플이 이전버전의 iOS를 설치할 수 없도록 강제화 하는 방식이다. https://ipsw.me 에서 기기별 서명 지원 여부를 확인할 수 있다.

기기에 펌웨어가 플래시되는 과정 #

  1. itunes 등에서 펌웨어.ipsw 를 선택한다.
  2. 플래시 툴은 애플의 TTS(Tatsu Signing Server) 서버로 기기의 모델이나 고유식별정보(ECID)와 펌웨어의 정보를 함께 전달해서 요청한다.
  3. 서버에서는 APTicket(인증토큰)과 SHSH Blob이 응답된다.
  4. iBoot(부트로더)는 플래시되면서 APTicket, SHSH Blob을 사용해서 부팅이미지를 검증한다.
  5. 검증을 통과하면 정상적으로 펌웨어(ipsw + APTicket + SHSH Blob)가 생성되어 플래시된다.

SHSH Blob #

여기에서 SHSH Blob은 기기마다, 펌웨어마다 다른 값이기 때문에 플래시할 기기에서 추출되어야 한다. 예전에는 SHSH Blob을 백업해두고 기기를 다운그레이드 할때마다 사용했다.

APTicket #

하지만 현재(사실 오래전임)는 기기가 복원하거나 부팅할때마다 Nonce 값이 랜덤하게 생성되는데 이 값에 해당하는 APTicket 을 서버에서 응답해주고, 그 값을 펌웨어 플래시의 검증에 사용하기 때문에 현재 Nonce 에 맞는 APTicket이 있어야 플래시가 가능하여 플래시 하는 타이밍에 같은 Nonce가 아닌 이상 SHSH Blob의 재사용이 불가능해졌다.


comments powered by Disqus