9cubed
ブログ | Tailwind | Vite | Python | MariaDB | Node.js | Linux | PowerShell | Docker | Git | その他 | 将棋ウォーズ | 歌の練習
< 前の記事

大洗に行ってきた。

ブログ

[ブログ]交通系ICカードの残高が勝手に増やせない理由

公開日:2025-11-12
更新日:2025-11-12
Suica の上限額を30万円に増やすと言うニュースがありました。
よく見てみると、交通系ICカード自体に30万円をチャージできると言う訳ではなく、スマホにQRコードやバーコードを表示して決済すると言うもので、仕組み的にはQR決済と同じようです。

ところで、交通系ICカードの残高って、不正に書き換えられないんでしょうか?

と思い、AI に聞いてみました。

正確なところはわかりませんが、

結論としては、カードに残高や取引履歴を登録する際に、残高や取引履歴の MAC(メッセージ認証コード)を生成してカードに登録するため、
もしカードの残高を改ざんすると、カード使用時に MAC の検証でエラーとなり、カードが使用できなくなるそうです。

MAC とは、ハッシュ値のようなものですが、MAC 生成時に鍵を使用する点と、鍵を知ってる人だけが検証できる点が、ハッシュ値と異なります。

MAC の生成と検証は、IC カードの ID とマスター鍵からカード個別鍵を作成し、それを使って改札機や券売機で行います。
マスター鍵は、改札機や券売機で保持しています。

マスター鍵を使って直接 MAC を付与しないのは、ブルートフォースや物理的解析により鍵の漏洩を防ぐためです。
もしマスター鍵が漏洩した場合は、全てのカードが改ざん可能になりますが、
カード個別鍵が漏洩した場合は、そのカードは改ざんできますが、被害が限定的となります。

ちなみに、クレジットカード決済はネットに接続している必要がありますが、
交通系 IC カードの決済はオフラインでも行えるため、通信障害が発生しても、使用することができます。
決済方法をいくつか持っておくと良いかもしれませんね。
< 前の記事

大洗に行ってきた。

YouTube X

新着一覧

  • テーブル結合(CROSS JOIN、INNER JOIN、LEFT JOIN)MariaDB
  • 楽観ロック・悲観ロックMariaDB
  • カレントリードMariaDB
  • インデックスMariaDB
  • 論理削除(ソフトデリート)MariaDB
  • awk(オーク)の使い方についてLinux
  • NOT NULL 制約と NULL を許容した時の動作MariaDB
  • 外部キー制約MariaDB
  • MySQL と MariaDB の関係MariaDB
  • Docker で PostgreSQL のコンテナの使用Linux

アーカイブ

  • 2026/01
  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08
  • /00

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