Какво е API ключ и как да го използвате сигурно?
Начало
Статии
Какво е API ключ и как да го използвате сигурно?

Какво е API ключ и как да го използвате сигурно?

Напреднал
Публикувано Jan 6, 2023Актуализирано Feb 21, 2023
7m


Ключът за Приложно програмен интерфейс (API) е уникален код, използван от API за идентифициране на извикващото приложение или потребител. API ключовете се използват за проследяване и контрол кой използва API и как го използва, както и за удостоверяване и оторизиране на приложения - подобно на начина на работа на потребителските имена и паролите. API ключът може да бъде под формата на един ключ или набор от множество ключове. Потребителите трябва да следват най-добрите практики, за да подобрят цялостната си сигурност срещу кражба на API ключове и да избегнат свързаните с това последствия от компрометирането на техните API ключове.

API срещу API ключ

За да разберете какво е API ключ, първо трябва да разберете какво е API. Приложно-програмният интерфейс или API е софтуерен посредник, който позволява на две или повече приложения да споделят информация. Например, API на CoinMarketCap позволява на други приложения да извличат и използват крипто данни, като цена, обем и пазарна капитализация.

API ключът се предлага в много различни форми - може да бъде един ключ или набор от множество ключове. Различни системи използват тези ключове за удостоверяване и оторизиране на приложение, подобно на начина на използване на потребителско име и парола. API ключ се използва от API клиент за удостоверяване на приложение, извикващо API. 

Например, ако Binance Academy иска да използва API на CoinMarketCap, API ключ ще бъде генериран от CoinMarketCap и използван за удостоверяване на самоличността на Binance Academy (API клиент), който иска достъп до API. Когато Binance Academy получи достъп до API на CoinMarketCap, този API ключ трябва да бъде изпратен до CoinMarketCap заедно със заявката. 

Този API ключ трябва да се използва само от Binance Academy и не трябва да се споделя или изпраща на друг. Споделянето на този API ключ ще позволи на трета страна да получи достъп до CoinMarketCap като Binance Academy и всички действия от третата страна ще изглеждат така, сякаш идват от Binance Academy.

API ключът може също да се използва от CoinMarketCap API, за да потвърди дали приложението е оторизирано за достъп до искания ресурс. Освен това собствениците на API използват API ключове, за да наблюдават активността на API, като видове, трафик и обем на заявките. 

Какво е API ключ? 

API ключ се използва за контрол и проследяване кой използва API и как го използва. Терминът „API ключ“ може да означава различни неща за различните системи. Някои системи имат един код, но други могат да имат множество кодове за един „API ключ“.   

Като такъв, „API ключ“ е уникален код или набор от уникални кодове, използвани от API за удостоверяване и оторизиране на извикващия потребител или приложение. Някои кодове се използват за удостоверяване, а други се използват за създаване на криптографски подписи, за да се докаже легитимността на заявка. 

Тези кодове за удостоверяване обикновено колективно се наричат „API ключ“, докато кодовете, използвани за криптографски подписи, имат различни имена, като „таен ключ“ (secret key), „публичен ключ“ (public key) или „частен ключ“ (private key). Удостоверяването включва идентифициране на участващите субекти и потвърждаване, че те са тези, за които се представят.

Упълномощаването, от друга страна, определя API услугите, до които е разрешен достъп. Функцията на API ключ е подобна на тази на потребителско име и парола за акаунт; може да се свърже и с други функции за сигурност, за да подобри цялостната сигурност. 

Всеки API ключ обикновено се генерира за конкретно юридическо лице от собственика на API (повече подробности по-долу) и всеки път, когато се направи повикване към крайна точка на API — което изисква удостоверяване на потребителя или оторизация, или и двете — се използва съответният ключ.

Криптографски подписи

Някои API ключове използват криптографски подписи като допълнителен слой за проверка. Когато потребител иска да изпрати определени данни към API, към заявката може да се добави цифров подпис, генериран от друг ключ. Използвайки криптография, собственикът на API може да провери дали този цифров подпис съответства на изпратените данни.

Симетрични и асиметрични подписи 

Данните, споделени чрез API, могат да бъдат подписани с криптографски ключове, които попадат в следните категории:

Симетрични ключове

Те включват използването на един таен ключ за извършване както на подписване на данни, така и на проверка на подпис. При симетричните ключове API ключът и секретният ключ обикновено се генерират от собственика на API и същият таен ключ трябва да се използва от API услугата за проверка на подписа. Основното предимство на използването на единичен ключ е, че става по-бързо и изисква по-малко изчислителна мощност за генериране на подпис и проверка. Добър пример за симетричен ключ е HMAC.

