TL;DR
Klucz interfejsu programowania aplikacji (API) to unikalny kod używany przez interfejs API do identyfikacji wywołującej aplikacji lub użytkownika. Klucze API służą do śledzenia i kontrolowania, kto i w jaki sposób korzysta z interfejsu API, a także do uwierzytelniania i autoryzacji aplikacji — podobnie jak działają nazwy użytkowników i hasła. Klucz API może mieć postać pojedynczego klucza lub zestawu wielu kluczy. Użytkownicy powinni przestrzegać najlepszych praktyk, aby poprawić swoje ogólne bezpieczeństwo przed kradzieżą kluczy API i uniknąć związanych z tym konsekwencji naruszenia bezpieczeństwa ich kluczy API.
API a klucz API
Aby zrozumieć, czym jest klucz API, musisz najpierw zrozumieć, czym jest API. Interfejs programowania aplikacji lub API to pośrednik w oprogramowaniu, który umożliwia dwóm lub większej liczbie aplikacji współdzielenie informacji. Na przykład interfejs API CoinMarketCap umożliwia innym aplikacjom pobieranie i wykorzystywanie danych kryptograficznych, takich jak cena, wolumen i kapitalizacja rynkowa.
Klucz API występuje w wielu różnych formach — może to być pojedynczy klucz lub zestaw wielu kluczy. Różne systemy używają tych kluczy do uwierzytelniania i autoryzacji aplikacji, podobnie jak używa się nazwy użytkownika i hasła. Klucz API jest używany przez klienta API do uwierzytelniania aplikacji wywołującej API.
Na przykład, jeśli Binance Academy chce korzystać z API CoinMarketCap, klucz API zostanie wygenerowany przez CoinMarketCap i użyty do uwierzytelnienia tożsamości Binance Academy (klienta API), która żąda dostępu do API. Kiedy Binance Academy uzyskuje dostęp do API CoinMarketCap, ten klucz API powinien zostać wysłany do CoinMarketCap wraz z żądaniem.
Ten klucz API powinien być używany wyłącznie przez Binance Academy i nie powinien być udostępniany ani wysyłany innym osobom. Udostępnienie tego klucza API umożliwi stronie trzeciej dostęp do CoinMarketCap jako Binance Academy, a wszelkie działania strony trzeciej będą wyglądać tak, jakby pochodziły z Binance Academy.
Klucz API może być również wykorzystany przez API CoinMarketCap w celu potwierdzenia, czy aplikacja ma autoryzację dostępu do żądanego zasobu. Ponadto właściciele API używają kluczy API do monitorowania aktywności API, takiej jak typy, ruch i wielkość żądań.
Co to jest klucz API?
Klucz API służy do kontrolowania i śledzenia, kto i w jaki sposób korzysta z API. Termin „klucz API” może oznaczać różne rzeczy dla różnych systemów. Niektóre systemy mają jeden kod, ale inne mogą mieć wiele kodów dla jednego „klucza API”.
Jako taki „klucz API” to unikalny kod lub zestaw unikalnych kodów używanych przez interfejs API do uwierzytelniania i autoryzacji wywołującego użytkownika lub aplikacji. Niektóre kody służą do uwierzytelniania, a inne do tworzenia podpisów kryptograficznych w celu potwierdzenia zasadności żądania.
Te 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 polega na identyfikacji zaangażowanych podmiotów i potwierdzeniu, że są tym, za kogo się podają.
Autoryzacja natomiast określa usługi API, do których dozwolony jest dostęp. Funkcja klucza API jest podobna do nazwy użytkownika i hasła do konta; można go także połączyć z innymi funkcjami bezpieczeństwa, aby poprawić ogólne bezpieczeństwo.
Każdy klucz API jest zazwyczaj generowany dla konkretnej jednostki przez właściciela API (więcej szczegółów poniżej) i za każdym razem, gdy wykonywane jest wywołanie do punktu końcowego API – które wymaga uwierzytelnienia użytkownika lub autoryzacji użytkownika, lub obu – używany jest odpowiedni klucz.
Podpisy kryptograficzne
Niektóre klucze API wykorzystują podpisy kryptograficzne jako dodatkową warstwę weryfikacji. Gdy użytkownik chce wysłać określone dane do API, do żądania można dodać podpis cyfrowy wygenerowany przez inny klucz. Za pomocą kryptografii właściciel API może sprawdzić, czy ten podpis cyfrowy jest zgodny z przesłanymi danymi.
Podpisy symetryczne i asymetryczne
Dane udostępniane za pośrednictwem interfejsu API mogą być podpisane kluczami kryptograficznymi, które należą do następujących kategorii:
Klucze symetryczne
Polegają one na wykorzystaniu jednego tajnego klucza do wykonania zarówno podpisywania danych, jak i weryfikacji podpisu. W przypadku kluczy symetrycznych klucz API i tajny klucz są zwykle generowane przez właściciela API i ten sam tajny klucz musi być używany przez usługę API do weryfikacji podpisu. Główną zaletą używania pojedynczego klucza jest to, że jest to szybsze i wymaga mniej mocy obliczeniowej do generowania i weryfikacji podpisu. Dobrym przykładem klucza symetrycznego jest HMAC.
Klucze asymetryczne
Obejmują one użycie dwóch kluczy: klucza prywatnego i klucza publicznego, które są różne, ale powiązane kryptograficznie. Klucz prywatny służy do generowania podpisu, a klucz publiczny służy do weryfikacji podpisu. Klucz API jest generowany przez właściciela API, ale para kluczy prywatnych i kluczy publicznych jest generowana przez użytkownika. Właściciel API musi użyć tylko klucza publicznego do weryfikacji podpisu, więc klucz prywatny może pozostać lokalny i tajny.
Główną zaletą stosowania kluczy asymetrycznych jest większe bezpieczeństwo oddzielenia kluczy generujących podpis i weryfikujących. Dzięki temu systemy zewnętrzne mogą weryfikować podpisy bez możliwości generowania podpisów. Kolejną zaletą jest to, że niektóre systemy szyfrowania asymetrycznego obsługują dodawanie hasła do kluczy prywatnych. 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 je traktować z taką samą ostrożnością. Udostępnianie klucza API jest podobne do udostępniania hasła i jako takie nie powinno być wykonywane, ponieważ narażałoby to konto użytkownika na ryzyko.
Klucze API są często celem cyberataków, ponieważ można ich używać do wykonywania zaawansowanych operacji na systemach, takich jak żądanie danych osobowych lub wykonywanie transakcji finansowych. W rzeczywistości zdarzały się przypadki, gdy roboty indeksujące skutecznie atakowały bazy danych z kodami online w celu kradzieży kluczy 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ą, po kradzieży mogą być używane przez osoby atakujące przez czas nieokreślony, dopóki same klucze nie zostaną unieważnione.
Najlepsze praktyki podczas korzystania z kluczy API
Ze względu na dostęp do wrażliwych danych i ogólną podatność na zagrożenia, bezpieczne używanie kluczy API ma ogromne znaczenie. Korzystając z kluczy API, możesz postępować zgodnie z poniższymi wytycznymi dotyczącymi najlepszych praktyk, aby poprawić ich ogólne bezpieczeństwo:
Jeśli to możliwe, często zmieniaj klucze API. Oznacza to, że powinieneś usunąć bieżący klucz API i utworzyć nowy. W przypadku wielu systemów generowanie i usuwanie kluczy API jest łatwe. Podobnie jak niektóre systemy wymagają zmiany hasła co 30 do 90 dni, powinieneś zmieniać klucze API z podobną częstotliwością, jeśli to możliwe.
Użyj białej listy adresów IP: Podczas tworzenia klucza API utwórz listę adresów IP uprawnionych do korzystania z klucza (biała lista adresów IP). Możesz także określić listę blokowanych adresów IP (czarną listę adresów IP). W ten sposób, nawet jeśli Twój klucz API zostanie skradziony, nierozpoznany adres IP nadal nie będzie mógł uzyskać do niego dostępu.
Używaj wielu kluczy API: posiadanie wielu kluczy i podział obowiązków między nimi obniży ryzyko bezpieczeństwa, ponieważ Twoje bezpieczeństwo nie będzie zależeć od jednego klucza z szerokimi uprawnieniami. Możesz także ustawić różne białe listy adresów IP dla każdego klucza, co jeszcze bardziej zmniejsza ryzyko bezpieczeństwa.
Bezpiecznie przechowuj klucze API: nie przechowuj kluczy w miejscach publicznych, na komputerach publicznych ani w ich oryginalnym formacie zwykłego tekstu. Zamiast tego przechowuj każdy plik przy użyciu szyfrowania lub tajnego menedżera dla większego bezpieczeństwa i uważaj, aby przypadkowo ich nie ujawnić.
Nie udostępniaj swoich kluczy API. Udostępnianie klucza API jest podobne do udostępniania hasła. Robiąc to, dajesz innej stronie takie same uprawnienia w zakresie uwierzytelniania i autoryzacji jak Ty. Jeśli zostaną naruszone, Twój klucz API może zostać skradziony i wykorzystany do włamania się na Twoje konto. Klucz API powinien być używany wyłącznie pomiędzy Tobą a systemem, który go generuje.
Jeśli Twój klucz API został naruszony, musisz go najpierw wyłączyć, aby zapobiec dalszym szkodom. W przypadku poniesienia straty finansowej wykonaj zrzuty ekranu kluczowych informacji związanych ze zdarzeniem, skontaktuj się z podmiotami powiązanymi i złóż raport na policji. To najlepszy sposób, aby zwiększyć swoje szanse na odzyskanie utraconych środków.
Zamykające myśli
Klucze API zapewniają podstawowe funkcje uwierzytelniania i autoryzacji, a użytkownicy muszą ostrożnie zarządzać swoimi kluczami i chronić je. Istnieje wiele warstw i aspektów zapewniających bezpieczne korzystanie z kluczy API. Ogólnie rzecz biorąc, klucz API należy traktować jak hasło do konta.
Dalsze czytanie
Ogólne zasady bezpieczeństwa
5 typowych oszustw związanych z kryptowalutami i jak ich unikać

