QRコードのエラー訂正技術を悪用し、指定した確率で別のデータを読み出せるようにするという脆弱性 66
ストーリー by hylom
URLはもう文字認識でよいのでは 部門より
URLはもう文字認識でよいのでは 部門より
NHKが、「QRコードにセキュリティー上の弱点 不正サイトに誘導も」と報じている。神戸大学の研究グループが、QRコードに偽の情報を仕込むことができることを実証したというもの。
この検証を行った神戸大学の森井昌克教授がYahoo!ニュースにて詳細を解説しているが、この問題はQRコードが備えるエラー訂正機能を利用することで、読み取り時に一定の確率で異なる結果が読み取られるようなQRコードを生成できるというもの。この確率はQRコードの生成時に指定できるそうだ。
これを悪用する例としては、たとえばURL情報を格納したQRコードに対し、一定の確率で不正なサイトのURLが読み取られるよう細工をすることで問題の発覚を遅らせたり検証を難しくする、といったものが考えられるという。
また、対策としてはQRコードで読み取ったURLを信用せず、必ずその内容を確認することを提案している。
読み取れない (スコア:2)
私の使っている端末ではリンク先に掲示されているQRコードが読み取れない
灰色のところを白にしても黒にしてもダメ
読み取りをきつくしてんのかなぁ…
Re:読み取れない (スコア:2)
悔しいのでアプリダウンロードしてそれで試したら行けました
http:///~lab [lab]
http:///~lob [lob]
一応ホスト名はちょっと隠しておこうか
この例ではURLの最後のほう一文字が違うだけですね
このままではそこまで使えない(悪用しづらい)んかなぁ
QRコード支払いの方とかどうしてるんだろう
やっぱ認識きつくしたりしてるんかしら 独自チェックサムでもだいぶ行けそうだし
Re:読み取れない (スコア:2, 興味深い)
任意のURL AとまったくそのURLに相関のない任意のURL Bで可能です by 開発者本人。また、実際に存在する銀行のURLで、他のサイト(研究室で確保しているURL)に飛ばすことも実証済です(悪用される可能性があるの、一般公開しませんが)
Re:読み取れない (スコア:2)
え、任意で行けるんですか
文字列の長さは同じぐらいとして、任意の文字列任意の文字列で常に作成可能??
誤り訂正レベルを高くしておいてQRコードを2種類作って、
それをうまく組み合わせる感じで、どこかキーポイントだけ揺らぐような感じにするのかな?
シード(だっけか用語を忘れましたが)を操作してより似たものにすることもある程度できそうではありますね
それでも誤り訂正レベルが低いものであれば自由度は下がりそうですが、
その辺どうなんかなぁ…
Re:読み取れない (スコア:2)
「任意の文字列<->任意の文字列」です
Re: (スコア:0)
AndroidのTwitter公式アプリについてるQRコード読み取り機能で見てみましたが
確かにlobになったデータが読み取れることがありますね
ドメインの部分を書き換えちゃえば、一文字違うドメインなんていくらでも取れそうだから危ないですねぇ…
AQUOS Rは読めない (スコア:0)
AQUOS Rのカメラの読取カメラ → 読み取れませんでした[OK]
Zenfone2のカメラのQRコード → 読める
Norton Snap(アプリ) → 読める
Zenfone2のカメラは読み取った後「キャンセル」を押すとすぐ再読取りするので検証しやすい……
確かに何回かキャンセルを押していると"lob"で読み取りますね
AQUOS RのカメラもWikipediaのQRコードの項目に貼ってあるサンプルのQRコードは読めるので
AQUOS Rがおかしいわけではなさそうです。リンク先のQRコードがエラー訂正ぎりぎりということなんですかね
Re: (スコア:0)
ドコモ純正ICタグ・バーコードリーダー(Ver1.6.0)でテスト
QRコードを可能な限り大きく読み込む → 高確率で~lab
QRコードと周辺画像をまとめて読み込む → 高確率で~lob
テストして余りにも高確率で~lobに当たるので、原因を切り分けてみました。
#端末?
電子カイロF-04GですRe: (スコア:0)
誤り訂正・誤り検出技術ってものは、通常nビットの誤り訂正とkビットの誤り検出が可能なものではないのかね?(nk)
1bitの誤り訂正すら正常に行えないとはどういう処理をやってるんだろ?
Re:読み取れない (スコア:2)
さいしょからわざとギリギリまで間違えてあって、
ここが黒になると解釈Aが、白になると解釈Bが成り立つ、とか言う点が出来ちゃってるんじゃないですかねぇ
# 個人の感想です
Re:読み取れない (スコア:2, 参考になる)
原理的にはそうなのですが、QRコードは間違いを訂正するギリギリまで間違えて、それを少し踏み越えたとして場合、確かに間違いは訂正はできないのですが、間違いであるということがわかります(符号理論でいうところの誤り検出)。QRコードの場合は他の情報に間違えてしまう(符号理論でいうところの復号誤り)ことはほとんどありません(QRコードのバージョンに寄りますが、10^{-15}といった確率)。これを乗り越えないといけないところが(特に一般的に)技術的な要です。 by 開発者
Re: (スコア:0)
(nk) は間違いで (n<k) です
Re: (スコア:0)
灰色のビットはわかりやすい 1 ビットだけど
それ以外の数ビットを白黒反転しているのかもしれませんね
Re: (スコア:0)
k-nビット以上の不定性を用意して2パターンのどちらに振れるかの確率を濃度なりパターンなりで調整するのでは?
おそらくカメラで"正しく"読み取れる位置までアナログに動かす、というのがハックポイントなんじゃないかと。
FDのビット不安定プロテクト (スコア:0)
2値化しきい値ギリギリの灰色にすることで1と0のどちらかに転ぶって事ですか
一方を正しいURLにして他方を誘導したURLにするのって簡単なんですかね
Re:FDのビット不安定プロテクト (スコア:1)
google.com を g88gle.com に転ばせるなら、QRコード使わなくてもできそう。
Re: (スコア:0)
多分だけどその類の攻撃を確率的に発生させるのが肝なんだろう。
読んでみたけど正しいやんって意見を複数発生させられるし、
悪意あるQRコードである事実の発覚を遅らせる事ができる。
そもそもQRコード経由での攻撃機会がどの程度あるのかは分からんが…
QRコードを読んで、そこに認証情報を入力するって定番のフローがまず必要。
Re: (スコア:0)
読み取り結果は人間にはわからないかもしれないけど、読み取りエラー狙った灰色のセルがあるのはバレバレじゃん(もちろんそうと思って注意深く見なきゃ見逃すだろうが)と思った。そして人間ごときにバレバレなら機械が対策するのも難しくなさそうだ。
Re: (スコア:0)
いや、今はデザインバーコードというのあってですね…………
不安定ビット (スコア:0)
QRコードの灰色の部分が、黒にも白にも読み取れる場合があるってことですね。
なんか往年のプロテクト(コロコロフォーマット)を思い出すなぁw
Re: (スコア:0)
「カラー」QRコードにすれば、怪しいかどうか判別ができないかも
つまりあれだ (スコア:0)
マジックで素早く書き加えることで、QRコード決済を横取りできるわけだ
Re: (スコア:0)
中国ではよその店のQRコードの上に自分のコードのシールを貼って横取りする事例が起きているみたいですね
Re:つまりあれだ (スコア:1)
バレ内容に紙かシール貼り付けるのは簡単にやれそうだもんね。
悪用事例がそんなになければ、QRコード決済を脅かすまではいかないのかな。
Re:つまりあれだ (スコア:1)
「バレ内容に」って・・・「バレないように」
Re: (スコア:0)
中国では実際にそういう攻撃が行われている。だからQRコード決済を脅かすには至らないというのもそのとおりなのだろう。
チャイナの電子マネーは大丈夫なの? (スコア:0)
礼賛者の見解(弁解)を求む。
Re: (スコア:0)
だから印刷したQRを読み取る方式については上限規制かけたんだろ?
端末の値段も下がってるから普通の店舗なら端末おいてるから影響はほぼない
Re: (スコア:0)
中国 qrコード決済 犯罪 - Google 検索 [google.com]
少しは努力してくれ
Re: (スコア:0)
犯罪が無いわけ無いだろ…決済やぞ
これらの犯罪がこの話となんの関係が有るの?
Re: (スコア:0)
QRコードをスマホのカメラで撮影して、所定の電子マネー企業に接続して、支払金額が予め表示され、確認の上振り込み処理を許可するのが典型だが、
不正QRコードで不正サイトに誘導されクラッキングの結果、支払い表示金額と実振り込み金額に差が出る可能性はないのか、
と言う懸念だ。
一括現金のみで支払う場合、如何なる詐欺であろうと支払った現金より多くの損失はない。
電子マネーの場合、そうとは限らないから恐ろしい。
Re: (スコア:0)
代わりに電子マネーは履歴が追えますから、詐欺などであることを証明できれば店舗や運営会社、保険会社に損害を押しつけることが可能です。
Re: (スコア:0)
スラドってこういう嫌みを言わないと気が済まない人がよくいるよね。安月給で鬱屈した人が多いのかなとかふと思う。
Re: (スコア:0)
職業病ちゃう?
Re: (スコア:0)
ストレートな悪口なのに嫌みにみえるのか…?
何でや
いつも嫌みにさらされてるとか??
Re: (スコア:0)
きっと嫌味の意味を知らないんじゃないかな。
Re: (スコア:0)
あれがルサンチマンってやつか
Re: (スコア:0)
嫌味というよりは頭の悪いコメントにうんざりしてつい口に出てしまった独り言のようにみえる。
Re: (スコア:0)
> まー頭悪いのはわかるけど少しは努力してくれ
この文脈で元コメを見れば言いたい気持ちは良くわかる、がスラドにそれを求めるのは望みすぎ。
内容の確認 (スコア:0)
つってもURLをコピペ検索してみるくらいしか手は無いよね
最初っからサーチエンジン経由にしれ
スマホ内で完結しブラウザ呼び出すsearch://プロトコルとかさ
Re: (スコア:0)
いっそのことデンソーの鯖経由しないと飛べないようにすればいいんじゃないかと思う
Re: (スコア:0)
それやるとデンソーの鯖が落ちたときとかシャレにならないとか、登録・維持費の分のライセンス料が云々とかで、急速に廃れそう。
この種の攻撃を防ぐ方法はあまりないと思う (スコア:0)
アンチウイルスソフトみたいに常時アクセスするIPやURIを監視する機能が必須
Re: (スコア:0)
単純な機械学習で防げそうな気がする。
Re: (スコア:0)
どれぐらいの濃淡の許容するかという話だと思われるので
割と簡単じゃないかな
要はノイズとして弾く濃淡レベルを高く設定するだけ
QRコードは使用してるセンサー故に
ノイズ除去等の処理は普通に行われてるし
内容を確認 (スコア:0)
そもそも短縮URLかまされた時点で確認のしようがないけどな
Re: (スコア:0)
URLってそもそも論的に発行(印刷元)を信頼するしか無いんだよねえ。
印刷物は幾らでも訂正できるから脆弱 (スコア:0)
うーん、具体的にどう問題なんだろ。
QRコード関係なく、攻撃者が手を加えられるなら何だって危険では?
Re: (スコア:0)
その本質を意識させるべきだって話なんではないかと。
ソースで引用されてる文言
決済URLはQRコードで暗号化されています云々みたいな馬鹿げた謳い文句でも騙されるやつは居るだろうし、そういうのに対する警鐘なんじゃないかね。
Re:印刷物は幾らでも訂正できるから脆弱 (スコア:1)
「決済URLはQRコードで暗号化されています」
そんな怪しい文言が説明に列んでたら逆にわかりやすくていいかも。