2017-08-17 80 views
1

假設我有權訪問https天氣API。 假設我在星期四17/08/2017 23h30查詢其健康狀況,API回覆OK(簡單的確定http代碼)。API響應證明

作爲客戶,我需要在將來證明該服務實際上對我的這些數據作出了迴應。

我正在考慮要求API添加已發送數據的加密簽名+時間戳,以便證明他們在特定時間確實回覆了OK。 是矯枉過正?有沒有更簡單的方法呢?

回答

2

包含當前日期/時間,甚至加入第三方時間戳機構頒發時間戳的數字簽名,以確保內容實際上是一個日期簽發的適當方式

在一般情況下,實施在HTTP請求的數字簽名系統不是那麼簡單的,你必須考慮很多因素:

  • 你會簽署哪些內容:報頭,有效載荷,附件?

  • 是二進制內容還是文本?因爲算法和簽名格式將不同

  • 在文本的情況下,您必須對內容進行規範化,以避免在客戶端驗證簽名時出現編碼問題。還需要定義簽名算法以計算要簽名的內容

  • 您還需要在通過流發送附件時簽署附件嗎?你打算如何處理大文件?

  • 你打算如何將簽名附加到https響應:特殊標頭,有效負載中的附加屬性?

  • 服務器將如何分配簽名證書?你應該將其包含在一個信任的客戶端

上,但是,如果你只是想證明一個服務響應爲OK/FAIL,那麼服務器只需要在有效載荷添加數字簽名(或計算如果你想實現更復雜的東西,我建議你看看Json Web Signature(JWS)