プログラミングの勉強をしていると、多要素認証という言葉が頻繁に出てくる。
私生活では二段階認証はよく聞くけど、多要素認証という言葉はあまり聞かない。
多要素認証とはどういうものなのか。
多要素認証と二段階認証はなにがどう違うのか。
これらについて自分なりにまとめておく。
多要素認証とは
多要素認証MFA:Multi-Factor Authentication
MFAと呼ばれることが多いらしい。
簡単にいうと、多要素認証とは複数の種類の要素で自分のアカウントだということを証明することをいう。
例えば、なにかのサービスを使用したいときにまずログインをしなければならない。
そのときに、パスワードを入力する。
これはパスワードを知っているから入力することができる。
要するに、ここで知っている要素(パスワードを知っている)
ということになる。
また、最近では、QRコードを発行して、パスワードの入力と同時にQRコードの照合を要求するサービスもある。
これが持っている要素(QRコードを持っている)
ということになる。
知っている要素と持っている要素
このふたつでログイン認証をすることによってより強固なセキュリティを構築することができる。
これが多要素認証。
二段階認証とはなにが違うのか?
二段階認証は、例えばパスワードをログイン後に、秘密の質問に答えるなどの方法でログインをすることなどになる。
これは、2つとも知っている要素
ということになる。
● パスワードを知っている
● 秘密の質問の答えを知っている
要するに、この場合どちらも知っている要素であり、多要素ということにはならない。
ということで、二段階認証と呼ばれる。
なぜ多要素認証が存在するのか?
これはセキュリティの強度を高めるため。
例えば、これまでの話の例をもとにすると、なんらかの形でパスワードや秘密の質問の答えが流出した場合に、QRコードが流出していなければアカウントを悪用されることはない。このように、一つの要素だけで認証をするよりも多要素での認証の方がより高度なセキュリティを構築することができるということ。