Facebook のセキュリティ設定
いやぁ,失敗失敗。
XMPP で会話してて,相手から「Facebook は2要素認証に阻まれて XMPP クライアントからログインできない」と言われ,そういえば私は2要素認証の設定をしていないことに気がついた。 「やらなきゃ」と思いつつ先送りにしてたのだ orz
先送りにしてたのは「Facebook で2要素認証するにはケータイ番号を知らせなければならない」と思い込んでたから。 私は Facebook なんかにケータイ番号を教えたくないんだよ!
で,改めてセキュリティ設定を見なおしてみたら,あれから随分と改善されてるんだねぇ。 というわけで,今回は覚え書きとして Facebook のセキュリティ設定について書いておく。
現在の Facebook セキュリティ設定項目はこんな感じ。
![facebook-setting-security](https://farm8.staticflickr.com/7567/15937405270_abbb5b05a2.jpg)
この中で2要素認証に関係するのは「ログイン承認」と「コードジェネレータ」。
まずはコードジェネレータの設定を行う。
![facebook-setting-security3](https://farm8.staticflickr.com/7510/15504997443_1ee9fd5c3a.jpg)
この絵では既にコードジェネレータが有効になっているが,なっていなければ設定を行う。 このとき「セキュリティコードを入手するその他の方法を設定」のリンクをクリックすると以下の画面が表示される。
![facebook-setting-security4](https://farm9.staticflickr.com/8681/16098911486_75153ccbb8.jpg)
この QR コードを「Google認証システム」などのアプリに読ませれば TOTP(Time-based One-Time Password; RFC6238)ベースの認証が使えるようになる。
コードジェネレータの設定ができたらログイン承認機能が使える。 ログイン承認はこんな感じ。
![facebook-setting-security2](https://farm8.staticflickr.com/7556/15938626799_0f53e32b27.jpg)
「使用したことのないブラウザからアカウントにアクセスする際にセキュリティコードを求める」にチェックを入れてコードジェネレータのコードで認証を行えば OK。 なお,何らかの事情でコードジェネレータが使えない場合は,ケータイのアドレスを設定することでケータイにセキュリティコードが送られるようになる。
ケータイのアドレス設定はここで行う。
![facebook-setting-mobile](https://farm8.staticflickr.com/7559/15502374544_3bc804ddd6.jpg)
日本のケータイの場合はキャリアメールのアドレスを設定できる。
![facebook-setting-mobile2](https://farm8.staticflickr.com/7548/16123968322_d025baacff.jpg)
はっきり言って私は Facebook をそれほど信用してないので,ケータイ番号は入れないようにしている。 最初にサインアップするときは,本人確認のため,どうしてもケータイ情報が必要になると思うが(今もそう?),確認が終わればこんなものは削除してしまえばいい(私は削除した)。
XMPP クライアントで Facebook のメッセージングを行う場合は2要素認証が使えない。 この場合はセキュリティ設定の「アプリのパスワード」を使う。
![facebook-setting-security5](https://farm8.staticflickr.com/7577/15938627229_3a6397028e.jpg)
アプリごとに異なるパスワードを設定できるので,万一あるパスワードが漏れても被害を最小限に食い止められる(かもしれない)。 Google アカウントにも同様の仕組みがあるので, Gmail アドレスで XMPP を繋げる際に使える。
ついでに「信頼できる連絡先」の項目もチェックしておこう。
![facebook-setting-security6](https://farm8.staticflickr.com/7502/16098911646_8b5926856f.jpg)
何か設定されていたら全部削除すること。 相手が人間として信用できることとセキュリティ上信用できることは違うし,乗っ取りやなりすましは今や普通に起こることなので,相手を(セキュリテイ上で)信用しすぎないのが肝要である。 (更に自分自身が乗っ取られる可能性も考慮して,サービスに知らせる個人情報は必要な範囲に留めること)
もうひとつ,ついでに言ってしまうと, Twitter の2要素認証でケータイ番号が必須となる糞仕様はどうにかならないのだろうか。 私は Twitter なんかにケータイ番号を教えたくないんだよ!
(今はしぶしぶケータイ番号を設定している。くそったれ。 ケータイ番号は個人情報だけど秘密情報ではない。秘密でない情報を認証に使うな! 私は過去に SMS 宛に spam が来まくって往生したことがあるので, SMS 前提の仕組みは嫌いなんだよ。 そうそう, SMS は TextSecure でラップしておくのが吉。 通信自体は暗号化できなくてもメッセージ保存は TextSecure で暗号化できる。 SMS を使うサービスはせめて TextSecure に対応して欲しい)
もう他に穴はないよなぁ...