Proses Menemukan Pengguna lain dengan Kontak, Bagaimana dan Apa yang Kami Lakukan.

Menjaga Privasi pengguna adalah hal utama dalam pengembangan setiap aplikasi berbasis komukasi teks maupun suara tidak terkecuali bagi kami Japri Chat, untuk dapat saling berinteraksi dengan pengguna lain, tentunya setiap pengguna harus dapat mengenali pengguna lain yang terdaftar sebagai pengguna Japri chat, dalam hal ini setiap pengguna mempunyai ID (identifier) unik yaitu nomor kontak.

Metode yang paling mudah adalah dengan mengirimkan daftar kontak milik pengguna kemudian menentukan mana saja dari daftar tersebut yang menggunakan Japri Chat, tetapi tentu hal itu melanggar privasi pengguna dan membuat mereka tidak merasa aman.

Idealnya kita bisa membuat mekanisme perlindungan privasi untuk mengatasi hal tersebut. Masalahnya adalah: Bagaimana kita menentukan kontak mana yang terdaftar dengan layanan, tanpa mengungkapkan kontak ke penyedia layanan?

ENKRIPSI DATA!
Enkripsi data bisa menjadi solusi, dengan menenkripsi setiap daftar kontak sebelum dikirimkan ke server. Jika server memiliki hash SHA256 dari setiap pengguna terdaftar, server dapat memeriksa apakah itu cocok dengan salah satu hash SHA256 dari kontak yang dikirimkan oleh pengguna.

Tentu hal tersebut bukanlah sesuatu yang dapat dikembangkan dengan mudah dan cepat, sehingga kami melakukan observasi berbagai algoritma dan metode yang cocok untuk aplikasi kami. Kami memutuskan untuk menggunakan projek open-source yaitu Signal-Protocol.

Signal Protocol atau sebelumnya dikenal dengan Texsecure Procotol adalah sebuah protokol kriptografi non-federasi yang bisa digunakan untuk melakukan end-to-end encryption untuk panggilan suara dan pesan teks. Protocol ini di kembangkan oleh Open-Whisper-System dimana protokol ini menggabungkan Double Racthet algorithm, prekeys dan triple Elliptic-curve Diffie-Hellman (3-DH) Handshake dan menggunakan Curve25519, AES-256, dan HMAC-SHA256 sebagai primitifnya.

Sejauh ini, Signal Protocol merupakan projek open source yang paling menjanjikan yang bisa kami gunakan untuk mengembangkan aplikasi kami. Contoh aplikasi yang menggunakan protokol ini juga tersedia di platform android maupun ios yaitu Signal Private Message (mobile).

Salah satu yang kami gunakan dari Signal Protocol adalah untuk fitur untuk mengidentifikasi sesama pengguna Japri Chat, Ketika Anda memberi akses kepada Japri Chat ke buku alamat perangkat Anda, Japri Chat akan mengakses dan mengunggah nomor telepon di buku alamat Anda secara berkala, termasuk nomor telepon kontak yang menggunakan Japri Chat dan juga kontak lainnya. Kami tidak mengumpulkan informasi lain apa pun yang dapat muncul di buku alamat perangkat Anda termasuk nama, alamat email, dan lain-lain. Daftar kontak akan dienkripsi dan akan dikirimkan ke server, kemudian akan digunakan untuk mengidentifikasi pengguna lain yang menggunakan Japri Chat, kontak akan disimpan sementara dan secara berkala (tidak didalam basis data) dan seperlunya hingga waktu tertentu.

Jika Anda memiliki kontak yang belum menggunakan Japri Chat, kami melindungi privasi mereka dengan mengelola nomor telepon dengan cara yang dirancang untuk mencegah kontak tersebut diidentifikasi oleh Japri Chat. Kami melakukan ini dengan membuat nilai hash kriptografi nomor telepon mereka, dan kemudian menghapus nomor tersebut. Nilai hash memungkinkan kami untuk lebih efisien menghubungkan Anda dengan kontak ketika mereka bergabung dengan Japri Chat.