186::Beta 旧「はてなダイアリーへの要望」を淡々と記録するよ@beta

2003-09-23

[] http://d.hatena.ne.jp/HiromitsuTakagi/20030923#p2

はてなの安全性を考える

以前から気になっていたのがここのアクセス制御の弱さだ。致命的ではなく、対策方法はそう単純ではないため対応してもらえない可能性があるので、また悪意ある者には既にわかりきったことであろうから、ここに書くことにする。5月12日の日記に頂いたコメントによれば、「はてなダイアリーへの要望」というキーワードをこのように本文中に書いておくと、運営者の目にも触れるらしい。

はてなにログインすると、「rk」という名前のcookieが発行される。その内容は、

rk=e3ver6k2e587nuyiu6o38rjwww84m3

といったように30文字のランダムっぽい文字列となっている(上の値は架空のもの)。有効期限は10年間と指定されている。

この30文字をキーとしてセッション追跡(アクセス制御)が行われているわけだが、この30文字は、ログアウトしてログインし直しても、再び同じ値のキーが指定される。ログインを越えて不変の値であるので、これは「セッションID」ではない。

パスワードを変更した後、再ログインしてみても、同じ値のキーが使われる。したがって、パスワードを暗号化やハッシュしたものなどでもない。

実は、この30文字は、最初にユーザ登録したときに「仮登録のご案内」として送られてくるメールの、

下記URLに接続してユーザー登録を完了させてください。

http://www.hatena.ne.jp/register?mode=register&mail=...&randomkey=e3ver6k2e587nuyiu6o38rjwww84m3

の下線部と同じ値になっている(上の値は架空のもの)。

どうやら、ユーザ登録した直後に生成されたランダムキー(もしくはアカウント名を暗号化したものかもしれない)が、永久に認証用として使われているようだ。

ということは、一度この値を盗まれるともうどうしようもなくなるということだ。パスワードを変更しても乗っ取られる状態は続いてしまう。アカウントを放棄するしかない。

この安全レベルは、はてなの当初の「人力検索サイト」のサービスでは、それなりに妥当なものだったかもしれないが、はてなダイアリーにとっては、ちょっと不十分であるように思える。

解決方法にはいろいろ考えられるが、標準的な方法は、セッションIDを使うことだ。ログイン時に、新たにランダムな文字列(セッションID)を生成して、cookieにセットし、そのIDからユーザを検索できる管理表をサーバ側で管理する。ブラウザからのアクセスがあると、cookieとしてセッションIDが送られてくるので、それを元にユーザを検索して、ユーザごとの処理を実行する。

ただ、この改善が、現行システムの都合で簡単ではない可能性がある。その場合に、とりあえずの対処として、(本当にこのシステムでうまく実現できるかどうかはわからないが、)現在使用している30文字のランダムキーをログインの度に変更してしまう方法が考えられる。

ユーザの自衛策としては、

  • こまめにログアウトしてcookieを消去しておくことにより、cookieを盗まれる機会を減らす。
  • cookieを盗まれるセキュリティホールが発覚していながらパッチがまだリリースされていないブラウザを使うのを避ける。

ことなどが挙げられる。

http://d.hatena.ne.jp/HiromitsuTakagi/20030923#p2

[] http://d.hatena.ne.jp/HiromitsuTakagi/20030923#p3

はてなダイアリーへの要望

以前に書いたように、リンク元表示は350件程度を超えるとそれ以上追加されなくなるのだが、最近、この日記では、2日ほどでそれが埋まってしまうペースになってきた。やむを得ず、空っぽの日記を書いて別の日にリンク元を収集しては消すということを繰り返している。せっかく見に来ていただいても空っぽで申し訳ないところだ。

リンク元を埋め尽くすURLの大半はアンテナであり、それらをリンク元表示に含めない機能が欲しいところだ。以前書いたように、とりあえず、はてなアンテナを含めない機能は簡単に実現できるだろう。

さらにd.hatena.ne.jpも外せる機能が欲しい。はてなダイアリー内からのリンクは別のところにリストされるので外しても困らない(アクセス件数は不明になるが)。一方で、日記ページ上にアンテナモジュールを設置している方からのジャンプがリンク元表示に記録されることで、リンクされていない日記がリンク元として表示されるのが邪魔になっている。

さらに、パワーユーザ向けに、排除するURLのパターンを正規表現で登録できるようにすることもそう難しくはないと考えられる。

http://d.hatena.ne.jp/HiromitsuTakagi/20030923#p3