Hacker News

Jangan gunakan kunci sandi untuk mengenkripsi data pengguna

Pelajari mengapa kunci sandi bagus untuk autentikasi namun berbahaya untuk enkripsi data. Hindari mengunci pengguna dari data mereka sendiri dengan wawasan keamanan penting ini.

7 min baca

Mewayz Team

Editorial Team

Hacker News

Kunci sandi adalah perkembangan otentikasi yang paling menarik selama bertahun-tahun. Mereka menghilangkan phishing, menghilangkan beban kata sandi, dan memberikan pengalaman login yang lancar yang didukung oleh kriptografi kunci publik. Namun kesalahpahaman berbahaya menyebar melalui komunitas pengembang: jika kunci sandi bersifat kriptografis, pastinya mereka juga dapat mengenkripsi data pengguna. Mereka tidak bisa melakukannya — dan mencoba menggunakannya dengan cara seperti itu akan menciptakan sistem yang rapuh dan tidak dapat diandalkan yang dapat mengunci pengguna Anda dari informasi mereka secara permanen. Memahami alasannya memerlukan pandangan yang jelas tentang apa sebenarnya kunci sandi itu, apa yang dibutuhkan enkripsi, dan di mana keduanya berbeda dalam hal-hal yang sangat penting bagi platform apa pun yang menangani data bisnis sensitif.

Otentikasi dan Enkripsi pada dasarnya adalah pekerjaan yang berbeda

Otentikasi menjawab satu pertanyaan: "Apakah Anda seperti yang Anda klaim?" Enkripsi menjawab pertanyaan yang sangat berbeda: "Dapatkah data ini tetap tidak dapat dibaca oleh semua orang kecuali pihak yang berwenang?" Kedua masalah ini memiliki kesamaan kriptografi primitif, namun persyaratan tekniknya sangat berbeda. Authentication needs to happen once per session, can tolerate occasional failure with graceful fallbacks, and doesn't need to produce the same output every time. Enkripsi memerlukan akses kunci yang deterministik dan dapat direproduksi sepanjang masa pakai data — yang bisa memakan waktu bertahun-tahun atau puluhan tahun.

When you authenticate with a passkey, your device generates a cryptographic signature proving you hold the private key associated with your account. Server memverifikasi tanda tangan ini dan memberikan akses. Server — atau bahkan aplikasi Anda — tidak akan pernah mendapatkan akses ke materi kunci pribadi itu sendiri. Ini adalah fitur, bukan batasan. Seluruh model keamanan kunci sandi bergantung pada kunci pribadi yang tidak pernah meninggalkan wilayah aman perangkat Anda. Namun enkripsi mengharuskan Anda menggunakan kunci untuk mengubah data, dan kemudian menggunakan kunci yang sama (atau pasangannya) untuk membalikkan transformasi. Jika Anda tidak dapat mengakses kunci dengan andal, Anda tidak dapat mendekripsi dengan andal.

Platform seperti Mewayz yang mengelola informasi bisnis sensitif — faktur, catatan penggajian, kontak CRM, dokumen SDM di 207 modul — memerlukan strategi enkripsi yang dibangun di atas kunci yang tahan lama, dapat dipulihkan, dan dapat diakses secara konsisten. Membangunnya di atas fondasi yang dirancang khusus untuk mencegah akses kunci merupakan kontradiksi arsitektural.

Mengapa Kunci Sandi Menolak Digunakan sebagai Kunci Enkripsi

Spesifikasi WebAuthn, yang mendasari kunci sandi, sengaja dirancang dengan batasan yang membuat penggunaan enkripsi menjadi tidak praktis. Memahami kendala-kendala ini akan mengungkap mengapa kesenjangan ini tidak dapat dijembatani oleh teknik yang cerdas — melainkan batasan desain yang mendasar.

Tidak ada ekspor kunci: Kunci pribadi yang dihasilkan selama pendaftaran kunci sandi disimpan di enclave aman yang didukung perangkat keras (TPM, Secure Enclave, atau yang setara). Sistem operasi dan API browser tidak menyediakan mekanisme untuk mengekstrak material kunci mentah. Anda dapat meminta kunci untuk menandatangani sesuatu, tetapi Anda tidak dapat membaca kunci itu sendiri.

