なぜハッシュ関数はユーザーに直接活用されないのか?

このQ&Aのポイント
  • ハッシュ関数はユーザーに直接活用されないのはなぜでしょうか?
  • ハッシュ関数を活用する方法はあるのか?
  • ハッシュ関数の活用が進まない理由は何か?
回答を見る
  • ベストアンサー

なんでハッシュ関数はユーザーに直接活用されない?

何故でしょう? 一番根本のハッシュというか種パスワードみたいのはそりゃ秘匿に充分気を使うから大変かもですが しかしひとつだけに絞れるわけだし 電卓みたいなデバイスを考えてもいいし せっかくインターネットという真の意味でグローバルな(アメリカ一極化という意味でなく)ネットワークがあるのに URLのところにハッシュ値を入れれば即対応する内容が表示されればそれでいいのでは? 認証させたけりゃIDパスワードの2要素で充分だし そのIDパス自体もハッシュで決めればいいし 上流でハッシュ変更したら自動的にIDでもパスでも順番に変更が反映されていくような プロトコルでも開発して全Webサービスが実装すればいいし ハッシュ関数なんてすごいものがありながら何で活用されていないのでしょうか?? 単純に不思議です 一昔前なら誰かがチラとこういうアイデア出せば飛びついて無理やりにでも実装したのに 少し時期がすぎると誰も見向きもしないし、で今熱いのはアンドロイドとかみたいですが 相変わらず情報セキュリティみたいのはダメダメだし もうあきらめてハッシュ電卓にしたらどうですか???

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

「良さそうなアイディアのものもあれば意図不明のものもある」という感想です。 (1) 種パスワードを一つにし、手元のパスワードが単一でも複数のパスワードを利用できる アリですね。 っていうか公開鍵暗号ってそんな感じのことやってますよね。 主要な処理はハッシュでないとは言え、公開鍵暗号は事実上一方向の関数を使って互いを認証します。 その秘密鍵を利用できる人を判別するため、秘密鍵にはパスフレーズをかけます。 全体としての仕組みはともかくとして、ユーザに見える「単一のパスワードを入れれば全部解決」という部分は、ご提案とあんまり変わらないですよね。実運用もされて現在のところ安全ですし、ビット数や関数を変えればすぐにより安全な運用に移行できます。 あとは、シングルサインオンとかOpenIDとかの認証系も、ハッシュではないとは言え目的は似ています。 (2) URLのところにハッシュ値を入れれば即対応する内容が表示される hash値でリソースにアクセスするというと、Winnyとかtorrentみたいなのを想定してるんでしょうか。 これはかなり、いけてない、感じがしますね。理由は三つ。  *hash関数は一方向的* 一方向的ということは、探索方法が必要だということになります。テーブルで管理するのでは爆発しますからDHTか何かを使うことになりますが、それってDNSと比較して何が嬉しくなるのでしょうか。DNSであれば一回で済んだアクセスが、DHTであれば複数回になるかも知れません。またコンテンツすべてがhash値を持つと言うことは、解決する側にかかる負担が大きくなると言うことです。解決にはより多くの時間がかかるようになる気がしませんか。やってみないと分からないですけどね。  *同一サーバ上のコンテンツが分かりにくくなる* 同じサーバの別コンテンツは同時にアクセスされます。yahooのトップページにアクセスすると画像含め100くらいのHTTPネゴが起きるそうです。それ全部が違うハッシュを持つのでしょうか。ハッシュ解決に100msかかるとしたら、yahooのトップページを出すためだけに10秒かかってしまう計算になります。北海道から東京へのアクセスでは、実際にこういうことが起きてるんですよ。 あるいはここの質問サイト、隣同士の質問は別の内容ですが、連続してアクセスされやすいでしょう。アクセスのたびにハッシュ解決問い合わせをすることになりますよね。これも効率的じゃないです。  *コンテンツ流通責任範囲* 現在のwebの形態には、「誰がコンテンツを持つか」っていう責任範囲があります。コンテンツにhash値を与えて多くの場所に分散させた場合、責任を(中略)コンテンツの削除(以下略)。 ただ、世界を変えてやるくらいの意気込みなら、アリだと思います。 > 一昔前なら誰かがチラとこういうアイデア出せば飛びついて無理やりにでも実装したのに アイディア単体だったらそれこそ70年代にはもう征服されているでしょうね。 まともに利用する土台があってそこに実装したとなれば、今でも大いに評価されます。 OAuthなんか、仕組みはボロボロなのに今とってもアツいですからね。 こういったことを考える場合は、 ・従来と比較して、何が嬉しくなるか をきちんと明示すると、より理解を得やすいですよ。 またセキュリティや認証系を扱う上では、 ・ユーザに何が見えるか ・どこを、何が流れるか がはっきりしないと、話として成立しません。 考えていらっしゃること自体は面白いので、次はぜひ、もう少しわかりやすくお願いします。

