パスワードを忘れた? アカウント作成
23937 story
インターネット

産総研とヤフー、フィッシング対策プロトコルの実装例を公開 29

ストーリー by nabeshin
フィッシングがなくなるか 部門より

hide.jikyll 曰く、

一年ほど前に「ヤフーと産総研、フィッシングを防止するパスワード相互認証技術を開発」というストーリーが掲載されていますが、この認証プロトコル「HTTP Mutual」を利用するためのApacheモジュール「mod_auth_mutual」とFirefoxベースのWebブラウザ「MutualTestFox」が産総研の情報セキュリティ研究センターのサイトで公開されています(ITmedia Newsの記事プレスリリース)。6月から「Yahoo!オークション」において実証実験も開始されるとのこと。なお、現在のところMutualTestFoxはWindows版のみの提供となっていますが、Firefox(3.0β5)との差分ソースが公開されているので自前でコンパイルすれば他のOSでも利用できると思われます。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 期待 (スコア:2, 興味深い)

    by fcp (32783) on 2008年04月23日 21時15分 (#1335092) ホームページ 日記

    ついに実装が公開されたのですね。この技術が広まって、ブラウザーにはパスワードを入力する専用のテキストボックスがあるのが当たり前、それ以外の場所にパスワードを入力する必要などないのが当たり前になってくれたら良いと思います。

    ところで、 2007 年 3 月の発表当時のプレスリリース (産総研 [aist.go.jp]、 Yahoo [yahoo.co.jp]) と Internet Watch の記事 [impress.co.jp]では「ブラウザ拡張機能を試作しました」「Web ブラウザ『Firefox』の拡張機能を試作している」と書かれていて、この点もクライアント側の導入が簡単で素晴らしいと思っていたのですが、今回の実装は Firefox の改造版のようですね。何か理由があるのでしょうが、これだとクライアント側のハードルが高いので、少し残念です。

    (それとももしかしたら、 Firefox 機能拡張より、 Firefox を改造して作った別のブラウザーの方が多くの人にとってはハードルが低い、なんてことがあるのでしょうか?)

    それと、細かい話ですが、 Internet-Draft [ietf.org] というのはあくまでも draft なので、「正式版」と呼ぶ [aist.go.jp]のはいただけません。そのうち RFC になることに期待します。

    • by Anonymous Coward
      そんな何十年後の話になるんだか。
    • by Anonymous Coward

      Internet-Draft というのはあくまでも draft なので、「正式版」と呼ぶのはいただけません。

      ふーん、わざわざ「」付けて混乱させるのもどうかな。リンク先をみると、IETFに提出した正式な仕様書と書いてありますが、これは(議論もおわり合意に達した意味での)「正式版」の意じゃなく(これをそのまま手を入れずにIETFに出しましたよ、という意味の)「正式版」だとわかるけどね。
  • by Anonymous Coward on 2008年04月23日 20時05分 (#1335061)
    mutualext.dllのソースコードが含まれていませんね。
    あとnsIMutualAuthState.xptの元になるidlが含まれてないのが気になりました。
    • お試し頂きながらすみません。
      勘違いで別アーカイブの .dll ソースのアップロードを落としてしまいました。
      Web の方は修正してあります。

      そもそもVCにビルドが依存してたりするんで他OS対応がまだ難しいかも知れませんが、僕自身 Linux 版 Firefox を使ってるんで、余裕があればなんとかしたい、とは思います。

      # 中の人なので(ry
      親コメント
  • 中身拝見 (スコア:1, 興味深い)

    by Anonymous Coward on 2008年04月23日 20時31分 (#1335077)
    とりあえず、brandingの方が長いのに吹いてしまった。というか、これ、ソース全部じゃなくて、「本体に差分を当てないといけない部分」のソースじゃないですか。mutualext.dllのソースは含まれていないので、タレコミは何か誤解がある気がします。少なくとも他のプラットフォームの人は当てても無駄ですよ。

    以下、野暮コメント

    +      if (nsDependentCString(value).Equals("AUTH SUCCEED")) {
    まあ、やりたいことは分かりますが、"AUTH SUCCEED"はリテラルなので、nsAString流にいくなら、EqualsLiteralですね。

    if (nsDependentCString(value).EqualsLiteral("AUTH SUCCEED")) {
    でも、これって、結局::strcmpと変わらないので

    if (0 == PR_strcmp(value, "AUTH SUCCEED")) {
    の方が万人向けだと思います。

    あと、NS_COPY_CACHE_TO_CHANNELは何故マクロなのでしょうか。

    +#define NS_COPY_CACHE_TO_CHANNEL(name) \
    +  do { \
    +    char *_val; \
    +    nsresult _rv; \
    +    _rv = mCacheEntry->GetMetaDataElement(name, &_val); \
    +    if (NS_FAILED(_rv)) return _rv; \
    +    nsHashPropertyBag::SetPropertyAsACString( \
    +      NS_LITERAL_STRING(name), \
    +      nsDependentCString(_val) \
    +      ); \
    +    nsMemory::Free(_val); \
    +  } while(0)
    inline関数でも別にいいんですよね、これは?コンパイラが信用できないとか、そういう話なんだろうか…。
    • by Anonymous Coward
      > if (0 == PR_strcmp(value, "AUTH SUCCEED")) {
      > の方が万人向けだと思います。

      こっちの方が自然じゃないですか?
      if (PR_strcmp(value, "AUTH SUCCEED") == 0) {
      • Re:中身拝見 (スコア:2, 参考になる)

        by kuy (23721) on 2008年04月24日 6時00分 (#1335197) ホームページ
        そういう風に書いておくと、「==」を「=」とタイポしたとしても左辺は定数であるためコンパイルエラーが発生します。
        つまり意図しない代入を防げるってわけなんです。
        親コメント
        • > 「==」を「=」とタイポしたとしても左辺は定数であるためコンパイルエラーが発生

          そういうバッドノウハウは賛否が分かれると思います。
          ていうか、これが話題になると宗教論争になることが多いし…

          でも、今回の場合、

          > if (PR_strcmp(value, "AUTH SUCCEED") == 0) {

          こっちの順番でも「==」を「=」とタイポしたらエラーになりますね。
          親コメント
          • by Anonymous Coward
            >> 「==」を「=」とタイポしたとしても左辺は定数であるためコンパイルエラーが発生

            >そういうバッドノウハウは賛否が分かれると思います。

            そもそもいまどきのコンパイラは
            if (a=0)
            とか書いたら警告出すから
            よほどの粗忽者でもなければ気がつく。
    • by Anonymous Coward

      +#define NS_COPY_CACHE_TO_CHANNEL(name) \
      私は、上記マクロの中でnsMemory::Free(value);せずにreturnしているのが気になりました。
      • by Anonymous Coward
        たしかに、これは漏れていますね。
  • by Anonymous Coward on 2008年04月23日 22時34分 (#1335122)
    何で日本語版がないんだ! 俺が読めねーぢゃねーか!
    どんな実装にしたのか wktkしてたのにひどい仕打ちだ。

    日本人ならすべて日本語で書けとまでは言わないが、日本語版ぐらい用意してほしい。

    俺が英語を読めない件については無視することにして、
    とりあえず、文句を言っておく。

    そんなわけで、プロトコルの仕様の日本語訳を誰か作ってお願いぷりーず
  • by murasakimania (36070) on 2008年04月23日 23時24分 (#1335148)
    面白そうな技術だし かなり興味ひかれるものがある。
    しかしMutualTestFoxって名前はどうなのよ?
    仮の名前なのかもしれないがもっとマシなネーミングはなかったのかと
    外部に公開するものにこのネーミングセンスはないわ。
  • 技術的概要 (スコア:1, 参考になる)

    by Anonymous Coward on 2008年04月24日 17時17分 (#1335531)
    プロトコルが気になる人はまずこちらをどうぞ。
    おおいわのこめんと [www.oiwa.jp]
    あと、昔のやつですがこちらにも紹介があります。
    @IT [atmarkit.co.jp]

    あとはサイトに論文 [aist.go.jp]があるのでそちらをどうぞ。
    あ、slashdot.orgの画像が使われてる…
    • by Anonymous Coward
      ID・パスワードの入力フィールドが論文では左側なのに、
      MutualTestFox では右側になってますね。
      右側の方がいいという結論なんだろうか・・・。
  • by Anonymous Coward on 2008年04月23日 18時18分 (#1335012)
    httpまったり?
  • by Anonymous Coward on 2008年04月23日 18時42分 (#1335021)
    Mutual Authentication Protocol for HTTP draft-oiwa-http-mutualauth-02 [ietf.org]

    高木先生が去年の12月にIETFに行って来た [takagi-hiromitsu.jp]話はこの絡みですね。
  • by Anonymous Coward on 2008年04月24日 19時42分 (#1335608)
    アドレスバーに認証されたユーザ名を表示するそうだけど、フレームなどで複数認証されているコンテンツを表示する場合はどうすべきなんだろう?
    やっぱりフレーム内ページは対象外?
  • by Anonymous Coward on 2008年04月25日 15時59分 (#1335959)
    いったいこの人達は自分たちのプロトコルを(日本語で)何と呼んでほしいのか。
    • HTTPパスワード相互認証プロトコル
    • HTTP Mutual アクセス認証
    • HTTP相互認証プロトコル
    ブレがあるというか、それぞれの定義がはっきりしないように思う。

    あと、別の指摘にもあるがブラウザ本体を配布するという方法にも疑問がある。「ちょっと試す」ハードルを 低くする効果はあるにしても、ブラウザ本体の脆弱性を修正することを放棄している(自動更新を 無効化している)以上、常用は決してお勧めできない。 Yahoo!オークションで実証実験するらしいが、その期間中の対応(ユーザへの通知も含めて)は どうするつもりだろうか。6月というとFirefox 3正式リリース後か...

    ブラウザについては、ログインボタン(認証ボタン?)/ログアウトボタンにはtooltipがあるとよいと思った。

    もうひとつブラウザについて、パスワード記憶(自動入力)と連携していないのががっかりだった。 技術的には可能だと思うが、複数IDがある場合の扱いが問題だろうか。

    体験サイトについては、ログアウトボタンがあるとよいと思った。せっかくそのためのプロトコルを 持ってるのに。サイトの目的が違うのかもしれないけど、「Basic認証とは違うでしょ?」ってところ をもっとアピールしてもよいと思う。
    • Re:雑感 (スコア:1, 参考になる)

      by Anonymous Coward on 2008年04月25日 21時55分 (#1336095)
      >HTTP Mutual アクセス認証

      俗にbasic認証とかdigest認証と呼ばれてるものは正式名称は、
      Basic access authentication [wikipedia.org]とか
      HTTP Digest access authentication [wikipedia.org]
      なので、それに合わせた名前なのでしょう。
      他は知らない。
      親コメント
    • Re:雑感 (スコア:1, 参考になる)

      by Anonymous Coward on 2008年04月26日 0時55分 (#1336162)

      あと、別の指摘にもあるがブラウザ本体を配布するという方法にも疑問がある。「ちょっと試す」ハードルを 低くする効果はあるにしても、ブラウザ本体の脆弱性を修正することを放棄している(自動更新を 無効化している)以上、常用は決してお勧めできない。
      だから、産総研のブラウザ配布ページ [aist.go.jp]の「利用の注意事項」にも

      あくまでMutualTestFoxの利用は本提案プロトコルの評価にとどめ、一般の Webブラウザとしては正式版Mozilla Firefoxなどの通常のWebブラウザを使うことを 強くお勧めします。
      と書いてあるんだと思いますよ。

      体験サイトのログアウトボタンについては、体験サイトの説明コーナーに

      ログインボタンをもう一度押すとログアウトできます。
      と書いてありました。多分、某大手通販サイトを安全に使うための練習 [hatena.ne.jp]も兼ねているのでしょう。

      #絶対違うのでAC
      親コメント
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...