
はじめに
この記事は、NFLaboratories Advent Calendar 2025 10日目の記事です。
こんにちは、研究開発部 研究開発担当の迫本です。
研究開発部では、Purple Flairの開発だけでなく、先端技術を研究するチームもあります。 Purple Flairへ導入するAI技術の調査や、マルウェアに関する研究など、さまざまな研究に取り組んでいます。
本日は、私がメインで取り組んでいる SIMカードの研究について、アドベントカレンダー向けに入口部分をご紹介します。
SIMカードって、何ができるの?
皆さんは、SIMカードに対してどのようなイメージをお持ちでしょうか。
私は以前まで、「携帯電話の通信に必要なカード」程度の認識しかありませんでした。
実際には、SIMカードは下図のように、 CPUやメモリを備え、内部で処理を行うことができる「独立した小さなコンピュータ」です。
また、携帯端末だけでなく、IoT機器などでも利用されています。

SIMカードには、主に次のような特徴があります。
- 携帯網を介したデータ通信を可能にする
- カード内部にCPU・メモリ・記憶領域を持つ
- 物理解析や改ざんに強い「耐タンパ性」を備えている
ここでいう耐タンパ性とは、SIMカードを物理的に解析・改ざんしようとした場合でも、 カード内部の秘密鍵や認証情報が容易に取り出されないように設計されている性質を指します。 このためSIMカードは、通信だけでなく鍵管理や認証など「セキュアエレメント」としても活用されています。
また、SIMカード上では Java Cardアプリ(SIMアプレット) が動作します。 SIMカードは耐タンパ性を備えているため、暗号通信処理や鍵管理など、機密性の高い処理をカード内部で実行できます。

ここまで見ると、SIMカードは単なる「通信のためのカード」というより、 耐タンパな環境でアプリケーションが動作するプラットフォームとも捉えることができます。
そして最近、この「SIMカード上で動作するアプリケーション」の位置付けが少しずつ変わりつつあります。
最近のSIMカードの変化
近年、SIMアプレットはキャリア純正のアプリだけでなく、 サードパーティ製アプレットの開発・展開を可能にする技術が、 NTTドコモビジネス株式会社によって発表されました。 (参考:https://www.ntt.com/about-us/press-releases/news/article/2024/0409.html )


この仕組みにより、SIMカードを 「耐タンパな実行基盤」 として活用できる範囲が広がります。 SIMカードは通信のための部品から、セキュアなアプリケーション実行環境へと、少しずつ役割を広げています。
一方で、SIMカード上で動作するアプリケーションが増えるほど、 アプリケーションレベルの安全性もこれまで以上に重要になります。
SIMカードで複数アプリを安全に動かす仕組み
SIMカードの特徴の一つが、1枚のカード上で複数のSIMアプレットを同時に動作させられる点です。 キャリア純正アプレットとサードパーティ製アプレットが、同じSIMカード上で共存するケースも想定されます。
ただし、単に複数のアプリケーションが動作するだけでは、安全とは言えません。 もし、あるアプレットが別のアプレットのデータや処理に自由にアクセスできてしまうと、 SIMカード全体の信頼性が容易に損なわれてしまいます。
そこでJava Cardには、アプレットファイアウォールと呼ばれる仕組みが用意されています。
アプレットファイアウォールでは、
- 各アプレットが独立した コンテキスト で動作する
- 他のアプレットが保持するオブジェクトやデータには、原則としてアクセスできない
- 明示的に共有が許可された場合のみ、限定的なやり取りが可能
といったルールが適用されます。
この仕組みによりSIMカードは、 「複数のアプリケーションが同居できるが、互いに干渉できない」 という、安全なマルチアプリ実行環境を実現しています。

このようにSIMカードは、耐タンパ性だけでなく、 ソフトウェアの観点からもアプリケーション分離が設計されたプラットフォームだと言えます。
一方で、アプレットファイアウォールが存在するからといって、 アプリケーションレベルのリスクがすべて解消されるわけではありません。
アプレットが「どのような機能を持つ設計になっているか」 「どのようにリソースを消費するか」といった点は、 個々のアプリケーションの実装に大きく依存します。
そのため、研究チームでは、 SIMアプレットを対象としたアプリケーションレベルのセキュリティリスク評価について研究を行っています。
また、その具体例として、2025年3月の電子情報通信学会 情報通信システムセキュリティ研究会(ICSS)にて、 悪性SIMアプレットがSIMカード内のメモリを占有し、暗号処理などの正常動作を妨げる「メモリ占有攻撃」について発表しました*4 。
おわりに
いつもスマートフォンの中で当たり前に使っているSIMカードですが、 その内部ではCPUやJava Card VMが動作し、複数のアプレットが安全に共存できる仕組みまで用意されています。
こうした「目立たないけれど強い土台」が、 私たちの通信やIoTの安全性を支えていることを、少しでも面白いと感じていただけたら嬉しいです。
今回はアドベントカレンダー向けに入口部分のみ触れましたが、 また別の機会に、研究の中身についても詳しくまとめたいと考えています。
最後までお読みいただき、ありがとうございました。
*1:https://www.datasheetarchive.com/datasheet?id=85d3ce846a63ca4c3dd9b01746f7747659a4f1&type=P&term=scf384g
*2:すべてのSIMカードが対象ではありません。NFLabs.では、NTTドコモビジネス株式会社の IoT Connect Mobile Type S を検証の際に使用しています。
*3:https://docs.oracle.com/javacard/3.1/related-docs/JCCRE/JCCRE.pdf