Apa Itu Kunci API dan Bagaimana Cara Menggunakannya dengan Aman?
Daftar Isi
API vs Kunci API
Apa Itu Kunci API? 
Tanda Tangan Kriptografis
Tanda Tangan Simetris dan Asimetris 
Apakah Kunci API Aman? 
Praktik Terbaik Saat Menggunakan Kunci API
Penutup
Bacaan Lebih Lanjut
Apa Itu Kunci API dan Bagaimana Cara Menggunakannya dengan Aman?
Beranda
Artikel
Apa Itu Kunci API dan Bagaimana Cara Menggunakannya dengan Aman?

Apa Itu Kunci API dan Bagaimana Cara Menggunakannya dengan Aman?

Tingkat Menengah
Diterbitkan Jan 6, 2023Diperbarui Feb 1, 2023
7m


Kunci antarmuka pemrograman aplikasi (API) adalah kode unik yang digunakan oleh API untuk mengidentifikasi aplikasi atau pengguna yang memanggil. Kunci API digunakan untuk melacak dan mengontrol pengguna yang memakai API dan cara dia menggunakannya, serta untuk mengautentikasi dan mengotorisasi aplikasi. Cara kerjanya serupa dengan nama pengguna dan kata sandi. Kunci API dapat berupa kunci tunggal atau satu set berisi banyak kunci. Pengguna harus mengikuti praktik terbaik untuk meningkatkan keseluruhan keamanan terhadap pencurian kunci API dan menghindari konsekuensi terkait berupa penyusupan kunci API.

API vs Kunci API

Untuk memahami kunci API, Anda harus memahami API terlebih dahulu. Antarmuka pemrograman aplikasi atau API adalah perantara perangkat lunak yang memungkinkan dua aplikasi atau lebih untuk berbagi informasi. Misalnya, API CoinMarketCap memungkinkan aplikasi lain untuk mengambil dan menggunakan data kripto seperti harga, volume, dan kapitalisasi pasar.

Kunci API memiliki berbagai macam bentuk, seperti kunci tunggal atau satu set berisi banyak kunci. Berbagai sistem menggunakan kunci ini untuk mengautentikasi dan mengotorisasi aplikasi, sama seperti kegunaan nama pengguna dan kata sandi. Kunci API digunakan oleh klien API untuk mengautentikasi aplikasi yang memanggil API tersebut. 

Misalnya, jika Binance Academy ingin menggunakan API CoinMarketCap, maka sebuah kunci API akan dihasilkan oleh CoinMarketCap dan digunakan untuk mengautentikasi identitas Binance Academy (klien API) yang meminta akses API. Ketika Binance Academy mengakses API CoinMarketCap, kunci API ini harus dikirim ke CoinMarketCap beserta dengan permintaan tersebut. 

Kunci API ini hanya boleh digunakan oleh Binance Academy dan tidak boleh dibagikan dengan atau dikirim kepada orang lain. Apabila kunci API ini dibagikan, pihak ketiga akan dapat mengakses CoinMarketCap sebagai Binance Academy. Segala tindakan oleh pihak ketiga tersebut akan tampak seolah-olah berasal dari Binance Academy.

Kunci API juga dapat digunakan oleh API CoinMarketCap untuk memastikan bahwa aplikasi berwenang untuk mengakses sumber daya yang diminta. Selain itu, pemilik API menggunakan kunci API untuk memantau aktivitas API, seperti jenis, lalu lintas, dan volume permintaan. 

Apa Itu Kunci API? 

Kunci API digunakan untuk mengontrol dan melacak pengguna yang menggunakan API dan cara dia menggunakannya. Istilah “kunci API” dapat memiliki makna yang berbeda-beda untuk berbagai sistem. Beberapa sistem memiliki kode tunggal, sedangkan yang lain dapat memiliki sejumlah kode untuk satu “kunci API”.   

