パスワードを忘れた? アカウント作成
10670543 story
セキュリティ

不正なSSL証明書のチェックをしないモバイルアプリにご注意を 28

ストーリー by hylom
確かにセキュリティに疎い人が設計すると発生しそうである 部門より

SSLで利用される証明書には通常認証局の署名が入っており、それをチェックすることで接続先の組織などを確認できる仕組みになっている。Webブラウザの場合は不正な証明書が使われている場合に警告が表示され、これにより不正なサイトへの接続を知ることができるほか、通信経路に第三者が介入してその内容を傍受する「man-in-the-middle-attack」(中間者攻撃)などを防ぐことができる。しかし、モバイル向けの専用アプリなどで、このような証明書のチェックが行われていない例が多いという(ITmedia)。

テキサス大学オースティン校およびスタンフォード大学の研究者らによる研究(PDF)によると、Amazon EC2のJavaライブラリやAmazonおよびPayPalのSDK、ECサイト構築ソフトウェア、モバイル向けの広告コードなどで、証明書が正しく検証されていない例が確認されたという。また、iOS向けのネットバンキングアプリの40%で、証明書の検証に不備があるとも述べられている(Netcraft)。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2014年02月14日 19時41分 (#2545535)

    「spモードメール」アプリに脆弱性、SSLサーバー証明書の検証不備
    http://k-tai.impress.co.jp/docs/news/20120426_529559.html [impress.co.jp]
    ウェブブラウザではなくメールですがこれと同じ問題ですね
    NTTドコモがOK出したアプリですらこの現状なのでサードパティは言わずもがな…

  • by Anonymous Coward on 2014年02月14日 20時38分 (#2545570)

    >  実際、IO Activeや学術機関が行った調査では、
    > iOS向けのバンキングアプリの40%、
    > Androidアプリの41%で、SSL証明書の認証に不備があるという結果も出ているという。

    ・・・この「1%」に強烈なカネの臭いがするわけですが、いくらくらいだろう?

    • by Anonymous Coward
      審査の違いを考えると 1%勝っていたからって何も誇らしくないと思うんだけどね。
      • by Anonymous Coward

        > 審査の違いを考えると 1%勝っていたからって何も誇らしくないと思うんだけどね。

        それをゴシップフィルターに通すと
        以下すばらしい見出しになるわけですね。

        「やはり安全なのはiOSでした!! Android利用者は口座ハイジャックにご用心!!」

      • by Anonymous Coward

        そもそもiOSの「バンク」アプリとAndroidのアプリを比べているので勝ってはいないのでは?

        調査機関も違うみたいですし単に別々の調査結果を並べただけなんでしょうけど、
        iPhoneユーザーの日頃の行いを見るとiPhoneの方が安全とミスリードさせようとしている?
        …と思ってしまうのが怖いですね。
        気を付けないとiPhoneユーザーと同じ病気になってしまいます。

        • by Anonymous Coward

          > 気を付けないとiPhoneユーザーと同じ病気になってしまいます。

          それは病気ではなく適応です。

          細菌やウイルスに対しての免疫力をつけることは、細菌やウイルスと同じになることではないですからね。

  • by Anonymous Coward on 2014年02月14日 19時33分 (#2545532)

    接続しようとしているサイトの証明書であるかどうか(Webブラウザであればアドレスバーの確認)をしないと。

    • by Anonymous Coward on 2014年02月15日 0時43分 (#2545660)

      接続しようとしているサイトの証明書であるかどうか(Webブラウザであればアドレスバーの確認)をしないと。

      試したことないでしょ?違うサイトのSSL証明書が使われている場合、IEでもChromeでも「問題がある証明書を使用しています」とちゃんと警告が出ますよ。
      (例えば google.co.jp にこうやって [173.194.38.88]IPアドレスでアクセスすると、証明書のドメイン名とアクセスしているドメインが違うので警告が出ます。)

      親コメント
      • by Anonymous Coward on 2014年02月15日 11時27分 (#2545766)

        URL直接叩きじゃない人もいるから、誘導される場合を考えると証明書のDNまでチェックしないとあかんよね。
        本来はそこまで毎回やることが公開鍵証明書というかPKIの運用の前提ですよ。

        親コメント
        • DNS(SEC?)を枠に含めるかによるでしょうけど、初回に確認できてれば、基本後はURL見てOKな気はします。
          ただ、もろもろ危険はあるので、毎回が安全ではありましょうね...

          # というか認証局でのトラブルがいくつかあったので、端末側が安全と判断できても危険の場合があったりして
          # そうなるともうPKI的にはどうしようもないなぁ...

          --
          M-FalconSky (暑いか寒い)
          親コメント
          • by Anonymous Coward

            まあ、URLをちゃんと確認しないといけないのですが、ここを怠る人も一定数いるでしょうから、やはりPKI自体の
            限界というかがあるわけですよねぇ。単にChainされている署名検証とRevocationのチェックだけでも、ちゃんとやっていない
            デバイスは多数の上に、そもそも人間に頼っている部分があるので。

      • by Anonymous Coward

        話を理解してない阿保

        • by Anonymous Coward

          ね。分からないなら書かなきゃ良いのに。

        • by Anonymous Coward

          不正な証明書かどうかチェックしていないのが問題、っていう話なんだから、「証明書が正当かどうか」だけチェックすれば解決でしょ?
          それに対する「それだけじゃ駄目だよ、~のチェックもしないと」というコメントに、「それは元々正当かのチェックに含まれています」というレスが付いてるわけだけど。
          話が理解できてる?

  • by Anonymous Coward on 2014年02月14日 19時58分 (#2545548)

    仕組みを作る側も苦労してるのは分かるけど、複雑にすればするほど開発者の負担になる。
    開発者にとって、本来注力すべきはそのアプリ自体なのに。
    不十分な実装の原因が開発者に帰されるとしたら、今後アプリの作り手は減るんだろうな。

    要するに、開発者が特段意識しないでいいくらいのライブラリがなきゃだめだろう、と。
    問題が見つかってもライブラリを更新するだけでいいくらいな。

    • by JULY (38066) on 2014年02月15日 8時38分 (#2545722)

      モバイルアプリの開発環境は知らないけど、単に SSL/TLS のライブラリを呼ぶだけじゃない? 少なくとも SSL/TLS を一から実装する事はないだろうし。

      ただ、処理系やライブラリによって、証明書の検証がデフォルトで有効か、無効か、という事はあるかな。
      昔、PHP でオレオレ証明書でエラーにならない件を調べていたら、SSL コンテキストオプションで証明書の検証がデフォルトでオフだったのを見つけた事があります。

      PHP: SSL コンテキストオプション [php.net]

      verify_peer boolean
       SSL サーバー証明書の検証を要求するかどうか。
       デフォルトは FALSE です。

      これがデフォルト True だったら、「開発者が特段意識しないでいい」かもしれないけど、仮にそうだとしても、「False にすればエラーにならないよ」という Bad Know How に頼る開発者は後を絶たないだろうなぁ。

      証明書の検証なんて、大抵、パラメータ一つの話で、単に「理解しているか否か」であって、それを「開発者の負担」と言われてもなぁ。

      親コメント
      • by Anonymous Coward

        ちゃんと信用できるルート証明書の管理と更新を忘れないようにね。

      • by Anonymous Coward

        いちいちアプリごとに車輪を再発明しないでブラウザ使えばいいんだよ。ブラウザはこういう点には非常に気を使って開発されてるんだから。

        • by Anonymous Coward on 2014年02月15日 13時11分 (#2545797)

          > いちいちアプリごとに車輪を再発明しないでブラウザ使えばいいんだよ。
          > ブラウザはこういう点には非常に気を使って開発されてるんだから。

          ブラウザコンポーネントにおいて、

          iOSはアップデートでコンポーネントをAppleが勝手に変更してくるのでまったく頼れません。
          ちなみにSafari以外のブラウザコンポーネントを使うとリジェクトです。

          Androidは機種間相違があるので、
          きっちりやろうとすると対応機種を大きく絞り込み続ける必要が発生します。

          結局、スマホのブラウザコンポーネントは
          社会的インフラとして存在するレベルの動作プラットフォームとしてまだ未成熟、とは言わざるを得ず、
          このため各企業が自力で実装を行っている側面があります。

          親コメント
    • by Anonymous Coward

      でもってタレコみではそのライブラリがチェックしてねぇ!って言ってるんじゃない?

      # そもそも開発者の負荷が高くなるからセキュリティチェックがザルで
      # いいという意見の段階で相手にする必要もないわけだが・・・

      • by ymasa (31598) on 2014年02月15日 8時51分 (#2545724) 日記

        OpenSSLは証明書を見る見ないをプログラムで決められる。

        親コメント
        • by Anonymous Coward on 2014年02月15日 10時37分 (#2545750)

          opensslの0.9.7ぐらいまでだったか、付属のSSL通信のサンプルがサーバ証明書の検証をしていなかったんじゃなかったかな。
          これをコピペしてそのまま使う無能なIT土方が世界的に居て問題を引き起こしたらしく、
          仕方なく本家のサンプルが検証するように変更されたとか。(要出典)

          親コメント
      • by Anonymous Coward

        > でもってタレコみではそのライブラリがチェックしてねぇ!って言ってるんじゃない?

        iOSでは実際そういうバグ(とされています)がありましたが、
        今回の場合はアプリの作りが悪い
        (アプリ自身が持つSSL鍵の管理やSSL認証処理がずさん)ことが原因の話に見えます。

        ただ、SSL証明書の厳密なチェックをすると、
        事業者側の運用負担も上がりますし、
        政府当局の監視などもやりづらくなるものですので、
        どこまでが本当に手落ちで、
        どこからが意図的なものかは正直判断がつきづらいのが実際のところ。

        • by Anonymous Coward

          確かにアプリ開発者にとっては負担が増えることになるでしょうね。
          もしかしたらSSL証明書を売りたい事業者が・・・

          単純に自分のサーバーと通信したいだけだったのに、わざわざ証明書とってSSLで通信させろってことでしょ
          自作CAで自分用の専用SSL証明書を使ってだとダメだと言われても・・銀行のアプリとかならわかるが、自作のくだらない(失礼)アプリにもってなると・・

          • by Anonymous Coward on 2014年02月15日 1時45分 (#2545677)
            > 自作CAで自分用の専用SSL証明書を使ってだとダメだと言われても

            自分のサーバーと自分のクライアントで閉じているのであれば、オレオレ証明書は十分意味があると思うんですよね。
            そのCAを信じるのはクライアントの自由ですからね。
            その場合でも、ちゃんとそのCAかあるいは配下にあるCAが発行した正しいサーバー証明書であることの検証はしなければならないと思いますが。
            親コメント
      • by Anonymous Coward

        ># そもそも開発者の負荷が高くなるからセキュリティチェックがザルで
        ># いい
        どうしたらそう読めるのか知りたいところだ。

    • by Anonymous Coward

      それ本当に"開発者"?
      技術力がないのをライブラリのせいにしてるだけでしょ

    • by Anonymous Coward

      ネットバンキングとかの金銭取引を扱うようなものでもチェックが甘い、って言ってるんじゃないの?
      顧客の金銭を扱うくせにセキュリティ確保が開発者(開発側)の負担になる、なんてことをいってるんだったら、そんな会社は潰れてしまえ、と思いますが。

      開発者個人あるいは受託側として言ってるんなら、ちゃんと見積もって必要性を説明しろ、と思いますね。

typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...