Skip to main content

Signature

Signature Asimetris

Signature asimetris digunakan di Finnet untuk memverifikasi bahwa permintaan token akses Anda tidak diubah atau diubah oleh penyerang.

Garis besar proses validasi HMAC adalah sebagai berikut :

  1. Ambil Timestamp dari Header HTTP (X-TIMESTAMP).
  2. Ambil Client Key dari Header HTTP (X-CLIENT-KEY).
  3. Cari API Secret yang sesuai dengan key yang diterima di penyimpanan internal.
  4. Ambil client HMAC dari format heksadesimal huruf kecil Header HTTP (X-SIGNATURE).
  5. Hitung HMAC menggunakan API Secret sebagai secret key HMAC.
  6. Bandingkan HMAC klien dengan HMAC terhitung.

Jika perbandingan hash HMAC tidak valid, API Gateway akan mengembalikan kode kesalahan HTTP 401 dengan pesan kesalahan berikut pada format JSON:

{
"responseCode" : "4017300",
"responseMessage" : "Unauthorized. Invalid Signature"
}

Jika perhitungan HMAC berhasil dan nilai yang dihitung sesuai dengan nilai yang diterima dari klien, maka signature dianggap valid.

Generate Signature Asimetris

SHA256withRSA digunakan untuk menghasilkan signature dengan Private Key Anda sebagai kuncinya :

X-SIGNATURE = SHA256withRSA(PrivateKey, StringToSign)

Note = X-SIGNATURE harus dikodekan dengan Base64

StringToSign akan berupa daftar yang dipisahkan titik dua yang berasal dari beberapa data permintaan seperti di bawah ini :

StringToSign = client_ID+"|"+X-TIMESTAMP
Note

Mitra perlu mengirimkan Public Key-nya dalam format x.509 agar dapat digunakan Finnet saat memverifikasi signature.

Contoh public key dalam format x.509 :

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomV+Vm1xlRXanmh108Kusls7SSKec0oCejtc9QG
Obpd4RnQ+7gihm2k6etnSNP7b+XrpY+fBkiQNaBInii9M10kW9Bhf/M9GH/edL3IqnzDNSi7tcoQgnO7h8x
mzLNWHTjtR6bkrsdBS5dry6htotaF5KXomuoYgztCdGDOa0W20aeLzYSXIoW7s/Ay5yIXt0xaXTll3/bmez
leguFPnwQZq5EqZFWlUZvutDi+f2l9rTRY0Fb64y+VAf+mnIbEovGqsPEeF/p97YWxcY7CWm8NsT0lwBVOt
kmEl967Brz5yvEObF5bJgVodi6mNVsN1ki0MCitIhYO8shcE7eUilQIDAQAB
-----END PUBLIC KEY-----

Signature Simetris

Signature Simetris digunakan oleh Finnet untuk memverifikasi bahwa permintaan layanan open API Anda tidak diubah atau diubah oleh penyerang.

Garis besar proses validasi HMAC adalah sebagai berikut:

  1. Ambil Timestamp dari Header HTTP (X-TIMESTAMP)
  2. Ambil Client Key dari Header HTTP (X-CLIENT-KEY)
  3. Cari API Secret yang sesuai dengan key yang diterima di penyimpanan internal
  4. Ambil client HMAC dari format heksadesimal huruf kecil Header HTTP (X-SIGNATURE)
  5. Hitung HMAC menggunakan API Secret sebagai secret key HMAC
  6. Bandingkan HMAC klien dengan HMAC terhitung

Jika perbandingan hash HMAC tidak valid, API Gateway akan mengembalikan error code HTTP 401 bersama dengan pesan kesalahan berikut dalam format JSON:

{
"responseCode" : "401xx00",
"responseMessage" : " Unauthorized. Invalid Signature"
}

Note : xx merupakan service code.

Jika perhitungan HMAC berhasil dan nilai yang dihitung sesuai dengan nilai yang diterima dari klien, maka tanda tangan dianggap sah.

Generate Signature Simetris

SHA-512 HMAC digunakan untuk menghasilkan signature dengan Clietn Secret Anda sebagai kuncinya :

X-SIGNATURE = HMAC-SHA512(ClientSecret, StringToSign)

Note = X-SIGNATURE harus dikodekan dengan Base64

StringToSign akan berupa daftar yang dipisahkan titik dua yang berasal dari beberapa data permintaan seperti di bawah ini :

StringToSign = HTTPMethod+":"+RelativeUrl+":"+AccessToken+":"+Lowercase(HexEncode(SHA-256(MinifyJson(RequestBody))))+":"+Timestamp

HexEncode bersifat opsional untuk digunakan, gunakan jika SHA-256 mengembalikan aliran biner.