iOS가 시스템 버전을 플래시할 수 없는 이유를 알고 계십니까?
이 기간 동안 다운그레이드 소식이 정말 난리였고, 그 결과도 짜증스러웠다.
어제 말씀드린 것처럼 믿지는 못하더라도 그래도 일어날 수 있다는 마음가짐으로 펌웨어를 대량으로 다운받아서 '마스터즈'에서 다운그레이드되기를 기다렸습니다. ”.이 목적을 위해 하드 드라이브에서 500g도 희생했습니다. 이제 생각할수록 정말 화가납니다!
다운그레이드 인증에 대해서도 문의하신 분이 계시는데요. 무슨 일인가요?
휴대폰은 왜 우리 손에 있는데, 다운그레이드 권한은 애플 손에 있는 걸까요? 오늘 제가 가져갈 것은 애플의 다운그레이드 메커니즘——
하나, 오프라인 업그레이드 시대
오래전 오프라인 업그레이드가 허용되던 시대에 애플은 사실상 사용자의 시스템 버전을 통제할 수 없었다.
이런 방식으로 사용자는 마음대로 시스템 버전을 업그레이드하거나 낮출 수 있습니다. (그러나 당시 사용자들은 더 많은 기능을 원했고 아마도 다운그레이드보다는 업그레이드만 원했을 것입니다.)
2009년 49주 이전에 생산된 iPhone 3GS 및 이전 버전에는 검증된 펌웨어 및 서명된 펌웨어에 대한 정보가 없습니다. 즉, 현재 안드로이드 시스템과 마찬가지로 펌웨어를 직접 다운로드하여 플래시할 수 있습니다. . 따라서 이 이전의 장치는 마음대로 플래시가 가능하며, 모든 버전의 플래시가 가능합니다.
2. 온라인 업그레이드 시대 초기
오프라인 업그레이드 취소 후 초기에는 업그레이드 중에 iOS 기기가 서버에 연결되어 기기 정보를 전송합니다. 버전 확인을 통과합니다.
그런 다음 권한을 얻은 후 업그레이드할 수 있습니다. 이때 크래킹 방법은 서버의 '라이센스'를 미리 저장해 두었다가 나중에 다시 재생하는 것이다. (즉, SHSH를 저장하는 것입니다)
2009년 49주 이후에 생산된 기기와 그 이후의 iPhone 4의 경우 Apple은 프로세서를 통한 검증 메커니즘을 추가했으며 플래시하기 전에 펌웨어에 서명해야 합니다.
펌웨어 서명을 위한 인증 파일을 받으세요. 이 인증 파일은 SHSH라고 합니다. Apple은 프로세서 취약점을 수정하여 iPhone 4s 및 이후 장치에서 로컬 서명 펌웨어 확인을 비활성화했습니다. 따라서 iPhone 4s 및 이후 모델은 로컬 서명을 통한 확인을 우회할 수 없습니다.
4S가 처음 출시되었을 때는 iOS5였지만, iOS6와 iOS7의 인증 방식이 다르기 때문에, 즉 iOS6 이전 사용자들이 iOS7으로 업그레이드하려면 먼저 iOS6으로 업그레이드해야 하고, 시대가 바뀌어서 당시 iOS5는 최신 시스템으로 직접 업그레이드할 수 없었지만, iOS6은 최신 시스템으로의 OTA 업그레이드를 지원합니다.
iOS5 사용자가 최신 버전의 iOS로 업그레이드할 수 있도록 Apple은 검증을 공개하여 해당 사용자가 먼저 iOS 6.1.3으로 업그레이드한 후 iOS 6.1을 통해 iOS 9로 업그레이드할 수 있도록 허용했습니다. 3.
인터넷의 4s 다운그레이드 튜토리얼의 원칙은 iOS 버전 번호를 iOS 5로 수정한 다음 Apple을 속여 iOS 6 업그레이드 라이센스를 얻은 다음 iOS 6을 완전히 설치하는 것입니다. 이것이 바로 이 다운그레이드에 탈옥이 필요한 이유입니다.
현재 Apple의 개선된 온라인 인증 방식은 iOS Device가 업그레이드되면 기기 정보 전송 외에 난수(nonce)도 생성하여 인증에 참여하게 하는 것입니다. 따라서, 녹화 및 재생을 통해 부트로더를 속일 수 없습니다.
검증 로직은 부트로더에 의해 구현되며 코드는 메인 칩 보안 부팅으로 보호되므로 변조가 어렵습니다.
칩의 고유 키는 다음과 같습니다. 사용할 수만 있고 읽을 수는 없는 OTP에 숨겨져 있어 클라이언트 요청을 위조하기가 어렵습니다.
비대칭 알고리즘을 사용하여 서버측 서명을 위조하기가 어렵습니다.
그래서 강제 양방향 검증 + 보호 검증 로직 + 보호 검증 키를 사용하게 되므로 현재는 큰 길을 가는 단계에 있습니다.
위조라고 생각하시는 분들도 계시겠지만 검증서버는 위조가 가능하지만 검증결과는 위조가 불가능하여 실제 서버 결과를 가로채서 재생할 수 밖에 없는 것이 바로 위력입니다. 디지털 서명.
3. 플래시 및 다운그레이드
친구 여러분, 휴대폰을 플래시할 때 다음 사항을 발견하셨는지 모르겠습니다.
iPhone 소프트웨어 업데이트 서버에 문의 .
업데이트된 iPhone 소프트웨어를 확인하는 중입니다.
업데이트된 iPhone 펌웨어를 확인하는 중입니다.
인증 채널이 개설되지 않은 시스템 버전의 경우, 플래시에 성공하더라도 활성화되지 않습니다. 예를 들어, 개발자 권한 없이 베타 버전에 액세스하려고 하면 활성화 오류가 발생했습니다.
말이 나와서 말인데, iPhone을 플래시하려면 iTunes를 사용해야 하고, iPhone을 플래시하려면 온라인 상태여야 합니다.
iTunes는 플래시를 시작하기 전에 현재 iPhone 모델이 현재 선택한 펌웨어의 플래시를 허용하는지 확인합니다. 즉, Apple에서 스와이프하도록 허용하는 것은 무엇이든 스와이프할 수 있습니다. 서버를 위조할 수 없는 이유는 확인을 위해 SSL 인증서를 사용하는 것 같습니다. Apple의 SSL 인증서는 위조할 수 없으므로 서버도 위조할 수 없습니다.
따라서 정말로 위조를 하고 싶다면 다음 두 가지 조건을 충족하지 않는 한
1. iTunes를 크랙하고 코드를 종료하여 시스템 버전을 확인하세요. >2. iTunes와 Apple 인증 서버 간의 통신 프로토콜을 이해하고 모든 버전의 펌웨어를 플래시할 수 있는 가짜 서버를 만듭니다.
4. 휴대폰 플래시 과정
여기에서는 플래시 프로세스를 간단한 방법으로 설명하고, 휴대폰을 마음대로 플래시할 수 없는 이유를 분석해 보겠습니다.
1. 온라인으로 ipsw 형식의 펌웨어를 다운로드하고 iTunes를 열고 휴대폰에 연결하면 펌웨어가 플래시될 수 있습니다.
2. 실제로 플래시하는 동안 데이터는 다음과 같이 흐릅니다. "ipsw 파일 --> iTunes -->iOS 장치의 CPU -->iOS 장치의 Flash/eMMC”
3. 가장 중요한 점은 CPU만이 Flash/eMMC에 펌웨어를 쓸 수 있다는 것입니다. eMMC, 그럼 성공할 수 있을까? 머신 플래싱은 CPU가 이에 동의하느냐에 달려 있다. CPU가 동의하지 않으면 액세스할 수 없습니다.
4. iOS 장치는 완전히 암호화되므로 Flash/eMMC에 쓰는 작업을 먼저 암호화해야 합니다. 이 암호화 키는 CPU 내부에 기록되며 CPU에만 알려져 있습니다. 그리고 키는 기기마다 다릅니다.
5. 따라서 키가 없으면 Flash/eMMC를 제거하고 플래싱하더라도 Flash/eMMC에 올바른 데이터를 쓸 수 없습니다.
CPU의 결정에는 Apple 서버의 펌웨어 서명 확인이 필요합니다. 펌웨어 서명이 올바른 경우 펌웨어를 플래시할 수 있습니다. 따라서 iTunes는 Apple 서버에 이 펌웨어의 서명을 요청하고 이를 CPU에 제공해야 합니다. Apple 서버는 펌웨어의 정품 여부와 버전 번호를 기반으로 서명 제공 여부를 결정합니다. 따라서 펌웨어를 플래시할 수 있는지 여부에 대한 최종 결정권은 Apple 서버에 있습니다.
다음 시나리오를 상상할 수 있습니다.
iTunes: 이 펌웨어를 플래시하고 싶습니다.
CPU: 그런 다음 이 펌웨어의 서명을 제공해야 합니다.
p>
iTunes가 Apple 확인 서버에 이 펌웨어의 서명을 요청했습니다.
iTunes: 이것이 이 펌웨어의 서명입니다.
CPU: 이 서명은 진짜입니다! 이 패키지는 플래시될 수 있습니다.
펌웨어가 만료되면 다음 시나리오가 발생합니다:
iTunes: 이 펌웨어를 플래시하고 싶습니다.
CPU: 그러면 다음의 서명을 제공해야 합니다. 이 펌웨어
iTunes는 Apple 검증 서버에 이 펌웨어의 서명을 요청합니다.
Apple 검증 서버: 이 펌웨어는 만료되었으므로 서명을 제공할 수 없습니다. (디지털 서명은 비대칭 암호화 기술을 사용하며 위조가 불가능하므로 직접 서명을 위조할 수 없습니다.)
디지털 서명은 위조할 수 없지만 저장하고 재생할 수 있습니다. 지난 몇 년 동안에는 SHSH를 사용하여 오래된 펌웨어를 플래시할 수 있었는데 이것이 원칙입니다. 다음과 같은 시나리오를 상상할 수 있습니다.
iTunes: 이 펌웨어를 플래시하고 싶습니다.
CPU: 그러면 이 펌웨어의 서명을 제공해야 합니다.
iTunes가 가지고 있는 꺼내서 수년간 모아온 오래된 서명
iTunes: 이것이 이 펌웨어의 서명입니다
CPU: 이 서명은 진짜입니다! 이 패키지는 플래시될 수 있습니다.
(사실 수년 동안 수집된 오래된 서명을 iTunes에 제공하려면 가짜 검증 서버를 구축해야 합니다.)
이런 종류의 재생 공격은 피하기 쉽습니다. 이제 SHSH에는 쓸모가 없습니다.
다음과 같은 시나리오를 상상할 수 있습니다.
iTunes: 이 펌웨어를 플래시하고 싶습니다.
CPU: 그런 다음 이 펌웨어의 서명을 제공해야 하며 서명에는 난수 fasdjhpgia가 포함되어 있습니다. ;
p>수집된 기존 서명에서 난수는 fasdjhpgia가 아닌 다른 숫자이므로 사용할 수 없습니다.
마지막으로 이해하기 쉬운 설명은 다음과 같습니다.
예를 들어 iPhone은 핵폭탄을 발사할 수 있는 잠수함입니다. 초기에는 명령만 필요했습니다. 선장에서 직접 핵폭탄을 발사하는(오프라인 업그레이드) 다운그레이드 시대).
나중에 고위 관계자들은 이것이 불가능하다고 느껴 핵폭탄을 발사하기 전에 대통령과 확인을 위해 대화를 나눠야 한다고 확인된 지시를 받은 후에야 핵폭탄을 발사할 것이라고 요청했습니다(온라인). 확인).
그런데 테러리스트(해커)들은 청와대 전화선을 해킹해 그의 집에 연결하는 방법을 찾아냈다.
핵잠수함이 핵폭탄 발사를 요구하면 테러리스트들은 대통령의 말투와 목소리를 흉내내 잠수함이 그것이 사실인 것처럼 착각하게 만든다.
고위 경영진은 여전히 불가능하다고 느꼈기 때문에 먼저 모든 전화선을 정비하여 안전성이 크게 향상되었습니다(A5 이후에는 불가능합니다).
그리고 인증할 때 실시간으로 생성되는 비밀번호 문자열을 추가하면 양쪽이 일치해야만 인증이 통과되기 때문에 취약한 기기 외에는 당분간 할 수 있는 일이 없습니다.
그래서 SHSH를 저장하면 다운그레이드가 가능하며, 부팅 취약점이 있는 일부 머신은 바로 다운그레이드가 가능합니다.
그러나 이 경우 활성화할 수 없으며 의사 활성화만 가능합니다.
공간이 제한되어 있으니 Apple의 인증 메커니즘에 대해 알고 계시나요?