💡 TAHUKAH ANDA?

Mewayz menggantikan 8+ alat bisnis dalam satu platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Paket gratis tersedia selamanya.

Mulai Gratis →

Pembuatan kunci non-deterministik: Membuat kunci sandi untuk pengguna yang sama di perangkat berbeda akan menghasilkan pasangan kunci yang benar-benar berbeda. Tidak ada frase awal, tidak ada jalur derivasi, tidak ada cara untuk merekonstruksi kunci yang sama pada perangkat lain. Setiap pendaftaran independen secara kriptografis.

Ketersediaan terikat perangkat: Bahkan dengan sinkronisasi kunci sandi (iCloud Keychain, Google Password Manager), ketersediaan bergantung pada partisipasi ekosistem. Pengguna yang mendaftar di iPhone dan kemudian beralih ke Android mungkin kehilangan akses. Pengguna yang perangkatnya hilang, dicuri, atau direset ke pabrik menghadapi masalah yang sama.

Khusus respons tantangan: WebAuthn API memperlihatkan navigator.credentials.get() yang mengembalikan pernyataan yang ditandatangani, bukan materi kunci mentah. Anda menerima tanda tangan melalui tantangan yang disediakan server — berguna untuk membuktikan identitas, tidak berguna untuk mendapatkan kunci enkripsi.

Tidak ada fleksibilitas algoritme: Kunci sandi biasanya menggunakan ECDSA dengan kurva P-256. Bahkan jika Anda dapat mengakses kuncinya, ECDSA adalah algoritma penandatanganan

Frequently Asked Questions

Why can't passkeys be used to encrypt user data?

Passkeys are designed exclusively for authentication, not encryption. They rely on public-key cryptography to verify your identity during login, but the private key never leaves your device and isn't accessible to applications. Encryption requires stable, reproducible keys that can consistently decrypt data over time. Passkeys lack this capability by design, making them fundamentally unsuitable for protecting stored user information.

What happens if you try to encrypt data with passkeys anyway?

You risk building a brittle system where users get permanently locked out of their own data. Passkeys can be revoked, rotated, or replaced across devices without warning. If encrypted data is tied to a specific passkey that gets deleted or updated, there is no recovery path. This creates a catastrophic data-loss scenario that no amount of engineering workaround can reliably prevent.

What should developers use instead of passkeys for data encryption?

Developers should use purpose-built encryption solutions such as AES-256 with proper key management, envelope encryption, or established libraries like libsodium. Keep authentication and encryption as separate concerns. Use passkeys for what they excel at — passwordless login — and dedicated encryption keys managed through secure key derivation and storage systems for protecting sensitive user data.

How does Mewayz handle authentication and data security for businesses?

Mewayz provides a 207-module business OS starting at $19/mo that separates authentication from data protection using industry best practices. Rather than misusing passkeys, the platform at app.mewayz.com implements proper encryption layers alongside secure login flows, ensuring businesses can protect customer data reliably without risking the lockout scenarios that come from conflating authentication with encryption.

Coba Mewayz Gratis

Platform all-in-one untuk CRM, penagihan, proyek, HR & lainnya. Tidak perlu kartu kredit.

Mulai kelola bisnis Anda dengan lebih pintar hari ini.

Bergabung dengan 30,000+ bisnis. Paket gratis selamanya · Tidak perlu kartu kredit.

Apakah ini berguna? Bagikan itu.

Siap mempraktikkan ini?

Bergabunglah dengan 30,000+ bisnis yang menggunakan Mewayz. Paket gratis selamanya — tidak perlu kartu kredit.

Mulai Uji Coba Gratis →

Siap mengambil tindakan?

Mulai uji coba gratis Mewayz Anda hari ini

Platform bisnis semua-dalam-satu. Tidak perlu kartu kredit.

Mulai Gratis →

Uji coba gratis 14 hari · Tanpa kartu kredit · Batal kapan saja