この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 12357|答える: 0

動的トークンOTP、TOTP、HOTPの違い

[リンクをコピー]
掲載地 2020/07/25 16:41:17 | | | |
概要

二要素認証(2FAとも呼ばれる)は、ユーザーを認証するために2つの異なる認証方法を組み合わせた仕組みです。 2011年3月、Googleはオンラインで二要素認証の導入を発表し、その後MSNとYahooも続きました。

ユーザー名とパスワードの確認に加え、二要素認証はRSAトークンや携帯電話など他の物理的デバイスの組み合わせも必要です。
二要素認証製品は大きく分けて2つのカテゴリーに分けられます。

トークンを生成できるハードウェアデバイス
スマートフォンアプリ

OTP

二段階認証で使用されるパスワードはワンタイムパスワード(OTP)、動的パスワードとも呼ばれます。 これは暗号技術を用いてクライアントとサーバー間で鍵を共有する強力な認証技術であり、現在の静的パスワード認証を強化する非常に便利な技術的手段であり、重要な二段階認証技術です。

OTPはワンタイムパスワードの略で、一度きりのパスワードを意味します。 以下の2つのタイプに分けられます。

HOTP(HMACベースのワンタイムパスワードアルゴリズム)

HOTPは、ITEFが公開したアルゴリズム仕様であるHMACアルゴリズム(イベント同期用動的パスワードとも呼ばれる)に基づいて生成されるワンタイムパスワードで、擬似コードは以下の通りです。



クライアントとサーバーは、ワンタイムパスワードを生成するために事前に鍵Kを交渉します。 クライアントとサーバーはそれぞれイベントカウンターCを持ち、事前にカウント値を同期しています。 トランケートは、HMAC-SHA-1によって生成された20バイトの文字列を複数の小数点数に変換するアルゴリズムです。

TOTP(時間ベースのワンタイムパスワードアルゴリズム)

TOTPはHOTPの改良版であり、HOTPのイベントカウンターC(時間同期のための動的暗号とも呼ばれる)を置き換えるために時間を用います。 擬似コード:


T0は初期テスト時間で、デフォルトは0となります  
Xは時間のステップで、デフォルトは30秒です
公式ドキュメントでは、現在のUnix時間=59、T0=0、X=30、そしてT=1と仮定すると、厳密に説明しています
現在のUnix時間=60、T0=0、X=30、そしてT=2と仮定すると
つまり、Tの値は切り捨てられ、小数点は破棄されます



上記の図から、入力アルゴリズムには主に2つの要素があることがわかります。1つは共有キー(シードとも呼ばれる)で、もう1つはカウント(または時間因子)で、これは特定のアルゴリズムによって計算されます。 両方の要素が整合していれば、サーバー側とクライアント側は同じ結果を計算し、認証機能が可能になります。





先の:Angular 9シリーズ(XII)はOTPに基づいて動的トークンを生成します
次に:.NET/C#はTOTPに基づいてワンタイムパスワードを生成します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com