FeliCa の暗号化通信に対するリプレイ攻撃が成功しました
この Suica は残高が200円の上 Apple Wallet に移行済みのため決済には使用できません
ところが残高が500円の時に100円の決済をした際の通信を良い感じにリプレイしたところこの有様です
スレッド
新しいツイートを表示
会話
犯罪とか言ってる人向けに一応説明すると、元ツイートみてわかる通り残高200円なのに、残高以上の表示が自販機で出る。
動画内で購入してるのは残高200円で購入してるので特に燃やすべきではないと思われ
返信を表示
リプレイ攻撃効くんですね…(流石に驚き)
jstage.jst.go.jp/article/ieiej/
多分その後使うとサーバー側に送信されて金額が変だなってバレて利用停止に鳴るっていう仕組みじゃないですかね…
上位のサーバーに行くまでは整合性が確認できないのは仕様上のことかなと…
夜間バッチで取引記録を収集してるので、整合性が取れなくなった時点で、ネガティブリストに追加されるはずです。オフラインでも取り引きできるのが利点ですが、残高の整合性確認は事後にバッチ処理で行うので、そのあたりは仕様上の容認事項ですね。
攻撃コスト>攻撃で得られる利益
であれば、仕様で片付けて問題なさそう。ブラックリストに入ったりするっぽいし。むしろこのツイートに犯罪性があるのでは?ってところが一番のリスクだったりするのかなあ。
これって実際に決済まで完了しましたか?
(まあここでは言えないかもしれんけど…)
かざしたときの残高照会は、センターと通信せずカード内の残高を信用して表示してるだけなので、
センター側の『ほんとうの残高』とは違ってたりすることがよくあります。
次に決済するとしれっと修正されます
CAP定理の分断耐性を悪用したわけですね
これに対する対策は結果整合性か、分断耐性を捨てるかしかないでしょう
どうせ補充に人手はいるわけですから、その際にデータを中央サーバーと同期するように運用面でカバーしてて、後から請求を送ったり通報したりを想定しているんじゃないですか?
興味深いですね。同案多数だと思うけど、単なるSuica(not FeLiCa)の仕様かと。少なくともいま発見された脆弱性ではないかと。
今後Suicaは集権型に移行するらしいからどうなるかな?と。楽しみ。
返信をさらに表示
Twitterを使ってみよう
今すぐ登録して、タイムラインをカスタマイズしましょう。
トレンド
いまどうしてる?
ゲームのジャンル · トレンド
原神アプデ
111,449件のツイート
日本のトレンド
#セブンでアサヒの緑茶当たった