Daftar Putih IP untuk Kunci API

Burung

19 Agu 2015

Email

1 min read

Daftar Putih IP untuk Kunci API

Poin Penting

    • Kunci API adalah kredensial yang kuat — jika dikompromikan, penyerang dapat mengirim email, mencuri data, atau menyamar sebagai merek Anda.

    • Menggunakan metode brute-force untuk kunci hex 40 karakter hampir tidak mungkin; ancaman nyata datang dari paparan (serangan MITM, repositori kode yang tidak aman, kredensial yang bocor).

    • Selalu gunakan HTTPS dan validasi sertifikat SSL untuk mencegah penyadapan kunci API Anda.

    • Whitelist IP menambahkan lapisan perlindungan penting dengan membatasi penggunaan kunci pada IP atau rentang IP tertentu.

    • Bahkan jika penyerang mencuri kunci API Anda, mereka tidak dapat menggunakannya kecuali mereka terhubung dari IP yang disetujui.

    • Dukungan CIDR memudahkan untuk mengizinkan seluruh jaringan tanpa mencantumkan setiap server.

    • Hindari menyematkan kunci API dalam kode — gunakan variabel lingkungan atau solusi pengelolaan rahasia yang aman sebagai gantinya.

    • Buat beberapa kunci API dengan cakupan sempit daripada satu kunci “yang melakukan segalanya” — masing-masing dengan izin terbatas dan daftar putihnya sendiri.

    • Untuk integrasi pihak ketiga, buat kunci khusus dengan izin terbatas dan IP terbatas.

    • Aktifkan 2FA di akun Anda karena kunci API hanya dapat dibuat melalui UI.

    • Tinjau, putar, dan pensiun kunci secara teratur untuk menjaga keamanan operasional yang kuat.

Sorotan Tanya jawab

  • Apa itu pendaftaran IP?

    Ini adalah fitur keamanan yang membatasi penggunaan kunci API hanya untuk alamat IP tertentu atau rentang alamat IP.

  • Mengapa SparkPost/Bird menggunakan kunci API untuk autentikasi?

    Kunci API sederhana, banyak diadopsi, dan bekerja dengan baik dengan API REST dan SMTP.

  • Apa yang terjadi jika seseorang mencuri kunci API saya?

    Mereka dapat mengirim email atas nama Anda, mengunduh daftar penerima, memodifikasi template, atau mengirim phishing/spam yang merusak merek Anda.

  • Bisakah kunci API dipaksa secara brute?

    Sebenarnya tidak mungkin. String hex 40 karakter memiliki ~1.46e48 kombinasi — pemaksaan secara kasar akan memakan waktu lebih lama daripada usia alam semesta.

  • Jadi bagaimana biasanya penyerang mendapatkan kunci API?

    Serangan man-in-the-middle (jika SSL tidak diverifikasi), kunci yang terekspos di repositori GitHub publik, atau log yang secara tidak sengaja membocorkan kunci.

  • Bagaimana whitelist IP membantu?

    Even if an attacker steals your key, it won’t work unless they’re connecting from an approved IP.

  • Dapatkah saya menambahkan seluruh jaringan ke daftar yang diizinkan?

    Ya, melalui notasi CIDR — ideal untuk server yang seimbang beban, VPN, atau rentang kantor statis.

  • Apakah pencantuman putih berlaku untuk REST dan SMTP?

    Ya, IP permintaan yang masuk harus cocok dengan daftar whitelist Anda.

  • Berapa banyak IP atau rentang yang bisa saya putihkan?

    Sejumlah yang Anda butuhkan — beberapa IP individu atau blok.

  • Haruskah saya menggunakan satu kunci API untuk semuanya?

    Tidak. Buat kunci terpisah untuk sistem, tim, atau vendor yang berbeda. Ini meningkatkan keamanan dan memudahkan penggantian atau pencabutan kunci.

  • Di mana saya harus menyimpan kunci API?

    Gunakan variabel lingkungan — jangan pernah mengkode kunci ke dalam file sumber atau repositori publik.

  • Apakah ada praktik terbaik keamanan tambahan?

    Selalu aktifkan 2FA di akun SparkPost/Bird Anda dan buat kunci khusus untuk pihak ketiga dengan izin minimal dan daftar putih mereka sendiri.

