Bagaimana Membuat Aplikasi Perpesanan yang Benar-Benar Aman Mirip dengan Signal?

Diterbitkan: 2021-10-05

Privasi dan keamanan komunikasi online adalah topik hangat akhir-akhir ini, dan karena suatu alasan. Karena kami tahu cara membuat aplikasi terenkripsi , kami ingin berbagi pengalaman dan menawarkan kiat dalam artikel ini. Kami akan berbicara tentang keadaan industri saat ini, metode enkripsi, dan kemungkinan risiko. Untuk perkiraan harga, gulir ke akhir artikel.

Apa yang terjadi?

Pada awal tahun 2021, WhatsApp, aplikasi messenger paling populer di dunia, meluncurkan persyaratan layanan barunya. Mereka menyebabkan kegemparan, sebagian karena kebingungan. Setelah itu, CEO Tesla Elon Musk, yang merupakan kritikus terkenal Facebook (WhatsApp dimiliki oleh Facebook), menyarankan agar 42,5 juta pengikut Twitternya beralih ke Signal, utusan yang sebelumnya tidak terlalu terkenal.

Setelah tweet ini, Signal — yang sistem enkripsinya digunakan oleh WhatsApp sendiri — melihat lonjakan pengguna. Lonjakan ini begitu besar sehingga server mengalami kesulitan untuk mengatasinya. Pengembang Signal berhasil menangani situasi ini, tetapi ini menunjukkan bahwa permintaan untuk sistem pesan yang aman terus meningkat. Sekarang, semua orang ingin tahu cara membuat aplikasi seperti Signal. Yang membawa kita ke artikel ini.

Apa artinya memiliki instant messenger yang aman?

Sebagian besar aplikasi perpesanan instan saat ini menggunakan enkripsi ujung ke ujung. Apa itu? Berikut diagram arsitektur aplikasi chat sebagai contoh:

enkripsi ujung ke ujung

Sederhananya, utusan biasa memiliki tiga bagian utama yang saling berhubungan:

  • Perangkat pengirim

  • Sebuah server

  • Perangkat penerima

Sebuah pesan dikirim oleh pengirim ke penerima melalui server. Tanpa enkripsi, pesan ini akan ditransmisikan sebagai teks biasa dan oleh karena itu dapat dibaca oleh siapa saja yang memiliki akses ke pesan ini kapan saja di sepanjang jalan. Dengan enkripsi, pesan diubah dari teks biasa menjadi teks sandi — dienkripsi dengan kunci — untuk ditransfer dan kemudian diubah kembali (didekripsi) pada perangkat penerima , dengan kunci berpasangan.

Enkripsi ujung ke ujung berarti kunci enkripsi disimpan di ujung, yaitu di perangkat pengguna, bukan di server. Hal ini membuat tidak seorang pun kecuali pengirim dan penerima dapat membaca pesan . Bahkan penyedia layanan yang memiliki server tidak memiliki akses ke sana. Untuk meretas pesan-pesan ini, seorang peretas perlu mengakses perangkat pengguna, karena peretasan server penyedia layanan tidak banyak berguna.

Titik lemah enkripsi ujung ke ujung adalah kerentanannya terhadap apa yang disebut serangan man-in-the-middle (MITM) . Peretas MITM yang terampil dapat meretas kunci publik yang disimpan di server dan mengonfigurasi sistem untuk mengenali peretas sebagai penerima yang sah, memungkinkan peretas untuk menguping percakapan dan bahkan berpartisipasi di dalamnya menggantikan penerima yang dituju.

Untuk melawan serangan MITM , pengembang Signal telah meningkatkan lebih lanjut enkripsi ujung-ke-ujung protokol mereka dengan Algoritma Ratchet Ganda. Algoritme ini membuat kunci sesi selain kunci publik dan pribadi yang dibuat saat pengguna menginstal aplikasi. Kunci sesi dibuat untuk setiap pesan yang dikirim, dan mereka akan hancur sendiri saat sesi selesai (yaitu saat pesan diterima), sehingga tidak mungkin bagi peretas untuk mendekripsi semua pesan jika mereka berhasil mendapatkan kunci untuk satu sesi.

