2要素認証について知ろう

2022 Jul 7 / Takanori Suzuki

目的

  • 認証にどういう種類があるか知る

  • 2要素認証がどういうものか知る

  • それぞれのメリットデメリットを知る

お品書き

  • パスワード認証

  • パスワード認証の問題

  • パスワード管理ソフト

  • 2要素認証(2FA)

  • 2要素認証どうやるの

  • Slackで2FAを設定

最初に質問

パスワード管理ソフト使っている人? 🙋‍♀️

2要素認証がどういうものか説明できる人? 🙋‍♂️

2要素認証を導入している人? 🙋‍♀️

パスワード認証

パスワード認証とは

  • IDとパスワードの組み合わせでの本人確認手段

  • IDとパスワードを知っている人

    • →本人

Q: パスワード認証にはどんな問題がありますか?

パスワードが漏れるとこうなる

パスワードが漏れるとこうなる

アシュレイ・マディソン

パスワードTop5

  1. 123456

  2. 12345

  3. password

  4. DEFAULT

  5. 123456789

よく使われるパスワード

流出をチェック

have i been pwned

パスワード認証の問題

  • 複数のサイトで共通のパスワード使うと危険

  • 1つバレたら全部バレる

  • サイトごとにパスワードのルールが異なる

  • 文字数、文字種(英字、数字、記号)

  • でもそんなの人は覚えられない

パスワード管理ソフト

パスワード認証の問題(その2)

  • 漏洩のリスク

  • 悪意のある中の人

  • 総当たり攻撃

総当たり攻撃の時間

そこで

2要素認証

2要素認証とは

  • 2FA(Two-factor Authentication)

  • 2種類の要素で認証する

2種類の要素って?

認証の例

  • 本人だけが知っていること: パスワード

  • 本人だけが所有しているもの: トークン、スマートフォン

  • 本人自身の特性: 指紋、顔認証

2段階認証

  • 2要素認証≠2段階認証

  • Q: 違いを説明できますか?

2要素認証≠2段階認証

  • 例: ネットバンキングなど

  • ログインパスワード(1段階)

  • 振り込み時に秘密の質問(2段階)

  • どちらも「本人だけが知っていること」なので1要素

2要素認証(2FA)どうやるの

2要素認証(2FA)どうやるの

多要素認証実施までの流れ

2FAに対応しているサービス(例)

  • Googleアカウント

  • Slack

  • Dropbox

  • Evernote

  • Facebook

  • Twitter

  • GitHub

  • AWS

  • PayPal

2FAの認証クライアント

TOTP

pyotp: OTPのPython実装

totp = pyotp.TOTP('base32secret3232')
totp.now() # => '492039'

# OTP verified for current time
totp.verify('492039') # => True
time.sleep(30)
totp.verify('492039') # => False

ハードウェアキー

まとめ

  • 認証にどういう種類があるか

    • パスワード管理、2FA

  • 2要素認証がどういうものか知る

    • 2種類の要素で認証する