Implementasi Autentikasi Berbasis Token Menggunakan Platform-Agnostic Security Tokens (PASETO) Sebagai Mekanisme Autentikansi RESTful API
Kata Kunci:
RESTful, JSON Web Token, Platform-Agnostic Security Tokens, Blake2b, XChaCha20-Poly1305, Ed25519Abstrak
RESTful API merupakan standar arsitektur komunikasi client-server untuk layanan web, namun rendah dari segi keamanan. Pengamanan data RESTful API menggunakan autentikasi untuk membatasi akses pada API dengan tidak menyimpan session state, sehingga diperlukan autentikasi berbasis token yang dikirim melalui header request seperti JSON Web Token (JWT). Token JWT dapat dipalsukan dengan mengeksploitasi algoritme none, memanfaatkan mekanisme JWT yang selalu percaya pada header berisi algoritma yang digunakan, dan penggunaan algoritma HMAC yang sudah dapat dieksploitasi. Pemalsuan token tersebut dapat diatasi dengan tidak menggunakan algoritma none dan mengubah mekanisme JWT. Mekanisme JWT dapat diganti dengan standar yang hanya menyediakan versi dan tujuan protokol kriptografi yang digunakan dan selalu membandingkan versi dan tujuan protokol kriptografi yang digunakan dengan header yang dikirim seperti PASETO. Algoritma HMAC juga dapat diganti dengan algoritma BLAKE2b dengan kekuatan setara dengan SHA-3, namun lebih cepat dari SHA-1 dan MD5. PASETO juga menggunakan algoritma XChaCha20-Poly1305 untuk enkripsi dan algoritma Ed25519 untuk signature. PASETO dapat diimplementasikan menggunakan python, menggunakan wrapper pada library Libsodium agar dapat digunakan pada Python, dan childprocess agar dapat digunakan pada nodeJS.