認証に関する世界観です。
今、7payで話題となっているように、二段階認証の必要性が注目されています。
二段階認証とは、IDとパスワードにログインした時に、携帯電話などにコードの記載されたSMSが送られてきてそれを入力したり、その時だけ使えるワンタイムパスワードを使ったりして、「二段階でログインする技術」です。
二段階認証を行うことで、Webサービスに対するセキュリティを強化することができます。二段階認証が使えるサービスであれば、ぜひ使いましょう。
TOTPとは2段階認証ワンタイムパスワード(TOTP)のこと。
Mozilla FirefoxのSyncなどで2段階認証を使う場合、WindowsではAuthyなどの2段階認証システムを使うことができる。
AuthyはLinuxにも対応している模様だが、LinuxのCLIでTOTPを使うためには、oathtoolなどが使える。
後日注記:AuthyはsnapcraftからLinux向けに導入できます。
TOTPは時間をベースに、HOTPはカウンターをベースにして二段階認証(Two-Factor Authentication)を行う。TOTPよりもHOTPはより安全だということは知っておくと良いだろう。
二段階認証アプリでメジャーなのはAuthyとGoogle Authenticator。特にスマホで使うことを想定しており、二段階認証を有効にしたWebサービスにログインする時には、スマホからAuthyあるいはGoogle Authenticatorを起動して、ワンタイムパスワードを確認してログインを行う。
フリーソフトウェアの実装としてはFreeOTPがある。
「徹底攻略 応用情報技術者教科書 平成30年度」を参考に執筆しました。
OAuthは、信頼された関係にあるサービスとサービスの間で、ユーザの合意とセキュリティの確保のもとに、ユーザの認証情報と権限を受け渡しする技術。
Twitterのアカウントを使った外部サービスでの認証などに使うことができる。
以下の書籍が参考になります。
僕は、今のコンピュータやネットワークでのセキュリティとして一般的な、IDとパスワードによる認証方式そのものが間違っている可能性があると思います。
最近のネットバンキング詐欺などでも、メールを使って不正サイトに誘導し、本物そっくりの不正サイトでIDとパスワードを入力させることで、銀行の口座にある莫大な金を不正に別の口座に送金して、盗まれてしまいます。
犯人はリアルタイムで不正サイトの入力を確認しているため、ワンタイムパスワードによるセキュリティも破られてしまいます。
僕は、コンピュータネットワークそのものの認証方法のあり方を変える必要があるように思います。
指紋認証や顔認証をするためには、指紋を採取する機器やカメラなど専用の機器が必要になりますが、こうした「パスワード以外の認証方式」を普及させなければいけないのではないでしょうか。そして、そもそも「本人であることを証明する手段」として、パスワードという簡単に盗むことができるものを、使ってはいけないと僕は思います。何らかの別の方法を考えなければいけません。
僕は、今回のネットバンキングの詐欺は、銀行にお金を預ける意味が何なのか、という根源的な問いを発する段階に来ていると思う。ネットバンキングで不正ログインの可能性があるのであれば、銀行にお金を預ける意味があるのかどうか、そういう考え方に至る。
後日注記:僕は新しく買ったパソコンで指紋認証を有効にしています。ですが、たまにきちんと読み取られないことがあり、PINと併用して使う必要があります。
最近のWebサービスでは、OAuthを用いて、ツイッターやGoogleなどのアカウントでログインすることのできるサイトやサービスが増えてきました。
これらの認証のメリットは、まず、サービスを管理しているシステム管理者にとっては、「認証をツイッターやGoogle任せにできる」というのがあります。
自分のサービスでIDとパスワードを管理しなくても、ツイッターやGoogleが管理してくれるため、管理の不備などによる情報漏洩などの対策になります。
また、サービスの利用者にとっては、セキュリティの高い認証方法が選択できます。
今の日本のWebサービスでは、二段階認証が使えるサービスは、残念ながら多くありません。多くのサービスが、IDとパスワードによる単一要素認証を採用しています。
そのため、たとえば誰にでも推測できるパスワードを使っていたり、別々のサービスでパスワードを使いまわしていたりすると、ハッカーに不正ログインされる可能性があります。
二段階認証を使うことのできる、ツイッターやGoogleアカウントを使ってログインする場合は、このようなセキュリティの甘いログイン方法を使用せず、セキュリティの高いログイン方法を選択できるため、セキュリティの向上に繋がります。
ただし、ツイッターアカウントを使う際には、ツイッターアカウントひとつに多くの権限が集中することや、ツイッターアカウントをもし削除してしまった場合、すべてのサービスでログインができなくなることなどに注意しましょう。
このほか、アカウントを増やしすぎないことで、パスワードをたくさん覚える必要がなくなり、またさまざまなサービスにアカウントを作りすぎないで済むため、管理の手間が省けるなどといったメリットもあります。
UNIXシステム管理(ユーザーとパーミッション)やNISやLDAPやBASIC認証も参照のこと。