不可逆暗号化とはなんだろう?
☆不可逆暗号化とはなんだろう?
2013年5月、ヤフーさんのIDやパスワードが不正アクセスで盗まれたようで、
私もヤフーIDを持っていましたので、心配です。
一応、私のIDは洩れていないらしいですが。
盗まれたパスワードは、「不可逆暗号化」とかいう方法で暗号化されているらしく、
元に戻せないので大丈夫みたいな事が書かれていました。
しかし、なぜ不可逆暗号化すれば大丈夫なのかというのが、よく分からなくて
調べてみましたが、あんまり簡単な説明はなくて、難しいです。
私が解釈した分かった範囲の意味を覚書しておきます。
正しいかは分かりません。
一応、不可逆暗号化というのは、「パスワード文字列」を「元に戻せない文字列」に変更して
保存しているようです。
じゃあ、なぜサーバーにパスワードを不可逆暗号化させて「元に戻せない文字列」にして保存してたのか?
と考えるかと思いますが、
これは、もし(万一)、不正アクセスで盗まれた場合でも、
盗んだ人は、ユーザーが設定した文字列でのパスワードには戻せないようにする為。
元のパスワード文字列を分からなくする為だろうと思います。
じゃあ、そのサービスをしている会社もパスワードが分からないんじゃないのか?
ユーザーからパスワードが分からなくなったと問い合わせが来たら、自分の会社も不可逆暗号化しているので答えらえないじゃないか?
どうやって不可逆暗号化された文字列でパスワード認証するの?
となると思いますが、
多分、パスワードを設定する時というのは、サービス開始の初めの1回と、変更する時だけだと思いますので、それはそれで、その数回だけもっと厳重な方法で、
書き込みは出来ても、内部からしか読み出しは出来ないサーバーへ「パスワード文字列」のデータを保存しているんでしょう。
それと同時に「パスワード文字列」を不可逆暗号化で「元に戻せない文字列」にして、
通常の認証手段で読み出し出来るサーバーに保存しているんだと思います。
どうやって不可逆暗号化された文字列でパスワード認証するの?
という件は、例を書いた方が分かりやすいかも知れません。
①ユーザーがパスワードを作成。
②保存する方(サービス提供会社・サーバー)は、パスワードを不可逆暗号化して保存。
(不可逆暗号化というのは、もとに戻せない文字列にする事)
(もれてもパスワードはわからないという事になる)
(サーバー等には不可逆暗号化しかおいていないので、もし獲られても大丈夫かもという事)
③今度、ユーザーがログインする時などには、当然パスワードを入力しますが、
その入力されたパスワード文字列を不可逆暗号化。
④保存してた方((サービス提供会社・サーバー)の不可逆暗号化のデータと照らし合わせて
認証OKと判断する。
(内部的の比較には、元のパスワード文字列は使わない)
多分、こんな事だから、ヤフーさんは不可逆暗号化されたパスワードが流出したけど、
大丈夫と言っているんじゃないのかなと思っています。
でも、疑問や不安も残ります。
盗んだ人が、自分もそこ(サービス提供会社)にパスワードを持っていて、
不可逆暗号化された自分のパスワードを知った場合、
不可逆暗号化された自分のパスワードと同じ文字列のパスワードのIDの人がいたら
自分のパスワードで入れるという事にならないのか? とか、
(IDや他の項目と一緒に不可逆暗号化すれば分からないでしょうけど)
不可逆暗号化するアルゴリズムが分かるのなら、適当にパスワードを不可逆暗号化して
同じ文字列の不可逆暗号化パスワードの人を探して、パスワードを知るというような事はされないのか?
(不可逆暗号化のアルゴリズム(プログラム)が分からなければ難しいでしょうけど)
といった事も心配です。
詳しい人がいれば、教えて下さい。
記載:2013年05月頃
2013年5月、ヤフーさんのIDやパスワードが不正アクセスで盗まれたようで、
私もヤフーIDを持っていましたので、心配です。
一応、私のIDは洩れていないらしいですが。
盗まれたパスワードは、「不可逆暗号化」とかいう方法で暗号化されているらしく、
元に戻せないので大丈夫みたいな事が書かれていました。
しかし、なぜ不可逆暗号化すれば大丈夫なのかというのが、よく分からなくて
調べてみましたが、あんまり簡単な説明はなくて、難しいです。
私が解釈した分かった範囲の意味を覚書しておきます。
正しいかは分かりません。
一応、不可逆暗号化というのは、「パスワード文字列」を「元に戻せない文字列」に変更して
保存しているようです。
じゃあ、なぜサーバーにパスワードを不可逆暗号化させて「元に戻せない文字列」にして保存してたのか?
と考えるかと思いますが、
これは、もし(万一)、不正アクセスで盗まれた場合でも、
盗んだ人は、ユーザーが設定した文字列でのパスワードには戻せないようにする為。
元のパスワード文字列を分からなくする為だろうと思います。
じゃあ、そのサービスをしている会社もパスワードが分からないんじゃないのか?
ユーザーからパスワードが分からなくなったと問い合わせが来たら、自分の会社も不可逆暗号化しているので答えらえないじゃないか?
どうやって不可逆暗号化された文字列でパスワード認証するの?
となると思いますが、
多分、パスワードを設定する時というのは、サービス開始の初めの1回と、変更する時だけだと思いますので、それはそれで、その数回だけもっと厳重な方法で、
書き込みは出来ても、内部からしか読み出しは出来ないサーバーへ「パスワード文字列」のデータを保存しているんでしょう。
それと同時に「パスワード文字列」を不可逆暗号化で「元に戻せない文字列」にして、
通常の認証手段で読み出し出来るサーバーに保存しているんだと思います。
どうやって不可逆暗号化された文字列でパスワード認証するの?
という件は、例を書いた方が分かりやすいかも知れません。
①ユーザーがパスワードを作成。
②保存する方(サービス提供会社・サーバー)は、パスワードを不可逆暗号化して保存。
(不可逆暗号化というのは、もとに戻せない文字列にする事)
(もれてもパスワードはわからないという事になる)
(サーバー等には不可逆暗号化しかおいていないので、もし獲られても大丈夫かもという事)
③今度、ユーザーがログインする時などには、当然パスワードを入力しますが、
その入力されたパスワード文字列を不可逆暗号化。
④保存してた方((サービス提供会社・サーバー)の不可逆暗号化のデータと照らし合わせて
認証OKと判断する。
(内部的の比較には、元のパスワード文字列は使わない)
多分、こんな事だから、ヤフーさんは不可逆暗号化されたパスワードが流出したけど、
大丈夫と言っているんじゃないのかなと思っています。
でも、疑問や不安も残ります。
盗んだ人が、自分もそこ(サービス提供会社)にパスワードを持っていて、
不可逆暗号化された自分のパスワードを知った場合、
不可逆暗号化された自分のパスワードと同じ文字列のパスワードのIDの人がいたら
自分のパスワードで入れるという事にならないのか? とか、
(IDや他の項目と一緒に不可逆暗号化すれば分からないでしょうけど)
不可逆暗号化するアルゴリズムが分かるのなら、適当にパスワードを不可逆暗号化して
同じ文字列の不可逆暗号化パスワードの人を探して、パスワードを知るというような事はされないのか?
(不可逆暗号化のアルゴリズム(プログラム)が分からなければ難しいでしょうけど)
といった事も心配です。
詳しい人がいれば、教えて下さい。
記載:2013年05月頃
Twitter Facebook Google+ はてな Pocket LINE
管理人による書き込みの確認後、荒らし書き込みでない場合に表示させていただきます。
悪意ある書き込みや挑発的な書き込みと思われる内容は、表示させません。
その為、ちょっと書き込みから表示までに時間がかかってしまいます。ご了承下さい。
<No.2> 管理者
すんぶさん、詳しい説明ありがとうございます。
勉強になります。
ソルトっていうので、同じパスワードでも不可逆暗号化したら結果が変わるんですね。
そして、解析にも時間がすごくかかるようになっているんですね。
こういう事からもヤフーさんは、不可逆暗号化なので
大丈夫と言っているんですね。
ちょっと安心しました。
あと、私も同感なんですが、ありがちな文字列でのパスワードは危険ですね。
私は最近パスワードを作る時は、その時思いついた意味のない文字や数字で
結構長い文字数のパスワードにしているので、ちょっと安心出来そうです。
そのパスワードは覚えられませんが。
(2013/10/26)
<No.1> すんぶ
はじめまして。Web開発を仕事にしている「すんぶ」という者です。
「同じパスワードがあった場合」や「不可逆暗号化を繰り返して調べる」という疑問についてはもっともなものでして、技術的にも対策が行われています。
まず、ふつうパスワードを不可逆暗号化する際には、ユーザーごとにランダムな値(「ソルト」といいます)を割り振って、パスワードとそれをセットで不可逆暗号化します。ランダムに選べばソルトが重複するようなことはまずないので、同じパスワードでも暗号化の結果は違ってきます(ソルトも保存してあるので、パスワードの照合には支障しません)。
そして、コンピュータという繰り返し作業に強い機械がある以上、いろんな値を同じように暗号化して、かたっぱしから比較していくという作戦は当然存在します。ただ、Yahoo!のパスワードを1つ調べるのに何年もかけるだけのメリットはふつうないので、それだけの時間がかかるようにしておけば実用的には問題ありません。なお、きちんと不可逆になっているか検討するには暗号の専門家や数学者を動員しないといけないので、そういう検討が行われた上で公開されているアルゴリズムを使うのが一般的です。
まず、パスワードの暗号化に時間がかかるようにするという方法があります。不可逆暗号化を何度も何度も繰り返して、たとえば暗号化に0.1秒かかるようになったとします。人間がログインするときに0.1秒遅れても大したことはないですが、しらみつぶしに調べようとする人にとってみればかなりの負担となります。
そして、これはユーザー側の問題となってきますが、パスワードを長くすることも対策の1つとなります。パスワードを1文字増やすごとに、作れるパターンは数十倍になっていきます。逆に、「password」や「123456」といったありがちなパスワードを使っていると、攻撃者は確率の高いそういうパスワードから当たっていきますので、すぐに元のパスワードが判明してしまいます。
(2013/10/25)
すんぶさん、詳しい説明ありがとうございます。
勉強になります。
ソルトっていうので、同じパスワードでも不可逆暗号化したら結果が変わるんですね。
そして、解析にも時間がすごくかかるようになっているんですね。
こういう事からもヤフーさんは、不可逆暗号化なので
大丈夫と言っているんですね。
ちょっと安心しました。
あと、私も同感なんですが、ありがちな文字列でのパスワードは危険ですね。
私は最近パスワードを作る時は、その時思いついた意味のない文字や数字で
結構長い文字数のパスワードにしているので、ちょっと安心出来そうです。
そのパスワードは覚えられませんが。
(2013/10/26)
<No.1> すんぶ
はじめまして。Web開発を仕事にしている「すんぶ」という者です。
「同じパスワードがあった場合」や「不可逆暗号化を繰り返して調べる」という疑問についてはもっともなものでして、技術的にも対策が行われています。
まず、ふつうパスワードを不可逆暗号化する際には、ユーザーごとにランダムな値(「ソルト」といいます)を割り振って、パスワードとそれをセットで不可逆暗号化します。ランダムに選べばソルトが重複するようなことはまずないので、同じパスワードでも暗号化の結果は違ってきます(ソルトも保存してあるので、パスワードの照合には支障しません)。
そして、コンピュータという繰り返し作業に強い機械がある以上、いろんな値を同じように暗号化して、かたっぱしから比較していくという作戦は当然存在します。ただ、Yahoo!のパスワードを1つ調べるのに何年もかけるだけのメリットはふつうないので、それだけの時間がかかるようにしておけば実用的には問題ありません。なお、きちんと不可逆になっているか検討するには暗号の専門家や数学者を動員しないといけないので、そういう検討が行われた上で公開されているアルゴリズムを使うのが一般的です。
まず、パスワードの暗号化に時間がかかるようにするという方法があります。不可逆暗号化を何度も何度も繰り返して、たとえば暗号化に0.1秒かかるようになったとします。人間がログインするときに0.1秒遅れても大したことはないですが、しらみつぶしに調べようとする人にとってみればかなりの負担となります。
そして、これはユーザー側の問題となってきますが、パスワードを長くすることも対策の1つとなります。パスワードを1文字増やすごとに、作れるパターンは数十倍になっていきます。逆に、「password」や「123456」といったありがちなパスワードを使っていると、攻撃者は確率の高いそういうパスワードから当たっていきますので、すぐに元のパスワードが判明してしまいます。
(2013/10/25)
暑さの一番の原因はなんだと思いますか?
あなたの支持する政党はどの党ですか?
今のページの関連ページのリストへ
ザ・覚書のトップページに戻る
全ページのリストへ