Biała lista IP dla kluczy API

Istnieje wiele sposobów na zbudowanie uwierzytelniania w produkcie opartym na API, takim jak SparkPost, a ten, który wybraliśmy na początku, to użycie kluczy API. Wstrzykiwanie klucza API jako surowego nagłówka Authorization lub za pomocą standardowego uwierzytelniania HTTP Basic sprawia, że korzystanie z naszych interfejsów API jest bardzo proste. Klucze API tego typu są powszechnym standardem dla usług internetowych, ale jak bezpieczny jest ten system?

Autor

Ptak

Kategoria

Email

Biała lista IP dla kluczy API

Istnieje wiele sposobów na zbudowanie uwierzytelniania w produkcie opartym na API, takim jak SparkPost, a ten, który wybraliśmy na początku, to użycie kluczy API. Wstrzykiwanie klucza API jako surowego nagłówka Authorization lub za pomocą standardowego uwierzytelniania HTTP Basic sprawia, że korzystanie z naszych interfejsów API jest bardzo proste. Klucze API tego typu są powszechnym standardem dla usług internetowych, ale jak bezpieczny jest ten system?

Autor

Ptak

Kategoria

Email

Biała lista IP dla kluczy API

Istnieje wiele sposobów na zbudowanie uwierzytelniania w produkcie opartym na API, takim jak SparkPost, a ten, który wybraliśmy na początku, to użycie kluczy API. Wstrzykiwanie klucza API jako surowego nagłówka Authorization lub za pomocą standardowego uwierzytelniania HTTP Basic sprawia, że korzystanie z naszych interfejsów API jest bardzo proste. Klucze API tego typu są powszechnym standardem dla usług internetowych, ale jak bezpieczny jest ten system?

Autor

Ptak

Kategoria

Email

Istnieje wiele sposobów na zbudowanie uwierzytelnienia w produkcie opartym na API, takim jak SparkPost, a tym, który wybraliśmy na początku, jest użycie kluczy API. Wstrzykiwanie klucza API jako surowego nagłówka autoryzacyjnego lub za pomocą standardowej autoryzacji HTTP Basic ułatwia korzystanie z naszych API. Klucze API tego rodzaju są powszechnym standardem dla usług internetowych, ale jak bezpieczny jest ten system?


Ryzyka

Przy korzystaniu z jakiejkolwiek usługi internetowej, jeśli napastnik zdobędzie Twój klucz API, może działać w Twoim imieniu i robić rzeczy takie jak (w naszym przypadku):

  • wysyłanie ich e-maili za darmo przez Twoje konto

  • ściąganie listy odbiorców i przekazywanie ich spammerom (jeśli sami nie są spammerami)

  • edycja Twoich szablonów w celu wstrzyknięcia linków phishingowych

  • wysyłanie spamu lub phishingu w Twoim imieniu

Każdy z tych wyników może być bardzo szkodliwy dla Twojej reputacji i Twojego biznesu, a w przypadku phishingu bezpośrednio zaszkodzić Twoim użytkownikom końcowym.  Dlatego niezwykle ważne jest, aby upewnić się, że nikt nie może odkryć Twojego klucza API.


Szanse

Czy usłyszałem bruteforce? Nasze klucze API są losowo generowanymi 40-znakowymi ciągami szesnastkowymi. To daje łącznie 1.4615e+48 kluczy API. Gdyby wszystkie 3 miliardy komputerów i smartfonów na świecie próbowały 100 kluczy API na sekundę, zakładając, że nasze serwery by na to pozwalały, przeszukiwanie wszystkich możliwych kluczy API zajmie więcej niż 150 000 000 000 000 000 000 000 000 000 lat. Dlatego łamanie klucza API po prostu nie ma sensu.

Jak więc można znaleźć Twój klucz API? Ponieważ klucz jest przekazywany jako nagłówek, można go odczytać za pomocą ataków typu man-in-the-middle, dlatego zawsze powinieneś upewnić się, że Twój klient sprawdza certyfikaty SSL podczas łączenia z naszymi API (to jest główny powód, dla którego wymagamy https dla połączeń API). Ponadto, jeśli nieostrożnie korzystasz z publicznych repozytoriów kodu, takich jak github, Twój klucz API może łatwo zostać ujawniony w sieci. To nie jest problem akademicki: są znane boty przeszukujące github w celu znajdowania kluczy API, a przez ten wektor miały miejsce udane ataki.


Whitelist IP na ratunek

Gdy tworzysz klucz API, możesz teraz określić listę IP, które są upoważnione do korzystania z tego klucza. Możesz określić kilka adresów IP, a także bloki IP, używając notacji CIDR, więc nie musisz wymieniać swoich serwerów indywidualnie. Gdy klucz API jest używany, dla API REST lub SMTP, porównamy łączący adres IP z tą listą, aby zezwolić lub odmówić dostępu.

Dzięki tej funkcji, nawet jeśli klucz API zostanie znaleziony lub skradziony, tylko Twoje serwery będą mogły z niego skorzystać. Biorąc pod uwagę ryzyka oraz jak łatwo jest to skonfigurować, zdecydowanie zalecamy, aby wszyscy nasi klienci korzystali z tej funkcji.


Ostatnie słowa

Kilka osobistych zaleceń dotyczących bezpieczeństwa:

  • Nie przechowuj swoich kluczy API w kodzie. Korzystanie z zmiennych środowiskowych, jak robi to Heroku, ma wiele korzyści

  • Możesz utworzyć nieograniczoną liczbę kluczy API i najlepiej dla bezpieczeństwa rozdzielić odpowiedzialności między kilka kluczy API, zamiast posiadać tylko jeden klucz szwajcarski. To także pozwoli Ci mieć różne listy dozwolonych adresów IP dla każdego klucza, dla jeszcze lepszej separacji obowiązków

  • Jeśli współpracujesz z osobami trzecimi, nie dziel się swoim kluczem API, ale stwórz nowy klucz dla nich, z tylko potrzebnymi uprawnieniami i przypisany do ich adresów IP

  • Ponieważ klucze API można tworzyć tylko przez UI, włączenie uwierzytelniania dwuetapowego na Twoim koncie SparkPost jest koniecznością i zajmuje tylko 2 minuty

Gotowy, aby zobaczyć Bird w akcji?

Schedule a demo now.

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's