Cara Melakukan Penyematan SSL di Aplikasi iOS

Diterbitkan: 2020-02-24

Saat orang-orang keluar dari rumah, mereka mencari jaringan Wi-Fi terbuka . Apakah mereka sedang menunggu di bandara atau duduk di kafe, agenda utama adalah menemukan koneksi Wi-Fi terbuka .

Sayangnya, para peretas juga melakukan pencarian yang sama. Mereka juga menunggu pengguna untuk memulai permintaan koneksi di jaringan terbuka sebelum mereka menggunakan otak phishing mereka dan menghilangkan data sensitif mereka atau lebih buruk lagi, uang di rekening bank mereka.

Meskipun HTTPS efektif sampai batas tertentu, ini adalah protokol SSL yang dikenal membuat pengguna aman dengan tidak dapat dipecahkan dan sebagian besar aman. Tetapi serangan Man-In-The-Middle (MITM) telah menemukan cara untuk menembus ini juga.

Di sinilah teknik Penyematan SSL muncul sebagai salah satu praktik terbaik keamanan aplikasi seluler . Berbicara secara khusus tentang platform, ini adalah solusi keamanan aplikasi iphone yang ideal yang melakukan pekerjaan luar biasa dalam memecahkan masalah.

Pada artikel ini, kita akan melihat jenis dan proses memasukkan SSL Pinning di aplikasi iOS untuk mencegah serangan Man In The Middle ini. Proses yang merupakan bagian aktif dari praktik pengujian keamanan seluler OWASP .

Jenis Metode Penyematan Sertifikat SSL

Ada dua metode utama untuk tes Pinning SSL seperti yang dibahas di bawah ini:

Penyematan SSL

SSL-certificate

  • Menyematkan sertifikat – Anda dapat mengunduh sertifikat server dan menggabungkannya ke dalam aplikasi. Pada waktu proses, aplikasi membandingkan sertifikat server dengan sertifikat yang telah Anda sematkan.
  • Sematkan kunci publik – Anda dapat mengambil kunci publik sertifikat dalam kode sebagai string. Saat runtime, aplikasi membandingkan kunci publik sertifikat dengan kunci yang dikodekan dalam kode.

Membuat pilihan dari antara dua metode iOS penyematan SSL bergantung pada konfigurasi server Anda dan kebutuhan individu. Saat Anda memilih opsi pertama, Anda harus mengunggah aplikasi saat server mengubah sertifikatnya atau akan berhenti bekerja. Saat memilih opsi kedua, Anda mungkin melanggar kebijakan rotasi kunci karena kunci publik tidak akan berubah.

Sekarang mari kita lihat langkah-langkah untuk menerapkan SSL Pinning di aplikasi iOS Anda.

*Catatan: Langkah-langkah yang disebutkan di bawah ini mengikuti proses penyematan sertifikat iOS dengan Swift.

Cara Menerapkan SSL Pinning di Aplikasi iOS Anda

1. NSURLSesi

Dalam kasus NSURLSession, metode utama untuk menangani penyematan SSL adalah URLSession:didReceiveChallenge:completionHandler:delegate. Pengembang harus mengatur kelas agar sesuai dengan URLSessionDelegate dan menempelkan fungsi ini ke kelas:

Fungsi tersebut akan “ meminta kredensial dari delegasi sebagai tanggapan atas permintaan otentikasi dari server jauh .” Pengembang aplikasi iPhone kemudian akan membandingkan sertifikat dari server dengan yang disimpan di bundel aplikasi. Jika kedua sertifikat ditemukan identik, otentikasi akan membiarkannya berlalu dan klien akan dapat terhubung ke server.

2. Penyematan Sertifikat Alamofire

Alamofire adalah salah satu perpustakaan paling terkenal untuk jaringan HTTP dalam bahasa Swift. Muncul dengan fungsionalitas bawaan untuk penyematan SSL di iOS Swift dan sangat mudah digunakan. Berikut cara membuat aplikasi iOS aman dengan penyematan sertifikat Alamofire.

Masalah Umum Terkait Dengan Implementasi Penyematan SSL & Cara Mengatasinya

Pakar Jaminan Kualitas di agen pengembangan aplikasi terkenal, secara teratur menguji kerentanan keamanan aplikasi seluler, termasuk penetrasi jaringan penuh. Tetapi ada banyak agen pengujian aplikasi yang tidak fokus pada area ini dengan antusiasme yang sama. Mereka tampak enggan saat menerapkan solusi keamanan iPhone khusus ini di aplikasi mereka.