WhatsApp menggunakan enkripsi ujung ke ujung untuk semua pesannya. Bahkan, ia menggunakan protokol enkripsi Signal sendiri. Jadi apa masalahnya sekarang?

Pendekatan berbeda untuk enkripsi ujung ke ujung

Pendekatan berbeda untuk enkripsi ujung ke ujung

Memang benar bahwa WhatsApp tidak dapat mengintip isi pesan Anda dan tidak dapat mendengarkan panggilan dalam aplikasi Anda. Namun, versi protokol enkripsi Signal yang digunakan WhatsApp hanya mengenkripsi isi pesan . Ini berarti bahwa WhatsApp — dan, dengan ekstensi, Facebook dan siapa pun yang mereka putuskan untuk berbagi informasi — dapat melihat dengan siapa Anda berbicara, kapan, dan dari mana. Metadata ini dapat mengungkapkan informasi yang sangat pribadi tentang semua peserta dalam percakapan.

Pada saat yang sama, aplikasi Signal menggunakan protokol yang diperbarui yang juga mengkodekan metadata, dan tidak seorang pun — bahkan pemilik aplikasi — dapat memecahkan kodenya tanpa akses langsung ke perangkat pengguna .

Selain itu, sesuai dengan Kebijakan Privasi Signal, hampir tidak ada metadata yang disimpan di server mereka secara permanen — hanya selama diperlukan untuk menerima pesan. Kemudian semuanya kecuali tanggal login terakhir pengguna dihapus.

Satu-satunya aplikasi messenger lain yang melakukan ini adalah Telegram. Namun, di Telegram, enkripsi ujung ke ujung hanya diterapkan dalam mode rahasia dan tidak untuk semua obrolan secara default. Pesan umum tidak terenkripsi dengan baik di Telegram. Setidaknya Telegram menolak untuk membagikan informasi semacam itu kepada siapa pun, baik itu pemerintah atau pengiklan.

Saat ini, keamanan aplikasi perpesanan adalah topik besar — ​​ketidakmampuan atau keengganan seorang pengirim pesan untuk membagikan informasi pengguna kepada pemerintah sering kali menemui batasan dan larangan. Telegram, misalnya, telah dilarang di Rusia, tanah air penciptanya; Uni Emirat Arab telah melarang semua layanan VoIP non-milik negara. Sebagai tanggapan, orang-orang di mana pun menuntut sarana komunikasi yang lebih aman, dan pasar untuk aplikasi perpesanan seluler yang aman sedang berkembang .

Jadi bagaimana cara membuat messenger yang aman?

desain aplikasi messenger yang aman

Kebanyakan orang menggunakan setidaknya satu messenger, mungkin beberapa, dan serangkaian fitur dasar untuk aplikasi messenger tidak akan mengejutkan Anda. Jadi kita akan singkat di bagian ini. Berikut tabel fitur untuk solusi obrolan aman :

Fitur Keterangan

Orientasi

Perkenalkan aplikasi Anda secara singkat; semakin pendek semakin baik, tetapi buatlah itu dapat dipahami.

Daftar masuk

Akun messenger biasanya terkait dengan nomor telepon.

Profil pengguna

Profil menyimpan informasi pribadi pengguna dan tautan ke fitur penting seperti kontak, pengaturan, dan FAQ.

Pengaturan

Izinkan pengguna untuk menyesuaikan messenger untuk kenyamanan mereka.

Pemberitahuan

Dalam aplikasi messenger, sangat penting untuk memiliki sistem yang andal untuk notifikasi instan.

Obrolan teks

Aplikasi perpesanan modern diperlukan untuk mendukung obrolan satu lawan satu dan obrolan grup.

Transfer file

Pengguna harus dapat bertukar pesan teks serta berbagi gambar dan dokumen.

