2017-08-17 61 views
1

假设我有权访问https天气API。 假设我在星期四17/08/2017 23h30查询其健康状况,API回复OK(简单的确定http代码)。API响应证明

作为客户,我需要在将来证明该服务实际上对我的这些数据作出了回应。

我正在考虑要求API添加已发送数据的加密签名+时间戳,以便证明他们在特定时间确实回复了OK。 是矫枉过正?有没有更简单的方法呢?

回答

2

包含当前日期/时间,甚至加入第三方时间戳机构颁发时间戳的数字签名,以确保内容实际上是一个日期签发的适当方式

在一般情况下,实施在HTTP请求的数字签名系统不是那么简单的,你必须考虑很多因素:

  • 你会签署哪些内容:报头,有效载荷,附件?

  • 是二进制内容还是文本?因为算法和签名格式将不同

  • 在文本的情况下,您必须对内容进行规范化,以避免在客户端验证签名时出现编码问题。还需要定义签名算法以计算要签名的内容

  • 您还需要在通过流发送附件时签署附件吗?你打算如何处理大文件?

  • 你打算如何将签名附加到https响应:特殊标头,有效负载中的附加属性?

  • 服务器将如何分配签名证书?你应该将其包含在一个信任的客户端

上,但是,如果你只是想证明一个服务响应为OK/FAIL,那么服务器只需要在有效载荷添加数字签名(或计算如果你想实现更复杂的东西,我建议你看看Json Web Signature(JWS)