1. ホーム
  2. api

[解決済み] なぜAPIキーとシークレットを使用するのですか?

2022-11-20 21:57:25

質問

多くのAPIで、ユーザーにAPIを提供するものがあります。 キー シークレット . しかし、私の質問は、両方の違いは何ですか?

私の目には、1つの鍵で十分だと映っています。私がある鍵を持っていて、私とサーバーだけがそれを知っているとします。私はこのキーでHMACハッシュを作成し、APIコールを実行します。サーバ側では、再度HMACハッシュを作成し、送信されたハッシュと比較する。同じであれば、呼び出しは認証される。

では、なぜ2つのキーを使うのでしょうか?

編集してください。 それとも、そのAPIキーはAPIシークレットを調べるために使われるのでしょうか?

どのように解決するのですか?

秘密鍵暗号は、同じ鍵を使ってメッセージを暗号化し、後で復号化することに依存しています。したがって、「秘密」を知っている人だけがメッセージを読むことができます。

RSAのセキュリティは、2つの一致する鍵に基づいています。各ユーザーには公開鍵があり、誰もがそれを知ることができる(はず)です。また、そのユーザーだけが知っているべき秘密鍵もあります。公開鍵で暗号化されたメッセージは、秘密鍵によってのみ復号化することができます。

したがって、あなただけが読めるメッセージを送りたい場合、私は(ネットワークから)あなたの公開鍵を入手し、その鍵でメッセージを暗号化し、あなただけがそれを復号化することができるのです。

あるいは、私がメッセージを送ったことを証明したい場合、私は自分の秘密鍵でメッセージを暗号化し、それがどのように暗号化されたかを(オープンテキストか別のメッセージで)あなたに伝えることができます。そして、私の公開鍵でメッセージを復号化し、それが読めるようになれば、それが私から来たものだとわかるのです。

この形式の暗号化はかなりコンピュータに負荷がかかるので、時々行われるのは、RSA技術を使って1回限りの秘密鍵を暗号化し、その秘密鍵でメッセージの残りを暗号化し、次に私の署名を暗号化するという方法です。 そして、このプロセスを逆にして、メッセージと署名が読めるようにすれば、あなただけがそれを読むことができ、私がメッセージを送ったことが保証されます。

または

より詳細な説明はこちらをご覧ください。

APIキーとシークレットキーの仕組みについて教えてください。