Асиметрични ключове

Те включват използването на два ключа: частен ключ и публичен ключ, които са различни, но криптографски свързани. Частният ключ се използва за генериране на подпис, а публичният ключ се използва за проверка на подписа. API ключът се генерира от собственика на API, но двойката частен ключ и публичен ключ се генерират от потребителя. Само публичният ключ трябва да се използва от собственика на API за проверка на подписа, така че частният ключ може да остане локален и таен. 

Основното предимство на използването на асиметрични ключове е по-високата сигурност на отделянето на генериране на подпис и ключове за проверка. Това позволява на външни системи да проверяват подписи, без да могат да генерират подписи. Друго предимство е, че някои системи за асиметрично криптиране поддържат добавяне на парола към личните ключове. Добър пример е двойка ключове RSA. 

Защитени ли са API ключовете? 

Отговорността за API ключ е на потребителя. API ключовете са подобни на паролите и трябва да се третират със същото внимание. Споделянето на API ключ е подобно на споделянето на парола и затова не трябва да се прави, тъй като това би изложило акаунта на потребителя на риск. 

API ключовете обикновено са насочени към кибератаки, защото могат да се използват за извършване на мощни операции на системи, като например искане на лична информация или извършване на финансови трансакции. Всъщност има случаи на роботи, успешно атакуващи бази данни с онлайн кодове, за да откраднат API ключове.

Последствията от кражбата на API ключ могат да бъдат драстични и да доведат до значителни финансови загуби. Освен това, тъй като някои API ключове не изтичат, те могат да бъдат използвани неограничено време от нападателите, след като бъдат откраднати, докато самите ключове не бъдат отменени.

Най-добри практики при използване на API ключове

Поради техния достъп до чувствителни данни и общата им уязвимост, безопасното използване на API ключове е от първостепенно значение. Можете да следвате тези указания за най-добри практики, когато използвате API ключове, за да подобрите цялостната им сигурност: 

  1. Редувайте вашите API ключове често, ако е възможно. Това означава, че трябва да изтриете текущия си API ключ и да създадете нов. С множество системи е лесно да генерирате и изтривате API ключове. Подобно на начина, по който някои системи изискват от вас да променяте паролата си на всеки 30 до 90 дни, при възможност трябва да редувате своите API ключове с подобна честота.

  2. Използвайте IP бели списъци: Когато създавате API ключ, изгответе списък с IP адреси, упълномощени да използват ключа (IP бял списък). Можете също така да посочите списък с блокирани IP адреси (черен списък с IP). По този начин, дори ако вашият API ключ бъде откраднат, той все още не може да бъде достъпен от неразпознат IP.

  3. Използвайте множество API ключове: Наличието на множество ключове и разделянето на отговорностите между тях ще намали риска за сигурността, тъй като вашата сигурност няма да зависи от един ключ с широки разрешения. Можете също така да зададете различни бели списъци с IP адреси за всеки ключ, което допълнително намалява риска за вашата сигурност. 

  4. Съхранявайте API ключовете сигурно: Не съхранявайте ключовете си на обществени места, на обществени компютри или в техния оригинален обикновен текстов формат. Вместо това, съхранявайте всеки ключ чрез криптиране или secret manager (мениджър на пароли) за по-добра сигурност и внимавайте да не ги разкриете случайно. 

  5. Не споделяйте своите API ключове. Споделянето на вашия API ключ е подобно на споделянето на вашата парола. По този начин вие давате на друга страна същите привилегии за удостоверяване и оторизация като вас самите. Ако са компрометирани, вашият API ключ може да бъде откраднат и използван за хакване на вашия акаунт. API ключ трябва да се използва само между вас и системата, която го генерира.

Ако вашият API ключ е компрометиран, първо трябва да го деактивирате, за да предотвратите по-нататъшни щети. Ако има някаква финансова загуба, направете екранни снимки на ключова информация, свързана с инцидента, свържете се със свързаните лица и подайте доклад в полицията. Това е най-добрият начин да увеличите шансовете си за възстановяване на загубени средства. 

Заключителни мисли

API ключовете осигуряват основни функции за удостоверяване и оторизация и потребителите трябва да управляват и защитават своите ключове внимателно. Има много слоеве и аспекти за осигуряване на безопасно използване на API ключове. Като цяло API ключът трябва да се третира като парола за вашия акаунт.

Допълнителни статии