首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证Alexa请求的签名

验证Alexa请求的签名
EN

Stack Overflow用户
提问于 2016-10-29 15:46:23
回答 1查看 3.3K关注 0票数 2

我目前正在构建一个应该处理Alexa语音意图的that服务。我从Alexa获得的HTTP请求必须通过检查签名来验证,如文档中所描述的(节选见下文)。

我似乎正确地解密了在请求中发送的签名,并且似乎正确地计算了请求体的签名。但是它们不同--但不是完全不同(这将提示计算中有一些错误),计算签名是发送签名的后缀。例如:

接收到的签名(解码和解密):

3021300906052b0e03021a05000414ca5cc3be233b045be79e94389e47353b7aaec434

请求体的计算签名(其sha1散列):

ca5cc3be233b045be79e94389e47353b7aaec434

接收到的签名开始时的额外字节是多少?它们似乎不会在请求之间发生变化。

各种信息:

  • 当前(2016-10-29) 证书链文件
  • 上述示例签名的原始接收签名:M4Xq8WmUHjaR4Fgj9HUheoOUkZf4tkc5koBtkBq/nCmh4X6EiimBXWa7p+kHoMx9noTdytGSUREaxYofTne1CzYOW0wxb9x6Jhor6lMwHAr4cY+aR1AEOkWrjsP94bewRr1/CxYNl7kGcj4+QjbEa/7dL19BNmLiufMLZDdRFsZSzlfXpPaAspsoStqVc/qc26tj5R9wtB0sTS4wbFc4eyCPFaCZocq1gmjfR3YQXupuD7J3slrz54SxukNmL/M1CIoZ8lOXjS82XLkKjsrzXdY5ePk8XsEDjNWkFSLbqzBzGBqzWx4M913uDA6gPx5tFKeoP8FgpV+BHKDf3d4gmQ==
代码语言:javascript
复制
- Excerpt from the [Alexa documentation](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-skill-as-a-web-service#checking-the-signature-of-the-request):

检查请求的签名 Alexa发送的请求提供了在HTTP头中验证签名所需的信息:

  • SignatureCertChainUrl
  • Signature

要验证签名:

  • 验证请求上的SignatureCertChainUrl标头值指定的URL,以确保它与亚马逊使用的格式相匹配。请参见验证签名证书URL。
  • 下载PEM编码的X.509证书链,Alexa使用该证书链对请求上的SignatureCertChainUrl标头值指定的消息进行签名。
  • 这个链是在运行时提供的,这样证书就可以定期更新,所以您的web服务应该对不同内容的不同URL具有弹性。
  • 该证书链依次由(1) Amazon签名证书和(2)创建到根证书颁发机构(CA)证书的信任链的一个或多个附加证书组成。若要确认签名证书的有效性,请执行以下检查:
    • 签名证书尚未过期(检查日期之前和之后都没有)
    • 域echo-api.amazon.com出现在签名证书的Subject Alternative Name (SANs)部分。
    • 链中的所有证书组合在一起创建信任链到受信任的根CA证书。

  • 确定签名证书有效后,从其中提取公钥。
  • Base64 64-对请求中的签名头值进行解码以获得加密签名。
  • 使用从签名证书中提取的公钥对加密签名进行解密,以生成断言的散列值。
  • 从完整的HTTPS请求体生成SHA-1散列值,以生成派生的散列值。
  • 比较断言的哈希值和派生的哈希值,以确保它们匹配。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-01 11:37:29

通过搜索发送签名的前缀3021300906052b0e03021a05000414,我发现了前缀是指示使用的哈希算法的常量。。要么直接切断它,要么让OpenSSL进行签名验证就可以解决问题。永远不要酿造自己的密码!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40320822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档