0Pricing
Cryptology Academy · Pelajaran

HS256 vs RS256: JWT Simetris vs Asimetris

Pilih algoritma penandatanganan yang tepat untuk sistem autentikasi Anda.

HS256 vs RS256: JWT Simetris vs Asimetris adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Keluarga Algoritma

Penandatanganan JWT menggunakan algoritma simetris (HMAC) atau asimetris (RSA, ECDSA). HS256 = HMAC-SHA256. RS256 = RSA-PKCS1v1.5-SHA256. ES256 = ECDSA-P256-SHA256. Pilihan ini memengaruhi distribusi kunci dan model kepercayaan.

HS256: HMAC Simetris

HS256 menggunakan satu kunci rahasia bersama untuk penandatanganan dan verifikasi. Penerbit dan setiap pemverifikasi harus memiliki rahasia yang sama. Implementasinya sederhana, tetapi memerlukan distribusi kunci yang aman kepada semua pemverifikasi.

Kasus Penggunaan HS256

HS256 sesuai digunakan ketika penerbit dan pemverifikasi merupakan layanan yang sama (misalnya API monolitik yang menandatangani dan memverifikasi tokennya sendiri). Jangan gunakan HS256 jika beberapa layanan independen perlu memverifikasi token — semuanya harus memiliki rahasia tersebut.

RS256: RSA Asimetris

RS256 menggunakan kunci privat untuk menandatangani dan kunci publik untuk memverifikasi. Hanya server autentikasi yang menyimpan kunci privat. Semua server sumber daya mengambil kunci publik dari endpoint JWKS dan melakukan verifikasi secara lokal — tidak diperlukan berbagi rahasia.

Kasus Penggunaan RS256

RS256 ideal untuk arsitektur layanan mikro: penyedia identitas menandatangani token; setiap layanan hilir memverifikasi dengan kunci publik tanpa menghubungi IDP untuk setiap permintaan. Arsitektur ini dapat diskalakan secara horizontal tanpa risiko distribusi kunci.

ES256: Alternatif ECDSA

ES256 menggunakan ECDSA dengan P-256. Ukuran tanda tangan adalah 64 byte, dibandingkan dengan 256 byte pada RS256 untuk kunci 2048-bit. Verifikasi sekitar 10 kali lebih cepat daripada RS256. Pilihan ini lebih disukai ketika bandwidth atau kecepatan verifikasi sangat penting (API seluler, IoT).

Rotasi Kunci

Untuk RS256/ES256: lakukan rotasi kunci dengan memublikasikan kunci baru (kid baru) ke JWKS, menandatangani token baru menggunakan kunci tersebut, memberikan masa tenggang agar token lama kedaluwarsa, lalu menghapus kunci lama. Rotasi HMAC mengharuskan rahasia baru didistribusikan ulang.

Perbandingan Kinerja

Verifikasi HS256: ~1 µs. Verifikasi RS256: ~100 µs (2048-bit). Verifikasi ES256: ~50 µs (P-256). HS256 paling cepat, tetapi memerlukan pembagian rahasia. ES256 memberikan keseimbangan terbaik antara keamanan dan kinerja untuk sistem terdistribusi.

Pratinjau Serangan pada Header alg

Kerentanan kritis: jika pihak yang memverifikasi mempercayai header alg secara membabi buta, penyerang dapat mengubah alg dari RS256 menjadi HS256 dan menandatangani token menggunakan kunci publik server (yang bersifat publik) sebagai rahasia HMAC. Perbaikan: jangan pernah mempercayai header alg.

Memilih Algoritme

Keputusan: satu layanan → HS256. Banyak layanan/mikrolayanan → RS256 atau ES256. Seluler bervolume tinggi → ES256. Jika ragu, gunakan ES256 (P-256) atau RS256 dengan kunci minimal 2048 bit. Jangan pernah menggunakan RS512 pada jalur yang sensitif terhadap kinerja.

Pustaka dan Standar

Gunakan PyJWT (Python), jose (Node.js), atau auth0/java-jwt. Selalu tetapkan algoritme yang diharapkan secara eksplisit dalam panggilan verifikasi: jwt.decode(token, secret, algorithms=["HS256"]). Jangan pernah meneruskan algorithms=None atau menghilangkan parameternya.

Pemeriksaan Singkat

Mengapa RS256 lebih disukai daripada HS256 dalam arsitektur mikrolayanan?

Ringkasan

HS256 bersifat simetris (rahasia bersama); RS256/ES256 bersifat asimetris (kunci privat untuk menandatangani, kunci publik untuk memverifikasi). Gunakan algoritme asimetris untuk sistem multipihak. Berikutnya: mengeksploitasi kerentanan JWT.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “HS256 vs RS256: JWT Simetris vs Asimetris” gratis?

Ya — teks lengkap “HS256 vs RS256: JWT Simetris vs Asimetris” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “HS256 vs RS256: JWT Simetris vs Asimetris”?

Pilih algoritma penandatanganan yang tepat untuk sistem autentikasi Anda. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “HS256 vs RS256: JWT Simetris vs Asimetris” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Anatomi JWT: Header, Payload, Tanda Tangan
  2. HS256 vs RS256: JWT Simetris vs Asimetris
  3. Kerentanan JWT: alg=none & Kekacauan Kunci
  4. Praktik Terbaik Implementasi JWT yang Aman
← Kembali ke Cryptology Academy