kasoupctte
質問者

お礼

ご回答ありがとうございました。

その他の回答 (3)

回答No.3

確かに、何かパスワードの保存とか暗号化以外にもハッシュは使えそうな気がしますね。 ただ、一か所での認証以外でハッシュを利用する際はやはり種?の扱い方が問題になります。 どちらにせよ種がばれたら危ないわけなので、一意であるipやドメインのままでも意味は変わらないと思いますが。 プロトコルの例がありますが、実装した場合のハッシュの切り替え方も問題はあるでしょう。 パケットの方に切り替え前、後の情報を持たせるのでしょうか。 持たせないとしたら、切り替え時に遭難するパケットが出てくるでしょう。 可用性がガタ落ちです。

kasoupctte
質問者

お礼

ご回答ありがとうございました(^^) プロトコルは何とかなるだろ程度で言ってみただけだったので 具体的に考えるよい機会になりました(^^)

kasoupctte
質問者

補足

種バレ対策は直接には無くて、変更をしやすくして被害拡大防止が速やかに行えることと、あとは電卓set時の覗きやらは社会的マナーっぽく啓蒙?するしかないかもです。 ipやドメインも名前とその実体という構造は同じなので将来的にはあらゆる階層構造がフラットになってURLボックスに直接ハッシュ値を打ち込むとか? プロトコルまで行きませんが自分でやってみたことから考えてみると、 ネットの窓口をブラウザのURL入力ボックスとして、 まず独自ドメインを使って自分で決めたURLを入力→そこで開くページにオンラインブックマークサイトへのリンクを書いておいたのでクリック→自分のアカウントのオンラインブックマークサイトが開くのでそこから予めブクマしておいたメールなどの各種サービスへ飛ぶ ここで、オンラインブクマに複数のサービスサイト登録済みだが、事情あって 全てのパスワード(以下pw)を変更したいとする サイト側で対応が必要だが、IDの他にそのサイト専用の種pwをアカウント登録時に設定必須とする この種pwは最初の設定時に入力する以外、二度と画面に表示されることはない オンラインブクマの機能又は、それ専用の機能を持つWebサービスでも良いが(あるとして)、 pwの変更回数を1加算する信号を各サイトに送出 受信したサイトはそのサイト専用種pwを使ってpwを更新 サイト専用種pw+ID+変更回数(0始まり)←これを1加算 でハッシュを取ってそれを新pwとする 加算後の変更回数をオンラインブクマ(又はpw自動変更webサービスサイト)へ通知 オンラインブクマのQRコードへ変更反映 こんな風に考えましたが、各パケットの疎通については、現状ではまずいでしょうか?

  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

> SHA256は衝突未発見です。 ハッシュは原理上必ず衝突が発生します。 たとえば256ビットのハッシュ値を出力するハッシュ関数に 2の256乗パターンを超える入力を与えると 少なくとも1組のハッシュ値は同値になります。 おそらく衝突耐性を持つという話をどこかで見たのでしょうが、 衝突耐性を持つことは衝突しないという意味ではありません。

