Bagikan melalui


Fitur Keamanan dan Privasi iOS

Artikel ini membahas cara kerja dengan keamanan dan privasi di iOS dan pengaruhnya terhadap aplikasi Xamarin.iOS.

Apple telah melakukan beberapa peningkatan keamanan dan privasi di iOS 10 (dan lebih besar) yang akan membantu pengembang meningkatkan keamanan aplikasi mereka dan memastikan privasi pengguna akhir. Artikel ini akan membahas penerapan fitur-fitur ini di aplikasi Xamarin.iOS.

Peningkatan Umum

Perubahan umum berikut telah dilakukan pada Keamanan dan Privasi di iOS 10:

  • API Common Data Security Architecture (CDSA) telah tidak digunakan lagi dan harus diganti dengan SEcKey API untuk menghasilkan kunci asimetris.
  • Kunci baru NSAllowsArbitraryLoadsInWebContent dapat ditambahkan ke file Info.plist aplikasi dan akan memungkinkan halaman web dimuat dengan benar sementara perlindungan Apple Transport Security (ATS) masih diaktifkan untuk sisa aplikasi. Untuk informasi selengkapnya, silakan lihat dokumentasi Keamanan Transportasi Aplikasi kami.
  • Karena Clipboard baru di iOS 10 dan macOS Sierra memungkinkan pengguna untuk menyalin dan menempel di antara perangkat, API telah diperluas untuk memungkinkan clipboard dibatasi pada perangkat tertentu dan diberi tanda waktu untuk dihapus secara otomatis pada titik tertentu. Selain itu, papan tempel bernama tidak lagi bertahan dan harus diganti dengan kontainer papan tempel bersama.
  • Untuk semua koneksi SSL/TLS, cipher konten RC4 sekarang dinonaktifkan secara default. Selain itu, SECURE Transport API tidak lagi mendukung SSLv3 dan disarankan agar pengembang berhenti menggunakan kriptografi SHA-1 dan 3DES sesegera mungkin.

Mengakses Data Pengguna Privat

Aplikasi yang berjalan di iOS 10 (atau yang lebih baru) harus secara statis menyatakan niat mereka untuk mengakses fitur tertentu atau informasi pengguna dengan memasukkan satu atau beberapa Kunci Privasi dalam file Info.plist mereka yang menjelaskan kepada pengguna mengapa aplikasi ingin mendapatkan akses.

Penting

Aplikasi yang gagal menyediakan kunci yang diperlukan akan dihentikan secara diam-diam oleh sistem ketika mereka mencoba mengakses salah satu fitur terbatas atau informasi pengguna, tanpa kesalahan! Jika aplikasi mulai gagal secara tak terduga pada iOS 10, pastikan bahwa semua Info.plist yang diperlukan telah ditentukan.

