需要进行身份验证 SPEKE - 安全打包器和编码器密钥交换API规范

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

需要进行身份验证 SPEKE

SPEKE需要对本地产品以及AWS云端运行的服务和功能进行身份验证。

AWS云端实施的身份验证

SPEKE需要通过IAM角色进行AWS身份验证才能与加密器一起使用。IAM角色由DRM提供者或在AWS账户中拥有DRM终端节点的操作员创建。为每个角色分配一个 Amazon 资源名称 (ARN),AWSElemental 服务操作员在请求加密时在服务控制台上提供该名称。必须将角色的策略权限配置为授予访问密钥提供程序的权限,API而不允许访问其他AWS资源。当加密器联系DRM密钥提供者时,它会使用该角色ARN来扮演密钥提供者账户持有者的角色,后者会返回临时证书,供加密者用来访问密钥提供程序。

一种常见的实现方式是运营商或DRM平台供应商在密钥提供商面前使用 Amazon API Gateway,然后在网API关资源上启用 Ident AWS ity and Access Management (AWSIAM) 授权。您可以使用以下策略定义示例并将其附加到新角色以向相应资源授予权限。在本例中,权限适用于所有 API Gateway 资源:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-west-2:*:*/*/GET/*" ] } ] }

最后,该角色需要添加信任关系,并且操作人员必须能够选择服务。

以下示例显示了为访问DRM密钥提供程序而创建的角色ARN:

arn:aws:iam::2949266363526:role/DRMKeyServer

有关创建角色的更多信息,请参阅AWS AssumeRole。有关签署请求的更多信息,请参阅 AWSSigv4

本地产品的身份验证

对于本地产品,我们建议您使用SSL/TLS和摘要身份验证以获得最佳安全性,但至少应使用基本身份验证HTTPS。

两种类型的身份验证都使用HTTP请求中的Authorization标头:

  • 摘要式身份验证 – 授权标头包含标识符 Digest,其后一系列用于对请求进行身份验证的值。具体而言,响应值是通过一系列MD5哈希函数生成的,这些哈希函数包括来自 one-time-use 服务器的唯一随机数,用于确保密码安全传输。

  • 基本身份验证 – 授权标头包含标识符 Basic,其后是表示用户名和密码的 Base-64 编码的字符串(用冒号分隔)。

有关基本身份验证和摘要身份验证的信息,包括有关标头的详细信息,请参阅 Internet 工程任务组 (IETF) 规范 RFC2617-HTTP 身份验证:基本和摘要访问身份验证