nonce 【ノンス】 ナンス / number used once

概要

nonce(ノンス)とは、認証などで用いられる、一回限り有効なランダムなデータリプレイ攻撃などを防ぐために用いられる。

例えば、インターネットを通じてサーバが接続を求めるクライアントの身元を確かめるために認証うような場合、パスワードをそのまま送ると攻撃者に傍受される危険があるため、ハッシュ関数によりハッシュ化して送信することがある。

攻撃者は通信を傍受してもハッシュ値しか得ることができず、パスワードを割り出すことはできないが、パスワードのみからハッシュ値を作成する方式だと毎回同じハッシュ値を送信するため、攻撃者はパスワード自体が分からなくても傍受したハッシュ値を応答すればクライアントになりすますことができてしまう。このような攻撃手法を「リプレイ攻撃」(反射攻撃)という。

これを防ぐため、認証開始時にまずサーバがその場でランダムに生成したnonceをクライアントに送り、クライアントパスワードとnonceを連結した文字列からハッシュ値を得るようにする。サーバ側でも同様の処理をえば正しいパスワードから生成されたハッシュか確かめることができ、パスワードが同じでもクライアントが送信するハッシュを毎回変更することができる。

攻撃者がnonceとハッシュのやり取りを傍受できたとしても、傍受したハッシュは次回の認証に使い回すことはできず、パスワードが分からなければサーバが新たに発行したnonceに対応するハッシュも作り出すことができない。クライアント側がnonceを生成し、ハッシュとともに送信する方式や、サーバクライアントの双方のnonceを併用するシステムもある。

(2021.10.29更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる