假設我有權訪問https天氣API。 假設我在星期四17/08/2017 23h30查詢其健康狀況,API回覆OK(簡單的確定http代碼)。API響應證明
作爲客戶,我需要在將來證明該服務實際上對我的這些數據作出了迴應。
我正在考慮要求API添加已發送數據的加密簽名+時間戳,以便證明他們在特定時間確實回覆了OK。 是矯枉過正?有沒有更簡單的方法呢?
假設我有權訪問https天氣API。 假設我在星期四17/08/2017 23h30查詢其健康狀況,API回覆OK(簡單的確定http代碼)。API響應證明
作爲客戶,我需要在將來證明該服務實際上對我的這些數據作出了迴應。
我正在考慮要求API添加已發送數據的加密簽名+時間戳,以便證明他們在特定時間確實回覆了OK。 是矯枉過正?有沒有更簡單的方法呢?
包含當前日期/時間,甚至加入第三方時間戳機構頒發時間戳的數字簽名,以確保內容實際上是一個日期簽發的適當方式
在一般情況下,實施在HTTP請求的數字簽名系統不是那麼簡單的,你必須考慮很多因素:
你會簽署哪些內容:報頭,有效載荷,附件?
是二進制內容還是文本?因爲算法和簽名格式將不同
在文本的情況下,您必須對內容進行規範化,以避免在客戶端驗證簽名時出現編碼問題。還需要定義簽名算法以計算要簽名的內容
您還需要在通過流發送附件時簽署附件嗎?你打算如何處理大文件?
你打算如何將簽名附加到https響應:特殊標頭,有效負載中的附加屬性?
服務器將如何分配簽名證書?你應該將其包含在一個信任的客戶端
上,但是,如果你只是想證明一個服務響應爲OK/FAIL,那麼服務器只需要在有效載荷添加數字簽名(或計算如果你想實現更復雜的東西,我建議你看看Json Web Signature(JWS)