Platform komunikasi mesh offline terdesentralisasi berbasis kriptografi ringan Ascon-AEAD128 standar NIST.
Berkomunikasi aman antar perangkat di jaringan lokal tanpa server pusat, tanpa internet.
π₯ Download β’ π Quick Start β’ π Dokumentasi β’ ποΈ Arsitektur
| Fitur | Keterangan |
|---|---|
| π End-to-End Encrypted | Setiap DM dienkripsi dengan Ascon-AEAD128 (NIST SP 800-232) + X25519 ECDH sebelum meninggalkan perangkat |
| π Mesh Networking | Pesan di-relay melalui node perantara via protokol CLAMP tanpa perantara yang bisa membaca isinya |
| π‘ Auto Peer Discovery | Penemuan peer otomatis via UDP Broadcast tanpa konfigurasi manual |
| π X25519 ECDH Key Exchange | Pertukaran kunci Diffie-Hellman berbasis kurva eliptik, HKDF-SHA256 untuk key derivation |
| π‘οΈ Private Key di Keychain OS | Private key disimpan di Windows Credential Manager β tidak pernah ada di disk sebagai plaintext |
| π Token Bucket Rate Limiter | Perlindungan per-peer: burst 200 paket, 100 paket/detik β pelanggaran menurunkan trust score |
| πΎ Offline-First + Epidemic Sync | Pesan tersimpan lokal dan disinkronkan otomatis saat peer kembali terhubung |
| π QR Code Peer Verification | Verifikasi identitas peer via QR code dan Safety Number (SHA-256 canonical) |
| π Emergency Broadcast | Siaran darurat bertipe INFO / EVAC / STATUS / RESOURCE dengan flooding mesh |
| πΊοΈ Radar Topology View | Visualisasi real-time topologi jaringan mesh dengan garis koneksi antar node |
| π‘οΈ Replay Protection | LRU cache 512 entri Packet ID untuk mencegah serangan replay paket |
| β‘ Lightweight | Binary Rust dengan overhead memori minimal, cocok untuk perangkat low-end |
CARAKA mengimplementasikan Protokol CLAMP (Compact Lightweight Authenticated Mesh Protocol), protokol lapisan aplikasi biner yang dirancang untuk keamanan dan efisiensi di jaringan mesh lokal.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CARAKA Desktop (Tauri v2) β
β βββββββββββββββ ββββββββββββββββββββββββββββββββββββ β
β β Frontend β β Backend (Rust) β β
β β HTML/CSS/JS βββββΊβ commands.rs β state.rs β β
β βββββββββββββββ ββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββΌββββββββββββββββββββ β
β βΌ βΌ βΌ β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β βcrypto.rs β βrouting.rsβ β store.rs β β
β β β β β β β β
β βAscon- β βControlledβ β SQLite + β β
β βAEAD128 β βFlooding β βCiphertextβ β
β βX25519 β βRate Limitβ β Only β β
β βHKDF-SHA2 β βTrustScoreβ β β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β β
β βββββββββββββββββββββΌββββββββββββββββββββ β
β βΌ βΌ βΌ β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β βdiscovery β βtransport β β sync.rs β β
β β .rs β β .rs β β β β
β βUDP :7770 β βTCP :7771 β βEpidemic β β
β βBroadcast β β+ Sync β βSync β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Lapisan | Teknologi |
|---|---|
| Framework Desktop | Tauri v2 |
| Backend | Rust 1.75+ |
| Frontend | HTML5, CSS3, Vanilla JavaScript |
| Enkripsi Simetris | Ascon-AEAD128 (NIST SP 800-232 / NIST LWC Winner) |
| Key Exchange | X25519 ECDH via x25519-dalek |
| Key Derivation | HKDF-SHA256 via hkdf + sha2 |
| Penyimpanan Kunci | Windows Credential Manager via keyring v2 |
| Database | SQLite via rusqlite (hanya menyimpan ciphertext) |
| Transport | TCP :7771 (data) + UDP :7770 (discovery) |
| QR Code | qrcode 0.14 + image 0.25 + base64 0.22 |
Unduh installer terbaru dari halaman Releases:
- Windows β
CARAKA Desktop_x.x.x_x64-setup.exe(NSIS Installer) - Windows β
CARAKA Desktop_x.x.x_x64_en-US.msi(MSI Package)
Prasyarat:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Install Tauri CLI
cargo install tauri-cliBuild:
# Clone repository
git clone https://github.com/0xAre/CARAKA-DEKSTOP.git
cd CARAKA-DEKSTOP
# Jalankan mode development
cargo tauri dev
# Atau build release
cargo tauri build-
Hubungkan semua laptop ke jaringan Wi-Fi yang sama
-
Buka port Firewall di setiap laptop (jalankan sebagai Administrator):
New-NetFirewallRule -DisplayName "CARAKA UDP Discovery" -Direction Inbound -Protocol UDP -LocalPort 7770 -Action Allow New-NetFirewallRule -DisplayName "CARAKA TCP Data" -Direction Inbound -Protocol TCP -LocalPort 7771 -Action Allow
-
Jalankan
caraka-desktop.exedi ketiga laptop. Saat Windows Firewall meminta izin, klik Allow. -
Peer Discovery Otomatis β dalam Β±30 detik, laptop lain akan muncul di sidebar secara otomatis.
-
Tambah Peer Manual (jika discovery tidak berjalan):
- Klik tombol
+di sidebar - Masukkan IP address laptop lain (cek via
ipconfigβ bagianWi-Fi) - Port:
7771
- Klik tombol
Alice (Laptop 1) Bob (Relay) Charlie (Laptop 3)
β β β
βββββ DM-Key = HKDF(ECDH) βββββΊβ β
β β (tidak bisa baca isi) β
βββββ Ascon-AEAD128(msg) βββββββΊβββββ forward paket ββββββββΊβ
β β β
βββββββββββββββββββββ Pesan hanya terbaca oleh Charlie βββββββ
| Properti | Implementasi |
|---|---|
| Private key | Windows Credential Manager (tidak pernah di disk plaintext) |
| Ciphertext di disk | SQLite hanya menyimpan bytes terenkripsi |
| Relay node | Hanya meneruskan paket terenkripsi, tidak bisa baca isi |
| Replay attack | LRU cache 512 Packet ID + nonce window Β±300 detik |
| Rate limiting | Token bucket per-peer: burst 200, 100 pkt/det |
| AAD binding | Header CLAMP 13-byte sebagai AAD β ciphertext terikat ke konteks paket |
| Hop authentication | HKDF-derived HopMAC di setiap relay hop |
CARAKA-DEKSTOP/
βββ src/ # Frontend (HTML/CSS/JS)
β βββ index.html # Tampilan utama (chat, radar, settings)
β βββ main.js # Logic UI & Tauri IPC
β βββ styles/main.css # Styling
β
βββ src-tauri/ # Backend Rust
β βββ src/
β β βββ main.rs # Entry point Tauri + command registration
β β βββ state.rs # AppState, node lifecycle
β β βββ commands.rs # Tauri IPC: send_dm, broadcast, QR, safety number
β β βββ crypto.rs # Ascon-AEAD128 + X25519 ECDH
β β βββ keys.rs # Key generation & Credential Manager
β β βββ packet.rs # CLAMP packet framing & types
β β βββ routing.rs # Mesh routing, trust score, rate limiting
β β βββ discovery.rs # UDP peer discovery (:7770)
β β βββ transport.rs # TCP transport + epidemic sync handlers
β β βββ store.rs # SQLite encrypted store
β β βββ sync.rs # Epidemic sync coordination
β β βββ hotspot.rs # Wi-Fi hotspot management
β β βββ network_monitor.rs # Network interface monitoring
β βββ icons/ # App icons (semua ukuran, CARAKA brand)
β βββ capabilities/
β β βββ default.json # Tauri v2 permissions
β βββ tauri.conf.json # Konfigurasi Tauri (CSP, NSIS, signing)
β
βββ docs/
β βββ CLAMP-SPEC.md # Spesifikasi protokol CLAMP lengkap
β βββ 01_PROJECT_PROPOSAL.md
β βββ 02_TECHNICAL_DESIGN.md
β βββ 03_DEVELOPMENT_GUIDE.md
β
βββ .github/
βββ workflows/
βββ release.yml # CI/CD: build & release otomatis via tag v*.*.*
Spesifikasi teknis protokol CLAMP tersedia di docs/CLAMP-SPEC.md, mencakup:
- Format paket biner (62-byte fixed header)
- Semua tipe paket (DM, Channel, SyncReq/Resp/Data, Hello, Broadcast)
- Detail kriptografi: Ascon-AEAD128, X25519 ECDH, HKDF-SHA256 DM key, HopMAC
- Routing, replay protection, trust score, rate limiting
- Epidemic sync, inner DM payload JSON, broadcast payload JSON
- Fase 1 β Core Cryptographic Engine (Ascon-AEAD128, X25519 ECDH, HKDF)
- Fase 2 β CLAMP Protocol Engine (packet framing, replay protection, trust score)
- Fase 3 β P2P Networking (UDP discovery, TCP transport, mesh routing)
- Fase 4 β GUI Desktop (Tauri v2, chat UI, radar topology, peer management)
- Fase 5 β Security Hardening (keyring, rate limiting, CSP, QR verification, safety number)
- Fase 6 β Fitur Lanjutan (epidemic sync, emergency broadcast types, CI/CD release pipeline)
- Fase 7 β Evaluasi & Benchmark (microbenchmark, network benchmark, paper)
Kontribusi sangat disambut! Silakan buka Issue atau Pull Request.
- Fork repository ini
- Buat branch fitur baru:
git checkout -b feat/nama-fitur - Commit perubahan:
git commit -m 'feat: tambah fitur X' - Push ke branch:
git push origin feat/nama-fitur - Buka Pull Request
Didistribusikan di bawah Lisensi MIT. Lihat LICENSE untuk informasi lebih lanjut.
Dibuat dengan β€οΈ menggunakan Rust + Tauri + Ascon
"Komunikasi aman bukan hak istimewa β ini adalah kebutuhan dasar."