87miles.net

Speed limit 87mph!

【セキュリティ強化】NFC付きのYubikey NEOを使ってGmailを2段階認証にする

      2014/10/18

NFC付きのYubikey NEOを使ってGmailを2段階認証にする方法をご紹介します。

keys

photo credit: Kris Krug via photopin cc

スポンサーリンク

ads

目次

Gmail + スマートデバイスで2段階認証

Gmailは2段階認証を利用することができます。
またGmailだけでなく、DropBoxやMicroSoftのメールサービスOutLook.com(旧HotMail)やamazonも2段階認証を利用できるようになっており、セキュリティ強化のためにできれば2段階認証は取り入れたいところです。

2段階認証とは

ご存知ない方のために2段階認証を軽く説明しておきます。
通常、認証をパスするためにはユーザIDとパスワードを入力しますが、ここにもう一つの要素を加え、パスワードとさらにそのもう一つの要素が合致して初めて認証が通る仕組みを2段階認証、もしくは2要素認証といいます。
もう一つの要素とは具体的には、ケータイ電話やタブレットなどのデバイスを使い、アプリなどによって、ワンタイムパスワードと呼ばれる一定時間で変更される簡単な数ケタの数字が表示され、それを入力します。アプリではなくSMSや電話の自動音声などが使用されることもあります。銀行などでは専用のワンタイムパスワードを発行するための端末(トークン)を提供したりもしています。
パスワードだけの運用だとパスワードを知られてしまうと誰でも認証されてしまいますが、2段階にすることで、パスワードだけがわかっても認証が通らない仕組みを確立することができ、セキュリティが格段に向上します。ワンタイムパスワードは一度使用すると二度と使用することができないため、仮に一定時間内に入力した数字を盗まれたとしても安全です。

2段階承認についてはGoogleでも詳しく紹介されています。

さらにYubikeyを利用する

通常は上記のようにスマートフォンやタブレットを用いますが、ここにさらにYubikeyというデバイスを加えます。
そうすることで、

  • パスワード
  • スマートフォンやタブレット
  • Yubikey

という3つが揃わないとログインできない仕組みを構築できます。
言ってみれば3段階認証みたいなもんです。
例えばGmailの場合、一度設定をしたあとは、アプリを立ち上げたら一定時間で変更されるワンタイムパスワードが表示されます。
Yubikeyを使用することで、アプリを立ち上げるだけではワンタイムパスワードは表示されず、スマートフォンやタブレットにYubikeyをかざすことで初めてワンタイムパスワードが表示されます。
また、こちらのアプリではさまざまな2段階認証のサービスを一元管理できます。

Yubikeyとは

Yubikey NEO

カリフォルニアのYubico社が開発したワンタイムパスワード認証が可能なセキュリティ用のUSB型トークンです。
PCに接続して使用し、ワンタイムパスワードを生成してくれます。
詳しくはyubico
今回はこのNFC付のタイプを使用します。そうすることで、NFC対応のスマートフォンやタブレットにかざすだけでワンタイムパスワードが表示できます。

Yubikeyを使用した2段階認証のやり方

ある程度仕組みが分かったところで、具体的なやり方です。今回はGmailを例として挙げていますが、基本は他でもやり方は同じだと思います。
まずは必要なものを揃えましょう。

必要なもの

  • Yubikey NEO
  • Androidデバイス
  • Android用アプリ

Yubikey NEO

NFC付のYubikeyです。今回の記事ではNEOしか使えません。通常のYubikeyはNFCがついておらず、USBのみになりますので、当然Androidデバイスでは使用できません。
Yubico社から購入します。
英語が苦手でもなんとかなります。私でもなったくらいですから。

Androidデバイス

こちらもNFC付のものが必要です。
iPhoneやiPadなどのiOSデバイスはNFCがついていませんので、使用不可です。

Android用アプリ

アプリは無料です。
以下からインストールしてください。
Yubico Authenticator

Yubikey NEOにappletをインストールする

必要なものが揃ったら、作業に入ります。
まずはYubikey NEOにappletをインストールしてやる必要があります。
手順はこちらに記載があります。
紹介するのはwindowsでの手順です。macやlinuxの方はごめんなさい。
まず必要なものをPCにダウンロードしてください。

  • GPShell
  • .CAPファイル
  • GPinstall.txt

全てのファイルをCドライブ直下に配置します。
他のドライブを使用する方は適宜読み替えてください。

GPShell

zipファイルをダウンロードし、解凍後Cドライブに配置します。
http://sourceforge.net/projects/globalplatform/files/

.CAPファイル

現時点で最新はykneo-oath-0.2.1.capです。拡張子が.capとなっているものをダウンロードし、こちらもCドライブに配置します。
http://opensource.yubico.com/ykneo-oath/releases.html

GPinstall.txt

こちらもダウンロードし、Cドライブに配置します。
https://github.com/Yubico/ykneo-oath/blob/master/gpinstall.txt
そして、中身を書き換える必要があります。
テキストエディタでtxtファイルを開き、

install -file ./applet/bin/pkgYkneoOath/javacard/pkgYkneoOath.cap -instParam 00 -priv 00

この一行を

install -file ./ykneo-oath-0.2.1.cap -instParam 00 -priv 00

という風にダウンロードした.capファイルと同じ名前に変更します。またパスは相対パスで記載しています。

コマンド入力

USBにはYubikey以外のものは挿さないでください。
コマンドプロンプトを開き、以下を入力します。

C:\GPshelll-1.4.4\gpshell C:\gpinstall.txt

以下のような長ったらしい表示が出たらOKです。

Command --> 80E88013D7C000C400BE00C700CA00CA00B400BE00CE00D200D500D700B000DB00C700DF00BEFFFF00BE00E400AC00AE00AE00DB00E700A
A00EA00ED00ED00ED00BE00EF00F100F400F100F700FA00FF00BE00F700AA01010103010700CA00C400B400AA00F700B400AA00B600C7010C
010C00AA0140012001B0056810B0013005600000056810E0011006B4B44304B44404B44106B44B4405B443400343B002410636810E06B4B44
407326810B004B43103441003334002B102B404B3B403BB4003B440076820A4100221024405B4341008B44600000231066820A100
Wrapped command --> 84E88013DFC000C400BE00C700CA00CA00B400BE00CE00D200D500D700B000DB00C700DF00BEFFFF00BE00E400AC00AE00AE00DB00E700A
A00EA00ED00ED00ED00BE00EF00F100F400F100F700FA00FF00BE00F700AA01010103010700CA00C400B400AA00F700B400AA00B600C7010C
010C00AA0140012001B0056810B0013005600000056810E0011006B4B44304B44404B44106B44B4405B443400343B002410636810E06B4B44
407326810B004B43103441003334002B102B404B3B403BB4003B440076820A4100221024405B4341008B44600000231066820A15D848CB77
27D0EDA00
Response <-- 009000
Command --> 80E60C002107A000000527210108A00000052721010108A000000527210101010003C901000000
Wrapped command --> 84E60C002907A000000527210108A00000052721010108A000000527210101010003C9010000B4648127914A4C7C00
Response <-- 009000
card_disconnect
release_context

Gmailの2段階認証を設定

Gmailのアカウントから『セキュリティ』の2段階認証設定画面に行き、
Androidを選択、QRコードを表示させる。
2段階認証
2段階認証設定
2段階認証設定2
QRコード

Androidアプリ

アプリを立ち上げ、メニューから『Scan new QR-code』を選択し、先ほどのGmailのQRコードをスキャンします。
成功するとアプリにコードが表示されますので、それをwebのGmailのQRコードの下に入力します。

scannewqr

これで設定は終了です。基本的にDropBoxやhotmailでも同様にすれば問題なく設定できるはずです。
普段の使い方は、web画面にて2段階認証にコード入力をもとめられたらyubikeyのアプリを立ち上げ、yubikeyをandroidデバイスにかざします。
すると登録済みの全てのサービスの2段階認証コードが表示されます。

ss1

Screenshot2

完璧なセキュリティではありません…

こちらの方法も完璧な方法ではありません。
もちろん私は専門家ではありませんので、あまり詳しいことはわかりませんし、素人がハッキングでセキュリティを破ろうと考えた場合に対してはほぼ不可能と言えるくらいのレベルではないかなと思います。
しかし、専門家は素人では考えられないような方法でハッキングを行うと思いますので、どこまで有効かはわかりません。
こちらの方法もandroidデバイスとyubikeyを盗まれ、パスワードを知られたら破られてしまいます。
100パーセントはないと思いますので、より手のかかる方法でセキュリティを守ることが大切かと思います。
また、万が一の時を考え、復旧の方法も把握しておく必要もあるでしょう。

 - PC and InterNet , ,