kasoupctte
質問者

補足

wikipediaの巨大数の項目に天文学的な巨大数というのがありますがそこの説明によるとハッシュ関数MD5の2の128乗でも実質的に0に等しいとありましたので 少なくとも衝突が発見されるまではSHA256でいいかなと思いました。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

> URLのところにハッシュ値を入れれば即対応する内容が表示されればそれでいいのでは? ハッシュ値にする意味が分からない。 URLは人間に分かりやすいようにと作られたものなのに、逆行以外の何者でもない。 (コンピュータに分かりさえすれば良かったなら、今でもIPアドレスをそのまま打ち込んでいるでしょう。) 今だって、URLのところにURLを入れたら即対応する内容が表示されてるんだからそれでいいでしょう。 > そのIDパス自体もハッシュで決めればいいし ユーザーがハッシュを通す意味がない。 (その必要があるならユーザーのあずかり知らぬバックグラウンドで自動的にやればよい。) ハッシュ関数みたいなプリミティブな技術はエンドユーザーが直接使うようなものじゃないです。 活用なら電子署名とかの応用がたくさんある。 なんか一連の質問を見ているとハッシュについて盛大に勘違いしてるように思えます。 (ひとつだけに絞れる、あたりから少なくとも衝突するということは知らないみたいですし。)

kasoupctte
質問者

補足

SHA256は衝突未発見です。

