Czym jest klucz API i jak go bezpiecznie używać?
Strona Główna
Artykuły
Czym jest klucz API i jak go bezpiecznie używać?

Czym jest klucz API i jak go bezpiecznie używać?

Średnio zaawansowany
Opublikowane Jan 6, 2023Zaktualizowane Feb 21, 2023
7m


Klucz interfejsu programistycznego aplikacji (API) to niepowtarzalny kod wykorzystywany przez interfejs API do identyfikacji aplikacji wywołującej lub użytkownika. Klucze API służą do śledzenia i sprawdzania, kto i jak korzysta z API, a także do uwierzytelniania i autoryzowania aplikacji – podobnie jak nazwy użytkowników i hasła. Klucz API może występować w postaci pojedynczego klucza lub zestawu wielu kluczy. Użytkownicy powinni stosować najlepsze praktyki, aby poprawić swoje ogólne bezpieczeństwo przed kradzieżą klucza API i uniknąć związanych z tym konsekwencji narażenia ich kluczy API.

Interfejs API a Klucz API

Aby zrozumieć, czym jest klucz API, trzeba najpierw zrozumieć, czym jest interfejs API. Interfejs programowania aplikacji lub API to oprogramowanie pośredniczące, umożliwiające dwóm lub więcej aplikacjom wymianę informacji. Przykładowo: interfejs API CoinMarketCap umożliwia innym aplikacjom pobieranie oraz wykorzystywanie danych o kryptowalutach, takich jak cena, wolumen i kapitalizacja rynkowa.

Klucz API występuje w wielu różnych formach – może to być jeden klucz lub zestaw wielu kluczy. W różnych systemach te klucze służą do uwierzytelniania i autoryzowania aplikacji – podobnie jak nazwa użytkownika i hasło. API uwierzytelnia kluczem API aplikację wywołującą interfejs API. 

Jeżeli np. Akademia Binance chce skorzystać z interfejsu API CoinMarketCap, CoinMarketCap generuje klucz API , który posłuży do uwierzytelniania tożsamości Akademii Binance (klienta API), która żąda dostępu do API. Kiedy Akademia Binance będzie uzyskiwać dostęp do interfejsu API CoinMarketCap, ten klucz API powinien być wysyłany do CoinMarketCap wraz z żądaniem. 

Z tego klucza API powinna korzystać wyłącznie Akademia Binance i nie należy go udostępniać ani przesyłać innym podmiotom. Udostępnienie tego klucza API umożliwi osobie trzeciej uzyskanie dostępu do CoinMarketCap w charakterze Akademii Binance, a wszelkie działania osoby trzeciej będą wyglądały tak, jakby ich źródłem była Akademia Binance.

Klucz API może być również używany przez API CoinMarketCap do potwierdzenia, czy aplikacja jest upoważniona do dostępu do żądanego zasobu. Dodatkowo, właściciele API używają kluczy API do monitorowania aktywności API, takich jak typy, ruch i objętość żądań. 

Czym Jest Klucz API? 

Klucz API służy do sprawdzania i nadzorowania, kto używa interfejsu API i w jaki sposób to robi. Termin „klucz API“ w różnych systemach może oznaczać odmienne rzeczy. Niektóre systemy mają jeden kod, a inne mogą posiadać wiele kodów do jednego „klucza API“.   

Jako taki, "klucz API" jest unikalnym kodem lub zestawem unikalnych kodów używanych przez API do uwierzytelniania i autoryzacji użytkownika lub aplikacji wywołującej. Niektóre kody są używane do uwierzytelniania, a inne do tworzenia podpisów kryptograficznych w celu udowodnienia zasadności żądania. 

Kody uwierzytelniające są powszechnie określane zbiorczo jako "klucz API", podczas gdy kody używane do podpisów kryptograficznych noszą różne nazwy, takie jak "klucz tajny", "klucz publiczny" lub "klucz prywatny". Uwierzytelnianie wiąże się z identyfikacją zaangażowanych podmiotów i potwierdzeniem, że są one tym, za kogo się podają.

Z kolei autoryzacja określa usługi API, do których dostęp jest dozwolony. Funkcja klucza API jest podobna do funkcji nazwy użytkownika i hasła do konta – można ją również łączyć z innymi zabezpieczeniami w celu poprawy bezpieczeństwa ogólnego. 

Każdy klucz API zazwyczaj generuje dla konkretnego podmiotu właściciel interfejsu API (więcej informacji poniżej) i za każdym razem, gdy wykonywane jest połączenie z punktem końcowym interfejsu API – co wymaga weryfikacji lub autoryzacji użytkownika, albo jednego i drugiego – używany jest odpowiedni klucz.

Podpisy Kryptograficzne

Niektóre klucze API mają jako dodatkową warstwę weryfikacji podpisy kryptograficzne. Kiedy użytkownik chce wysłać określone dane do interfejsu API, do żądania można dodać podpis cyfrowy wygenerowany przez inny klucz. Przy użyciu kryptografii właściciel interfejsu API może sprawdzić, czy ten podpis cyfrowy pasuje do przesłanych danych.

Podpisy Symetryczne i Asymetryczne 

Dane udostępniane za pośrednictwem interfejsów API można podpisywać kluczami kryptograficznymi, które należą do następujących kategorii:

Klucze symetryczne

Wymagają stosowania jednego klucza tajnego zarówno do podpisywania danych, jak i do weryfikacji podpisu. W przypadku kluczy symetrycznych klucz API oraz klucz tajny generuje zwykle właściciel interfejsu API i tego samego klucza tajnego musi użyć do weryfikacji podpisu usługa API. Główną zaletą stosowania pojedynczego klucza jest fakt, że jest to metoda szybsza i nie wymaga do generowania oraz weryfikacji podpisu takiej mocy obliczeniowej. Dobrym przykładem klucza symetrycznego jest HMAC.

