應用程序編程接口 (API) 密鑰是 API 用來識別調用用戶或應用程序的唯一代碼。 API 密鑰用於跟蹤和控制誰在使用 API 以及他們如何使用 API,以及對應用程序進行身份驗證和授權 - 類似於用戶名和密碼的工作方式。 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 密鑰和密鑰通常由 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 密鑰:請勿將密鑰存儲在公共場所、共享計算機上或以其原始純文本格式存儲。相反,應使用加密或祕密管理器來存儲每個信息,以提高安全性,並小心不要意外暴露它們。

  5. 不要共享您的 API 密鑰。共享 API 密鑰與共享密碼類似。這樣做即表示您授予對方與您相同的身份驗證和授權權限。如果它們被泄露,您的 API 密鑰可能會被盜並用於闖入您的帳戶。 API 密鑰只能在您和生成它的系統之間使用。

如果您的 API 密鑰遭到泄露,您需要先將其禁用,以避免進一步損壞。若有經濟損失,請對事件相關關鍵信息進行截圖,聯繫相關單位,並向警方報案。這是增加追回損失資金的機會的最佳方法。

概括

API密鑰提供核心的身份驗證和授權功能,用戶必須謹慎管理和保護自己的密鑰。有許多步驟和方面可以確保 API 密鑰的安全使用。一般來說,您應該將 API 密鑰視爲您帳戶的密碼。

閱讀更多:

  • 一般安全原則

  • 5 種常見的加密貨幣騙局以及如何避免它們