見出し画像

[対応必須]Twitter2要素認証の変更

前提

TwitterのSMS認証が一般ユーザーには廃止されます。3/19に設定が強制削除だそうです。
最も簡単な二段階認証なので、これは設定していた人も多いでしょうが、廃止されるので別の方法が必要になります。

え?要らない?ピピー二段階認証警察です!まあ聞いてやってください。
別の方法とはTOTP(Time-based One-time Password)で、30秒有効な6桁がどんどん時間で変化していくので、それを30秒以内に打ち込む認証です。セキュリティキーという選択肢もありますが、これを選ぶ人は元からセキュリティガチ勢に違いないので今回は無視です。
TOTP、意外と知らない人がいるなあという印象なのですが、そういう方も、この機会に是非知ってください。
実はSMS認証は危険なところもあり、こちらの方が優秀ですので、いい機会だと思いましょう。今日あなたは自分のアカウントが乗っ取られたりしないための強力な武器を得るのです。
TOTPの仕組みを簡単に言うと、現在日時と、サービス側、ここではTwitter側から教えてもらう種となる値、シード値によって常に30秒ごとに異なる6桁が決まる仕組みです。
シード値を入れる専用アプリが必要なので、二段階アプリ全体の事情とお勧めアプリを後で紹介します。その前に、どういう脅威があるのか?を説明します。
わからないところがあればコメントなど、何らかの方法で私にメッセージをください。できる限り対応します。

追加のパスワード保護と不正ログインについて

Twitterで「追加のパスワード保護」設定でOKという趣旨のツイートが多くの方に見られていたようなので、念のためこの設定の意味を解説します。これはtwitter idに対してパスワードリセット要求をするという攻撃の一種があるのですが、これを喰らったときにトリガーし、本人しかわからない質問を要求することでさせないというものです。これ自体は是非入れるべき良い設定なのですが、これをすることでSMS認証が消えたことをカバーできるわけではないのです。
例えばパスワード認証+SMS認証の2認証だったのが、今回の削除でパスワード認証の1認証のみになる予定です。その事実はこの設定の有無では変わらないため、パスワード1つ通して不正ログインされれば、あなたのアカウントは完全掌握されます。
よくアプリ連携のせいで勝手にツイートされる現象を「乗っ取り」と表現したりしますが、そんなレベルではありません。電話番号を、メールアドレスを、パスワードを、DMの全てを(本名・住所などあり得ますよね)、奪われます。そのアカウントを使ってどんな悪戯も犯罪行為も可能ですが、あなたはもうそれを止められません。そうなったらすぐTwitterサポートに相談してください。
また、不正ログインはそれで終わりません。同じ電話番号、メールアドレス、パスワード、他のサービスでいくらでも試してくるでしょう。もし使いまわしをしていたら…わかりますね?個人情報自体にも価値があって更に面倒です。
対して、きちんと二段階認証を行って認証が2つあった場合、1つ目のパスワード認証を通されたらTwitterから通知が来て我々は攻撃者の存在を知ることができます。攻撃者が2つ目の認証に手間取っている間に、1つ目の認証であるパスワードを変えてしまえば、もう攻撃を成立させるのは現実的ではなくなるでしょう。
では、堅牢なアカウントにするための設定をしていきましょう!

二段階認証アプリの選定

昔はAuthy, Google認証システムなどが有名で、安定択でした。
しかしGoogleの方はGoogleにしては珍しい癖のある欠点があり、エクスポート時何故か他のアプリと形式に互換性がない、一番まずいのは急に端末が壊れた時、復旧が不可能になることがあります。一応対処は可能ですが…。
Authyの方も色々ありますが、最近運営がセキュリティインシデントを起こしたということと、クローズドソースなので安全性が衆人監視されていないということなどがあります。
またこれらのアプリは他のTOTPアプリへの移行が(正規の方法がなく)難しいという欠点があり、一度使ってしまうと抜けたくてもなかなか抜けづらいという特徴があります。
そして今、オープンで、移行が容易で、セキュアなTOTPアプリが望まれているわけですが…ありました、AegisAuthenticatorです。(android only)
試してみましたが、本当に移行方法が細かく容易で、オープンで、パスワード・生体認証に対応しています。全く文句がないと思います。(識者、ここに意見あれば是非)
そして、申し訳ないのですが私はiPhoneを持っておらず、実証実験が不可能なのですが、調べた限りではOTP Authが、エクスポート機能が強く、もっと良いものが見つかったときの移行が楽で、機能的にも悪くなさそうでした。iOS無料、MacOS有料です。特徴としてはこのようなものらしいです
以降、Android限定のAegisの前提で話を進めていきますが、OTP Authも結局は同じアプリケーションなので、少し調べればほぼ同様に進めることができるはずです。とりあえずiOSの方は「Aegisの細かい設定」項は飛ばしていいですね。
どのアプリも結局QRで一気に登録する、文字列で秘密鍵を入力する、基本はこの2つに1つで、結果として、サービス・アカウントごとに、30秒ごとに変わる6桁がずっと更新されながら表示されるようになるだけです。「アプリからやる場合」で後述するように、Twitterは第三の方法を用意していたようでしたが。

