Langsung ke konten utama
Solusi

Enkripsi E2E untuk Capacitor Updater via Code Signing

Menggunakan kriptografi RSA + AES untuk enkripsi update, dirancang untuk enterprise dan aplikasi high security

Enkripsi E2E untuk Capacitor Updater via Code Signing

Capacitor-updater kini mendukung enkripsi code end-to-end. Code signing memastikan update yang dijalankan di perangkat end user tidak dimodifikasi, serta memberikan proteksi ekstra di atas standar web-grade security Capacitor-updater.

Keamanan default Capacitor-updater

Secara default, model keamanan Capgo mirip dengan penyedia web hosting. Capgo menyimpan update dienkripsi saat istirahat dan menyajikannya melalui HTTPS menggunakan cipher modern. Begitu pula, saat mempublikasikan update dari komputer developer, HTTPS selalu digunakan.

Capgo meraih skor A+ pada tes HTTPS SSL Labs

Keamanan default Capgo meraih skor A+ pada tes HTTPS SSL Labs (https://www.ssllabs.com, November 2022)

Seperti web host terbaik di kelasnya, Capgo menggunakan HTTPS untuk melindungi privasi dan integritas koneksi jaringan antara server dan perangkat end user. Ini adalah level keamanan luar biasa yang bekerja baik untuk web maupun aplikasi Ionic yang menggunakan Capgo.

Rantai pasok infrastruktur cloud

Hal lain yang dimiliki Capgo dan kebanyakan web host adalah keduanya berjalan di infrastruktur cloud tingkat rendah, seringkali dari AWS, GCP, atau penyedia cloud populer lainnya. Hardware dan software yang dioperasikan oleh penyedia cloud ini serta Capgo atau web host lainnya adalah bagian dari cloud supply chain.

Cloud supply chain dan model keamanannya bekerja untuk banyak sekali website dan aplikasi. Setiap web developer yang menggunakan penyedia cloud menaruh kepercayaan pada provider tersebut dan berharap file yang mereka upload adalah file yang dijalankan atau disajikan tanpa dimanipulasi. Dan penyedia cloud bekerja keras menjaga keamanan infrastruktur mereka.

Namun tentu saja, kerentanan hardware dan software akan ditemukan. Penyedia cloud melakukan patch kerentanan sesuai jadwal, secara proaktif mencegah software berbahaya (misalnya, SLSA milik Google), dan membangun lapisan pertahanan mendalam, di mana infrastruktur cloud terbukti mampu memenuhi sebagian besar kebutuhan keamanan situs web dan aplikasi. Namun, beberapa aplikasi Ionic memasukkan infrastruktur cloud yang terkompromi ke dalam model ancaman mereka. Untuk aplikasi Capacitor JS dengan persyaratan keamanan tertinggi di atas web ini, kami membangun code signing end-to-end di Capgo dan protokol standar Capgo Updates.

code signing end-to-end dengan Capgo

code signing end-to-end milik Capgo menggunakan kriptografi kunci publik untuk memastikan perangkat pengguna akhir hanya menjalankan update asli yang tidak dimodifikasi dari developer aplikasi Capacitor.

“End-to-end” berarti keamanan ini mencakup alur dari saat developer merilis update hingga saat perangkat pengguna akhir menerima dan menjalankan update tersebut. “Code signing” adalah penggunaan kriptografi dan private key rahasia untuk “menandatangani” code, dan kemudian menggunakan public key terpercaya untuk memverifikasi tanda tangan tersebut.

Berikut adalah skema sederhana* untuk menjelaskan cara kerjanya:

Skema enkripsi Capgo

  • Kriptografi itu sulit dan kompleks dalam praktiknya

Definisi:

  • AES: Advanced Encryption Standard, algoritma enkripsi simetris, menggunakan satu kunci untuk enkripsi dan dekripsi.
  • RSA: Rivest–Shamir–Adleman, sebuah algoritma enkripsi asimetris, menggunakan dua kunci: kunci publik dan kunci privat.
  • Cypher: Data yang telah dienkripsi.
  • Session key: Kunci AES yang digunakan untuk enkripsi dan dekripsi data.
  • Checksum: Hash yang dihitung untuk sebuah file
  • Signature: Checksum yang dienkripsi dengan private RSA key. Dapat diverifikasi menggunakan public RSA key

Kami menggunakan algoritma AES untuk mengenkripsi update. AES key acak dibuat untuk setiap upload, lalu AES key dan checksum (selanjutnya disebut “signature”) dienkripsi dengan private RSA key developer. Public RSA key developer digunakan di dalam app untuk mendekripsi AES key dan signature (mengembalikannya menjadi checksum). Kemudian, AES key yang telah didekripsi digunakan untuk mendekripsi update; checksum dari update yang didekripsi dihitung, lalu dibandingkan dengan signature yang telah didekripsi.

Kami menggunakan dua algoritma enkripsi berbeda karena RSA tidak bisa digunakan untuk mengenkripsi data dalam jumlah besar. AES digunakan untuk mengenkripsi update, sedangkan RSA digunakan untuk mengenkripsi AES key dan checksum.

Dengan ini, bahkan Capgo pun tidak bisa membaca isi bundle Anda. Ini adalah model keamanan tangguh yang digunakan oleh banyak pelanggan enterprise.

Enkripsi Update V2 2024-08-27:

  • Kami mengganti tipe key yang disimpan di dalam app. Hal ini dilakukan untuk mencegah inferensi public key (sebelumnya untuk enkripsi) dari private key (sebelumnya untuk dekripsi). Sekarang, app menyimpan public key (yang kini digunakan untuk dekripsi).
  • Kami mengganti checksum dari algoritma CRC32 ke algoritma SHA256. Kami juga mulai melakukan signing pada bundle. Saat enkripsi V2 dikonfigurasi, update harus memiliki signature yang valid. Hal ini ditegakkan secara ketat oleh plugin.
  • Kami sekarang mewajibkan signature valid saat enkripsi V2 dikonfigurasi. 3 perubahan ini dilakukan setelah analisis keamanan dari anggota komunitas. Tujuannya untuk mencegah serangan kriptografi saat update.

Jika Anda menggunakan enkripsi V1, migrasi ke V2 untuk mendapatkan fitur keamanan baru. Ikuti instruksi migrasi.

Dengan signing code end-to-end, Capgo menjadi infrastruktur cloud yang “trustless”. Jika salah satu cloud provider Capgo atau bahkan Capgo itu sendiri memodifikasi update yang ditandatangani code, perangkat end user akan menolak update tersebut dan menjalankan update sebelumnya yang sudah terpercaya di perangkat.

Meskipun HTTPS level web sudah cukup untuk banyak aplikasi, beberapa perusahaan besar merasa level keamanan tambahan dari signing code end-to-end sangat menarik. Beberapa perusahaan ini membuat aplikasi finansial dengan transaksi bernilai tinggi dan permanen. Perusahaan lain memiliki CISO yang memasukkan infrastruktur cloud yang terkompromi ke dalam threat model mereka. Kami membangun signing code end-to-end di Capgo untuk use case ini dan ingin mendengar lebih banyak dari perusahaan dengan kebutuhan keamanan tingkat tinggi.

Memulai untuk pelanggan enterprise

Untuk perusahaan atau proyek besar yang sangat peduli dengan keamanan, kami ingin membuat signing code mudah diatur dan dikelola. Untuk itu, kami kini menyediakan fitur berikut:

  • Setup dan konfigurasi sertifikat yang cepat
  • Dukungan signing code untuk development server dengan Capgo maupun development builds
  • Signing code produksi pada setiap update

Signing Capgo code tersedia untuk semua customer. Untuk memulai, ikuti instruksi setup.

Kredit

Terima kasih banyak kepada Ionic, artikel ini berdasarkan artikel ini ditulis ulang dengan chat-gpt-3 dan diadaptasi.

Lanjutkan dari E2E Encryption untuk Capacitor Updater via Code Signing

Jika Anda menggunakan Enkripsi E2E untuk Capacitor Updater via Code Signing untuk merencanakan keamanan dan kepatuhan, hubungkan dengan Enkripsi untuk detail implementasi pada Encryption, Kepatuhan untuk detail implementasi pada Compliance, Capgo Pemindai Keamanan untuk alur kerja produk di Capgo Security Scanner, Keamanan Capgo untuk alur kerja produk di Capgo Security, dan Capgo Pusat Kepercayaan untuk workflow produk di Capgo Trust Center.

Live updates untuk aplikasi Capacitor

Saat bug web-layer sudah live, kirim perbaikannya lewat Capgo alih-alih menunggu berhari-hari untuk persetujuan app store. Pengguna mendapat update di background, sementara perubahan native tetap mengikuti jalur review normal.

Terbaru dari Blog kami

Capgo memberikan insight terbaik yang Anda butuhkan untuk membuat aplikasi mobile yang benar-benar profesional.