应用程序编程接口 (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 种常见的加密货币骗局以及如何避免它们