2017-08-17 23 views
1

私はhttps天気APIにアクセスしているとします。 私はthurday 17/08/2017 23h30で健康状態を照会し、APIがOK(単純なOKのhttpコード)を返信したとしましょう。API応答の証明

クライアントとして、私はこのサービスがこのデータに実際に応答したことを将来証明する必要があります。

送信時刻+タイムスタンプの暗号署名を追加するようにAPIに依頼して、実際にその特定の時刻にOKに応答したことを証明したいと考えています。 それは過剰ですか?それを行うもっと簡単な方法はありますか?

答えて

2

現在の日付/時刻を含む、あるいはサードパーティのタイムスタンプ機関によって発行されたタイムスタンプを追加するデジタル署名は、コンテンツが実際日に発行されたことを確認するための適切な方法で実施する一般的

、 HTTPリクエストのデジタル署名システムはそれほど単純ではありません、あなたは多くの要素を検討する必要があります。

  • あなたはどのようなコンテンツに署名します:ヘッダ、ペイロード、添付ファイルを?

  • バイナリコンテンツかテキストですか?アルゴリズムと署名の形式が異なるため、

  • テキストの場合、クライアント側で署名を検証するときにエンコードの問題を避けるためにコンテンツを正規化する必要があります。また、署名するコンテンツを計算するために署名アルゴリズムを定義する必要があります

  • ストリームを経由して送信されるときに添付ファイルに署名する必要がありますか?大きなファイルはどうやって処理しますか?

  • どのように署名をhttpsレスポンスに添付しますか:特別なヘッダー、ペイロードの追加属性?

  • サーバーはどのように署名証明書を配布しますか?あなただけにして、サーバがちょうどペイロードの上にデジタル署名を追加する必要があります(または計算され、サービスの応答がOK/FAILだったことを証明したい場合は、クライアント上のトラストストアに

それを含めるべきであるが、より複雑なものを実装したい場合は、Json Web Signature(JWS)

を参照することをお勧めします。