iCloud 키체인용 에스크로 보안
iCloud는 인증된 사용자와 기기만 복구를 수행할 수 있도록 키체인 에스크로에 대한 보안 인프라를 제공합니다. 순서적으로 iCloud 뒤에 위치한 HSM(하드웨어 보안 모듈) 클러스터는 에스크로 레코드를 보호합니다. 앞서 설명한 대로 각각의 클러스터는 관리 하에 에스크로 레코드를 암호화하는 데 사용되는 키를 가지고 있습니다.
키체인을 복구하려면 사용자는 iCloud 계정과 암호로 인증하고 등록된 전화번호로 전송된 SMS에 응답해야 합니다. 완료되면 사용자는 iCloud 보안 코드를 입력해야 합니다. HSM 클러스터는 SRP(Secure Remote Password) 프로토콜을 사용하여 사용자가 iCloud 보안 코드를 아는지 확인합니다. 코드 자체는 Apple에 전송되지 않습니다. 아래 설명처럼 클러스터의 구성원은 사용자가 레코드 가져오기에 허용된 최대 시도 횟수를 초과하지 않았는지 개별적으로 확인합니다. 구성원 과반수가 동의하는 경우 클러스터는 에스크로 레코드의 래핑을 해제하여 사용자의 기기로 전송합니다.
그런 다음, 기기는 에스크로된 데이터를 사용하여 사용자의 키체인을 암호화하는 데 사용한 임의 키의 래핑을 해제합니다. 이 키를 사용하면 CloudKit 및 iCloud 키 값 저장 공간에서 검색된 키체인이 암호화 해제되어 기기에 복원됩니다. 에스크로 서비스는 에스크로 레코드 인증 및 검색 시도를 10번까지만 허용합니다. 여러 번 실패한 후에는 레코드가 잠기므로 추가 시도를 승인받으려면 사용자는 Apple 지원에 문의해야 합니다. 10번 실패하는 경우 HSM 클러스터가 에스크로 레코드를 파기하여 키체인이 영원히 유실됩니다. 이를 통해 키체인 데이터를 희생하지만 무작위 대입 공격으로 레코드를 가져오려는 시도를 방지합니다.
이러한 정책은 HSM 펌웨어에 구현되어 있습니다. 펌웨어의 변경을 허용하는 관리 접근 카드는 파기되었습니다. 펌웨어를 변경하거나 개인 키에 접근하기 위한 시도가 있는 경우 HSM 클러스터는 개인 키를 삭제합니다. 이렇게 되면 클러스터로 보호된 각 키체인의 소유자는 해당 에스크로 레코드가 유실되었음을 알리는 메시지를 받게 됩니다. 그리고 나서 다시 등록하도록 선택할 수 있습니다.