Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
API响应证明_Api_Cryptography_Digital Signature_Proofs - Fatal编程技术网

API响应证明

API响应证明,api,cryptography,digital-signature,proofs,Api,Cryptography,Digital Signature,Proofs,假设我可以访问https天气API。 假设我在2017年8月17日星期四23h30查询它的健康状态,API回复OK(简单OK http代码) 作为一名客户,我需要在将来证明服务确实响应了我的这些数据 我想让API添加发送数据的加密签名+时间戳,以证明他们在那个特定时间的响应是正确的。 是不是太过分了?有更简单的方法吗?包含当前日期/时间的数字签名,或者甚至添加由第三方时间戳机构发布的时间戳,是确保内容实际在某个日期发布的适当方法 一般来说,在HTTP请求上实现数字签名系统不是那么简单,你必须考虑

假设我可以访问https天气API。 假设我在2017年8月17日星期四23h30查询它的健康状态,API回复OK(简单OK http代码)

作为一名客户,我需要在将来证明服务确实响应了我的这些数据

我想让API添加发送数据的加密签名+时间戳,以证明他们在那个特定时间的响应是正确的。
是不是太过分了?有更简单的方法吗?

包含当前日期/时间的数字签名,或者甚至添加由第三方时间戳机构发布的时间戳,是确保内容实际在某个日期发布的适当方法

一般来说,在HTTP请求上实现数字签名系统不是那么简单,你必须考虑很多元素:

  • 您将签署哪些内容:标题、有效负载、附件

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

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

  • 通过流发送附件时,您是否也需要对附件进行签名?。你打算如何处理大文件

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

  • 服务器将如何分发签名证书?您应该将其包含在客户端的信任库中

但是,如果您只想证明服务响应正常/失败,那么服务器只需要在有效负载上添加一个数字签名(或在头的串联上计算),但是如果您想实现更复杂的东西,我建议您看看(JWS)