パスワードを安全に保管する方法

認証

2020/5/9

【PHP】crypt関数でソルト付きのパスワードハッシュを生成する

PHPのcrypt関数でソルト付きのパスワードハッシュを生成する方法 crypt関数を使用することで、ソルトやストレッチングを実施したパスワードのハッシュ値を生成することができます。 crypt関数の引数は次の通りです。戻り値はハッシュ値の文字列が返却されます。 引数 型 説明 第一引数 string パスワードの文字列 第二引数 string ソルト(任意)第二引数を省略するとソルトやストレッチングが実装されない。PHP 5.6 以降では第二引数を省略するとE_NOTICE が発生。 スポンサーリンク ...

2020/5/6

【パスワード】ストレッチングとは

ストレッチング ストレッチングとは、パスワードのハッシュ値を総当り攻撃(ブルートフォース攻撃)などから推測されないようにするために、ハッシュ値への計算を数千回~数万回繰り返し行うことです。 ストレッチングの必要性 コンピュータの進化は早く、計算する処理速度も向上しているため、弱いパスワードや文字数が長くないパスワードなどは、総当り攻撃(ブルートフォース攻撃)などで十分な時間をかければ元のデータを推測されてしまう危険性があります。 この時間を事実上不可能といえる時間にするためにストレッチングを実施します。 ...

2020/5/9

【bcrypt】PHPで安全なパスワードハッシュを生成する方法

PHPで安全なパスワードハッシュを生成する方法 パスワードを安全に管理するためには、ソルトとストレッチングを用いてハッシュ値(暗号学的ハッシュ関数)としてデータベースに保存しておく必要があります。 このソルトとストレッチングを実施してハッシュ値を生成してくれるパスワードハッシュアルゴリズムには、「bcrypt」などが存在します。 そして、PHPには「password_hash」というパスワードハッシュを生成する関数が用意されています。 スポンサーリンク   本記事では「password_hash ...

鍵

2020/5/6

【パスワード】bcryptとは

bcryptとは bcryptとは、Blowfish暗号を基盤としたパスワードハッシュアルゴリズム(暗号学的ハッシュ関数)です。 一般的にパスワードは、元に戻すことが困難である「一方向性関数」の性質を持つハッシュ関数を用い値ハッシュ値で保管します。 次の図は、パスワードを「平文」「暗号文」「ハッシュ値」で保管していた際のイメージ図です。 「平文」は漏洩したらパスワードが盗まれてしまいます。「暗号文」は暗号化されていますが、「暗号文」を復号する「鍵」があればパスワードを解読することができます。パスワードが情 ...

ログイン

2020/5/6

【パスワード】ソルト(Salt)とは

ソルト(Salt) ソルトとは ソルト(Salt)とは、パスワードなどをハッシュ値へと変換する際に、パスワードに付与するランダムな文字列のことです。 仮にハッシュ値で保存しているパスワードが外部に漏洩した場合、元に戻すことが困難であるハッシュ値でも、弱いパスワード(推測しやすい文字や短いパスワードなど)であれば、十分な時間をかければ元のデータを推測されてしまう危険性があります。 そこで、ソルトと呼ばれるランダムな文字列をパスワードに連結してから、ハッシュ値へと変換します。 ソルトを付与することで、レインボ ...

2020/5/5

パスワード管理の仕組みを図解で分かりやすく説明

パスワード管理の仕組み パスワードを安全に管理するためには、ソルトとストレッチングを用いてハッシュ値(暗号学的ハッシュ関数)としてデータベースに保存しておく必要があります。 本記事では パスワードはどのように管理されているのか? なぜパスワードはハッシュ値で保管する必要があるのか? ハッシュ値のパスワードを狙うサイバー攻撃とは? なぜソルトやストレッチングが必要なのか? について図解を利用して分かりやすく解説していきます。 スポンサーリンク パスワードはどのように管理されているのか? 【アカウント登録】パ ...

ログイン

2020/5/4

シングルサインオン(SSO)とは

シングルサインオン(SSO) シングルサインオン(Single Sign On)とは、1度のユーザ認証(ログイン)により複数のシステムが利用できる仕組みです。シングルサインオンを使うことで、利用者はシステムごとに「ログインID」と「パスワード」を管理する必要がなくなります。 シングルサインオンを利用しないユーザ認証 シングルサインオンを利用しない場合は、サービスごとにユーザ認証(ログイン)の機能を実装し、サービスを利用する利用者もサービスごとに「ログインID」と「パスワード」を管理する必要があります。 利 ...

許可

2020/5/4

OpenIDとは

OpenID(オープンアイディー) OpenIDとは、異なるシステム間で利用者の識別情報を共有して使用できる仕組みです。 会員制のWebサイトなどの各サービスを利用する場合、各サービスごとに「ログインID」と「パスワード」を登録する必要があります。そのため、登録するサービスが増えれば増えるほど、利用者は各サービスのログイン情報を管理するのが大変であり、たまにしか使用しないサービスであれば、パスワードを忘れてしまうことも。   そこでOpenIDを利用すると、1つのログイン情報でOpenIDに対応 ...

許可

2020/5/4

OAuthとは | OAuthの仕組みを図解でわかりやすく解説

OAuthとは(オーオース) OAuthとは、異なるシステム間でデータや機能へのアクセス権限の許可を行う仕組みです。 例えば、ある利用者が「Aサービス」と「Bサービス」に加入している場合、各サービスのリソース(機能や保管しているデータなど)は利用者本人しか利用することはできません。 次の図のように「Aサービス」のリソースを利用できるのは 利用者本人。そして「Bサービス」も同様に「Bサービス」のリソースを利用できるのは 利用者本人です。 OAuthは、この異なるサービス間のリソースへのアクセス権限を付与する ...

セッションID

2020/5/4

セッションIDとは | 分かりやすく図解で解説

セッションIDとは セッションIDとは、Webサイトなどで通信中の利用者が使用するセッションを識別するIDです。セッションIDは一般的にログイン時にWebサーバにより払い出され、ログアウトするまで維持します。   Webサイトは複数のユーザが利用します。もしセッションIDが存在しないと、要求を受けたサーバは誰からのリクエストなのか判断できません。   このようにログイン時にセッションIDを払い出し、利用者を識別する仕組みのことを「セッション管理」といいます。 Webサーバにより払い出さ ...

© 2020 ITを分かりやすく解説