Ada banyak cara untuk membangun otentikasi dalam produk berbasis API seperti SparkPost, dan yang kami pilih pada awalnya adalah penggunaan kunci API. Menyisipkan kunci API Anda sebagai header Otorisasi mentah atau melalui HTTP Basic Auth standar membuatnya sangat mudah untuk menggunakan API kami. Kunci API seperti ini adalah standar umum untuk layanan web, tetapi seberapa aman sistem ini?

Ada banyak cara untuk membangun otentikasi dalam produk berbasis API seperti SparkPost, dan yang kami pilih pada awalnya adalah penggunaan kunci API. Menyisipkan kunci API Anda sebagai header Otorisasi mentah atau melalui HTTP Basic Auth standar membuatnya sangat mudah untuk menggunakan API kami. Kunci API seperti ini adalah standar umum untuk layanan web, tetapi seberapa aman sistem ini?

Ada banyak cara untuk membangun otentikasi dalam produk berbasis API seperti SparkPost, dan yang kami pilih pada awalnya adalah penggunaan kunci API. Menyisipkan kunci API Anda sebagai header Otorisasi mentah atau melalui HTTP Basic Auth standar membuatnya sangat mudah untuk menggunakan API kami. Kunci API seperti ini adalah standar umum untuk layanan web, tetapi seberapa aman sistem ini?

Risiko-risiko

Ketika menggunakan layanan web apa pun, jika seorang penyerang memperoleh kunci API Anda, mereka dapat bertindak atas nama Anda, dan melakukan hal-hal seperti (dalam kasus kami):

  • mengirim email mereka secara gratis melalui akun Anda

  • mengunduh daftar penerima Anda dan memberikannya kepada spammer (jika mereka bukan spammer itu sendiri)

  • mengedit template Anda untuk menyuntikkan tautan phishing

  • mengirim spam atau phishing atas nama Anda

Setiap hasil ini bisa sangat merusak reputasi dan bisnis Anda, dan dalam kasus phishing bisa langsung merusak pengguna akhir Anda.   Ini adalah mengapa sangat penting untuk memastikan tidak ada yang dapat menemukan kunci API Anda.

Ketika menggunakan layanan web apa pun, jika seorang penyerang memperoleh kunci API Anda, mereka dapat bertindak atas nama Anda, dan melakukan hal-hal seperti (dalam kasus kami):

  • mengirim email mereka secara gratis melalui akun Anda

  • mengunduh daftar penerima Anda dan memberikannya kepada spammer (jika mereka bukan spammer itu sendiri)

  • mengedit template Anda untuk menyuntikkan tautan phishing

  • mengirim spam atau phishing atas nama Anda

Setiap hasil ini bisa sangat merusak reputasi dan bisnis Anda, dan dalam kasus phishing bisa langsung merusak pengguna akhir Anda.   Ini adalah mengapa sangat penting untuk memastikan tidak ada yang dapat menemukan kunci API Anda.

Ketika menggunakan layanan web apa pun, jika seorang penyerang memperoleh kunci API Anda, mereka dapat bertindak atas nama Anda, dan melakukan hal-hal seperti (dalam kasus kami):

  • mengirim email mereka secara gratis melalui akun Anda

  • mengunduh daftar penerima Anda dan memberikannya kepada spammer (jika mereka bukan spammer itu sendiri)

  • mengedit template Anda untuk menyuntikkan tautan phishing

  • mengirim spam atau phishing atas nama Anda

Setiap hasil ini bisa sangat merusak reputasi dan bisnis Anda, dan dalam kasus phishing bisa langsung merusak pengguna akhir Anda.   Ini adalah mengapa sangat penting untuk memastikan tidak ada yang dapat menemukan kunci API Anda.

Peluang

Apakah saya mendengar bruteforce? Kunci API kami dihasilkan secara acak sebagai string heksadesimal sepanjang 40. Ini menghasilkan total 1,4615e+48 kunci API. Jika semua 3 miliar komputer dan smartphone di dunia mencoba 100 kunci API per detik, dengan asumsi bahwa server kami akan mengizinkan itu, melewati semua kemungkinan kunci API akan memakan waktu lebih dari 150.000.000.000.000.000.000.000.000.000 tahun. Jadi, melakukan pemaksaan untuk mendapatkan kunci API tidak masuk akal.

