Pembuatan Kunci Offline: Panduan Keamanan Air-Gapped
Membuat kunci cryptocurrency di komputer yang terhubung internet membuatnya terekspos ke malware, keylogger, perekaman layar, pembajakan clipboard, dan eksfiltrasi jarak jauh. Untuk wallet bernilai tinggi yang ditujukan untuk cold storage jangka panjang, standar emasnya adalah pembuatan offline air-gapped: membuat kunci di perangkat yang belum pernah dan tidak akan pernah terhubung ke jaringan apa pun.
Panduan ini memberikan proses langkah demi langkah yang komprehensif untuk pembuatan kunci offline, mencakup pemilihan hardware, penyiapan sistem operasi, pembuatan kunci, verifikasi, dan pembersihan aman.
Mengapa Pembuatan Air-Gapped Penting
Model Ancaman
Saat Anda membuat seed phrase atau private key di komputer sehari-hari, material kunci berada di:
- RAM — Dapat diakses oleh proses apa pun yang berjalan di sistem.
- Disk — Dapat terswap ke disk oleh sistem memori virtual sistem operasi.
- Clipboard — Jika di-copy-paste, dapat diakses oleh setiap aplikasi.
- Network — Jika mesin terhubung, malware dapat mengekfiltrasi kunci seketika.
- Display — Malware perekam layar atau pengintaian langsung.
- Keyboard — Keylogger (software atau hardware) merekam semua input.
Komputer air-gapped menghilangkan vektor jaringan sepenuhnya. Jika dikombinasikan dengan operational security yang tepat, ini juga secara signifikan mengurangi atau menghilangkan vektor lainnya.
Siapa yang Membutuhkan Pembuatan Air-Gapped?
- Siapa pun yang menyimpan nilai lebih dari yang sanggup ia tanggung jika hilang.
- Penyimpanan "deep cold" jangka panjang (bertahun-tahun atau puluhan tahun).
- Kustodi institusional dan manajemen treasury.
- Siapa pun yang menginginkan standar keamanan tertinggi yang bisa dicapai.
Untuk wallet belanja harian dengan saldo kecil, hardware wallet sudah memberikan keamanan yang memadai tanpa kompleksitas prosedur air-gapped.
Pemilihan Hardware
Opsi 1: Laptop Khusus (Direkomendasikan)
Beli laptop baru atau yang sudah factory reset yang akan digunakan khusus untuk pembuatan kunci dan tidak pernah dihubungkan ke internet:
- Lepas atau nonaktifkan semua hardware jaringan. Lepas kartu Wi-Fi dan modul Bluetooth secara fisik jika memungkinkan. Minimal, nonaktifkan keduanya di firmware BIOS/UEFI.
- Nonaktifkan kamera dan mikrofon. Lepas atau tutup/putuskan secara fisik.
- Gunakan laptop tanpa modem seluler.
- Opsi hemat: ThinkPad bekas (X230, T440) — murah, didukung baik oleh Linux, mudah dimodifikasi secara fisik.
Opsi 2: Raspberry Pi
Raspberry Pi (Model 3B+ atau 4) adalah single-board computer berbiaya rendah tanpa Wi-Fi jika Anda memakai Pi Zero tanpa modul wireless, atau jika Anda menonaktifkan jaringan:
- Boot dari kartu microSD.
- Tidak ada penyimpanan persisten selain kartu SD (yang akan Anda hancurkan setelahnya).
- Tidak ada hardware wireless jika memakai model yang tepat.
- Biaya lebih rendah ($35–$75 termasuk aksesori).
Opsi 3: Live USB di Hardware yang Sudah Ada
Boot Linux live USB khusus di komputer yang sudah ada dengan semua jaringan dinonaktifkan:
- Lingkungan live berjalan sepenuhnya di RAM.
- Tidak ada data yang ditulis ke drive internal (jika dikonfigurasi dengan benar).
- Setelah shutdown, RAM dibersihkan.
- Risiko: Komputer yang sudah ada bisa memiliki kompromi level hardware (firmware rootkit, hardware keylogger) yang bertahan lintas boot OS. Perangkat khusus menghilangkan risiko ini.
Penyiapan Sistem Operasi
Tails OS (Direkomendasikan)
Tails adalah distribusi Linux berfokus privasi yang dirancang agar tidak meninggalkan jejak:
- Boot dari USB dan berjalan sepenuhnya di RAM.
- Semua jaringan diarahkan lewat Tor secara default — tetapi untuk penggunaan air-gapped, Anda tidak akan mengaktifkan jaringan sama sekali.
- Dirancang untuk penggunaan amnesia: tidak ada state persisten kecuali dikonfigurasi eksplisit.
- Menyertakan alat umum dan dapat menjalankan Python untuk skrip pembuatan kunci.
Langkah setup:
- Unduh ISO Tails di komputer reguler Anda.
- Verifikasi signature ISO menggunakan signing key Tails.
- Tulis ISO ke USB drive menggunakan Tails Installer, Etcher, atau
dd. - Boot komputer air-gapped dari USB.
- Di Tails Greeter, jangan konfigurasi koneksi jaringan apa pun.
- Verifikasi bahwa tidak ada network interface yang aktif:
ip link showharus menampilkan semua interface DOWN.
Ubuntu Live USB (Alternatif)
Jika Tails tidak cocok:
- Unduh ISO Ubuntu dan verifikasi checksumnya.
- Tulis ke USB.
- Boot dengan jaringan dinonaktifkan di BIOS.
- Di installer Ubuntu, pilih "Try Ubuntu" (jangan install).
- Verifikasi tidak ada konektivitas jaringan.
Memverifikasi Integritas Air-Gap
Setelah boot, verifikasi air gap:
# Check that no network interfaces are UP
ip link show
# Verify no IP addresses assigned
ip addr show
# Attempt to reach the internet (should fail)
ping -c 1 8.8.8.8
# Check for Wi-Fi and Bluetooth
rfkill list all
Semua network interface harus DOWN, tidak ada IP address yang terpasang, dan ping harus gagal. Jika ada tes yang mengindikasikan konektivitas, berhenti dan lakukan troubleshooting sebelum lanjut.
Proses Pembuatan Kunci
Metode 1: Menggunakan Tool SafeSeed Secara Offline
Tool SafeSeed adalah aplikasi web sisi klien yang bisa dijalankan di browser tanpa koneksi internet.
SafeSeed Seed Phrase Generator dan Paper Wallet Creator dapat disimpan untuk penggunaan offline. Sebelum offline, simpan halaman web lengkap (Ctrl+S / Cmd+S), pindahkan ke komputer air-gapped via USB, lalu buka di browser. Semua operasi kriptografi berjalan lokal di JavaScript — tidak perlu komunikasi server.
Langkah:
- Di komputer reguler Anda (online), buka tool SafeSeed.
- Simpan halaman web lengkap ke USB drive.
- Verifikasi integritas file (bandingkan checksum jika tersedia).
- Pindahkan USB drive ke komputer air-gapped.
- Buka file HTML yang disimpan di browser.
- Hasilkan seed phrase Anda.
- Tulis di kertas (jangan simpan secara digital di mesin air-gapped).
- Verifikasi seed phrase dengan memasukkannya ulang dan memastikan alamat yang dihasilkan sama.
Metode 2: Menggunakan Tool BIP-39 Ian Coleman
Tool BIP-39 Ian Coleman adalah halaman HTML standalone open-source yang luas digunakan untuk pembuatan kunci offline:
- Unduh rilis terbaru dari GitHub di komputer online Anda.
- Verifikasi signature PGP.
- Pindahkan ke komputer air-gapped via USB.
- Buka
bip39-standalone.htmldi browser. - Hasilkan atau masukkan mnemonic.
- Pilih coin dan derivation path.
- Catat seed phrase dan alamat.
Metode 3: Entropy Berbasis Dadu
Untuk ketidakpercayaan maksimal terhadap semua software RNG, hasilkan entropy secara manual dengan dadu:
- Gunakan dadu kualitas kasino (dadu presisi dengan tepi tajam, bukan dadu konsumen yang membulat).
- Lempar satu dadu 99 kali untuk 256 bit entropy (setiap lemparan memberi ~2.585 bit; 99 lemparan memberi ~255.9 bit).
- Ubah hasil lemparan dadu menjadi string biner.
- Gunakan tool BIP-39 (offline) untuk mengonversi entropy biner menjadi mnemonic.
- Atau lempar dadu 50 kali untuk 128 bit entropy (frasa 12 kata).
Metode konversi dadu:
- Metode basis-6: Catat setiap lemparan dadu (1-6), ubah urutannya ke biner.
- Metode dadu biner: Gunakan koin (heads=1, tails=0) 256 kali.
- Dadu-ke-biner: Lempar dadu; jika 1-3, catat 0; jika 4-6, catat 1. Ulangi 256 kali.
Metode ketiga membuang entropy paling banyak tetapi paling sederhana. Untuk pembahasan detail kualitas entropy, lihat panduan Entropy and Randomness kami.
Metode 4: Command Line (Python)
Untuk pengguna yang nyaman dengan command line, skrip Python minimal dapat menghasilkan mnemonic BIP-39:
import hashlib
import os
# BIP-39 word list must be loaded from a file
with open('english.txt', 'r') as f:
wordlist = [w.strip() for w in f.readlines()]
# Generate 256 bits of entropy
entropy = os.urandom(32) # Uses OS CSPRNG
# Compute checksum
h = hashlib.sha256(entropy).digest()
checksum_bits = bin(h[0])[2:].zfill(8) # First 8 bits for 256-bit entropy
# Convert entropy to binary string
entropy_bits = bin(int.from_bytes(entropy, 'big'))[2:].zfill(256)
all_bits = entropy_bits + checksum_bits
# Split into 11-bit groups and map to words
words = []
for i in range(0, len(all_bits), 11):
index = int(all_bits[i:i+11], 2)
words.append(wordlist[index])
print(' '.join(words))
Penting: Ini adalah contoh sederhana untuk tujuan edukasi. Untuk penggunaan produksi, gunakan library yang diaudit dengan baik seperti mnemonic dari python-mnemonic.
Verifikasi
Setelah menghasilkan seed phrase, verifikasi sebelum memercayainya untuk menyimpan dana:
1. Verifikasi Checksum
Masukkan seed phrase kembali ke tool pembuatan. Jika tool menerimanya tanpa error, checksum valid.
2. Verifikasi Derivasi Alamat
Derivasikan beberapa alamat pertama untuk cryptocurrency target dan derivation path. Catat alamat ini. Nanti, di perangkat terpisah (atau setelah me-reboot mesin air-gapped), masukkan ulang seed phrase dan verifikasi alamat yang dihasilkan sama.
3. Verifikasi Lintas Tool
Jika memungkinkan, verifikasi seed phrase di dua tool berbeda (misalnya generator SafeSeed dan tool Ian Coleman). Keduanya harus menghasilkan alamat identik dari seed phrase, derivation path, dan passphrase yang sama.
4. Tes Transaksi Kecil
Sebelum menyimpan nilai signifikan:
- Kirim sejumlah kecil cryptocurrency ke alamat penerimaan pertama.
- Di perangkat terpisah, pulihkan wallet dari seed phrase.
- Verifikasi dana terlihat dan Anda bisa menandatangani transaksi untuk mengirimkannya kembali.
Ini mengonfirmasi seluruh rantai: pembuatan entropy, encoding mnemonic, derivasi seed, derivasi kunci, dan pembuatan alamat semuanya benar.
Mencatat Seed Phrase
Kertas
- Tulis dengan jelas menggunakan pena tinta permanen di kertas bebas asam.
- Nomori setiap kata (1-24).
- Jangan menulis di permukaan yang bisa meninggalkan bekas tekanan (jangan menulis di blok kertas yang bekas tulisannya terlihat di lembar bawah).
- Simpan di wadah tahan api dan tahan air.
Logam
- Cap atau ukir pada pelat stainless steel.
- Uji dengan singkatan empat huruf pertama jika ruang terbatas.
- Verifikasi keterbacaan segera setelah dicap.
- Logam tahan api dan banjir — direkomendasikan untuk penyimpanan jangka panjang.
Yang Tidak Boleh Dilakukan
- Jangan memotret seed phrase.
- Jangan mengetiknya ke file apa pun di mesin air-gapped.
- Jangan mencetaknya (printer punya memori dan kemampuan jaringan).
- Jangan menyimpannya ke USB drive.
Pembersihan Aman
Setelah membuat dan mencatat seed phrase Anda, hapus semua jejak dari perangkat air-gapped:
1. Bersihkan Clipboard dan Layar
- Tutup semua aplikasi.
- Bersihkan clipboard (Ctrl+C teks tidak relevan).
2. Shutdown
- Matikan komputer. Isi RAM meluruh dalam hitungan detik hingga menit setelah daya hilang.
- Untuk keyakinan ekstra, biarkan mesin mati setidaknya 15 menit (DRAM menyimpan data untuk periode lebih pendek pada suhu ruang, lebih lama di lingkungan dingin).
3. Media Penyimpanan
- Jika menggunakan Tails live USB, tidak ada yang ditulis ke disk. USB dapat dipakai ulang.
- Jika menggunakan kartu SD Raspberry Pi dengan OS non-amnesic, wipe kartu SD secara aman (
dd if=/dev/urandom of=/dev/sdX bs=1M) atau hancurkan secara fisik. - Jika Anda tidak sengaja menyimpan apa pun ke drive internal mesin air-gapped, wipe secara aman.
4. USB Drive
- USB drive yang digunakan untuk memindahkan tool pembuatan seharusnya tidak berisi material kunci yang dihasilkan jika Anda mengikuti instruksi dengan benar.
- Verifikasi USB hanya berisi file tool asli, tidak ada yang lain.
- Untuk keamanan maksimal, wipe USB setelah penggunaan.
Lanjutan: Menandatangani Transaksi Secara Air-Gapped
Komputer air-gapped berguna bukan hanya untuk pembuatan kunci tetapi juga untuk penandatanganan transaksi berkelanjutan:
Alur Kerja
- Mesin online (watch-only): Susun transaksi unsigned.
- Transfer: Pindahkan transaksi unsigned ke mesin air-gapped via USB atau QR code.
- Mesin air-gapped: Tandatangani transaksi dengan private key.
- Transfer: Pindahkan transaksi signed kembali ke mesin online.
- Mesin online: Broadcast transaksi signed ke jaringan.
Transfer QR Code (Direkomendasikan)
Menggunakan QR code menghilangkan USB drive sepenuhnya, menutup potensi vektor malware (perangkat USB dapat membawa payload auto-executing):
- Tampilkan transaksi unsigned sebagai QR code di mesin online.
- Pindai QR code dengan kamera yang terhubung ke mesin air-gapped.
- Tandatangani transaksi.
- Tampilkan transaksi signed sebagai QR code di mesin air-gapped.
- Pindai dengan mesin online.
Wallet yang mendukung penandatanganan air-gapped berbasis QR mencakup Coldcard, Keystone, dan Sparrow Wallet (dengan setup webcam).
PSBT (Partially Signed Bitcoin Transactions)
Format PSBT Bitcoin (BIP-174) dirancang khusus untuk alur kerja air-gapped. PSBT berisi semua informasi yang diperlukan untuk menandatangani transaksi tanpa mengharuskan perangkat penandatangan memiliki data blockchain.
Setup Multi-Signature Air-Gapped
Untuk keamanan tertinggi, gabungkan pembuatan kunci air-gapped dengan multi-signature:
- Hasilkan tiga seed phrase terpisah dalam tiga sesi air-gapped terpisah (idealnya di perangkat berbeda).
- Setup wallet multi-signature 2-dari-3.
- Simpan setiap seed phrase di lokasi fisik berbeda.
- Transaksi memerlukan penandatanganan di dua dari tiga perangkat air-gapped.
Ini memberi perlindungan terhadap:
- Satu perangkat yang terkompromi (hanya satu kunci terekspos).
- Satu seed phrase yang hilang (dua kunci tersisa masih bisa menandatangani).
- Satu lokasi penyimpanan yang terkompromi.
Kesalahan Umum
Kesalahan 1: Menggunakan Komputer "Bersih" Tapi Pernah Terhubung Sebelumnya
Wipe dan install ulang OS pada komputer yang sebelumnya pernah terhubung internet tidaklah cukup. Malware level firmware (UEFI rootkit) bisa bertahan setelah reinstall OS. Perangkat khusus yang tidak pernah terhubung menghilangkan risiko ini.
Kesalahan 2: Menghubungkan Mesin Air-Gapped "Sebentar Saja"
Koneksi jaringan apa pun, bahkan sebentar, merusak air gap. Malware bisa mengekfiltrasi private key dalam hitungan milidetik. Setelah terhubung, perangkat tidak lagi dapat dianggap air-gapped.
Kesalahan 3: Menggunakan Printer
Printer sering memiliki penyimpanan sendiri (untuk spool print job) dan banyak printer modern memiliki Wi-Fi atau Bluetooth. Mencetak seed phrase dapat menyimpannya di memori printer dan berpotensi mentransmisikannya. Tulis tangan sebagai gantinya.
Kesalahan 4: Mentransfer Seed Phrase Secara Digital
Seed phrase tidak boleh pernah ada dalam bentuk digital di luar momen singkat saat ditampilkan di layar air-gapped. Jangan salin ke USB drive, simpan ke file, atau enkode ke QR code untuk transfer. Tulis di kertas atau cap di logam secara langsung.
Kesalahan 5: Tidak Memverifikasi Tool Pembuatan
Tool yang Anda pindahkan ke mesin air-gapped harus diverifikasi sebelum digunakan. Periksa hash file, signature PGP, atau minimal bandingkan ukuran file. Tool yang telah dimanipulasi dapat menghasilkan kunci deterministik yang sudah diketahui penyerang.
FAQ
Mengapa tidak langsung pakai hardware wallet?
Hardware wallet sangat bagus dan cukup untuk sebagian besar pengguna. Pembuatan air-gapped memberi margin keamanan tambahan untuk penyimpanan bernilai sangat tinggi karena menghilangkan kebutuhan trust pada random number generator dan firmware hardware wallet. Pendekatan air-gapped juga memungkinkan verifikasi dengan beberapa tool independen, sedangkan hardware wallet adalah satu titik trust.
Berapa lama seluruh proses air-gapped berlangsung?
Untuk setup pertama kali, perkirakan 2-4 jam termasuk persiapan OS, verifikasi, pembuatan kunci, dan pembersihan. Pembuatan berikutnya pada perangkat yang sudah siap memerlukan 30-60 menit.
Bisakah saya memakai smartphone sebagai perangkat air-gapped?
Smartphone sulit benar-benar dibuat air-gapped karena memiliki banyak radio (seluler, Wi-Fi, Bluetooth, NFC) yang tidak selalu bisa dinonaktifkan secara fisik. Laptop dengan hardware jaringan yang dilepas lebih dapat dipercaya. Beberapa perangkat yang memang dirancang khusus (seperti wallet Keystone) dibuat sebagai perangkat penandatangan air-gapped.
Apakah pembuatan air-gapped perlu untuk setiap wallet?
Tidak. Untuk wallet penggunaan harian dengan jumlah kecil, hardware wallet bereputasi baik atau bahkan software wallet yang diamankan dengan baik sudah cukup. Pembuatan air-gapped direkomendasikan untuk cold storage jangka panjang bernilai signifikan.
Bagaimana cara memperbarui software di mesin air-gapped?
Anda tidak melakukannya. Mesin air-gapped seharusnya menjalankan software yang sama tanpa batas waktu. Jika Anda butuh versi tool pembuatan yang lebih baru, unduh dan verifikasi di mesin online, pindahkan via USB, lalu verifikasi checksum di mesin air-gapped sebelum digunakan.
Bagaimana jika random number generator mesin air-gapped rusak?
Inilah alasan entropy berbasis dadu ada sebagai fallback. Jika Anda tidak percaya semua hardware dan software RNG, hasilkan entropy manual dengan dadu dan masukkan ke tool BIP-39. Keamanan seed phrase yang dihasilkan hanya bergantung pada kualitas lemparan dadu Anda, bukan pada komponen elektronik apa pun.
Bisakah malware melompati air gap?
Secara teori, penyerang canggih level negara telah mendemonstrasikan teknik lompat air-gap menggunakan emisi elektromagnetik, sinyal akustik, atau pola kedipan LED. Dalam praktik, serangan ini memerlukan kedekatan fisik, peralatan khusus, dan jauh melampaui kemampuan pencuri crypto biasa. Bagi sebagian besar pengguna, air gap yang dipelihara dengan benar secara praktis tidak dapat ditembus.