長いパスワードの作り方参考

Aegisの初期設定では、パスワード、生体認証などを設定します。注意点として、セキュリティアプリの大本のパスワードは20桁は欲しいくらい長めで、基本的には自分の脳で覚えないといけないということです。
そんな長いパスワード無理じゃ!と思ったら、私のお勧めですが、アルゴリズムで作って覚えてください。例えば尊敬する人々何人かの誕生日、とある事件の日付の掛け算、割り算(小数点の数字がいっぱい出る)とか、また、掛け算や割り算したことが分かるように途中に*や/記号入れてみるとかも、覚えやすくなりますね。自分ではわかってて、忘れたらアルゴリズムさえあれば後から作ることができても、攻撃者には何の数字なのかわからない難しいものになります。また、人の名前を使ったりする場合も、数字と併せて何らかのルールで並べ替えたりするとなお良いですね。大文字混ぜることも忘れないように。
このように、作り方を覚えておくと、忘れても作れます。仮に多数の人々からパスワードを作るとして、人々の情報は伏せたまま、アルゴリズムだけならメモしても大丈夫かもしれません。
そして、何回か入力してればいつかは覚えます。何も見なくても入力可能になります。
Aegisでは本来の入力機会は少ないですが、忘れないようにデフォルトでは2週間ごとに入力を要求する設定が有効になっていますので、段々覚えていくでしょう。

一番最後の読まなくても良い余談章につながるんですが、こういう強いパスワード1つまともに作るなら、結局マスターパスワード1つですべての乱数生成パスワードとTOTPを記録する全部入りのセキュリティアプリを導入した方が都合が楽になりはします。

Aegisの細かい設定。

初期設定が終わったら、右上に「…」が縦になったアイコンがあるので、押して「設定」>「動作」>5つある選択肢の上から4つを全部有効にしましょう。これがないと便利じゃないです。(一番下はちょっと意味わからないのでなしで)
あとは「動作」まで戻ったら、「バックアップ」へ、そしてAndroidクラウドバックアップにチェックします。私はバックアップはGoogleOneを使っていますが、端末の設定からバックアップ項の今すぐバックアップを選んでみると、ちゃんとバックアップされていました。一応アンインストールしてバックアップが機能するか確認。パスワードを求められて、解錠すると元に戻りました。これWebアカウントないけど保管庫ファイルに対して常にパスワードが関連してるみたいですね…。

TwitterのTOTP設定方法

PCからWeb版でやる場合(携帯端末必須)

PCとスマホがあるなら、恐らく一番楽にできます。
トップページのツイートボタンの1個上「…」をクリック
「設定とサポート」>「設定とプライバシー」
画面ががらっと変わるので、「セキュリティとアカウントアクセス」を探してクリック>「セキュリティ」>2要素認証>「認証アプリ」にチェック
パスワード求められるので従う>「はじめる」>「アプリをTwitterアカウントに登録」と出てQRコードが表示されます。Aegisを起動して生体認証などの後の画面で「+」を押し「QRコードをスキャン」を押して、PCの画面のQRコードを読み込んでください。
そうすると、名前にアカウント名、発行者Twitter、グループ無し(タグのようなものですので後から検索性を高めるために自由に作ってください。広く見るなら「SNS」、狭く見て複数アカウントがあるなら「Twitter」とかですかね。)、メモなし、高度な設定の中に入力済みの秘密鍵項があります。iOSの場合はわかりませんが、どちらにしても大体このまま保存でも構わない情報量が入っているはずです。問題なければそのまま右上の保存を押して構いません。
6桁を十分時間が残っている時にコピーして、Twitterに戻ると「認証コードを入力」になっているので、6桁を30秒以内に入力して完了です。
30秒の区間を過ぎたら別のコードになってるので、失敗したら30秒を過ぎている可能性が高いです。

アプリからやる場合(Androidだが恐らくほぼ共通)

