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 menyiapkan Kontak Pemulihan Akun, kunci untuk mengakses data iCloud pengguna–termasuk data CloudKit terenkripsi ujung ke ujung–dienkripsi dengan kunci acak yang kuat. Kunci acak ini kemudian dibagi antara kontak pemulihan dan Apple. Pada waktu pemulihan, hanya ketika dua pembagian kunci digabungkan kembali, kunci asli dapat dipulihkan dan data iCloud pengguna dapat diakses.
Untuk menyiapkan Kontak Pemulihan Akun, perangkat pengguna berkomunikasi dengan server Apple untuk mengunggah bagian informasi kunci yang akan disimpan Apple. Lalu perangkat membuat wadah CloudKit yang dienkripsi ujung ke ujung dengan kontak pemulihan untuk membagikan sebagian yang dibutuhkan kontak pemulihan. Apple dan kontak pemulihan juga menerima rahasia pengesahan yang sama dari pengguna, yang dibutuhkan nanti untuk pemulihan. 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.