什麼是API金鑰及其安全使用指南

  • 2025-07-12

 

應用程式介面(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金鑰應視作個人帳戶密碼。

Go Back Top