Jadi, bagaimana seseorang bisa menemukan kunci API Anda? Karena kunci tersebut dikirim sebagai header, itu dapat dibaca dengan serangan man-in-the-middle, jadi Anda harus selalu memastikan bahwa klien Anda memeriksa sertifikat SSL saat terhubung ke API kami (ini adalah alasan utama mengapa kami memerlukan https untuk koneksi API). Juga, jika Anda terburu-buru dengan penggunaan repositori kode publik seperti github, kunci API Anda dapat dengan mudah terungkap di dunia luar. Ini bukan masalah akademis: ada bot yang diketahui merayapi github untuk menemukan kunci API, dan telah ada serangan yang berhasil melalui vektor tersebut.

Apakah saya mendengar bruteforce? Kunci API kami dihasilkan secara acak sebagai string heksadesimal sepanjang 40. Ini menghasilkan total 1,4615e+48 kunci API. Jika semua 3 miliar komputer dan smartphone di dunia mencoba 100 kunci API per detik, dengan asumsi bahwa server kami akan mengizinkan itu, melewati semua kemungkinan kunci API akan memakan waktu lebih dari 150.000.000.000.000.000.000.000.000.000 tahun. Jadi, melakukan pemaksaan untuk mendapatkan kunci API tidak masuk akal.

Jadi, bagaimana seseorang bisa menemukan kunci API Anda? Karena kunci tersebut dikirim sebagai header, itu dapat dibaca dengan serangan man-in-the-middle, jadi Anda harus selalu memastikan bahwa klien Anda memeriksa sertifikat SSL saat terhubung ke API kami (ini adalah alasan utama mengapa kami memerlukan https untuk koneksi API). Juga, jika Anda terburu-buru dengan penggunaan repositori kode publik seperti github, kunci API Anda dapat dengan mudah terungkap di dunia luar. Ini bukan masalah akademis: ada bot yang diketahui merayapi github untuk menemukan kunci API, dan telah ada serangan yang berhasil melalui vektor tersebut.

Apakah saya mendengar bruteforce? Kunci API kami dihasilkan secara acak sebagai string heksadesimal sepanjang 40. Ini menghasilkan total 1,4615e+48 kunci API. Jika semua 3 miliar komputer dan smartphone di dunia mencoba 100 kunci API per detik, dengan asumsi bahwa server kami akan mengizinkan itu, melewati semua kemungkinan kunci API akan memakan waktu lebih dari 150.000.000.000.000.000.000.000.000.000 tahun. Jadi, melakukan pemaksaan untuk mendapatkan kunci API tidak masuk akal.

Jadi, bagaimana seseorang bisa menemukan kunci API Anda? Karena kunci tersebut dikirim sebagai header, itu dapat dibaca dengan serangan man-in-the-middle, jadi Anda harus selalu memastikan bahwa klien Anda memeriksa sertifikat SSL saat terhubung ke API kami (ini adalah alasan utama mengapa kami memerlukan https untuk koneksi API). Juga, jika Anda terburu-buru dengan penggunaan repositori kode publik seperti github, kunci API Anda dapat dengan mudah terungkap di dunia luar. Ini bukan masalah akademis: ada bot yang diketahui merayapi github untuk menemukan kunci API, dan telah ada serangan yang berhasil melalui vektor tersebut.

IP whitelist untuk penyelamatan

Ketika Anda membuat kunci API, Anda sekarang dapat menentukan daftar IP yang diizinkan untuk menggunakan kunci ini. Anda dapat menentukan beberapa IP, serta blok IP, menggunakan notasi CIDR, sehingga Anda tidak perlu mencantumkan server Anda secara individu. Ketika kunci API digunakan, untuk API REST atau SMTP, kami akan mencocokkan IP yang menghubungkan dengan daftar ini untuk mengizinkan atau menolak akses.

Dengan fitur ini, bahkan jika kunci API Anda ditemukan atau dicuri, hanya server Anda yang akan dapat menggunakannya.

Ancaman Kunci API yang Umum dan Mitigasi

Aansihan

Deskripsi

Mitigasi yang Direkomendasikan

Pajanan kunci di repositori kode publik

Kunci API yang dikomit ke GitHub dapat diambil oleh bot

Jaga kunci dalam variabel lingkungan; ganti kunci yang bocor segera

