0
0

ハッシュ化と暗号化について

Posted at

なぜ知りたいと思ったか?

ハッシュ化も暗号化も悪質ユーザーに読み取られない技術だけど、どこが違うのか知りたかった

ハッシュ化について

入力した文字や数値が、Webサーバにあるハッシュ関数でハッシュ値に変換され、データベースに保存する
不可逆(元に戻せない)の性質があるので、攻撃者にハッシュ値を参照されても割り出すのが難しい

phpMyAdminのパスワードでは、480ビット分ハッシュ化されている
→複数ユーザーに同パスワードを指定したが、ハッシュ値が違うのはユーザー毎に違う固定値を組み合わせたソルトを使っていると思う
image (1).png

①ログイン時の検証方法について
ユーザーが入力したパスワードをハッシュ値に変換して、一致した場合にログインできる
※1文字違うだけハッシュ値が大きく変わるので、正確に入力する必要がある
image.png

②使用用途について
・電子メール本文の改ざんを判断するため、メール本文とハッシュ値変換データを送信し、受信時にハッシュ値の比較を行う
→悪質ユーザーが送信者側になりすますことが難しく、送信者本人が送ったメールだと信頼できる

③期待できる効果
ハッシュ値に変換されても元に戻すことが出来ず(不可逆な性質)、悪質ユーザーがハッシュ値から元データを特定するのが難しくなる

④問題点
パスワードは「数学的に不可逆」と言われてきたけど、計算技術の飛躍で覆りつつある。
指紋などを使った生体認証や、1度しか使えないワンタイムパスワードなどを組み合わせた多要素認証が必要になってくる

パスワードの暗号化について

入力した文字や数値を暗号化アルゴリズムで別のデータに変換し、受信側で元のデータに複合できる
→カード情報入力でよく使われる
image (2).png

①暗号化したデータをどうやって複合するか?
送信側が暗号鍵を使ってデータを暗号化した後、受信側で複合鍵を使ってデータを複合する(元データに変換する)

②使用用途について
・ECサイトに入力した個人情報を、受信側で確認できる

③期待できる効果
入力データを暗号鍵で別のデータに変換しているので、悪質ユーザーが参照しても元のデータの解析が難しく、安心してデータを受信側に送ることが出来る

④問題点
悪質ユーザーが複合鍵を取得してしまうと、元のデータに変換できてしまい情報漏洩に繋がるので、複合鍵をどう受け渡すかを考慮する必要がある

ハッシュ化と暗号化は何が違うか?

別のデータに変換して、元のデータに戻す必要があるか
<ハッシュ化の場合>
DBでパスワード管理する場合、元のデータに戻すと悪質ユーザーに見られる危険性があるので、変換したままにする
<暗号化の場合>
カード番号を送信する場合、元のデータに戻さないと受信側で確認が取れないので、鍵を使って元のデータに戻す必要がある

ハッシュ化と暗号化の違いについて
https://eset-info.canon-its.jp/malware_info/special/detail/211013.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0