📅 16 Mei 2026 | ⏱ 6 menit baca | 👤 SUGENKWAVE NUSANTARA TECH
🔒 Enkripsi End-to-End di Chat AIoT
E2EE
ECDH
AES-256
Kriptografi
Enkripsi end-to-end (E2EE) adalah sistem keamanan di mana hanya pengirim dan penerima yang bisa membaca pesan. Bahkan server sekalipun tidak bisa mendekripsi pesan tersebut. Di Chat AIoT, semua pesan, perintah IoT, dan data suara dienkripsi sebelum dikirim.
Apa itu Enkripsi End-to-End?
Dalam model keamanan tradisional, server bisa membaca semua pesan karena bertindak sebagai perantara. Dengan E2EE, data dienkripsi di perangkat pengirim dan baru didekripsi di perangkat penerima. Server hanya meneruskan data yang sudah terenkripsi tanpa bisa membacanya.
ECDH: Bertukar Kunci Tanpa Mengirim Kunci
ECDH (Elliptic Curve Diffie-Hellman) adalah algoritma kriptografi yang memungkinkan dua pihak membuat kunci rahasia bersama melalui saluran yang tidak aman. Setiap perangkat membuat pasangan kunci (public key dan private key). Public key dikirimkan ke lawan bicara, sementara private key disimpan rahasia. Dengan menggabungkan private key sendiri dan public key lawan, kedua perangkat bisa menghasilkan kunci yang sama persis — tanpa pernah mengirim kunci rahasia tersebut.
// Contoh ECDH di Chat AIoT
const keyPair = await crypto.subtle.generateKey(
{ name: "ECDH", namedCurve: "P-256" },
true,
["deriveKey"]
);
const sharedSecret = await crypto.subtle.deriveKey(
{ name: "ECDH", public: peerPublicKey },
keyPair.privateKey,
{ name: "AES-GCM", length: 256 },
true,
["encrypt", "decrypt"]
);
AES-256-GCM: Enkripsi Pesan
Setelah kunci bersama didapat, Chat AIoT menggunakan AES-256-GCM untuk mengenkripsi setiap pesan. AES-256 adalah standar enkripsi yang digunakan oleh pemerintah AS untuk data berklasifikasi "Top Secret". Mode GCM (Galois/Counter Mode) juga menyediakan otentikasi — pesan yang dirusak atau diubah akan terdeteksi dan ditolak.
// Enkripsi pesan
const encrypted = await crypto.subtle.encrypt(
{ name: "AES-GCM", iv: iv },
sharedKey,
encoder.encode(pesanAsli)
);
// Dekripsi pesan
const decrypted = await crypto.subtle.decrypt(
{ name: "AES-GCM", iv: iv },
sharedKey,
encrypted
);
Cara Kerja E2EE di Chat AIoT
- Step 1: User A dan B login dengan Google Auth
- Step 2: Sistem generate key pair ECDH di masing-masing browser
- Step 3: Public key dikirim via MQTT signaling
- Step 4: Keduanya derive shared secret menggunakan private key masing-masing
- Step 5: Pesan dienkripsi dengan AES-256-GCM sebelum dikirim
- Step 6: Penerima dekripsi dengan shared key yang sama
💡 Chat AIoT adalah salah satu dari sedikit platform IoT yang menerapkan E2EE penuh. Sebagian besar platform smart home komersial tidak mengenkripsi data sensor Anda.