Obrolan suara/panggilan

Fitur VoIP saat ini sama pentingnya dengan SMS. Suara berkualitas membutuhkan koneksi yang stabil bahkan dengan kecepatan internet yang lambat.

Pesan yang merusak diri sendiri

Bahkan dengan protokol Signal, jika seseorang memegang telepon pengguna, mereka dapat melihat semua pesan sebelumnya kecuali pengguna menghapusnya. Anda dapat menambahkan opsi bagi pengguna untuk menyetel timer untuk menghancurkan pesan dan/atau file media.

Sinkronkan

Kebanyakan orang memiliki lebih dari satu perangkat dengan aplikasi komunikasi terpasang. Agar pengguna dapat beralih antar perangkat dengan lancar sesuai keinginan mereka, Anda harus menyediakan fitur sinkronisasi.

Otentikasi dua langkah

Untuk melindungi data pengguna dengan lebih baik jika perangkat dicuri, tawarkan autentikasi dua langkah melalui sidik jari, kata sandi, kode pin, atau kode atau tautan verifikasi.

Jika Anda ingin membuat aplikasi perpesanan peer-to-peer yang menonjol dari yang lain, pertimbangkan fitur berikut:

  • Stiker dan GIF. Setiap utusan lainnya hari ini mengintegrasikan layanan GIF populer Giphy ke dalam antarmuka untuk melengkapi emoticon. Stiker menjadi populer ketika Telegram mulai menawarkannya secara gratis (berbeda dengan Viber, misalnya, di mana hanya beberapa stiker yang gratis).

  • Obrolan rahasia/pribadi. Apakah Anda mengenkripsi metadata pengguna Anda atau tidak, dalam kenyataan badai hari ini, mungkin menjadi nilai jual aplikasi Anda untuk memiliki obrolan yang menghilang atau dapat dikunci. Misalnya, Telegram menawarkan obrolan rahasia yang secara otomatis hilang jika Anda keluar dari Telegram di perangkat Anda. Obrolan ini tidak disimpan di server cloud Telegram dan karenanya tidak dapat dicadangkan atau disinkronkan meskipun Anda masuk di lebih dari satu perangkat.

  • Obrolan video. Pada tahun 2020, dengan banyaknya orang yang terpaksa bekerja dari jarak jauh karena pandemi, alat konferensi video telah mengalami lonjakan popularitas yang besar. Dan banyak yang menyesali kurangnya panggilan video — panggilan satu lawan satu dan grup — di messenger populer yang ada. Ini sama sekali bukan fitur yang harus dimiliki, tetapi pasti akan populer di kalangan pengguna.

Baca selengkapnya: Bagaimana Cara Membuat Aplikasi Mirip dengan SnapChat?

Cara mengamankan aplikasi perpesanan

Bagian belakang adalah tempat keajaiban terjadi pada utusan. Pakar backend bertanggung jawab atas keamanan dan keandalan aplikasi obrolan Anda, karena merekalah yang tahu cara mengenkripsi pesan.

Ada beberapa cara untuk menerapkan enkripsi ujung ke ujung dan membuat aplikasi komunikasi aman . Biasanya, pesan terenkripsi disimpan di server messenger — server cloud lebih aman dan karenanya direkomendasikan untuk tujuan ini — dan kunci dekripsi hanya tersedia dari perangkat pengguna untuk menghindari pelanggaran data jika server diretas.

Anda juga dapat mengabaikan penyimpanan pesan di server Anda sepenuhnya dan menyimpannya di perangkat pengguna. Namun itu berarti pengguna Anda tidak akan dapat memulihkan riwayat pesan mereka jika perangkat yang mereka gunakan untuk masuk hilang atau mereka menghapus aplikasi. Menyinkronkan pesan antar perangkat juga tidak mungkin dilakukan.

