ショッピングサイトなどを利用する時に、まずしないといけないのはアカウント登録。
アカウント登録といえばIDとパスワードの組み合わせが以前からの標準であり、(多段認証が増えてきたものの)今のデファクトスタンダードでもあります。
でも、このパスワードをどうやってサーバに保存するか、はここ近年で変わってきたのをご存じでしょうか。
最も簡単なのは平文でユーザが入力したパスワードをそのままDBに保存する方式ですが、それだと漏洩した際にパスワードが一目瞭然なのでかなり危険です。これはやっちゃいけないな、というのは想像つくかと思います。
ではどうするか、ですが、2つの方式があります。
①暗号化
②ハッシュ化
これまでは①の暗号化が主流でしたが、近年はより安全性が高い②のハッシュ化を採用するサイトが増えてきています。
この2つ、何が違うかというと、復号できるかどうか、です。
暗号化データは、復号方法も合わせて漏洩してしまうと元のパスワードが分かってしまうのに対して、ハッシュ化は復号できないので漏洩したとしても元のパスワードは分からず、より安全性が高いのです。
そして、ハッシュ化の特徴としてハッシュ後の文字列は固定長になる、というのがあります。元の文字列が何文字だろうが、ハッシュにかけると同じ桁数の文字になるのです(詳しくはググってください)。
この特徴を捉えるとアカウント登録のサイトから1つのことが分かります。
パスワード登録時に桁数制限があるかないかで、どういう風にパスワードをDBに保存しているかが分かる!
そうなのです、パスワードをハッシュ化しているサイトは固定長の文字をDBに保存するので元のパスワードは何桁だろうが関係なく、桁数制限が不要なのです。一方、暗号化(もしくは平文)でDBに保存しているサイトはDBのカラム長の設計が必要になるので最大桁数の指定があるのです。
ハッシュ化していたとしても、フロントエンドの都合等で桁数上限を設定している可能性はあるのですが、上限が設定されてなければパスワードがハッシュ化されてることは確実そうです。
ということで、各サイト調べてみました。
どのサイトを調べたかは私の個人的な趣向ですのであまり意味はないです(社会的インパクトが大きそうなサイトをチョイスしてるつもりです)。
サイトによって意外と違うのが分かるかと思いますので、ご参考にしてください。
※サイト上から読み解ける内容で記載しています。
※サイトの更改がなされた場合、情報が古い可能性があります。
サイト | ID | パスワード | 備考 | 調査日 | |||
最低文字数 | 最大文字数 | 使用可能文字 | 制限 | ||||
amazon | Eメールアドレス | 6 | 無し | 指定なし | 2020/10/07 | ||
楽天 | Eメールアドレス or 個別設定 最低6文字 最大なし 半角英数字&数字だけ不可) | 6 | 無し | 半角英数字 | ユーザIDと同一不可 | 2020/10/07 | |
NTT DoCoMo(dアカウント) | 最低6文字 最大20文字 半角英数字 | 8 | 20 | 半角英数字 | 英字のみ、数字のみ、記号のみ不可 | アカウント登録前にメアド認証が必要(リンク) | 2020/10/07 |
三菱UFJ銀行 | 店番+口座番号 or ご契約番号 | 4 | 16 | 半角英数字 | 英字(大・小文字)、数字、記号のうち2種類以上を組み合わせる | 新規パスワード登録時は8桁以上16桁以内 | 2020/10/07 |
bitFlyer | Eメールアドレス | 9 | 100 | 半角英数字 | 英字(大・小文字)、数字、記号のうち2種類以上を組み合わせる 強度の弱いパスワードは設定不可 | 2020/10/08 |
敢えて各サイトの安全性については触れません。
皆様で調べてみてください。それがセキュリティリテラシー向上にも繋がりますので!!
コメント