Dengan begitu, “kunci API” adalah kode unik atau serangkaian kode unik yang digunakan oleh API untuk mengautentikasi dan mengotorisasi pengguna atau aplikasi yang memanggil. Beberapa kode digunakan untuk autentikasi, sedangkan yang lain digunakan untuk membuat tanda tangan kriptografis guna membuktikan keabsahan sebuah permintaan. 

Kode autentikasi tersebut umumnya disebut secara kolektif sebagai “kunci API”. Sementara itu, kode yang digunakan untuk tanda tangan kriptografis memiliki berbagai nama, seperti “kunci rahasia”, “kunci publik” (publik key), atau “kunci privat” (private key). Autentikasi mencakup identifikasi entitas yang terlibat dan konfirmasi bahwa entitas tersebut adalah benar-benar dirinya.

Di sisi lain, otorisasi menentukan layanan API yang dapat diakses. Fungsi sebuah kunci API serupa dengan nama pengguna dan kata sandi sebuah akun. Kunci API juga dapat terhubung dengan fitur keamanan lainnya untuk meningkatkan keseluruhan keamanan. 

Setiap kunci API biasanya dihasilkan untuk entitas tertentu oleh pemilik API (detail selengkapnya ada di bawah). Setiap kali panggilan dilakukan ke endpoint API — yang memerlukan autentikasi atau otorisasi pengguna, atau keduanya — kunci yang relevan akan digunakan.

Tanda Tangan Kriptografis

Beberapa kunci API menggunakan tanda tangan kriptografis sebagai lapisan verifikasi tambahan. Ketika pengguna ingin mengirim data tertentu ke sebuah API, tanda tangan digital yang dihasilkan oleh kunci lain dapat ditambahkan ke permintaan tersebut. Dengan menggunakan kriptografi, pemilik API dapat memverifikasi bahwa tanda tangan digital ini cocok dengan data yang dikirim.

Tanda Tangan Simetris dan Asimetris 

Data yang dibagikan melalui API dapat ditandatangani oleh kunci kriptografis yang termasuk dalam kategori berikut:

Kunci simetris

Kunci ini mencakup penggunaan satu kunci rahasia untuk melakukan penandatanganan data sekaligus verifikasi tanda tangan. Dengan kunci simetris, kunci API dan kunci rahasia biasanya dihasilkan oleh pemilik API. Selain itu, kunci yang sama harus digunakan oleh layanan API untuk verifikasi tanda tangan. Keunggulan utama dalam menggunakan kunci tunggal adalah waktu yang lebih singkat serta daya komputasi yang lebih rendah dalam pembuatan dan verifikasi tanda tangan. Contoh kunci simetris yang baik adalah HMAC.

Kunci asimetris

Kunci ini mencakup pengguna dua kunci: kunci privat dan kunci publik. Keduanya berbeda, tetapi tertaut secara kriptografis. Kunci privat digunakan untuk pembuatan tanda tangan, sedangkan kunci publik digunakan untuk verifikasi tanda tangan. Kunci API dihasilkan oleh pemilik API, tetapi pasangan kunci privat dan kunci publik dihasilkan oleh pengguna. Hanya kunci publik yang perlu digunakan oleh pemilik API untuk verifikasi tanda tangan, sehingga kunci privat dapat tetap bersifat lokal dan rahasia. 

Keunggulan utama dalam menggunakan kunci asimetris adalah keamanan yang lebih tinggi dalam memisahkan kunci pembuatan dan verifikasi tanda tangan. Hal ini memungkinkan sistem eksternal untuk memverifikasi tanda tangan tanpa dapat menghasilkan tanda tangan. Keunggulan lainnya adalah beberapa sistem enkripsi asimetris mendukung penambahan kata sandi pada kunci privat. Contohnya adalah pasangan kunci RSA. 

Apakah Kunci API Aman? 

Tanggung jawab kunci API ada di tangan pengguna. Kunci API mirip dengan kata sandi dan harus diperlakukan dengan perhatian yang sama. Berbagi kunci API mirip seperti berbagi kata sandi. Oleh karena itu, tindakan tersebut tidak boleh dilakukan karena dapat membahayakan akun pengguna. 

