應用程序編程接口 (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 密鑰至關重要。使用 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 種常見的加密貨幣騙局以及如何避免它們。