Kunci terkait Privasi berikut tersedia:

  • Privasi - Deskripsi penggunaan Apple Music (NSAppleMusicUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses perpustakaan media pengguna.
  • Privasi - Deskripsi Penggunaan Periferal Bluetooth (NSBluetoothPeripheralUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses Bluetooth di perangkat pengguna.
  • Privasi - Deskripsi Penggunaan Kalender (NSCalendarsUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses kalender pengguna.
  • Privasi - Kamera Deskripsi Penggunaan (NSCameraUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses kamera perangkat.
  • Privasi - Deskripsi Penggunaan Kontak (NSContactsUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses kontak pengguna.
  • Privasi - Deskripsi Penggunaan Berbagi Kesehatan (NSHealthShareUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses data kesehatan pengguna. Untuk informasi selengkapnya, silakan lihat Referensi Kelas HKHealthStore Apple.
  • Privasi - Deskripsi Penggunaan Pembaruan Kesehatan (NSHealthUpdateUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengedit data kesehatan pengguna. Untuk informasi selengkapnya, silakan lihat Referensi Kelas HKHealthStore Apple.
  • Privasi - Deskripsi Penggunaan HomeKit (NSHomeKitUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses Data Konfigurasi HomeKit pengguna.
  • Privasi - Deskripsi Selalu Penggunaan Lokasi (NSLocationAlwaysUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin selalu memiliki akses ke lokasi pengguna.
  • [Tidak digunakan lagi] Privasi - Deskripsi Penggunaan Lokasi (NSLocationUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses lokasi pengguna. CATATAN: Kunci ini tidak digunakan lagi di iOS 8 (dan lebih besar). Gunakan NSLocationAlwaysUsageDescription atau NSLocationWhenInUseUsageDescription sebagai gantinya.
  • Privasi - Lokasi Saat Menggunakan Deskripsi Penggunaan (NSLocationWhenInUseUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses lokasi pengguna saat sedang berjalan.
  • [Tidak digunakan lagi] Privasi - Deskripsi Penggunaan Pustaka Media - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses ke pustaka media pengguna. CATATAN: Kunci ini tidak digunakan lagi di iOS 8 (dan lebih besar). Gunakan NSAppleMusicUsageDescription sebagai gantinya.
  • Privasi - Deskripsi Penggunaan Mikrofon (NSMicrophoneUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses mikrofon perangkat.
  • Privasi - Deskripsi Penggunaan Gerakan (NSMotionUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses akselerometer perangkat.
  • Privasi - Deskripsi Penggunaan Pustaka Foto (NSPhotoLibraryUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses pustaka foto pengguna.
  • Privasi - Deskripsi Penggunaan Pengingat (NSRemindersUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses pengingat pengguna.
  • Privasi - Deskripsi Penggunaan Siri (NSSiriUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengirim data pengguna ke Siri.
  • Privasi - Deskripsi Penggunaan Pengenalan Ucapan (NSSpeechRecognitionUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengirim data pengguna ke server pengenalan ucapan Apple.
  • Privasi - Deskripsi Penggunaan Penyedia TV (NSVideoSubscriberAccountUsageDescription) - Memungkinkan pengembang untuk menjelaskan mengapa aplikasi ingin mengakses akun penyedia TV pengguna.

Untuk informasi selengkapnya tentang bekerja dengan kunci Info.plist, silakan lihat Referensi Kunci Daftar Properti Informasi Apple.

Mengatur Kunci Privasi

Ambil contoh berikut untuk mengakses HomeKit di iOS 10 (dan lebih besar), pengembang harus menambahkan NSHomeKitUsageDescription kunci ke file Info.plist aplikasi dan menyediakan string yang menyatakan mengapa aplikasi ingin mengakses database HomeKit pengguna. String ini akan disajikan kepada pengguna saat pertama kali menjalankan aplikasi:

Contoh pemberitahuan NSHomeKitUsageDescription

Xamarin.iOS untuk Visual Studio saat ini tidak mendukung pengeditan kunci privasi Info.plist dari dalam editor manifes iOS default. Sebagai gantinya, Anda harus menggunakan editor PList generik, jadi lakukan hal berikut:

  1. Klik kanan pada file Info.plist di Penjelajah Solusi dan pilih Buka dengan....

  2. Pilih Editor PList Generik dari daftar program untuk membuka file, lalu klik OK.

    Pilih Editor PList Generik

  3. Klik tombol + pada baris terakhir di editor untuk menambahkan entri baru ke daftar. Ini akan disebut "Properti Kustom", dengan Jenis diatur ke String dan nilai kosong.

  4. Klik nama properti, dan dropdown akan muncul.

  5. Dari daftar dropdown, pilih Kunci privasi (seperti Privasi - Deskripsi Penggunaan HomeKit):

    Pilih Kunci privasi

  6. Masukkan deskripsi ke dalam kolom Nilai mengapa aplikasi ingin mengakses fitur atau informasi pengguna yang diberikan:

    Masukkan deskripsi

  7. Simpan perubahan pada file.

Penting

Dalam contoh yang diberikan di atas, kegagalan untuk mengatur NSHomeKitUsageDescription kunci dalam file Info.plist akan mengakibatkan aplikasi gagal secara diam-diam (ditutup oleh sistem saat runtime) tanpa kesalahan saat dijalankan di iOS 10 (atau lebih besar).

Ringkasan

Artikel ini telah membahas perubahan keamanan dan privasi yang telah dilakukan Apple di iOS 10 dan pengaruhnya terhadap aplikasi Xamarin.iOS.