Berikut adalah beberapa alasan umum di balik ini -

  • Salah satu kelemahan terbesar dari penyematan SSL di aplikasi iOS adalah implementasinya. Prosesnya rumit dan dapat memaksa pengembang untuk menulis kode berulang kali dan memperumit proses pembuatan aplikasi .
  • Menyematkan sertifikat SSL iOS yang pasti akan berubah secara teratur dapat memaksa pengembang untuk memperbarui biner aplikasi setiap kali sertifikat berubah.
  • Berbagai upaya harus dilakukan untuk mengamankan cara melewati verifikasi SSL iOS.

Memperhatikan dampak yang dapat ditimbulkan oleh ketidakhadiran panggung, berikut adalah bagaimana beberapa jebakan umum dihindari oleh perusahaan pengembang aplikasi iPhone yang andal .

Menguji pin

Tidak seperti pengujian aplikasi biasa di mana Anda menguji apakah semuanya berfungsi atau tidak, metode untuk pengujian penyematan SSL adalah Anda harus memeriksa apakah ada yang gagal. Anda harus fokus pada pengujian bahwa aplikasi membatalkan koneksi yang berpotensi disusupi. Jika aplikasi mengaktifkan komunikasi dengan satu titik akhir, pengujian akan sesederhana membuat permintaan GET ke status arbitrer. Idealnya, dalam hal ini, aplikasi harus membatalkan koneksi dan permintaan akan gagal.

Menangani perubahan sertifikat

Memperbarui sertifikat domain mempertahankan pasangan kunci publik/pribadi, tetapi hal ini tidak selalu terjadi. Tetapi jika Anda merencanakan siklus pembaruan dengan benar, Anda akan dapat menghindari waktu henti bagi pengguna akhir.

Sebelum sertifikat SSL iOS diaktifkan di situs web, Anda harus menyematkannya di aplikasi, selain sertifikat yang saat ini aktif, lalu merilis pembaruan. Saat kami mengikuti langkah ini di Appinventiv untuk membuat aplikasi iOS yang aman , kami melakukan tes cepat dengan sertifikat baru untuk sementara dan menguji aplikasi dengan kedua sertifikat yang disematkan.

FAQ Tentang Penyematan SSL di Aplikasi iOS

1. Di mana menyimpan data sensitif di aplikasi iOS?

Data sensitif aplikasi harus selalu disimpan di iCloud atau Keychain di iOS atau bahkan di database setelah enkripsi yang tepat.

2. Bagaimana cara kerja SSL?

SSL Pinning adalah salah satu tip keamanan aplikasi iOS yang paling umum . Tetapi untuk memahami apa artinya, pertama-tama Anda harus mengetahui cara kerja SSL.

  • Peramban mencoba terhubung dengan situs web yang diamankan dengan SSL. Browser kemudian meminta server web untuk mengidentifikasi dirinya.
  • Server web kemudian mengirimkan salinan sertifikat SSL-nya kepada browser.
  • Browser memeriksa apakah sertifikat SSL harus dipercaya. Jika bisa, pesan dikirim ke server web.
  • Server web kemudian mengirimkan kembali pengakuan untuk memulai sesi terenkripsi SSL.
  • Data terenkripsi kemudian akhirnya dibagikan antara browser dan server web.

Mengakhiri Pikiran

Meskipun penyematan SSL dianggap aman dan digunakan secara luas kapan pun enkripsi diperlukan, lapisan perlindungan lain selalu disambut saat membuat aplikasi berisiko tinggi. Penyematan SSL memungkinkan Anda memverifikasi identitas server di atas rantai verifikasi kepercayaan SSL.

Dengan penyematan SSL, Anda dapat menolak semua koneksi kecuali koneksi dengan server yang ditunjuk yang sertifikat SSL-nya telah kami simpan ke dalam bundel lokal kami. Kelemahan potensial dari ini adalah Anda perlu memperbarui aplikasi setiap kali kunci SSL server diubah.

Jika Anda juga berencana meluncurkan aplikasi iOS dengan penyematan SSL, ini bisa menjadi awal yang baik untuk berkonsultasi dengan perusahaan pengembang aplikasi iOS terbaik .