Kunci API biasanya menjadi target dalam serangan siber karena dapat digunakan untuk melakukan operasi yang kuat pada sistem, seperti meminta informasi pribadi atau mengeksekusi transaksi keuangan. Bahkan, dalam beberapa kasus, crawler (perayap) berhasil menyerang database kode online untuk mencuri kunci API.

Konsekuensi pencurian kunci API bisa drastis dan dapat menyebabkan kerugian keuangan yang signifikan. Selain itu, karena beberapa di antaranya tidak kedaluwarsa, kunci API dapat digunakan tanpa batas waktu oleh penyerang setelah dicuri hingga kunci itu sendiri dicabut.

Praktik Terbaik Saat Menggunakan Kunci API

Kunci API memberikan akses ke data sensitif dan memiliki kerentanan umum. Oleh karena itu, penting sekali untuk menggunakannya dengan aman. Anda dapat mengikuti pedoman praktik terbaik berikut saat menggunakan kunci API untuk meningkatkan keseluruhan keamanannya: 

  1. Rotasikan kunci API Anda sesering mungkin. Artinya, Anda sebaiknya menghapus kunci API saat ini, lalu membuat yang baru. Dengan beberapa sistem, Anda mudah menghasilkan dan menghapus kunci API. Sama seperti sejumlah sistem yang mewajibkan Anda untuk mengubah kata sandi setiap 30 hingga 90 hari, Anda juga sebaiknya merotasikan kunci API dengan frekuensi yang sama jika memungkinkan.

  2. Gunakan whitelisting IP: Saat membuat kunci API, buat daftar IP yang berwenang menggunakan kunci tersebut (whitelist IP). Anda juga dapat menetapkan daftar IP yang diblokir (blacklist IP). Dengan cara ini, kunci API tidak akan dapat diakses oleh IP yang tidak dikenal meskipun dicuri.

  3. Gunakan beberapa kunci API: Memiliki beberapa kunci dan membagi tanggung jawab di antaranya akan mengurangi risiko keamanan, karena keamanan Anda tidak akan bergantung pada satu kunci dengan izin yang menyeluruh. Anda juga dapat mengatur whitelist IP yang berbeda-beda untuk setiap kunci. Hal ini dapat makin mengurangi risiko keamanan. 

  4. Simpan kunci API dengan aman: Jangan simpan kunci di tempat umum, komputer umum, ataupun dalam format teks aslinya. Simpan setiap kunci menggunakan enkripsi atau manajer rahasia untuk memberikan keamanan yang lebih baik. Jangan sampai Anda tidak sengaja mengeksposnya. 

  5. Jangan bagikan kunci API Anda. Berbagi kunci API sama seperti berbagi kata sandi. Jika tindakan tersebut dilakukan, Anda memberikan hak autentikasi dan otorisasi yang sama kepada pihak lain. Jika disusupi, kunci API Anda dapat dicuri dan digunakan untuk meretas akun Anda. Kunci API hanya boleh digunakan oleh Anda dan sistem yang menghasilkannya.

Jika kunci API disusupi, Anda harus menonaktifkannya terlebih dahulu untuk mencegah dampak buruk yang lebih besar. Apabila ada kerugian keuangan, ambil tangkapan layar dari informasi kunci yang berkaitan dengan insiden tersebut, hubungi entitas terkait, lalu ajukan laporan polisi. Ini merupakan cara terbaik untuk meningkatkan peluang mendapatkan kembali dana yang hilang. 

Penutup

Kunci API memberikan fungsi autentikasi dan otorisasi inti. Pengguna harus mengelola dan melindungi kunci mereka dengan hati-hati. Ada berbagai lapisan dan aspek untuk memastikan kunci API digunakan dengan aman. Secara keseluruhan, kunci API harus diperlakukan seperti kata sandi untuk akun Anda.

Bacaan Lebih Lanjut