Untuk membuat aplikasi perpesanan yang aman seperti Signal, Anda sebenarnya dapat menggunakan API perpesanan terenkripsi dari Signal itu sendiri . Protokol enkripsi open-source Signal adalah yang paling populer di antara pengembang yang membangun messenger, karena terus-menerus ditinjau dan diaudit oleh rekan sejawat. Pada saat penulisan, utusan berikut menggunakan protokol Signal untuk mengenkripsi isi pesan mereka:

  • Ada apa
  • Facebook Messenger (hanya obrolan rahasia)
  • Skype (Hanya Percakapan Pribadi)
  • Pesan Google untuk Android (SMS)

Telegram menggunakan algoritma berbasis enkripsi AES 256-bit simetrisnya sendiri yang disebut MTProto untuk obrolan rahasia. Algoritme ini adalah sumber tertutup, di mana Telegram telah banyak dikritik.

Biaya untuk membuat aplikasi perpesanan yang aman

Tim untuk membuat aplikasi perpesanan yang aman

Biaya untuk membuat aplikasi apa pun sangat bergantung pada waktu yang dibutuhkan untuk pengembangan . Sejauh jumlah fitur, messenger tidak tampak terlalu rumit; namun, bagian belakang saja untuk aplikasi perpesanan yang dienkripsi dengan baik dapat memakan waktu sekitar 520 jam untuk membangun .

Pilihan bahasa pemrograman yang biasa untuk back end messenger adalah Elixir atau Erlang — Ruby on Rails bukanlah pilihan yang baik untuk sejumlah besar data dalam bentuk pesan teks, media, dan panggilan audio/video. WhatsApp menggunakan Erlang, sementara Elixir digunakan oleh Discord.

Baca selengkapnya: Peran dan nilai manajer proyek dalam proses pengembangan aplikasi .

Di Mind Studios , kami mengembangkan aplikasi messenger dengan back end berbasis Elixir. Namun, Elixir sendiri didasarkan pada Erlang dengan beberapa campuran Ruby, sehingga pengembang Elixir yang berpengalaman juga dapat menulis kode di Erlang.

Inilah pendapat kami tentang waktu yang diperlukan untuk mengembangkan aplikasi perpesanan yang aman :

  • Analisis bisnis dan pembuatan spesifikasi — 96+ jam

  • Desain UI/UX — 168+ jam

  • Aplikasi seluler sisi klien iOS — 450+ jam untuk MVP dengan fitur paling penting

  • Pengembangan backend — 520+ jam

  • Pengujian aplikasi iOS — ~ 240 jam

Pengembangan Android membutuhkan waktu sedikit lebih sedikit daripada pengembangan iOS, tetapi pengujian membutuhkan waktu lebih lama karena variasi perangkat yang lebih luas.

Dengan perkiraan waktu kasar ini, biaya untuk membangun aplikasi obrolan yang benar-benar aman akan mulai dari $51.590 dan akan naik dengan fitur tambahan.

Kesimpulan

Pembawa pesan yang aman sangat penting, dan permintaannya tinggi hari ini dan akan lebih tinggi besok. Tapi begitu juga persaingannya. Tidak setiap perusahaan dapat membuat aplikasi perpesanan terenkripsi. Untuk mengembangkan aplikasi pesan instan yang aman seperti Signal, Anda memerlukan pengembang yang berpengalaman di bidang ini .

Anda juga harus mengikuti para pemimpin industri dalam hal desain. Aplikasi Signal sederhana dan tidak terkenal dengan intuisinya, tetapi aplikasi ini memenangkan pengguna yang lebih peduli dengan privasi mereka daripada tentang lonceng dan peluit. WhatsApp dan Telegram, di sisi lain, terlihat mewah dan sangat intuitif selain aman (sementara keamanannya mungkin tidak setingkat Signal, namun tetap mengesankan). Jadi untuk bersinar terang di ceruk ini, aplikasi khusus Anda harus aman dan ramah pengguna . Menyeimbangkan persyaratan ini bukanlah masalah sepele. Tetapi dengan tim yang tepat, itu mungkin.