Intersepsi man-in-the-middle

Kunci API dibaca selama koneksi yang tidak aman

Selalu paksa HTTPS dan validasi sertifikat SSL

Kunci API yang dicuri digunakan dari infrastruktur penyerang

Penyerang dapat mengirim email, mencuri data, atau memodifikasi templat

Gunakan whitelist IP untuk membatasi IP mana yang dapat menggunakan kunci

Kunci API “swiss-knife” yang terlalu berizin

Kunci tunggal memberikan terlalu banyak privilese jika dikompromikan

Buat beberapa kunci dengan lingkup sempit dengan izin terbatas

Integrasi pihak ketiga yang menyalahgunakan kunci bersama

Mitra eksternal dapat secara tidak sengaja mengekspos atau menyalahgunakan kunci Anda

Hasilkan kunci khusus untuk setiap mitra dengan IP dan izin terbatas

Dengan mempertimbangkan risiko dan betapa mudahnya untuk menyiapkannya, kami sangat merekomendasikan semua pelanggan kami untuk menggunakan fitur ini.

Ketika Anda membuat kunci API, Anda sekarang dapat menentukan daftar IP yang diizinkan untuk menggunakan kunci ini. Anda dapat menentukan beberapa IP, serta blok IP, menggunakan notasi CIDR, sehingga Anda tidak perlu mencantumkan server Anda secara individu. Ketika kunci API digunakan, untuk API REST atau SMTP, kami akan mencocokkan IP yang menghubungkan dengan daftar ini untuk mengizinkan atau menolak akses.

Dengan fitur ini, bahkan jika kunci API Anda ditemukan atau dicuri, hanya server Anda yang akan dapat menggunakannya.

Ancaman Kunci API yang Umum dan Mitigasi

Aansihan

Deskripsi

Mitigasi yang Direkomendasikan

Pajanan kunci di repositori kode publik

Kunci API yang dikomit ke GitHub dapat diambil oleh bot

Jaga kunci dalam variabel lingkungan; ganti kunci yang bocor segera

Intersepsi man-in-the-middle

Kunci API dibaca selama koneksi yang tidak aman

Selalu paksa HTTPS dan validasi sertifikat SSL

Kunci API yang dicuri digunakan dari infrastruktur penyerang

Penyerang dapat mengirim email, mencuri data, atau memodifikasi templat

Gunakan whitelist IP untuk membatasi IP mana yang dapat menggunakan kunci

Kunci API “swiss-knife” yang terlalu berizin

Kunci tunggal memberikan terlalu banyak privilese jika dikompromikan

Buat beberapa kunci dengan lingkup sempit dengan izin terbatas

Integrasi pihak ketiga yang menyalahgunakan kunci bersama

Mitra eksternal dapat secara tidak sengaja mengekspos atau menyalahgunakan kunci Anda

Hasilkan kunci khusus untuk setiap mitra dengan IP dan izin terbatas

Dengan mempertimbangkan risiko dan betapa mudahnya untuk menyiapkannya, kami sangat merekomendasikan semua pelanggan kami untuk menggunakan fitur ini.

Ketika Anda membuat kunci API, Anda sekarang dapat menentukan daftar IP yang diizinkan untuk menggunakan kunci ini. Anda dapat menentukan beberapa IP, serta blok IP, menggunakan notasi CIDR, sehingga Anda tidak perlu mencantumkan server Anda secara individu. Ketika kunci API digunakan, untuk API REST atau SMTP, kami akan mencocokkan IP yang menghubungkan dengan daftar ini untuk mengizinkan atau menolak akses.

Dengan fitur ini, bahkan jika kunci API Anda ditemukan atau dicuri, hanya server Anda yang akan dapat menggunakannya.

Ancaman Kunci API yang Umum dan Mitigasi

Aansihan

Deskripsi

Mitigasi yang Direkomendasikan

Pajanan kunci di repositori kode publik

Kunci API yang dikomit ke GitHub dapat diambil oleh bot

Jaga kunci dalam variabel lingkungan; ganti kunci yang bocor segera

Intersepsi man-in-the-middle

Kunci API dibaca selama koneksi yang tidak aman

Selalu paksa HTTPS dan validasi sertifikat SSL

Kunci API yang dicuri digunakan dari infrastruktur penyerang