トップページから自分のアイコンをタップ>「設定とサポート」>「設定とプライバシー」>「セキュリティとアカウントアクセス」>「セキュリティ」>「2要素認証」>「認証アプリ」にチェック>パスワードの入力>「はじめる」>Twitterの用意した親切機能「Link app」で二段階認証系アプリが一覧されるので、Aegisを指定します。もしこの親切機能がうまく機能せず、かつPCをお持ちであれば、前項の方法が楽かもしれません。なかったら以下進めましょう。
「別の端末でリンク」を押して、QRコードをスキャン…できれば一発で終わりでいいんですが、端末1つからQR読み込みだと、多分GoogleGlassとか使うことになると思うんですが、こうするとかなり面倒なことになります。付与された情報が多すぎてエラーが起きたりするので、「secret=xxxxxxx」のxxxxxxxを抜き出す手作業が必要になるのです。なのでもっと簡単にQRコードの下の「Can't scan the QR code?」を押して文字列を受け取る方法もあります。その文字列こそ、種となる秘密鍵本体なので、二段階認証アプリに保存しましょう。文字列を受け取って記録した場合は、そのアカウントに関する情報が自動入力されず不足するんで、自分で適宜アカウント情報などを追加してください。
そうすると、名前にアカウント名、発行者Twitter、グループ無し(タグのようなものですので後から検索性を高めるために自由に作ってください。広く見るなら「SNS」、狭く見て複数アカウントがあるなら「Twitter」とかですかね。)、メモなし、高度な設定の中に入力済みの秘密鍵項があります。iOSの場合はわかりませんが、どちらにしても、文字列を受け取る方法以外なら、このまま保存でも構わない情報量が入っているはずです。問題なければそのまま右上の保存を押して構いません。
6桁を十分時間が残っている時にコピーして、Twitterに戻ると「認証コードを入力」になっているので、6桁を30秒以内に入力して完了です。
30秒の区間を過ぎたら別のコードになってるので、失敗したら30秒を過ぎている可能性が高いです。

普通はQRや手動、2択から秘密鍵を得るのが主流

QRコードを無視して「Can't scan the QR code?」を押して出てくる文字列が秘密鍵ですので、「Link app」なんて機能のあるTwitterのように親切なサービスじゃなければ、大抵QRか、文字列を得て秘密鍵に入れることになると思います。
楽なのはQRなので、別端末にQR映せて端末で読み込める状況ではどんどん使っていきましょう。

というわけで完了おめでとうございます!

貴方は最先端のセキュリティに対応できました。iOSの方はなんとかなりましたでしょうか?なってたら嬉しいです。
これからログインするときに1手順増えるのは面倒かもしれません。しかし安全のためと思えば安いものですよ。
一応強制で設定を変えられる前に自分からSMS認証を外して、TOTP認証に慣れておきましょう。
設定変更時と全く同じ手順中に存在します。一応書きますと、アプリでは、トップページから自分のアイコンをタップ>「設定とサポート」>「設定とプライバシー」>「セキュリティとアカウントアクセス」>「セキュリティ」>「2要素認証」>「テキストメッセージ」(iphoneでは「ショートメール」らしい)のチェックをオフです。
さて、お疲れさまでした!読んでくれてありがとう!

最後の余談・お勧め(今回Twitterにさせられたセキュリティ対応以上にセキュリティ管理に興味ない方は読まなくてもいいです)

Bitwardenという、パスワードマネージャ―でオープンソースなアプリがあります。1つのマスターパスワードを覚えてたら、全てのパスワード、主にこのアプリが自動生成したものにアクセスできるものです。私はこうやって50桁以上とかやってるわけですね。これをちょっとお勧めしようかなと。
これは年額10ドルと安い有料版を買った場合、TOTPを入力するところが出てきて、パスワードとTOTPが同時に書けてしまいます。でも、パスワードと二段階認証は別々に管理するからセキュアなんだろう?って根本的な話もあり、色々思うところもあるんですが、結局Bitwarden1つが他のTOTPアプリで守られていたら大丈夫かな、という考えのもと私は同時書きを運用してます。だって楽なんですもん…。見てくれます?このスピード感のあるログインを。

Bitwarden部分は録画時真っ暗になってますが、対応するURIのアカウント選んでるだけです。それでパスワードが入って、クリップボードにTOTPが入ります。

追記:すみません上に思い付きを書いてたんですが、消去しました。Aegisのパスワードも自動生成しない?という内容だったのですがその後、Aegisの設定部分にバックアップ・その後の復帰まで通して見た結果

これWebアカウントないけど保管庫ファイルに対して常にパスワードが関連してるみたいですね…。

という感じで、どうしても何も見ずに書けるパスワードが必要になるので、Aegisのパスワードは人間が覚えられる強度じゃないと大変なことになるかもです!。面倒ですが、端末が変わったりしたとき必ず問われます!これがないとBitwardenにも入れない関係なので、先にこっちを解く必要がある、と。普段の解除は生体認証で良いのに、最終的に覚えなきゃいけない強いパスワードは2つになった…;セキュリティは難しい;

以上、今度こそ読んでくれた方ありがとうございました!

この記事が気に入ったらサポートをしてみませんか?