Kini, sistem pembayaran semakin cepat dan efisien berkat skema open banking. Dengan skema tersebut, sebuah bank dapat memberikan kemudahan akses data dan informasi nasabah kepada pihak ketiga sesuai dengan kewenangannya melalui API (Application Programming Interface). Meskipun demikian, tetap saja faktor keamanan tidak boleh disepelekan, apalagi hal ini menyangkut penggunaan informasi dan data nasabah. Karena itulah, BRIAPI sebagai produk open banking Bank BRI menggunakan API key sebagai gerbang keamanan pertama.

API key ini menjadi elemen kunci dalam proses autentikasi dan otorisasi. Dengan menerapkan API key, BRIAPI memastikan bahwa setiap penggunanya merupakan user yang resmi terdaftar di BRIAPI. Namun, sebelum berangkat lebih jauh, sebenarnya apa yang dimaksud dengan API key?

Pengertian API Key

 API key berfungsi untuk mengautentikasi project dan user

API key adalah sebuah kode unik yang berfungsi untuk memberikan akses login dan menghubungkan kode dari developer satu ke developer lainnya. Seperti yang sudah dijelaskan, API key berguna dalam proses autentikasi ketika API akan dijalankan.

Umumnya, perusahaan penyedia API telah menyediakan API key pada setiap produknya. BRIAPI pun telah melengkapi seluruh layanan API-nya dengan API key. Bentuk API key adalah kode panjang dengan karakter acak seperti ini:

xaCGLgL.0inklc7mVLWwsAawjYr5Rx-Af50DDqtlx

API key berfungsi untuk melacak (tracking) dan mengontrol (controlling) API yang sedang digunakan. Kedua fungsi tersebut membuat API key mampu mencegah tindakan penyalahgunaan API, baik oleh bot maupun serangan siber (cyber attack). API key juga bertindak sebagai authentication token atau identitas unik pengguna API. Jadi, setiap pengguna API pastinya memiliki API key yang berbeda.

API key menjadi bagian penting dalam framework autentikasi yang digunakan BRIAPI, OAuth 2.0. Sederhananya, OAuth 2.0 digunakan untuk memverifikasi akses pihak ketiga ke produk API yang sudah diintegrasikan di awal. Dalam framework tersebut, API key menjadi Client ID sebagai salah satu credentials di framework. Client ID adalah id yang mewakili satu user yang akan mengakses BRIAPI.

BRIAPI juga menggunakan signature untuk memastikan bahwa data di dalam setiap request dan response tidak bisa dibajak oleh pengguna yang tidak sah. Signature ini dihasilkan dengan menggunakan algoritma SHA256-HMAC.

HMAC adalah akronim dari Hash-based message authentication (kode autentikasi pesan berbasis hash) yang merupakan suatu mekanisme untuk menghitung kode autentikasi pesan. Mekanisme tersebut melibatkan fungsi kriptografis hash yang dikombinasikan dengan kunci rahasia. Sama seperti namanya, tujuan penggunaan HMAC adalah untuk mengautentikasi pesan.

Fungsi API Key

API key berfungsi dalam proses otorisasi project dan user API di BRIAPI

Secara garis besar, API key membantu dua jenis otorisasi API, yaitu otorisasi proyek (project authorization) dan otorisasi pengguna (user authorization). Lebih spesifik lagi, API key memiliki kegunaannya di masing-masing jenis otorisasi.

Pada otorisasi proyek, API key akan mengecek apakah aplikasi yang melakukan pemanggilan API benar-benar memiliki akses. Selain itu, API key juga berguna untuk mengidentifikasi proyek atau aplikasi yang melakukan pemanggilan terhadap API.

API key yang dihasilkan menempel ke entitas. Dalam konteks BRIAPI, entitas yang dimaksud adalah partner. Ini artinya, seluruh partner BRIAPI memegang kunci autentikasinya sendiri untuk bisa masuk ke server BRIAPI. 

Pada Otorisasi Pengguna, API key memverifikasi apakah user yang sedang membuat panggilan API adalah orang yang sama dengan identitas pengguna terdaftar. API key juga dapat mengecek izin pengguna ketika melakukan request tertentu pada API. Fungsi ini membuat API key mengurangi risiko peretasan oleh hacker yang mencoba mengakses end-user aplikasi.

Manfaat API Key

Manfaat API key dalam proses autentikasi dan otorisasi

Ada empat manfaat API key, khususnya pada proses autentikasi dan otorisasi, yakni:

Aktivitas di server API dapat dicatat dalam bentuk rangkaian panggilan (series of events). Developer dapat menggunakan API spesifik untuk menyaring panggilan-panggilan tertentu.

  1. Memblokir traffic anonim

    Traffic anonim biasanya menjadi indikator potensi aktivitas berbahaya yang tidak dikenal. API key dapat mengidentifikasi traffic aplikasi sehingga jika ada aktivitas atau error yang mencurigakan, maka dapat diidentifikasi sejak awal.

  2. Mengontrol jumlah panggilan terhadap API

    Fungsi ini membantu developer dalam mengatur batas penggunaan API dan memastikan bahwa hanya traffic yang mempunyai izin saja yang berhak mengakses API.

  3. Mengidentifikasi pola penggunaan di traffic API

    Dengan mengidentifikasi pola penggunaan API, maka developer dapat memantau potensi aktivitas berbahaya yang sewaktu-waktu dapat muncul di API.

  4. Menyaring panggilan

    Aktivitas di server API dapat dicatat dalam bentuk rangkaian panggilan (series of events). Developer dapat menggunakan API spesifik untuk menyaring panggilan-panggilan tertentu.

Kesimpulannya, API key memainkan peranan penting dalam memastikan koneksi antara layanan aplikasi valid dan terautentikasi. API key membantu proses autentikasi pengguna maupun perangkat yang digunakan untuk memanggil API. Dengan begitu, API key memastikan pengguna hanya dapat mengakses apa yang sepatutnya mereka akses.

Selain melalui API key sebagai gerbang autentikasi, BRIAPI juga telah mengikuti standarisasi keamanan open banking yang ditetapkan oleh Bank Indonesia. Sejak 2019, BRIAPI sudah tersertifikasi standar internasional ISO 27001. Selain itu, BRI menjadi bank pertama di Asia Tenggara yang mendapatkan sertifikasi PA-DSS (Payment Application Data Security Standard) dari PCI Security Standard Council sebagai standar keamanan data pada aplikasi pembayaran untuk produk Direct Debit.