fastapple's blog

時系列関係なく、情報を追記・分割・統合などします。ブログに記載の内容のうち、引用ではなく、私自身が記載している文章・コードなどについては、自由にご利用ください。

GoogleアカウントにPCからログインするには、セキュリティキー認証が便利


セキュリティがどういう風に担保されているのかを利用者側から知ることはなかなか難しいと思う。実際、言われた通りにパスワードや二段階認証を攻略して、ログインするけど最近の流行りとしては二要素認証(多要素認証)である。これは、認証に複数の要素(factor)を使用するとよりセキュアになるというもので、知る要素、持つ要素、備える要素の3つがあり、このうちの複数を使うほどセキュアになるというものだ。ちなみに、Wikipediaの説明を読むと、登録されているメールアドレスにメールを送るという方法は、メールアドレスのパスワードを知ればそこも見ることができるので、知る要素を確認するために、別の知る要素を利用しているだけとなるので、二要素認証とは呼べず、ただの二段階認証に分類されるようだ。SMSでユーザの電話番号宛にメッセージを送るというのは、実際にそのSMSを受け取れるためのSIMを持つ必要があるので、持つ要素となり、二要素認証に分類できると思う。ただ、これはこの先eSIMの普及などで、利便性を向上させたときにこういう前提は崩れる可能性があるので、注意が必要だと思った。ちなみに2要素にすれば「より」セキュアになるが、もちろん一要素がセキュアではないという意味ではない。ただ、今後のセキュリティ設計では二要素認証をベースに考えるのがいいだろう。

前置きが長くなったが、googleアカウントにPCからログインする際に、SMS認証を行うことが多い。これは基本的には持つ要素に分類されるから2要素認証といえる。ただ、SMSで通知された番号を入力する必要があるので、少し手間がかかる。もっと利便性を向上させたい。おそらくそんな考えで生まれたのが「Androidスマートフォンの組み込みのセキュリティキー」である。必要なものはAndroid7.0以上のAndroidスマホと、Chromeを入れたBluetoothが利用できるPCだ。これを設定すると、認証していないPCで、chromeからGoogleアカウントにログインしようとした際、認証済みのスマホを近くに持っていれば、スマホに認証しますか?という通知のみが表示されることになり手間が省ける。一応、以下に公式の説明をみつけた。

support.google.com

ところでこれはあまり推奨すべきではないかもしれないけど、自分の場合、パスワードの一部はクラウドストレージに保存しており、これを自分の知っているキーと組み合わせた文字列をパスワードにしている。ただ、自分の知っているキーというのが数種類しかないのが脆弱なので、やっぱり二段階認証はあるとよいと思う。ただ、常にBluetoothで持っているデバイスとつながっていなければすぐにログアウトするようなモードがあってもいいのではないかと思った。共有のデバイスにログインするときはそのようなモードがあるとよいと思う。そして、個人所有のデバイスであれば、デバイス自体の認証は生体認証とするのがよいと思う。そうすれば、個人所有のデバイスでは、3要素の認証が実現できるし、共用のデバイスでも2要素だが、一時的な認証が実現される。という風にできそうだ。まあこれはたらればの話だけど。

ーー公開した直後に追記ーー
これを書いた直後に追記。iPhoneにもセキュリティキーを提供するらしい。以下のリンクを参照。
techcrunch.com

セキュリティキーと通常の認証アプリの違いは、セキュリティキーはBluetoothによって、実際にデバイス同士が通信できるほど近距離にあることが担保されているので、よりセキュアということである。
ちなみに、上のリンクから、さらに以下のURLへリンクが張られているのだが、以下のURLに書かれてある図はとてもいいと思った。これもここに貼っておく。
techcrunch.com

googleはこういうセキュリティの工夫を段階的にやっていて素晴らしい。これこそカイゼンといえるんじゃないかな。というかGoogleはものすごくカイゼン文化の会社だとプロダクトをみていると思う。ちょっとずつ確実に良くなっていくのがGoogleのプロダクトというイメージなので。まあ、マネタイズのためにYouTubeとかは不便になったりはしますけど。ある意味わかりやすい。

気が早いけど、次のステップは共用のデバイスの扱いではないでしょうか。自分も課題意識をもって事にあたりたいなと思いました。真面目な感じで締めたいと思います。ではでは。