「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>認証基盤]]

* 目次 [#ja706efb]
#contents

*概要 [#m3ad8819]
[[ASP.NET Core Identity]]で、TOTPがサポートされていたので調査した。

*詳細 [#qdede1c4]

**時刻同期方式OTP [#m143e368]
-特許対象で、詳細が一般に公開されていない
-難解さに基づくセキュリティに依拠している。
-専門家によって理論的に安全性が確認されていない。

-以下の様な方式で実装されているらしい。
--トークンカードは一定間隔でトークコードを生成
--ユーザ名を送信
--パスコード要求を返信
--パスコード(トークコード+PIN)を送信





**S/Key [#v4d018ec]
-≒[[チャレンジ&レスポンス>認証基盤#zb3340de]]

-シーケンス

--ユーザIDを送信

--Seed+「初期値(最大値) or 保存しているSequence番号-1」を返信

--S=Seed+PasswordをSequence回ハッシュ関数にかけOTPとして送信

--ハッシュ値の比較(妥当性検証)
---初回は初期値(最大値)-1回分を自力で計算して比較
---初回以降は前回OTPをハッシュ関数にかけて比較(サーバ負荷軽減)

--比較して=だった場合、認証OKを返信

**TOTPとHOTP [#j1d0aa2a]

***HOTP [#q7b55de0]
カウンターベースのOTP(HOTP:HMAC-based One-Time Password RFC 4226)
-HMACを使用したカウンターベースのOTP生成するアルゴリズム
-カウンターベースと言う事は、[[S/Key>#v4d018ec]]的な方式か?
-OTPを利用しない限り、OTPが更新されないのでブルートフォース攻撃できる

***TOTP [#x917920a]
時間ベースのOTP(TOTP:Time-based One Time Password RFC 6238)
-[[HOTP>#q7b55de0]]のカウンタ値をUNIXエポック間隔(30秒など)で取得。
-特定の時間内なら何度でも利用できる(再生攻撃対策がない場合)

**比較 [#sccc37be]
||TOTP/HOTP|セキュリティトークン|h
|開始するコスト|安い|高い|
|耐タンパー性|低い|高い|

*参考 [#l67b58ce]
-2要素認証のTOTPとHOTP、どちらがより安全か? – yohgaki's blog~
https://blog.ohgaki.net/2fa-totp-hotp-which-is-safer

**Google 認証システム [#m26b6406]
-Google 認証システムの仕組み~
https://sekika.github.io/2016/03/26/GoogleAuthenticator/

-Googleの2段階認証で使われているOTPの仕様が気になった - r-weblife~
http://d.hatena.ne.jp/ritou/20111225/1324822654

**Qiita [#yb0e1c02]
-今さら聞けない2段階認証の話いろいろ~
https://qiita.com/isaoshimizu/items/5ca25efebdc5ecee7d9b

**One-time Password algorithm [#k861366f]

***HOTP [#c9657e49]
-RFC 4226 - HOTP: An HMAC-Based One-Time Password Algorithm~
https://tools.ietf.org/html/rfc4226

-HMAC-based One-time Password algorithm - Wikipedia~
https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm

***TOTP [#q5ffff02]
-RFC 6238 - TOTP: Time-Based One-Time Password Algorithm~
https://tools.ietf.org/html/rfc6238

-Time-based One-time Password algorithm - Wikipedia~
https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm

-IBM Knowledge Center - TOTP ワンタイム・パスワード・メカニズムの構成~
https://www.ibm.com/support/knowledgecenter/ja/SSPREK_9.0.2/com.ibm.isam.doc/config/task/ConfiguringOneTimePasswordTOTP.html

-RFC6238 Time-based One-time Password Algorithm (TOTP)の仕組みのメモ~
https://qiita.com/shrkw/items/426a7f1a59f42e0bd523

----
Tags: [[:IT国際標準]], [[:認証基盤]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS