初老のボケ防止日記

おっさんのひとりごとだから気にしないようにな。

2段階認証のススメ

米国Amazonでは以前から使えていた2段階認証がようやく日本国内でも利用可能となったことを最近知った。

Amazonの2段階認証

2段階認証の設定は「高度なセキュリティ設定」から行う。詳細は以下を参照。

https://www.amazon.co.jp/gp/help/customer/display.html?ie=UTF8&nodeId=202025410
https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=202073820

と、これでは記事が終わってしまうではないか。
ふと、IT業界内ではメジャーな2段階認証について世間のヒトは利用しているのか興味があったのでTwitterのアンケート機能を利用してみた所あんまり使われていないようだ。という訳で、改めて2段階認証について記事にしてみた。

2段階認証とは

2段階認証というのは、その言葉通り
ログインするのに2回認証すること。
もう少し丁寧な説明だと

2段階認証は、ID/パスワードの確認に追加して、さらにセキュリティコードによる確認を行うことで、より安全にログインするための仕組みです。

2段階認証とは | dアカウント

つまり、認証の手順がこうなる。

普通の認証

  1. ユーザID/パスワードでログイン認証

2段階認証

  1. ユーザID/パスワードでログイン認証(1段階)
  2. 「セキュリティコード」で認証(2段階)

2回認証する方法なのはわかったけど「セキュリティコード」という難しそうなワードが出現。

セキュリティコードってなんだ

いわゆる「ワンタイムパスワード」というものなのだが、ぶっちゃけた言い方すれば
その場限りの合言葉。
1段階目のログイン認証で使う「パスワード」が(変更しない限り)ずっと変わらないのに対して「セキュリティコード」は認証する時の限られた時間内だけ有効な6桁程度のランダムな数字である。つまり、2段階認証の場合はログインする度にユーザID/パスワードに加えて毎回変わる「セキュリティコード」が必要になるので、例えIDとパスワードを第三者に知られても「セキュリティコード」さえ知られなければログインできないのである。しかも「セキュリティコード」は毎回変わるからさらに安全。でも、ちょっと待ってほしい。
その毎回変わる「セキュリティコード」をどうやって自分が知るのか?

セキュリティコードの知り方

大抵のサービスは以下の2つの手段を提供している。

  • 携帯番号経由で通知
  • 認証デバイスで生成

携帯番号経由で通知

2段階認証設定時に携帯電話番号を登録すると、ログイン認証の度にSMSまたは音声案内でセキュリティコードが通知されてくるのでその番号を入力することで2段階認証を行う。
スマートフォンではなく携帯電話を利用している人、またはスマートフォンを持っているがあまりアプリを使わない人向けの手段と言えよう。

認証デバイスで生成

2段階認証設定時にサービス提供側と認証デバイスで「秘密の鍵」を共有することで、ログイン認証の度にサービス側からセキュリティコードを通知しなくても認証デバイスで「秘密の鍵」を使ってセキュリティコードを生成することができる。セキュリティコードを生成する認証デバイスは専用のハードウェアでもいいし、スマートフォン向けの認証アプリでもよい。スマートフォン向けにはiOS/Android共に多数の認証アプリが公開されているので自分の好きなアプリを使えばよい。

セキュリティコードの生成方法

ちょっと専門的な話になるが、セキュリティコード(ワンタイムパスワード)の生成方法は標準化されており多くのサービスはコレに従っている。

RFC 6238: TOTP: Time-Based One-Time Password Algorithm

共有した「秘密の鍵」と時間を使ってセキュリティコードを生成するというシンプルな手法。スマートフォンの時刻は色々な手段で補正されているのでサービス提供側のサーバと時間があっている筈だ。問題は「秘密の鍵」の共有方法なのであるが、大抵のサービスは2段階認証設定時にQRコードを認証アプリに(スマホのカメラ経由で)スキャンさせるというアナログな方式になっている*1。なかなか目からウロコな方式である。

でも2段階認証って面倒じゃね?

ここまでで2段階認証が安全なのはわかった。でも…
「毎回セキュリティコードを入力するのって面倒じゃね?」
そう、実は俺も使ってみるまではそう思っていた。が、心配しないでよい。大抵のサービスでは信頼するデバイスからログインする場合は以降の二段階認証を省略するというオプションが用意されている。
つまり、二段階認証を有効化して携帯電話番号を登録するか認証アプリをインストールしてQRコードで「秘密の鍵」を登録するだけで自分がよく使うPCやスマホから一度だけ二段階認証を行えば後はいつも通り使えるのだ。それだけで万が一利用しているサービスのアカウント情報が流出しても悪用される可能性はGOOOOON!と減るのだ。ま、デバイスを落としたら元も子もないけども。

2段階認証を採用しているサービス

細かい実装の違いはあれど大手のサービスは2段階認証の仕組みを提供している。

  • IT大手(Google/Microsoft/Apple)
  • SNS(Facebook/Twitter)
  • クラウドサービス(Dropbox/Evernote)
  • ネットショッピング(Amazon/Yahoo!)
  • キャリアサービス(dアカウント/au ID)
  • Skype*2
  • SEN(Sony Entertainment Network)*3

初老のオススメ認証アプリ

そんな便利な2段階認証であるが、スマートフォンの認証アプリを使う場合

  • スマートフォンを勝手に触られた
  • スマートフォンを無くした
  • スマートフォンが壊れた

とかそいう時に大変だ(経験したことないけど多分)。

スマートフォン向けの認証アプリは沢山あるけども、そこら辺を全部面倒見てくれそうな認証アプリがコチラ。

www.authy.com

このアプリだけで複数のサービスの認証アプリとしても使えるだけでなく、以下の機能があるのでオススメ。

  • アプリ独自のロック機能
  • バックアップ
  • マルチデバイス対応

アプリ独自のロック機能

スマホにロック機能はあるけどロックを解除してしまえばどのアプリも操作できてしまう。AuthyはアプリにPINコード(4桁の暗証番号)を設定できるのでスマホロック解除されても使われることはない。

バックアップ

各サービスの「秘密の鍵」をクラウド上にバックアップしてくれる(要設定)。クラウド上にバックアップがあるので、認証アプリをインストールしたスマホを無くしたり壊れて操作できなくなっても別の機器で復旧できるのである。勿論機種変の時の移行も簡単。

マルチデバイス対応

複数の機器を認証アプリとして利用することができる(要設定)。PCで2段階認証しようとしたら手元にスマホがない…という時に便利である。しかもChrome用の拡張もあるのでPC用のデスクトップアプリも利用できるのだ。

Authyの提供元企業

クラウド上に「秘密の鍵」を預けることに不安があるヒトも多いと思うので開発元の情報も調べた。Autyを提供しているのはアメリカの「Twilio」という企業で昨年ニューヨーク証券市場に上場している*4

www.twilio.com
Twilio Inc. Class A Common Stock (TWLO) Stock Price, Quote, News & History | Nasdaq

元々は通信系のサービスをメインにした企業だったせいか国内ではKDDIウェブコミュニケーションが代理店になっている。Authyアプリの基盤を使った法人向けの認証サービスも提供されている(日本国内は準備中)。

Twilio Authy機能(高度な認証機能)|Twilio - KDDI Web Communications

このあたりも踏まえて使っても問題ないかなと思えるヒトには便利なのでAuthyはオススメでございます。

vimeo.com

使い方も載せたかったのだけれども、画面キャプチャを許さないセキュリティ意識高い系アプリなのでできませんでした。ということで、公式や以下の参照リンクを見て貰えれば何となくわかるかなと。
アプリインストール後に電話番号を登録してSMSで認証すれば後は各サービスの二段階認証手順を行うだけです。なお、電話番号登録は「+Code」は「Japan(+81)」を選択、「Cellphone number」は"0x0-xxxx-xxxx"の先頭0を除いた「x0」からハイフンなしで入力しましょう。

  • 公式による使い方

Learn More - Authy

  • 適当にググったやつ

http://bitcoinvest.hatenablog.com/entry/2016/12/06/182934
iPhone/Androidの2段階認証アプリ「Authy」で複数デバイス対応(Microsoftアカウント編)[PR] - Build Inside
2段階認証はAuthyが便利 | DevelopersIO

ということで、せっかくAmazonでも利用可能になったのでこれを機会に2段階認証を使う
覚悟を完了せよ

*1:スキャン出来ない場合は手動でコードを入力する

*2:Microsoftアカウントと統合すると利用可能

*3:My Sony IDと統合すると利用不可

*4:2015年にTwillioがAuthyを買収