Klucze asymetryczne

Wymagają stosowania dwóch kluczy: klucza prywatnego i klucza publicznego, które są różne, ale powiązane kryptograficznie. Klucz prywatny służy do wygenerowania podpisu, a klucz publiczny do weryfikacji podpisu. Klucz API generuje właściciel API, ale parę klucz prywatny-klucz publiczny generuje użytkownik. Do weryfikacji podpisu właściciel API musi mieć tylko klucz publiczny, więc klucz prywatny może pozostać na miejscu i w tajemnicy. 

Główną zaletą stosowania kluczy asymetrycznych jest większe bezpieczeństwo wynikające z rozdzielenia kluczy do generowania i weryfikacji podpisu. Dzięki temu systemy zewnętrzne mogą weryfikować podpisy, nie mając możliwości ich generowania. Kolejną zaletą jest to, że niektóre systemy szyfrowania asymetrycznego obsługują dodawanie do kluczy prywatnych hasła. Dobrym przykładem jest para kluczy RSA. 

Czy Klucze API Są Bezpieczne? 

Odpowiedzialność za klucz API spoczywa na użytkowniku. Klucze API są podobne do haseł i należy się z nimi obchodzić równie ostrożnie. Podawanie klucza API to jak podawanie hasła i dlatego nie należy tego robić, ponieważ może to narazić na niebezpieczeństwo konto użytkownika. 

Klucze API bywają często celem cyberataków, ponieważ można je wykorzystać do realizacji potężnych operacji na systemach, np. do zażądania danych osobowych lub wykonania transakcji finansowych. Faktycznie zdarzały się przypadki, że crawlery z powodzeniem atakowały bazy danych z kodami w internecie i wykradały klucze API.

Konsekwencje kradzieży klucza API mogą być drastyczne i prowadzić do znacznych strat finansowych. Co więcej, ponieważ niektóre klucze API nie wygasają, atakujący mogą po dokonaniu kradzieży wykorzystywać je w nieskończoność, dopóki same klucze nie zostaną unieważnione.

Najlepsze Praktyki Podczas Korzystania z Kluczy API

Ze względu na to, że klucze API mają dostęp do danych wrażliwych i są ogólnie rzecz biorąc podatne na zagrożenia, ich bezpieczne używanie ma ogromne znaczenie. Aby poprawić ich bezpieczeństwo ogólne, można skorzystać z poniższych wskazówek na temat najlepszych praktyk podczas korzystania z kluczy API: 

  1. W miarę możliwości dokonuj częstej rotacji kluczy API. Oznacza to, że trzeba usunąć bieżący klucz API i utworzyć nowy. W wielu systemach klucze API można łatwo generować i usuwać. Podobnie jak niektóre systemy co 30-90 dni wymagają zmiany hasła, tak podobnie często w miarę możliwości powinno się rotować klucze API.

  2. Wdrożenie whitelisty adresów IP: Kiedy tworzysz klucz API, twórz listę adresów IP upoważnionych do korzystania z klucza (whitelistę adresów IP). Możesz również określić listę zablokowanych adresów IP (czarna lista adresów IP). W ten sposób nawet jeżeli dojdzie do kradzieży klucza API, i tak nie będzie można uzyskać do niego dostępu z nierozpoznanego adresu IP.

  3. Stosuj wiele kluczy API: Posiadanie wielu kluczy i rozkładanie na nie odpowiedzialności zmniejsza zagrożenia związane z bezpieczeństwem, ponieważ Twoje bezpieczeństwo nie zależy od jednego klucza o szerokich uprawnieniach. Można również ustawić różne whitelisty adresów IP na każdy klucz, co jeszcze bardziej ogranicza zagrożenia związane z bezpieczeństwem. 

  4. Przechowuj klucze API w bezpieczny sposób: Nie przechowuj kluczy w miejscach publicznych, na publicznych komputerach ani w pierwotnymi formacie tekstowym. Zamiast tego przechowuj każdy z nich w formie zaszyfrowanej lub w menedżerze poufności, aby zwiększyć bezpieczeństwo, i uważaj, aby przypadkowo ich nie ujawnić. 

  5. Nie udostępniaj kluczy API. Udostępnienie klucza API to jak udostępnienie hasła. Dajesz w ten sposób komuś innemu takie same uprawnienia do weryfikacji i autoryzacji, jak Twoje własne. Jeśli dojdzie do ich naruszenia, klucz API może zostać skradziony i wykorzystany do włamania na Twoje konto. Z klucza API masz korzystać tylko Ty i system, który go generuje.

Jeżeli twój klucz API jest narażony na niebezpieczeństwo, musisz go najpierw wyłączyć, aby zapobiec dalszym szkodom. Jeśli doszło do strat finansowych, zrób zrzuty ekranu kluczowych informacji związanych z incydentem, skontaktuj się z odpowiednimi podmiotami i zgłoś sprawę na policję. Tak można najbardziej zwiększyć szanse na odzyskanie utraconych środków. 

Wnioski Końcowe

Klucze API zapewniają podstawowe funkcje weryfikacyjno-autoryzacyjne, a użytkownicy muszą ostrożnie zarządzać swoimi kluczami i je chronić. Bezpieczne korzystanie z kluczy API jest zagadnieniem wielowarstwowym i wieloaspektowym. Ogólnie rzecz biorąc, klucz API należy traktować jak hasło do konta.

Dalsza Lektura