[解決済み] なぜAPIキーとシークレットを使用するのですか?
質問
多くのAPIで、ユーザーにAPIを提供するものがあります。 キー と シークレット . しかし、私の質問は、両方の違いは何ですか?
私の目には、1つの鍵で十分だと映っています。私がある鍵を持っていて、私とサーバーだけがそれを知っているとします。私はこのキーでHMACハッシュを作成し、APIコールを実行します。サーバ側では、再度HMACハッシュを作成し、送信されたハッシュと比較する。同じであれば、呼び出しは認証される。
では、なぜ2つのキーを使うのでしょうか?
編集してください。 それとも、そのAPIキーはAPIシークレットを調べるために使われるのでしょうか?
どのように解決するのですか?
秘密鍵暗号は、同じ鍵を使ってメッセージを暗号化し、後で復号化することに依存しています。したがって、「秘密」を知っている人だけがメッセージを読むことができます。
RSAのセキュリティは、2つの一致する鍵に基づいています。各ユーザーには公開鍵があり、誰もがそれを知ることができる(はず)です。また、そのユーザーだけが知っているべき秘密鍵もあります。公開鍵で暗号化されたメッセージは、秘密鍵によってのみ復号化することができます。
したがって、あなただけが読めるメッセージを送りたい場合、私は(ネットワークから)あなたの公開鍵を入手し、その鍵でメッセージを暗号化し、あなただけがそれを復号化することができるのです。
あるいは、私がメッセージを送ったことを証明したい場合、私は自分の秘密鍵でメッセージを暗号化し、それがどのように暗号化されたかを(オープンテキストか別のメッセージで)あなたに伝えることができます。そして、私の公開鍵でメッセージを復号化し、それが読めるようになれば、それが私から来たものだとわかるのです。
この形式の暗号化はかなりコンピュータに負荷がかかるので、時々行われるのは、RSA技術を使って1回限りの秘密鍵を暗号化し、その秘密鍵でメッセージの残りを暗号化し、次に私の署名を暗号化するという方法です。 そして、このプロセスを逆にして、メッセージと署名が読めるようにすれば、あなただけがそれを読むことができ、私がメッセージを送ったことが保証されます。
または
より詳細な説明はこちらをご覧ください。
関連
-
[解決済み] 新しいAPIキーを生成するための最適な方法は何ですか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] APIキーとシークレットキーはどのように機能するのですか?APIキーやシークレットキーを他のアプリケーションに渡すのは安全ですか?
-
[解決済み] APIキーとは何ですか?[クローズド]
-
[解決済み] ウェブサイトからデータをスクレイピングする一番良い方法は何ですか?[クローズド]
-
[解決済み] Rest APIサーバーのためのScalaフレームワーク?[クローズド]
-
[解決済み] REST API - 一度のリクエストで一括作成・更新 [終了しました]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン