LumaChat LumaChat
Keamanan

Keamanan & Enkripsi

Terakhir diperbarui: 21 Desember 2025 | Versi 2.9.11

LumaChat menggunakan Signal Protocol — standar industri yang sama digunakan oleh Signal, WhatsApp, dan aplikasi messaging terkemuka lainnya.

Arsitektur Zero-Knowledge

LumaChat dibangun dengan prinsip Zero-Knowledge — server kami tidak memiliki kemampuan untuk membaca pesan Anda:

┌─────────────────────────────────────────────────────────────┐
│                    ZERO-KNOWLEDGE SERVER                     │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│   YANG SERVER SIMPAN:                                        │
│   ├─ Encrypted blobs (data terenkripsi, tidak bisa dibaca)  │
│   ├─ Public keys (untuk key exchange)                       │
│   └─ Metadata routing (LINK ID, timestamp)                  │
│                                                              │
│   YANG SERVER TIDAK BISA LAKUKAN:                           │
│   ├─ ❌ Membaca isi pesan                                   │
│   ├─ ❌ Mendekripsi media                                   │
│   ├─ ❌ Mengakses private key                               │
│   └─ ❌ Merekonstruksi percakapan                           │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Signal Protocol

Protokol enkripsi kami terdiri dari komponen-komponen berikut:

X3DH Key Exchange

Extended Triple Diffie-Hellman untuk pertukaran kunci awal yang aman, bahkan saat penerima offline.

Double Ratchet

Algoritma yang memastikan forward secrecy — setiap pesan memiliki kunci unik.

AES-256-GCM

Enkripsi simetris dengan authenticated encryption untuk melindungi konten pesan.

X25519

Elliptic Curve Diffie-Hellman untuk key exchange dengan keamanan 256-bit.

Alur Enkripsi Pesan

┌──────────────┐                                    ┌──────────────┐
│   PENGIRIM   │                                    │   PENERIMA   │
└──────┬───────┘                                    └──────┬───────┘
       │                                                   │
       │ 1. Tulis pesan                                    │
       │ 2. Enkripsi dengan session key                    │
       │                                                   │
       │ 3. Kirim via WebSocket (terenkripsi)              │
       ├──────────────────────────────────────────────────►│
       │          [Encrypted Message]                      │
       │                                                   │
       │                                              4. Dekripsi
       │                                              5. Tampilkan
       │                                                   │
       │ 6. Delivery receipt                               │
       │◄──────────────────────────────────────────────────┤
       │                                                   │

Enkripsi Media (100MB+)

Media dienkripsi sebelum upload menggunakan teknologi chunked upload:

  1. Enkripsi lokal: File dienkripsi dengan AES-256-GCM di perangkat Anda
  2. Chunking: File dipecah menjadi chunk 256KB
  3. Upload: Setiap chunk diupload terpisah dengan progress indicator
  4. Storage: Server menyimpan encrypted blob (tidak bisa dibaca)
  5. Key transfer: Kunci dekripsi dikirim via E2E encrypted message
  6. Auto-delete: Media dihapus otomatis setelah 30 hari

Enkripsi Panggilan (WebRTC)

Panggilan suara dan video menggunakan WebRTC dengan enkripsi:

Transparansi Enkripsi (v2.8.7+)

Anda dapat memverifikasi enkripsi secara visual di aplikasi:

Privacy Badge

Indikator enkripsi di profil kontak

Session Fingerprint

Format: XXXX-XXXX untuk verifikasi

Encryption Panel

Detail status enkripsi di menu chat

Manajemen Kunci

Jenis Kunci Rotasi Fungsi
Identity Key Tidak (kecuali compromised) Identitas jangka panjang
Signed PreKey Setiap 7 hari Key exchange medium-term
One-Time PreKey Sekali pakai Forward secrecy maksimal
Session Key Setiap pesan (ratchet) Enkripsi pesan individual

Keamanan Infrastruktur

Tips Keamanan untuk Pengguna

✅ Yang Harus Dilakukan

  • Verifikasi kontak baru via QR Code
  • Hubungkan email untuk recovery
  • Update aplikasi secara berkala
  • Gunakan PIN/biometrik di HP

❌ Yang Harus Dihindari

  • Jangan share QR Code di publik
  • Jangan install APK dari sumber tidak resmi
  • Jangan klik link mencurigakan
  • Jangan share LINK ID sembarangan

Pertanyaan Keamanan?

Jika Anda menemukan kerentanan keamanan, silakan laporkan ke security@lumachat.xyz. Kami menghargai responsible disclosure.