menuDAT

DAT (Data Authentication Token)

1. Ikhtisar (Introduction)

Seiring meningkatnya jumlah pengguna yang terhubung secara bersamaan, jumlah sesi (Session) pun ikut bertambah sehingga menimbulkan beban berlebih pada server sesi.

DAT adalah spesifikasi token yang dirancang untuk mengatasi masalah beban server sesi tersebut, serta untuk mengimplementasikan autentikasi yang efisien dan tidak bergantung pada status bersama antar-server (Stateless).


2. Struktur Token (Structure)

Structure
Example refresh
/

2.1. Spesifikasi Detail Per Bidang

Waktu Kedaluwarsa : uint64 (Unix Time)

  • Menyatakan waktu kedaluwarsa token sebagai bilangan bulat tak bertanda 64-bit dalam satuan detik (Seconds).

CID : Hex (uint64)

  • ID sertifikat (Certificate ID) yang digunakan untuk memvalidasi token.

Data Teks Biasa : Base64Url (Binary)

  • Menyimpan data yang akan dipublikasikan kepada klien. Mendukung tidak hanya string, tetapi juga data biner, dan dapat diperiksa dengan melakukan dekoding di sisi klien.

Data Terenkripsi : Base64Url (Binary)

  • Menyimpan data yang bersifat rahasia dari klien. Data ini dienkripsi menggunakan algoritma enkripsi berbasis sertifikat sehingga klien tidak dapat mendekripsi isinya.

Tanda Tangan : Base64Url (Binary)

  • Data tanda tangan untuk memverifikasi pemalsuan atau modifikasi token. Dibuat dengan menandatangani bidang-bidang sebelumnya menggunakan algoritma tanda tangan sertifikat.

3. Perbandingan dengan JWT

DAT dan JWT (JSON Web Token) berbagi struktur token yang dipisahkan oleh titik (.) serta metode verifikasi melalui signature, namun terdapat perbedaan mendasar dalam desain internalnya sebagai berikut.

3.1. Perbandingan Perbedaan Struktural

  • Struktur JWT

    headerbodysignature
    Base64Url (JSON String)Base64Url (JSON String)Base64Url (Binary)
  • Struktur DAT

    Waktu KedaluwarsaCIDData Teks BiasaData TerenkripsiTanda Tangan
    Unixtime (uint64)Hex (uint64)Base64Url (Binary)Base64Url (Encrypt Binary)Base64Url (Binary)

3.2. Perbedaan Utama

  • Optimasi Ringan Berbasis Binary: JWT menangani Header dan Body dalam bentuk string JSON, sedangkan DAT menangani data biner (Binary) secara langsung sehingga mengoptimalkan ukuran data dan meningkatkan efisiensi parsing.
  • Keamanan Bawaan (Bidang Data Terenkripsi (secure)): JWT pada dasarnya mengekspos payload dalam teks biasa, sehingga jika diperlukan enkripsi harus menerapkan spesifikasi terpisah seperti JWE. Sebaliknya, DAT mendukung fungsi enkripsi secara inheren melalui bidang Data Terenkripsi.
  • Pemaksaan Batasan Waktu Kedaluwarsa: Pada JWT, bidang exp (Claims) bersifat opsional, namun pada DAT, bidang Waktu Kedaluwarsa (expire) diwajibkan dalam struktur token sehingga verifikasi masa berlaku selalu dilakukan.