Keamanan kontak pemulihan akun
Pengguna dapat menambahkan hingga lima orang yang mereka percayai sebagai kontak pemulihan akun untuk membantu mereka memulihkan akun dan data iCloud mereka, termasuk semua data yang dienkripsi ujung ke ujungnya, terlepas apakah mereka menyalakan Perlindungan Data Lanjutan atau tidak. Baik Apple maupun kontak pemulihan tidak memiliki informasi yang diperlukan secara terpisah untuk memulihkan data iCloud terenkripsi ujung ke ujung pengguna.
Kontak Pemulihan dirancang dengan mempertimbangkan privasi pengguna. Kontak pemulihan pilihan pengguna tidak diketahui oleh Apple. Server Apple hanya mempelajari informasi mengenai kontak pemulihan di akhir upaya pemulihan setelah pengguna meminta bantuan kontak dan kontak mereka mulai benar-benar membantu pemulihan. Informasi tersebut tidak disimpan setelah pemulihan selesai.
Proses keamanan kontak pemulihan
Saat pengguna mengatur Kontak Pemulihan Akun, kunci yang terkait dengan kontak tersebut akan dibuat. Kunci ini melindungi akses ke data iCloud pengguna—termasuk data CloudKit yang terenkripsi ujung ke ujung. Berikutnya, kunci AES 256 bit acak dibuat, dan digunakan untuk mengenkripsi kunci Kontak Pemulihan untuk membuat Paket Kontak Pemulihan. Paket terenkripsi dikirimkan ke Kontak Pemulihan untuk disimpan, dan kunci AES acak disimpan dengan Apple. Kunci AES atau paket tidak menyediakan informasi apa pun mengenai kunci mendasar itu sendiri. Pada saat pemulihan, setelah perangkat pengguna berhasil mendapatkan Paket Kontak Pemulihan dari Kontak Pemulihannya dan kunci AES dari Apple, perangkat dapat menggabungkan keduanya untuk memulihkan kunci asli dan mengakses data iCloud pengguna.
Untuk menyiapkan Kontak Pemulihan Akun, perangkat pengguna berkomunikasi dengan server Apple untuk mengunggah bagian informasi kunci yang akan disimpan Apple (kunci AES yang disebut di atas). Lalu perangkat membuat wadah CloudKit yang dienkripsi ujung ke ujung dengan kontak pemulihan untuk membagikan sebagian yang dibutuhkan kontak pemulihan (Paket Kontak Pemulihan yang dienkripsi menggunakan kunci AES). Rahasia pengesahan, yang dibuat oleh Apple, juga dibagikan dengan kontak pemulihan. Ini akan digunakan untuk memulihkan akun dan membantu mengatur ulang kata sandi di akun. Komunikasi untuk mengundang dan menerima kontak pemulihan dilakukan melalui saluran IDS yang saling disahkan. Kontak pemulihan secara otomatis menyimpan informasi yang diterima di Rantai Kunci iCloud mereka. Apple tidak dapat mengakses konten wadah CloudKit, maupun Rantai Kunci iCloud yang menyimpan informasi ini. Saat berbagi dilakukan, server Apple hanya melihat ID anonim untuk kontak pemulihan.
Nantinya, saat pengguna perlu memulihkan akun dan data iCloud mereka, mereka dapat meminta bantuan dari kontak pemulihan mereka. Pada saat itu, kode pemulihan dibuat oleh perangkat kontak pemulihan, yang lalu kontak pemulihan sediakan ke pengguna (misalnya secara langsung atau melalui panggilan telepon). Pengguna lalu memasukkan kode pemulihan ke perangkat mereka untuk membuat koneksi aman antarperangkat menggunakan protokol SPAKE2+, konten tidak dapat diakses oleh Apple. Interaksi ini diatur oleh server Apple, tapi Apple tidak dapat memulai proses pemulihan.
Setelah koneksi aman dibuat dan semua pemeriksaan keamanan yang diperlukan diselesaikan, perangkat kontak pemulihan mengembalikan bagian informasi kunci mereka dan rahasia pengesahan yang dibuat sebelumnya ke pengguna yang meminta pemulihan. Pengguna menunjukkan rahasia pengesahan ini ke server Apple, yang memberikan akses ke informasi kunci yang disimpan Apple. Menyediakan rahasia pengesahan juga mengesahkan pengaturan ulang kata sandi akun untuk memulihkan akses akun.
Akhirnya, perangkat pengguna menggabungkan kembali informasi kunci yang diterima dari Apple serta Kontak Pemulihan Akun, lalu menggunakannya untuk mendekripsi dan memulihkan data iCloud mereka.
Terdapat perlindungan untuk mencegah kontak pemulihan agar tidak memulai pemulihan tanpa persetujuan pengguna, yang meliputi pemeriksaan aktivitas di akun pengguna. Jika akun aktif digunakan, pemulihan yang menggunakan Kontak Pemulihan juga memerlukan kode sandi perangkat terbaru atau Kode Keamanan iCloud.