回答編集履歴

1

追記

2024/01/15 11:59

投稿

ikedas
ikedas

スコア4357

test CHANGED
@@ -1,4 +1,6 @@
1
- 通常ですと[HMAC](https://ja.wikipedia.org/wiki/HMAC)などのメッセージ認証符号を用いて改竄防止をします。これは「生成した文字列」が送り手と受け手の双方で一致することを検査します。他の方も述べておられるように、双方で秘密鍵を共有する必要があります。
1
+ 通常ですと[HMAC](https://ja.wikipedia.org/wiki/HMAC)などのメッセージ認証符号を用いて改竄防止をします。これは「生成した文字列」が送り手と受け手の双方で一致することを検査します。他の方も述べておられるように、HMACなどのメッセージ認証符号では双方で秘密鍵を共有する必要があります。
2
+
3
+ 一方、これも他の方が述べておられるように、[公開鍵暗号](https://ja.wikipedia.org/wiki/%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7)技術を応用した電子署名も改竄防止をできますが、こちらは秘密鍵を共有しません。送り手は秘密鍵で「署名」を生成し、受け手は公開鍵で署名が正しいものであることを検証します。双方で共通に生成されるものはありません。
2
4
 
3
5
  また、API認証としての使用はあまり一般的ではないかもしれませんが、[ワンタイムパスワード](https://ja.wikipedia.org/wiki/%E3%83%AF%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89) (OTP) といわれるものは質問者さんがイメージするものに近いのではないでしょうか。最近は多要素認証の一要素として使われるのをよく目にします。かつては専用のハードウェアトークンを使うものが主流でしたが、最近はSMSでパスワードを送ってくるものや、時刻ベースのワンタイムパスワード (TOTP) アルゴリズムを使ってスマホなどの汎用端末でパスワード生成するのもよく使われています。
4
6