数据时代的来临,推动着社会各领域转型升级的加速,但其在加速发展过程中的数据泄露问题也日益凸显,给企业及个人信息的安全带来极大威胁。2018年,据报道有6500起数据泄露事件,暴露了数十亿条潜在的数据滥用记录。在当今的数字互联的世界里,安全几乎总是企业的首要任务,以确保他们的记录是安全的。对于组织来说,实现API安全最佳实践以使它们的集成在系统之间传输的数据处于严格的锁定状态是非常重要的。

什么是API安全性?

API安全性是对API完整性的保护-无论是您拥有的API还是使用的API。但这意味着什么呢?

嗯,你可能听说过物联网(IoT),其计算能力嵌入到日常物品中。物联网让你可以把手机和冰箱连接起来,这样,当你在回家的路上去杂货店时,你就能准确地知道你需要什么来参加一个小时后的即兴晚宴。或者您是DevOps团队的一员,使用微服务和容器以快速、迭代的方式构建和部署遗留应用程序和云原生应用程序。与系统和应用程序一样,API是微服务和容器通信的较常见方式之一。随着集成和互连性变得越来越重要,API也是如此。

为什么API安全很重要?

企业使用API​​来连接服务和传输数据。破坏、暴露或破解的API是造成重大数据泄露的原因。它们公开敏感的医疗,金融和个人数据以供公众使用。也就是说,并非所有数据都是相同的,也不应该以相同的方式进行保护。您如何实现API安全性将取决于要传输的数据类型。

如果您的API连接到第三方应用程序,请了解该应用程序如何将信息传输回internet。用上面的例子,也许你不关心别人是否知道你冰箱里有什么,但如果他们使用相同的API来跟踪你的位置呢?

因此,许多企业和技术提供商通过采用身份和访问权限管理多种机制来确保数据和API的安全。这是确保只有授权用户才能访问某些数据集,系统,API等的过程。消息完整性与访问管理一样重要。这保证了消息的私有细节不会被看到。这里,我们简要介绍几种比较常见和重要的数据和API安全机制:

1.多因素身份验证

访问管理的一种类型是多因素身份验证(MFA)。多因素身份验证是指应用程序在对用户的凭据进行了身份验证之后,向用户请求一次性使用令牌。有些应用程序可以通过向用户发送消息或让用户创建应用程序可以验证的数字密钥来实现这一点。只有在应用程序以两种或多种方式验证用户之后,用户才能访问它。

此方法可以弥补仅用用户名和密码作为凭据的弱点,可以极大地增强安全性,同时提供良好的用户体验。

体验多重保护:精通安全性并希望对敏感资源或事务具有更高安全性级别的用户选择多因素身份验证,因为进入壁垒是较严格的。用户必须先提供几条信息,然后才能访问其帐户。

保障高保证交易:对于某些交易,使用强单因素身份验证可以提供足够的安全性。但是,对于高保证交易(例如开处方或进行高额交易),可能需要对用户进行更强有力的验证。

确保强大的合规性:对于受管制行业中的组织,需要满足严格的合规性规定。使用满足更高保证级别的解决方案的多因素身份验证方法可确保授权访问。

2.基于令牌

保护应用程序和数据访问的另一种方法是通过基于令牌的凭据。用户首次使用其用户名/密码凭据访问身份提供者时,会发出令牌。该令牌允许他们获取特定资源-无需使用用户名和密码。从那时起,该应用程序只需要发送令牌,而不是让用户通过网络共享他们的凭据(这可能带来安全风险)。

换句话说:添加一个间接身份验证级别-无需为每个受保护的资源使用用户名和密码进行身份验证,用户只需以这种方式进行一次身份验证(在一个会话持续时间之内),然后获得一个限时令牌,并在会话期间使用该令牌进行进一步的身份验证。

这样做的好处有很多,例如,用户一旦获得了令牌,就可以把它传递到其他一些自动系统上,他们愿意在有限的时间和有限的资源范围内信任这些系统,但不愿意使用他们的用户名和密码来信任这些系统,他们可以访问任何资源,至少在他们更改密码之前是这样)。而且大多数令牌都有一个有效期,可以吊销。因为令牌是唯一地发布给每个应用程序的,所以即使某个应用程序的令牌被吊销或过期,也可以单独访问所有应用程序。

3.数字签名

数字签名是一种用于验证数字文档或消息真实性/完整性的数学方案。当确定真实性和避免篡改很重要时,比如在金融交易中,就会用到它们。数字签名可以分为三个部分:密钥生成算法,签名算法和签名验证算法。密钥生成算法从一组可能性中选择一个随机私钥,并将私钥与相关的公钥一起发送。签名算法根据消息和私钥生成签名。最后,签名验证算法在提供消息,签名和公钥时接受或拒绝消息的真实性。

数字签名通常用于实现加密的电子签名。这些安全措施同时考虑了身份验证和不可否认性(签名者不能在声称他/她的私钥没有被破坏的情况下拒绝签署文档)。

你可以在任何东西上签名——无论是民事的、法律的还是个人的——签名都用来记录交易的真实性。这个概念也已经数字化。在这种情况下,应用程序会使用算法和密码创建签名。高效的API使用相同的算法和新的密码来生成自己的签名,并将其与传入的签名进行比较。当接收到匹配的消息时,API将验证消息是由一个已知的应用程序发送的,并在传输过程中保持其完整性。这是因为只有一个已知的应用程序才会生成相同的签名并维护该签名——这与第三方篡改签名不同。

数字签名作为非常先进和安全的在线签名类型。您可以使用它们来满足较苛刻的法律和法规要求,因为它们为每个签名者的身份和所签名文件的真实性提供了很高级别的保证。

4.公开密匙加密

另一种确保消息完整性的古老方法是加密。我们知道,加密有两种形式:对称和非对称。对称是指客户端和服务器共享相同的密钥来加密和解密消息。优点是计算量较小,加密和解密的速度比较快,适合加密比较大的数据。缺点是密钥的传输容易泄露,一个用户需要对应一个密钥,服务器管理密钥比较麻烦。非对称是指服务器向客户机发出一个公钥,允许它对消息进行加密,但保留一个可以解密消息的私钥。本质上是用一个密钥来锁定消息,用另一个密钥来解锁它。优点是加密和解密使用不同的钥匙,可以传输公钥,数据传输是安全的,缺点是计算量大,加密和解密的速度比较慢。

公钥密码技术或非对称密码技术,是一种使用两个在数学上相关但并不相同的密钥的加密方案-公钥和私钥。与依赖于一个密钥进行加密和解密的对称密钥算法不同,每个密钥执行独特的功能。公钥用于加密,私钥用于解密。也就是说,如果没有相应的密钥,则几乎无法解码该消息。

基于公钥计算私钥在计算上是不可行的。因此,公钥可以自由共享,这使得用户可以轻松方便地对内容进行加密并验证数字签名,而私钥可以保密,确保只有私钥的所有者才能解密内容并创建数字签名。

由于公钥需要共享,但是由于太大而不易记住,所以它们被存储在数字证书上,以便安全传输和共享。由于私钥不是共享的,所以它们只是存储在您使用的软件或操作系统中,或者存储在硬件(例如USB令牌、硬件安全模块)中,其中包含允许它与您的软件或操作系统一起使用的驱动程序。

5.数字证书

公钥加密使用SSL(安全套接层)加密客户计算机与电子商务网站之间的所有数据。使用站点的公钥将信息以加密形式发送到站点。接收到信息后,站点将使用其私钥对信息解密。这称为密钥对。可能在途中捕获数据的入侵者会发现它是不可读的。但问题是,任何人都可以使用不属于自己的名称来创建网站和密钥对。这就是数字证书的用武之地。数码证书是受信任的电子身份证,可将网站的公共密钥加密绑定到其身份以实现公共信任。

数字证书包含实体的名称,地址,序列号,公钥,有效期和数字签名以及其他信息,是一种促进客户端和服务器之间通过网络进行安全传输级通信的方式,以便服务器可以向客户端进行身份验证。发生这种情况是因为证书将有关服务器的信息与有关拥有服务器的企业的信息绑定在一起。

数字证书由一个独立的,公认的和相互信任的第三方颁发,以保证网站的运营是其所声称的身份。这个第三方称为证书颁发机构(CA)。没有数字证书,公众几乎无法保证任何特定网站的合法性。

在大数据时代,企业面临的网络安全问题日益严峻,特别在在企业内部、以及企业之间需要集成不同的应用时,开发人员虽然能够通过API来快速且方便地予以实现。不过如果没有采用恰当的API,那么就会让整个企业面临各种风险与威胁。因此,我们需要在开发和实施之前,就对数据和API的安全机制进行考核,从而提高企业的整体安全态势。