Penyerang dapat mengirim email, mencuri data, atau memodifikasi templat

Gunakan whitelist IP untuk membatasi IP mana yang dapat menggunakan kunci

Kunci API “swiss-knife” yang terlalu berizin

Kunci tunggal memberikan terlalu banyak privilese jika dikompromikan

Buat beberapa kunci dengan lingkup sempit dengan izin terbatas

Integrasi pihak ketiga yang menyalahgunakan kunci bersama

Mitra eksternal dapat secara tidak sengaja mengekspos atau menyalahgunakan kunci Anda

Hasilkan kunci khusus untuk setiap mitra dengan IP dan izin terbatas

Dengan mempertimbangkan risiko dan betapa mudahnya untuk menyiapkannya, kami sangat merekomendasikan semua pelanggan kami untuk menggunakan fitur ini.

Kata terakhir

Beberapa rekomendasi pribadi tentang keamanan:

  • Jangan simpan kunci API Anda dalam kode. Ada banyak manfaat dengan menyimpannya sebagai variabel lingkungan, seperti yang dilakukan Heroku

  • Anda dapat membuat jumlah kunci API yang tidak terbatas, dan yang terbaik untuk keamanan adalah membagi tanggung jawab di antara beberapa kunci API, daripada hanya satu kunci serba bisa. Ini juga akan memungkinkan Anda memiliki daftar IP yang diizinkan yang berbeda per kunci, untuk pemisahan kepentingan yang lebih baik

  • Jika Anda bekerja dengan pihak ketiga, jangan bagikan kunci API Anda tetapi buat yang baru untuk mereka, dengan hanya izin yang diperlukan, dan terhubung ke IP mereka

  • Saat kunci API hanya dapat dibuat melalui UI, mengaktifkan autentikasi dua faktor di akun SparkPost Anda adalah hal yang harus dimiliki dan hanya memerlukan 2 menit

Beberapa rekomendasi pribadi tentang keamanan:

  • Jangan simpan kunci API Anda dalam kode. Ada banyak manfaat dengan menyimpannya sebagai variabel lingkungan, seperti yang dilakukan Heroku

  • Anda dapat membuat jumlah kunci API yang tidak terbatas, dan yang terbaik untuk keamanan adalah membagi tanggung jawab di antara beberapa kunci API, daripada hanya satu kunci serba bisa. Ini juga akan memungkinkan Anda memiliki daftar IP yang diizinkan yang berbeda per kunci, untuk pemisahan kepentingan yang lebih baik

  • Jika Anda bekerja dengan pihak ketiga, jangan bagikan kunci API Anda tetapi buat yang baru untuk mereka, dengan hanya izin yang diperlukan, dan terhubung ke IP mereka

  • Saat kunci API hanya dapat dibuat melalui UI, mengaktifkan autentikasi dua faktor di akun SparkPost Anda adalah hal yang harus dimiliki dan hanya memerlukan 2 menit

Beberapa rekomendasi pribadi tentang keamanan:

  • Jangan simpan kunci API Anda dalam kode. Ada banyak manfaat dengan menyimpannya sebagai variabel lingkungan, seperti yang dilakukan Heroku

  • Anda dapat membuat jumlah kunci API yang tidak terbatas, dan yang terbaik untuk keamanan adalah membagi tanggung jawab di antara beberapa kunci API, daripada hanya satu kunci serba bisa. Ini juga akan memungkinkan Anda memiliki daftar IP yang diizinkan yang berbeda per kunci, untuk pemisahan kepentingan yang lebih baik

  • Jika Anda bekerja dengan pihak ketiga, jangan bagikan kunci API Anda tetapi buat yang baru untuk mereka, dengan hanya izin yang diperlukan, dan terhubung ke IP mereka

  • Saat kunci API hanya dapat dibuat melalui UI, mengaktifkan autentikasi dua faktor di akun SparkPost Anda adalah hal yang harus dimiliki dan hanya memerlukan 2 menit

Berita lainnya

Baca lebih lanjut dari kategori ini

A person is standing at a desk while typing on a laptop.

Platform AI-native lengkap yang dapat berkembang seiring dengan bisnis Anda.

© 2025 Burung

A person is standing at a desk while typing on a laptop.

Platform AI-native lengkap yang dapat berkembang seiring dengan bisnis Anda.

© 2025 Burung