身份验证 - 安全包装程序和编码器密钥交换 API 规范

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

身份验证

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

AWS 云实施的身份验证

SPEKE 要求通过 IAM 角色进行 AWS 身份验证以便与加密程序结合使用。IAM 角色由 DRM 提供商或拥有 AWS 账户中的 DRM 端点的操作人员创建。每个角色分配有一个 Amazon 资源名称(ARN),AWS Elemental 服务操作人员在请求加密时会在服务控制台上提供该名称。该角色的策略权限必须配置为授予访问密钥提供程序 API 的权限而不授予其他 AWS 资源访问权限。当加密程序联系 DRM 密钥提供程序时,它使用角色 ARN 代入密钥提供程序账户持有人的角色,从而返回临时凭证以供加密程序用于访问密钥提供程序。

一种常见的实施是操作人员或 DRM 平台供应商在密钥提供程序前使用 Amazon API Gateway,然后对 API Gateway 资源启用 AWS Identity and Access Management(AWS IAM)授权。您可以使用以下策略定义示例并将其附加到新角色以向相应资源授予权限。在此示例中,这些权限适用于所有 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。有关对请求进行签名的更多信息,请参阅 AWS Sigv4

本地产品的身份验证

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

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

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

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

有关基本身份验证和摘要式身份验证的信息(包括有关标头的详细信息),请参阅 Internet Engineering Task Force (IETF) 规范 RFC 2617 - HTTP 身份验证:基本身份验证和摘要式访问身份验证