関連するQ&A

  • あらゆる種類の情報をハッシュで一定量に揃えれるなら

    0バイトの情報(情報が無いという情報)でもデータセンター1棟丸ごとの情報でも、もし仮にハッシュ関数を通すことができれば、一定のビット数で要約ができるのなら(他の情報と区別がつけられるのなら)、情報の表す意味と、その情報の特定性は、切り離す方向で考えたほうがいいのでしょうか。 例1 プログラムの作成時、関数名を決めたいが文字数制限があってうまく決められない→ 自分で充分に満足するような関数名をまずメモ帳にでも書いてみて、プログラムソース上はそのハッシュ値で関数名を決めてしまう。(当然、読みづらいソースになるので、HTMLのブラウザのような専用ビューワやエディターで閲覧編集する) 例2 あるWebサービスである名前でIDを取りたいが既に他人に取られていて自分のものとして使えない→諦めてハッシュをIDとする(それでも取られていたら変更回数として0でも末尾につけてまたハッシュする) そのWebサービスで取りたかったID名との対応表みたいのもまたネットに置いておく(オンラインブックマークにコメント記入するなど)

  • パスワードについて

    エラー番号 : 0x800CCC92 のエラー対策を読んでいると,「パスワードを変更するか…」の文章がよく見られました。 それでODNのサイトに行ってパスワードを変更しようと思ったのですが,ログインするIDとパスが分からなくて 変更することができません(汗 唯一IDとパスを知っている人が居ないので,どうしてもパスワードを変更することが出来ないのですッ! どうしたらいいでしょうか…??;

  • id managerのパスワードがわからなくなりました

    今まで使っていたid managerのパスワード変更をしたのですが いざ新しいパスワードで開けてみようとすると パスが間違っているみたいです データを取り戻すには どうすればいいのでしょうか??

  • 変なアドレス?について

    よろしくお願いします。 アドレスに「プロトコル://ユーザーID:パスワード@コンピューター名:ポート番号/パス名」で書くアドレスがあることを知りましたが、いったいどんなアドレスなんでしょうか? 例として「http://*****:*****@www.***.co.jp:80/***.htm」と言う感じです。 新しいアドレスなんでしょうか?

  • ニコニコ動画の秘密の答えを忘れた為パスワードの変更が出来ません!

    前の職場仲間のススメでニコニコ動画新規登録し、僕が入力したコメントに他のユーザーが食い付いて来るのが面白くて夢中になって遊んでいました。 暫くはIDやパスワードを入れなくてもログインボタンを押すだけでログイン出来たのですが、この間久しぶりにニコ動のホームページを開いたらIDとパスを入力しないとログインできなくなっていました。僕はIDとパスは入力しなくてもログイン出来ると思っていたのですぐにIDとパスや秘密の答えを控えておいた紙を探しましたが出てこないので次はパスワードを変更の申請しましたが、秘密の答えを入力しないとパスワードの変更が出来なくなっていたので、それらしい答えを思い出して入力しても答えが間違っており、結局パスワードの変更もログインも出来なくなってしまいました。 新規登録を試みて送信しても「既に登録されています!」と表示され手のうちようがありません。忘れてしまった秘密の答えを教えてもらえる方法や再びニコ動にログイン出来る方法を教えて下さい!お願いします!

  • IE上で動くソフトのパスワードを新しいPCに移植したいのですが

    IE上で動くソフトでIDとパスワードを入れなければならないものが たくさんありますが、いつも記憶させているので覚えていないものも あります。 それらはクッキーに記憶されていると聞いたことが有るのですが、 新しいPCを買った時に、クッキーをコピペすればIDやパスを 入れなくても良くなるなんてこと出来るのでしょうか? そう簡単に出来たら、パスの意味がなくなるので出来ない気がしますが、 出来るようでしたら教えてください。

  • OKWaveのパスワードについて

    最近新しいパソコンを買ったのですが、OKWaveに入るときに、ほぼ必ずIDとパスワードを求められます。 IDは覚えているのですが、パスは失念してしまって、OKWaveから再送してくださったパスを使っています。 できればパスも自分の好きなものにしたいのですが、そんなことは可能なのでしょうか。 もしやり方をご存知の方がいらっしゃいましたら、自分の好きなパスへの変更の仕方を教えてください。 よろしくお願い致します。 あと、IDとパスを入れるところに“今後このメッセージを表示しない”という内容の文言があるのですが、そのチェックボックスにチェックを入れてもIDとパスを求められるのですが、どなたかこの文言を出ないようにするやり方も教えてください。 以上2点、よろしくお願い致します。

  • AppleIDとパスワードについて

    さっき友達のiphone4sを私のパソコンからiTunesに繋いでios6にアップデートしたんですけど、本体のIDとパスが私のものと一緒になってしまいました。 その友達のiphoneからMyAppleIDのページを見ると元のIDとパスなんですが本体だけが違います。 本体のIDとパスを元のIDとパスに変更しようとしても「このIDとパスワードはすでに使用されています」といった感じのエラーがでます。 どなたか解決方法がわかる方いましたらよろしくお願いします。

  • 3DSのネットワークIDのパスを忘れた場合

    子供の3DSですが、ネットワークIDのパスワードを忘れてしまいました。 メールアドレスもわからないので、保護者設定で新しくメールアドレスを設定。 任天堂から変更メールが届きました。 ネットワークIDのパスを忘れた場合にメール送信というのがあったのですが、 受信確認が完了していませんと表示されてしまいます。 再送信で送ってもメールは届きませんでした。 受信確認はネットワークIDのパスがわからないとできないと思うのですが、 どうなのでしょう? どうしたらパスワードが送られてくるのでしょうか? よろしくお願いします。

  • win2000 ログオン時のデフォルトユーザー変更

    起動時のユーザーIDがデフォルトで設定されているみたいなのですが変更する方法を教えてください。 仕事で使っているPCなのですが起動時に前使用者のIDが入力されたボックスが出て(passはブランク)自動ログインしエラーになります。そこであらためて 自分のIDとパスでログインをしているのですが 最初から自分のユーザーIDでログインするように するためにはどうすればよいでしょうか? コントロールパネルの「ユーザーとパスワード」 には前使用者の情報は無いのですがなぜか 前の使用者のIDがログイン時に出ます。 よろしくお願いします。 使用機種:Dell Latitude(ノート) OS:Windows2000 home edition