應用程式介面(API)金鑰是應用程式介面用來識別呼叫應用程式或使用者的唯一程式碼。 API金鑰用於追蹤和控制API的用戶及其使用方式,並驗證和授權應用程序,其運作原理與使用者名稱和密碼相似。 API金鑰以單一金鑰或一組多個金鑰的形式出現。使用者應該遵循最佳實踐,改善整體安全性,以防止API金鑰被盜並避免API金鑰洩漏的相關後果。
要了解什麼是API密鑰,必須先知道什麼是API。應用程式介面或API是允許兩個或多個應用程式共享資訊的軟體中介。例如,CoinMarketCap的API允許其他應用程式檢索和使用價格、交易量和市值等加密貨幣資料。
API金鑰形式多樣,可以是單一金鑰或一組多個金鑰。不同的系統使用這些金鑰來驗證和授權應用程序,類似於使用者名稱和密碼的使用原理。 API客戶端使用API金鑰來驗證呼叫API的應用程式。
例如,假設幣安學院要使用CoinMarketCap API,CoinMarketCap產生API金鑰,在幣安學院(API客戶端)請求API存取權時用於驗證其身分。幣安學院造訪CoinMarketCap的API時,應將此API金鑰連同請求一起傳送給CoinMarketCap。
此API金鑰僅限幣安學院使用,不得與他人分享或發送給他人。共享此API金鑰,即為允許第三方以幣安學院的身份存取CoinMarketCap,並且第三方的任何操作都將顯示為來自幣安學院。
CoinMarketCap API也能藉助API金鑰來確認應用程式是否有權存取所要求的資源。此外,API擁有者用API金鑰監控API活動,例如請求的類型、流量和數量。
API金鑰用於控制和追蹤API的使用者及其使用方法。 「API密鑰」一詞對不同的系統而言意義有所不同。有些系統只有單一代碼,其他系統則有多個單一「API金鑰」的代碼。
因此,「API金鑰」是API用於驗證和授權呼叫使用者或應用程式的唯一程式碼或一組唯一代碼。有些程式碼用於驗證,有些則用於建立加密簽名以證明請求的合法性。
驗證程式碼通常統稱為“API金鑰”,用於加密簽章的程式碼則名稱各異,例如“加密密鑰」、「公鑰」或「私鑰」。 驗證需要識別所涉及的實體,並確認其身分是否與所聲稱的一致。
另一方面,授權指定允許存取的API服務。 API金鑰的作用類似於帳戶的使用者名稱和密碼,可以連接到其他安全功能,以提高整體安全性。
每個API金鑰通常由API擁有者作為特定實體產生(詳情見下方),每次呼叫API端點時需要使用者驗證或授權(或二者並用),並且都會用到相關金鑰。
有些API金鑰將加密簽章用作附加驗證層。當使用者要向API發送某些資料時,可將另一個金鑰產生的數位簽章新增至請求中。 API擁有者使用密碼學,即可驗證此數位簽章是否與發送的資料相符。
透過API共享的資料可透過加密金鑰進行簽署。以下為金鑰的類別:
此類金鑰涉及以一個加密金鑰同時執行資料簽章與簽章驗證。在對稱金鑰類別中,API金鑰和加密金鑰通常由API擁有者生成,API服務必須以相同的加密金鑰驗證簽章。使用單一金鑰的主要優點在於,產生和驗證簽章的速度更快,所需算力更少。雜湊訊息認證碼(HMAC)就是對稱金鑰的典型代表。
此類密鑰涉及私鑰與公鑰兩種密鑰的使用。二者之間存在區別,但透過密碼學相關聯。私鑰用於產生簽名,而公鑰用於驗證簽名。 API金鑰由API擁有者產生,私鑰和公鑰對則由使用者產生。 API擁有者只需使用公鑰進行簽章驗證,私鑰即可保持本機加密。
API金鑰的功能取決於使用者。 API金鑰類似密碼,同樣需要謹慎對待。共享API金鑰與共享密碼差不多。這樣做用戶的帳戶會面臨風險,因此不應該共享。
API金鑰能在系統中執行強大的操作,常常會成為網路攻擊目標。各種操作包括要求個人資訊或執行金融交易等。事實上,已經發生過網路爬蟲攻擊線上程式碼資料庫,竊取API金鑰得手的案例。
API金鑰遭竊的後果很嚴重,可能會導致重大經濟損失。此外,有些API金鑰不會過期。一旦被盜,只要密鑰本身未作廢,攻擊者就能無度使用。
API金鑰存取敏感資料並普遍存在漏洞,因此使用安全至關重要。使用API金鑰提高整體安全性時,請遵循以下最佳實務指南:
盡量頻繁變更API金鑰。這意味著應刪除目前的API金鑰並建立新金鑰。對於多個系統,產生和刪除API金鑰很容易。某些系統要求使用者每30天至90天變更密碼。與此相似,盡量依此頻率更換API密鑰。
使用IP白名單:建立API金鑰時,制定授權使用該金鑰的IP清單(即IP白名單),或詳列IP屏蔽清單(即IP黑名單)。這樣即使API金鑰被盜,無法辨識的IP則不得存取。
使用多個API金鑰:擁有多個金鑰並劃分個別金鑰的職能將能降低安全風險,原因在於安全性不由具有廣泛權限的單一密鑰決定。您可以為每個金鑰設定不同的IP白名單,進一步降低安全風險。
安全儲存API金鑰:不要將金鑰儲存在公共場所或公用電腦上;不要以原始純文字格式儲存。相反,為了提高安全性,請加密或使用加密管理器單獨儲存各個金鑰,不要無意暴露。
請勿透露個人的API金鑰。共享API金鑰與共享密碼大同小異。共享即表示向另一方授予本人的驗證和授權權限。 API金鑰外洩後,將會遭到竊取並用於入侵個人帳號。 API金鑰僅限本人與產生該金鑰的系統使用。
API金鑰外洩後,請先停用以防造成更大的損失。如造成經濟損失,請將事件相關的關鍵資訊截圖,聯繫相關單位,並向警方報案。這是增加追回損失資金幾率的最佳做法。
結語
API密鑰提供核心的驗證和授權功能,用戶必須謹慎管理和保護自己的密鑰。保障API金鑰的安全使用應該考慮多層次、多面向的因素。總而言之,API密鑰應視為個人帳戶密碼。
《普遍安全原則》
5種常見的加密貨幣詐騙與防範策略