應用程序編程接口 (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 服務必須使用相同的秘密金鑰進行簽章驗證。使用唯一金鑰的主要優點是處理速度快,並且產生和驗證簽章所需的運算能力較少。對稱金鑰的一個很好的例子是 HMAC。
非對稱金鑰
這些涉及使用兩個密鑰:私鑰和公鑰,它們不同但以加密方式連結。私鑰用於產生簽名,公鑰用於驗證簽名。 API金鑰由API擁有者產生,但私鑰和公鑰由使用者產生。對於簽章驗證,API 擁有者只需使用公鑰。因此,私鑰可以保持本地且保密。
使用非對稱金鑰的主要優點是透過分離簽章產生和驗證金鑰來提供更高的安全性。這使得外部系統即使沒有能力產生簽名也可以驗證簽名。另一個優點是一些非對稱加密系統支援向私鑰添加密碼。 RSA 金鑰對就是一個很好的例子。
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 種常見的加密貨幣騙局以及如何避免它們
