JP2022010365A - データ書き込み方法 - Google Patents

データ書き込み方法 Download PDF

Info

Publication number
JP2022010365A
JP2022010365A JP2021187073A JP2021187073A JP2022010365A JP 2022010365 A JP2022010365 A JP 2022010365A JP 2021187073 A JP2021187073 A JP 2021187073A JP 2021187073 A JP2021187073 A JP 2021187073A JP 2022010365 A JP2022010365 A JP 2022010365A
Authority
JP
Japan
Prior art keywords
chip
data
information
server
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021187073A
Other languages
English (en)
Other versions
JP7211472B2 (ja
Inventor
義博 矢野
Yoshihiro Yano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2018005042A external-priority patent/JP7073733B2/ja
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2021187073A priority Critical patent/JP7211472B2/ja
Publication of JP2022010365A publication Critical patent/JP2022010365A/ja
Application granted granted Critical
Publication of JP7211472B2 publication Critical patent/JP7211472B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】秘密情報を安全に保管し、かつ、秘密情報を用いた処理を高速度で実行することができる制御装置等を提供する。【解決手段】制御装置2は、入出力インターフェイス23と、該入出力インターフェイス23を介して情報の入出力が可能な第1実行領域201と、該第1実行領域201からのアクセスが制限された仮想領域であって、ハイパーバイザ203を介して前記第1実行領域201との間で情報の入出力を行う第2実行領域202とを備える制御装置であって、前記第2実行領域202は、前記入出力インターフェイス23を介した情報の入出力が不可能に構成され、所定の秘密情報を保持し、前記第1実行領域201からの要求に応じて、前記秘密情報を用いた処理を実行することを特徴とする。【選択図】図7

Description

本発明は、データ書き込み方法に関する。
SIM(Subscriber Identity Module又はSubscriber Identification Module)等のIC(Integrated Circuit)チップに暗号鍵、PIN(Personal Identification Number)等の秘密情報を記憶させ、当該秘密情報を用いて、ICチップ内でデジタル署名、相互認証等に関わる演算処理を行わせる技術がある。例えば特許文献1では、ICチップを搭載したICカードであって、記憶されている公開鍵暗号方式の暗号鍵を自ら検証するICカードが開示されている。
SIM等のICチップでは、暗号鍵等の秘密情報を外部に出力せず、当該秘密情報を用いた演算をチップ内で行う。これにより、ICチップに記憶されている秘密情報の安全性を担保することとしている。
特開2007-13342号公報
しかしながら、例えばICチップのような物理的モジュールで秘密情報を管理する場合、当該モジュールはISO7816等の規約に基づいて動作する必要があり、上記の演算、及び演算に必要なデータ交換の処理速度が、SoC(System on Chip)、システムLSI等と呼ばれる汎用的な演算モジュールと比較して低い。また、ICチップ等の物理的モジュールにデータを入力、又は当該モジュールからデータを出力するバスをハッキングされ、データの搾取、改竄等が行われる虞がある。
一つの側面では、秘密情報を安全に保管し、かつ、秘密情報を用いた処理を高速度で実行することができる制御装置等を提供することを目的とする。
一つの側面に係る制御装置は、入出力インターフェイスと、該入出力インターフェイスを介して情報の入出力が可能な第1実行領域と、該第1実行領域からのアクセスが制限された仮想領域であって、ハイパーバイザを介して前記第1実行領域との間で情報の入出力を行う第2実行領域とを備える制御装置であって、前記第2実行領域は、前記入出力インターフェイスを介した情報の入出力が不可能に構成され、所定の秘密情報を保持し、前記第1実行領域からの要求に応じて、前記秘密情報を用いた処理を実行することを特徴とする。
一つの側面では、秘密情報を安全に保管し、かつ、秘密情報を用いた処理を高速度で実行することができる。
チップ発行システムの構成例を示す模式図である。 サーバの構成例を示すブロック図である。 チップの構成例を示すブロック図である。 製品DBのレコードレイアウトの一例を示す説明図である。 コマンドテーブルのレコードレイアウトの一例を示す説明図である。 変換テーブルのレコードレイアウトの一例を示す説明図である。 チップの構成例を示す機能ブロック図である。 チップに対するデータの書き込み工程を示す説明図である。 チップ発行後のデータの書き込み処理を説明するための説明図である。 チップ発行段階におけるデータ書き込み処理の処理手順の一例を示すフローチャートである。 チップ発行後のデータ書き込み処理の処理手順の一例を示すフローチャートである。
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態)
図1は、チップ発行システムの構成例を示す模式図である。本実施の形態では、種々のデバイスに搭載されるチップ2に対し、秘密情報を書き込むデータ書き込み方法について説明する。本システムは、チップ(制御装置)2へのデータ書き込みを指示する情報処理装置1を含む。
情報処理装置1は、種々の情報処理、情報の送受信が可能な情報処理装置であり、例えばサーバ装置、パーソナルコンピュータ等である。本実施の形態で情報処理装置1はサーバ装置であるものとし、以下では簡潔のためサーバ1と読み替える。サーバ1は、不図示の発行装置に対してチップ2に書き込むべきデータを指示し、各チップ2にデータを書き込ませる。また、サーバ1はインターネット等のネットワークNに通信接続されており、チップ2が搭載されるデバイス(製品)を製造する製品メーカ、あるいはデバイスを使用するエンドユーザからの要求を受けて、ネットワークNを介してチップ2に対しデータを配信して書き込ませる遠隔操作を行う。
チップ2は、種々のデバイスに搭載される制御装置であって、例えばSoC(System on Chip)のように、CPU(Central Processing Unit)等の演算処理装置、RAM(Random Access Memory)、ROM(Read Only Memory)等の記憶領域などをワンチップで搭載した集積回路である。なお、チップ2はSoCといった称呼のものに限定されず、SIM等のセキュリティチップとは異なり、デバイスの汎用的な処理を実行可能な制御装置であればよい。また、本実施の形態では、秘密情報を保持する制御装置がチップであるものとして説明するが、制御装置は集積回路である必要はなく、デバイス内に分散配置された半導体回路であってもよい。
チップ2の記憶領域にはOS(オペレーティングシステム)、アプリケーションプログラム等のデータが記憶されており、当該OS、アプリケーションプログラムに従ってチップ2は動作する。また、チップ2の記憶領域には、所定の秘密情報が記憶されている。秘密情報は、例えば各チップ2に固有の固有情報(例えばチップ2の製造番号)、暗号演算に用いられる鍵情報(例えば公開鍵暗号方式の公開鍵又は秘密鍵、共通鍵暗号方式の共通鍵等)、個人認証等に用いられる認証情報(例えばPINコード)などである。チップ2には、サーバ1からの指示に従って各種の秘密情報が書き込まれる。
本システムの詳細について説明する前に、図1で例示するデバイスの製造工程の概略について説明する。本実施の形態では、デバイス、及び該デバイスに搭載されるチップ2の製造を、チップ2を製造するチップ製造者と、チップ2にデータを書き込むチップ発行者と、チップ2をデバイスに搭載してユーザに出荷する製品メーカとの三者が担うものとして説明する。
チップ製造者は、半導体部品の製造業者であり、チップ2を製造して最低限必要な初期設定を行う。当該初期設定は、例えばチップ2を起動するために必要な基本OSのインストール、各チップ2を一意に識別可能な固有情報(例えば製造番号)の書き込み等である。製造元では、最低限必要な当該データをチップ2に書き込み、チップ発行者に出荷する。
チップ発行者は、製品メーカからの受注を受けてチップ2に種々のデータを書き込んで発行する発行業者である。製品メーカから受注を受ける際、例えばチップ2にインストールするアプリケーションプログラム、チップ2に書き込む秘密情報等の指定を受ける。例えばサーバ1は、各製品メーカから指定された各種データをデータベース上に格納し、当該データベースから、各チップ2に書き込むべきデータを読み出して書き込みを指示する。チップ発行者にて各種データが書き込まれたチップ2は、各製品メーカに出荷される。
また、サーバ1はチップ2の出荷後(発行後)であっても、製品メーカ、又はエンドユーザから依頼を受けて、ネットワークNを介して遠隔でチップ2にデータを書き込む処理を行う。当該処理について詳しくは後述する。
製品メーカは、チップ発行者から納品されたチップ2をデバイスに搭載してユーザに出荷する製造業者である。製品メーカが製造するデバイスは、種々の電子機器であり得る。例えば図1に示すスマートフォン、車両内のECU(Electronic Control Unit)、家電機器等のほか、パーソナルコンピュータ、インフラ設備装置、ウェアラブルデバイス等であり得る。製品メーカが製造するデバイスは、チップ2を搭載した電子機器であればよく、その内容は特に限定されない。
なお、例えば図1に示すように、各デバイスはネットワークNに接続され、所謂IoT(Internet of Things)に係るモノとして機能させてよい。
図2は、サーバ1の構成例を示すブロック図である。サーバ1は、制御部11、主記憶部12、通信部13、及び補助記憶部14を備える。
制御部11は、一又は複数のCPU、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、補助記憶部14に記憶されたプログラムPを読み出して実行することにより、サーバ1に係る種々の情報処理、制御処理等を行う。主記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の一時記憶領域であり、制御部11が演算処理を実行するために必要なデータを一時的に記憶する。通信部13は、通信に関する処理を行うための処理回路等を含み、他の装置と情報の送受信を行う。
補助記憶部14は大容量メモリ、ハードディスク等であり、制御部11が処理を実行するために必要なプログラムP、その他のデータを記憶している。また、補助記憶部14は、製品DB141、コマンドテーブル142、及び変換テーブル143を記憶している。製品DB141は、製品メーカから受注した各製品(チップ2)の受注データを記憶するデータベースである。コマンドテーブル142は、サーバ1とチップ2との間でデータの送受信を行う際に用いるコマンドを格納したテーブルである。変換テーブル143は、サーバ1とチップ2との間でデータの送受信を行う際に、送受信するデータを変換する変換規則を格納したテーブルである。
なお、補助記憶部14はサーバ1に接続された外部記憶装置であってもよい。また、サーバ1は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
また、本実施の形態においてサーバ1は上記の構成に限られず、例えば可搬型記憶媒体に記憶された情報を読み取る読取部等を含んでもよい。
図3は、チップ2の構成例を示すブロック図である。チップ2は、CPU21、RAM22、入出力I/F23、不揮発性メモリ24を含む。
CPU21は、種々の演算処理を実行する演算処理装置であり、不揮発性メモリ24に記憶されている各種プログラム又はデータを読み出して演算処理を実行する。RAM22は一時記憶領域であり、CPU21が演算処理を実行するために必要なデータを一時的に記憶する。入出力I/F23は、チップ2外部との間で情報の入出力を行うためのインターフェイスである。
不揮発性メモリ24は、例えばROM、EEPROM(Electrically Erasable Programmable ROM)等を含み、種々のデータを記憶している。具体的には、不揮発性メモリ24は、リッチOS241、当該リッチOS241の環境下で動作するアプリケーション242、セキュアOS243、当該セキュアOS243の環境下で動作するアプリケーション244、固有情報245、鍵情報246、認証情報247、コマンドテーブル142、及び変換テーブル143を記憶している。
リッチOS241、アプリケーション242、セキュアOS243、アプリケーション244はそれぞれ、チップ2内部に構築される別々の仮想領域において動作するプログラムである。具体的には、CPU21はチップ2内部に、通常実行処理を実行するリッチ領域(第1実行領域)と、当該リッチ領域よりもセキュアな仮想領域であるセキュア領域(第2実行領域)とを構築し、各仮想領域において各種プログラムを実行する。CPU21は、リッチ領域においてリッチOS241及びアプリケーション242を実行し、セキュア領域においてセキュアOS243及びアプリケーション244を実行する。各仮想領域について、詳しくは後述する。
固有情報245は、チップ2に固有の情報であり、上述の如く、例えばチップ2の製造番号等である。なお、後述するように、サーバ1は製品メーカ等からの要望に応じて固有情報245を書き換え、所望の情報を固有情報245として不揮発性メモリ24に書き込む。当該処理については後述する。
鍵情報246は、CPU21が実行する暗号演算に用いられる暗号鍵であり、例えば公開鍵暗号方式の公開鍵又は秘密鍵、共通鍵暗号方式の共通鍵等の鍵値である。
認証情報247は、例えばユーザ認証等に用いられる認証用のデータであり、個々のユーザ向けにパーソナライズされた情報である。認証情報247は、例えばパスワード等のPINコード、生体認証を行うための生体情報などである。
コマンドテーブル142、変換テーブル143は、サーバ1が保持するコマンドテーブル142、変換テーブル143と共通のテーブルであり、サーバ1との間でデータの送受信を行う際に用いるテーブルである。
図4は、製品DB141のレコードレイアウトの一例を示す説明図である。製品DB141は、チップID列、発注元列、製品列、書き込みデータ列を含む。チップID列は、各チップ2を識別するためのIDを記憶している。発注元列は、チップIDと対応付けて、各チップ2へのデータ書き込みを発注した製品メーカの情報が記憶されている。製品列は、チップIDと対応付けて、チップ2が搭載される製品(デバイス)に関する情報を記憶している。書き込みデータ列は、チップIDと対応付けて、チップ2に書き込むデータを記憶している。チップ2に書き込むデータは、上述の如く、例えばアプリケーション242、244、固有情報245、鍵情報246等であるが、これらに限定されるものではない。
図5は、コマンドテーブル142のレコードレイアウトの一例を示す説明図である。コマンドテーブル142は、コマンドコード列、コマンド内容列を含む。コマンドコード列は、サーバ1とチップ2との間でデータの送受信を行う際の各コマンドを表すコードが記憶されている。コマンド内容列は、コマンドコードと対応付けて、各コマンドの内容を記憶している。
図6は、変換テーブル143のレコードレイアウトの一例を示す説明図である。変換テーブル143は複数のコードを羅列したコード表である。例えば図6に示すように、変換テーブル143では、「00」から「FF」までの、十六進数表記の二桁のコード(文字列)が羅列されている。変換テーブル143において、奇数行のコードと偶数列のコードとが対応しており、対応するコードを相互に変換するよう規定する。例えば第1行目の第1列目のコード「00」と、第2行目の第1列目のコード「5B」とが対応しており、コード「00」が変換テーブル143に入力された場合、コード「5B」に変換して出力する。
図7は、チップ2の構成例を示す機能ブロック図である。図7に基づき、チップ2内部に構築されるリッチ領域201と、セキュア領域202とについて説明する。
チップ2は、CPU21、RAM22等のハードウェアリソースを仮想化基盤として、当該基盤上に2つの仮想領域を構築する。一の仮想領域はリッチ領域201であり、一の仮想領域はセキュア領域202である。
リッチ領域201は、チップ2が搭載されるデバイスの基本的、汎用的な処理を実行する通常実行環境であり、セキュア領域202へのアクセスが制限される以外に、特段の機能制約がない実行領域である。例えばチップ2がスマートフォンに搭載される場合、CPU21はリッチ領域201において、通話、画像表示等に係る制御処理を実行する。リッチ領域201にはリッチOS241、アプリケーション242が格納され、CPU21は各プログラムを実行することで汎用的な処理を行う。
図7に示すように、リッチ領域201は入出力I/F23を介して外部と情報の入出力可能に構成されている。例えばCPU21は、ユーザによる操作入力内容を入出力I/F23を介して取得し、操作入力に対する応答(例えば画面操作に対する応答)を返す。
セキュア領域202は、リッチ領域201よりもセキュアな実行環境であり、リッチ領域201からのアクセスが制限された仮想領域である。例えば図7に示すように、リッチ領域201からセキュア領域202への直接的なアクセスは禁止されており、リッチ領域201からセキュア領域202にアクセスするためには、ソフトウェア上実現されるハイパーバイザ203を経由してアクセスしなければならない。
なお、本実施の形態ではチップ2が2つの仮想領域を有するものとして説明するが、チップ2は複数の仮想領域を有していればよく、当該仮想領域は3つ以上であってもよい。
セキュア領域202はリッチ領域201からのアクセスが制限されると共に、実行可能な処理も制限されている。具体的には、CPU21はセキュア領域202において、セキュリティ上重要な処理を実行する。例えば図7に示すように、セキュア領域202にはセキュアOS243、アプリケーション244等のほか、秘密情報である固有情報245、鍵情報246、認証情報247等を格納してある。CPU21はセキュア領域202において、当該秘密情報を用いた処理を行う。例えばCPU21は、セキュア領域202において鍵情報246を用いた暗号演算を行い、暗号化したデータをリッチ領域201に出力する。また、例えばCPU21は、リッチ領域201からの要求に応じ、セキュア領域202において認証情報247を用いた個人認証を行う。
また、セキュア領域202にはコマンドテーブル142及び変換テーブル143が格納されている。チップ2がサーバ1との間でデータの送受信を行う場合、CPU21はセキュア領域202において、各テーブルを用いて送信データの生成、及び受信データの解析を行う。
本実施の形態においてセキュア領域202は、入出力I/F23を介したチップ2外部との間の直接的な通信(情報の入出力)が不可能に構成されている。例えば図7に示すように、ハイパーバイザ203がセキュア領域202と入出力I/F23との間の接続を遮断し、セキュア領域202とチップ2外部との間の通信を禁止するよう設定してある。チップ2外部からセキュア領域202に情報を入力し、セキュア領域202から情報を取得するためには、リッチ領域201、ハイパーバイザ203を経由しなければならない。
セキュア領域202は、暗号演算等のセキュリティ上の処理を、ハイパーバイザ203を介してリッチ領域201から要求を受け付けた場合のみ実行する。セキュア領域202は、当該セキュリティ処理の処理結果(例えば認証結果、暗号化したデータ等)をリッチ領域201に出力し、リッチ領域201を介してチップ2外部へと出力する。
上述の如く、チップ2はリッチ領域201とセキュア領域202とを有し、セキュア領域202に秘密情報を保持する。セキュア領域202は入出力I/F23を介したチップ2外部との間の通信が不可能に構成され、ハイパーバイザ203を介してリッチ領域201から要求を受けた場合のみ、秘密情報を用いた種々の処理を実行する。これにより、チップ2は秘密情報を安全に保管することができる。
また、チップ2は、ICカードに搭載されるICチップのような物理的モジュールではなく、チップ内のセキュアなソフトウェアモジュールに秘密情報を保持し、演算を行う。これにより、秘密情報に基づく演算、及び当該演算に関連するデータ交換がCPUのバスレベルで実行可能となり、物理的モジュールを実装する場合と比較して、処理速度を高めることができる。また、ICチップ等の物理的モジュールでは、当該モジュールに繋がるバスをハッキングされ、データを搾取、又は悪意ある情報を入力される虞がある。しかし、上記のようにソフトウェアモジュールとして実装した場合、ハッキングに対する耐性を高めることができる。これにより、物理的モジュールを実装する場合と比較して安全性を高めることができる。
図8は、チップ2に対するデータの書き込み工程を示す説明図である。図8では、チップ2にOS、アプリケーション、秘密情報等の各種データが書き込まれる工程を、概念的に図示している。
図8では、チップ製造者、チップ発行者、及び製品メーカそれぞれの下にチップ2がある状況で、どのデータが書き込まれるかを概念的に図示している。
まずチップ製造者は、チップ2を動作させるために最低限必要なOS(リッチOS241及びセキュアOS243)と、チップ2の製造番号等である固有情報245とを書き込む。
次にチップ発行者は、製品メーカからの受注に従い、製品に応じてカスタマイズされた動作を行うよう、チップ2に各種データを書き込む。例えばサーバ1は製品DB141を参照して、各製品メーカから指定されたデータを、製造ラインに載せられた各チップ2に順次書き込んでいく。例えばサーバ1は、アプリケーション242、244を書き込むと共に、暗号演算に用いる鍵情報246を書き込む。
この場合にサーバ1は、製品メーカから要望があった場合、チップ2の製造元で付された固有情報245を書き換える。
製造元で書き込まれた固有情報245は、例えばチップ2の製造番号であり、チップ製造者が各チップ2を一意に識別可能なよう付したデータである。しかしながら、当該データ(番号)はチップ2の製造元で決めた値であり、必ずしも製品メーカ、又はエンドユーザにとって使い勝手の良い値ではない。例えばチップ2が搭載される製品がスマートフォン等の可搬型媒体と仮定した場合、当該製品を、チップ2に記憶されたデータに基づき認証を行う社員証として機能させ、ICカードのように用いたい場合がある。この場合、ユーザ(企業等)は社員番号と製造番号とを紐付けて管理し、チップ2から製造番号を読み取って社員番号を呼び出し、照合を行うという二段階の処理が必要となる。これにより、管理コストが増大する。
そこで、製品メーカ、又はエンドユーザによっては、固有情報245自体を所望の値に書き換えたいというニーズがある。そこでサーバ1は、製品メーカから書き換えるべき固有情報245の値(例えば社員番号)を受け付け、当該値に固有情報245を書き換える。これにより、製品メーカやエンドユーザの利便性を高めることができる。
また、サーバ1は必要に応じて、秘密情報の一部又は全部を書き換え禁止に設定する。例えばサーバ1は、固有情報245を書き換え禁止に設定する場合、固有情報245の書き換えを禁止する旨のフラグをチップ2に書き込み、セキュア領域202に保持させる。セキュア領域202はリッチ領域201から固有情報245の書き換えを要求された場合、書き換えを拒否する。これにより、悪意ある第三者による秘密情報の書き換えを防止することができる。
なお、どの秘密情報を書き換え禁止に設定するかは設計事項であり、例えば鍵情報246を書き換え禁止に設定してもよい。また、どの秘密情報を書き換え禁止に設定するか、サーバ1は製品メーカ等から指定を受け付けるようにしてもよい。
上述のように、チップ発行者において各種データが書き込まれたチップ2は、製品メーカに出荷される。製品メーカではリーダ/ライタ機能を持つ所定の端末装置4を用いて、認証情報がチップ2に書き込まれる。製品メーカで書き込まれる認証情報は、例えば製品に初期設定されるパスワード等である。パスワードの初期設定が行われたチップ2は各種製品に組み込まれ、各製品がユーザの下に出荷される。ユーザは自らパスワードの変更等を行って認証情報を書き換え、個々に使用する。
本実施の形態でサーバ1は、チップ発行者の製造ラインでのデータ書き込みを指示するだけでなく、ネットワークNを介して通信を行い、製品メーカ等からの要望を受けて、チップ2の発行後もデータの書き込みを遠隔で行う。
ここでは一例として、チップ発行者からチップ2が発行され、製品メーカの工場へ納品されたチップ2に対し、遠隔でデータを書き込む場合を想定して説明を行う。例えば製品メーカによっては、チップ2内のアプリケーション242、244を自社向けによりカスタマイズして更新したいという要望がある。また、図8では簡潔のため一の製品メーカしか図示していないが、チップ2を搭載した部品(例えば車両ECU)を製造する部品メーカと、各機器を搭載した全体製品(例えば車両)を製造するメーカとが存在する場合がある。この場合に、全体製品を製造するメーカは、各部品に搭載されたチップ2の固有情報245を自社の識別番号に統一したい場合などがあり得る。
このような場合にサーバ1は、製品メーカから要望されたデータをチップ2に配信し、不揮発性メモリ24に書き込ませる。例えば図9に示す端末装置4がネットワークNに接続され、端末装置4を介してチップ2はサーバ1と通信を行い、所望のデータを取得する。
しかし、チップ2へのデータ書き込みを無条件に可能とした場合、第三者によって不正にデータが書き込まれる虞がある。そこで本実施の形態では、サーバ1とチップ2との間で認証が成功したことを条件に、データの書き込みを許可する。
また、サーバ1からチップ2にネットワークNを介してデータを配信するため、通信路上で第三者にデータを盗聴、搾取される虞がある。そこで本実施の形態では、サーバ1がデータを暗号化した上で配信すると共に、暗号化されたデータをチップ2が元に復元し、復元後のデータをセキュア領域202に格納して書き込みを行う。
具体的には、サーバ1及びチップ2はコマンドテーブル142及び変換テーブル143を用いたデータ交換を行い、上記の認証及び暗号化を行う。
図9は、チップ2発行後のデータの書き込み処理を説明するための説明図である。図9に基づき、上述の遠隔制御によるデータ書き込みについて説明する。
例えば製品メーカの作業者が端末装置4を操作し、チップ2に対して、秘密情報の書き換えを命令する所定の情報を入力する。当該情報は、リッチ領域201を介してセキュア領域202に入力される。チップ2はセキュア領域202において、入力された情報に従い、図9右上に示す送信コードを生成してリッチ領域201に出力する。
当該送信コードは、命令内容に対応するコマンドコードと、書き込むべきデータ(以下、「書き込みデータ」と呼ぶ)を指定するコードとを含むデータコードである。図9では、先頭の「00」で示すコマンドコードに、書き込みデータを指定するコードが連結されている。上述の如く、コマンドコードはコマンドテーブル142において規定されている。チップ2はコマンドテーブル142から、サーバ1に対してデータの配信を要求するコマンドコードを読み出して図9の送信コードを生成する。生成した送信コードはセキュア領域202からリッチ領域201に出力され、サーバ1に送信される。
なお、書き込みデータは固有情報245、鍵情報246等の秘密情報であってもよく、リッチOS241の下で動作するアプリケーション242のように、秘密であることが要求されないデータであってもよい。また、書き込みデータの書き込み先はセキュア領域202であってもよく、リッチ領域201であってもよい。
チップ2はセキュア領域202において、上記のコマンドコードを変換テーブル143に従って変換しておく。例えば図9に示すように、チップ2はコマンドコード「00」を「5B」に変換する。チップ2は、変換後のコマンドコード「5B」を認証に用いるため、当該コマンドコードを保持する。
チップ2から送信コードを取得した場合、サーバ1は、送信コードに含まれるコマンドコード「00」に基づき、チップ2から書き込みデータの配信要求があったことを判別する。この場合にサーバ1は、チップ2と同様に、変換テーブル143に従って当該コマンドコード「00」を「5B」に変換する。
サーバ1は、変換後のコマンドコード「5B」と、チップ2から要求された書き込みデータとを含む送信コードを生成する。この場合にサーバ1は、変換テーブル143に基づいて書き込みデータを変換し、変換後のデータを送信コードに用いる。例えばチップ2から固有情報245の配信要求を受け付けた場合、サーバ1は、指定された固有情報245を変換テーブル143に従って変換したデータコードを生成する。これにより、チップ2に書き込むデータは暗号化され、第三者によって通信路上で盗聴、搾取された場合にも対応することができる。サーバ1は、生成した送信コードをチップ2に送信する。
チップ2はサーバ1から、変換後のコマンドコードと、変換後の書き込みデータとを含む送信コードを取得する。サーバ1から取得した送信コードは、リッチ領域201を介してセキュア領域202に入力される。
チップ2はセキュア領域202において、送信コードに含まれるコマンドコードに基づき、送信コードの送信元(入力元)であるサーバ1の正当性を認証する認証処理を実行する。具体的には、チップ2は自身が変換しておいたコマンドコード「5B」と、サーバ1が変換したコマンドコード「5B」とを照合し、両者が一致するか否かを判定する。このように、サーバ1及びチップ2がコマンドテーブル142及び変換テーブル143を共有しておき、変換テーブル143に従って各々が同一のコマンドコードを変換したデータを照合することで、書き込みデータの送信元の認証を行う。チップ2が変換したコマンドコードとサーバ1が変換したコマンドコードとが一致しない場合、チップ2は認証が失敗したものと判定し、サーバ1から配信されたデータを破棄する。
コマンドコードが一致したと判定した場合、チップ2は認証が成功したものと判定する。この場合、チップ2は、送信コードに含まれる書き込みデータを変換テーブル143に従って変換し、元のデータに復元する。チップ2は、復元後のデータをリッチ領域201又はセキュア領域202に格納することで、データの書き込みを行う。
上述の如く、サーバ1は、チップ2に対して遠隔でデータの書き込みを行う。この場合にチップ2は、発行段階でセキュア領域202に書き込まれたコマンドテーブル142、変換テーブル143等のデータを利用し、セキュア領域202において認証を行う。これにより、遠隔であっても安全にデータの書き込みを行うことができる。
なお、上記ではコマンドテーブル142で規定されたコマンドコードを認証に用いることにしたが、例えば固有情報245の照合、鍵情報246に基づく鍵交換等の手段で認証を行ってもよい。つまりチップ2は、セキュア領域202で保持する秘密情報を用いて書き込みデータの送信元の正当性を認証可能であればよく、用いる秘密情報はコマンドコードに限定されない。
また、上記ではサーバ1がチップ2に書き込みデータを配信し、遠隔でデータの書き込みを行うことにしたが、当該データの書き込みはローカルで行ってもよい。例えば端末装置4が可搬型記憶媒体から上述の送信コードに相当するデータを読み取ってチップ2に入力するようにしてもよい。つまり、チップ2は書き込みデータの入力元の正当性を認証可能であればよく、インターネット等のネットワークNを介さずに書き込みデータを取得するようにしてもよい。
また、上記では説明の便宜上、製品メーカの工場に在るチップ2に書き込みデータを配信する場合を説明したが、例えばエンドユーザが使用中のデバイスに対して書き込みデータを配信し、チップ2に認証を行わせてデータを書き込ませる場合もあり得る。これにより、例えば有効期限切れのリッチOS241やアプリケーション242、鍵情報246等の更新をおこなうことができる。このように、本実施の形態には種々の変形態様が想定される。
図10は、チップ2発行段階におけるデータ書き込み処理の処理手順の一例を示すフローチャートである。図10に基づき、チップ発行者の製造ラインにおけるデータの書き込み処理について説明する。
サーバ1の制御部11は、チップ2に書き込むよう製品メーカから指定された各種データを製品DB141から読み出す(ステップS11)。チップ2に書き込むデータは、例えばリッチ領域201、セキュア領域202それぞれで動作するアプリケーション242、244、セキュア領域202に書き込む秘密情報などである。秘密情報は、チップ2のCPU21がセキュア領域202で実行する処理で用いるデータであり、例えば暗号演算に用いる鍵情報246等である。また、製品メーカから要望がある場合、チップ2に書き込む秘密情報には、チップ2の製造元で書き込まれた固有情報245の書き換えデータが含まれる。
制御部11は、ステップS11で読み出したデータのチップ2への書き込みを指示する(ステップS12)。例えば制御部11は、チップ2の不揮発性メモリ24に対してデータの書き込みを行う発行装置に対し、アプリケーション242、244、鍵情報246等のデータを送信し、当該データを書き込むよう要求する。また、CPU21は、チップ2に遠隔でデータの書き込みを行うためのコマンドテーブル142、変換テーブル143の書き込みを併せて行う。
また、制御部11は、チップ2に書き込まれている秘密情報の書き換えを指示する(ステップS13)。例えば制御部11は、上述の如く、チップ2に固有の固有情報245の書き換えを指示する。
制御部11は、ステップS12、S13で書き込んだ秘密情報のうち、一部又は全部の書き換え禁止をチップ2に設定する(ステップS14)。例えば制御部11は、任意の秘密情報の書き換えを禁止する旨のフラグを不揮発性メモリ24に書き込み、セキュア領域202に保持させる。制御部11は、一連の処理を終了する。
図11は、チップ2発行後のデータ書き込み処理の処理手順の一例を示すフローチャートである。図11に基づき、遠隔でチップ2にデータを書き込む処理の処理内容について説明する。
例えばチップ2は、ネットワークNを介してサーバ1と通信可能な所定の端末装置4に接続されており、端末装置4を介してサーバ1と通信を行う。チップ2のCPU21は、サーバ1に対し、書き込みデータの配信を要求する(ステップS31)。例えばCPU21はセキュア領域202において、コマンドテーブル142で規定するコマンドコードと、書き込むべきデータを指定するデータコードとを含む送信コードを生成する。CPU21は、生成した送信コードをセキュア領域202からリッチ領域201に入力し、ネットワークNを介してサーバ1へ送信する。また、CPU21はセキュア領域202において、送信コードに含まれるコマンドコードを、変換テーブル143を用いて変換し、保持する(ステップS32)。
チップ2から送信コードを取得し、書き込みデータの配信要求を受け付けた場合、サーバ1の制御部11は、チップ2から受信した送信コードを参照して、チップ2から要求された書き込みデータを製品DB141から読み出す(ステップS33)。例えば制御部11は、送信コードに含まれるコマンドコードに基づいて配信要求があったことを判別し、同じく送信コードに含まれるコードから、チップ2が指定した書き込みデータを判別する。制御部11は、当該書き込みデータを製品DB141から読み出す。
制御部11は、チップ2から取得したコマンドコードと、製品DB141から読み出した書き込みデータとを、変換テーブル143に従って変換する(ステップS34)。変換テーブル143は、データコードを変換する変換規則を定めたテーブルであり、入力コードと出力コードとを対応付けたテーブルである。制御部11は変換テーブル143に従い、チップ2から取得したコマンドコードを変換する。また、制御部11は、製品DB141から読み出した書き込みデータを変換する。制御部11は、変換後のコマンドコードと、変換後の書き込みデータとを含む送信コードを生成し、チップ2に送信する(ステップS35)。
サーバ1からコマンドコード、書き込みデータを含む送信コードを取得した場合、チップ2のCPU21は、サーバ1から取得したコマンドコードと、ステップS32で変換済みのコマンドコードとを照合する(ステップS36)。すなわちCPU21は、自身で変換したコマンドコードと、サーバ1で変換されたコマンドコードとを比較することで、コマンドコードの真正性を確認(認証)する。これにより、CPU21は、サーバ1の正当性を認証する認証処理を行う。CPU21は、コマンドコードが一致したか否かを判定する(ステップS37)。コマンドコードが一致しないと判定した場合(S37:NO)、CPU21は取得したデータを破棄し、一連の処理を終了する。
コマンドコードが一致したと判定した場合、CPU21は、サーバ1から取得した送信コードに含まれる書き込みデータを変換テーブル143に従い変換する(ステップS38)。すなわちCPU21は、サーバ1によって変換された書き込みデータを復元する。CPU21は、変換した書き込みデータをリッチ領域201又はセキュア領域202に格納し(ステップS39)、一連の処理を終了する。
なお、上記ではチップ製造者、チップ発行者、及び製品メーカに分けて一連の製造工程を説明したが、この作業主体の区別は便宜上のものであって、本実施の形態はこれに限定されるものではない。例えばチップ製造者とチップ発行者とを同一の事業者として、チップ2の製造から発行に至るまでを一の事業者が行ってもよい。また、デバイスの組み立てに至るまで、全ての製造作業を一の事業者が行ってもよい。
以上より、本実施の形態によれば、チップ2内のソフトウェアモジュールであるセキュア領域202に秘密情報を保持し、当該セキュア領域202にて秘密情報を用いた演算処理を行うようにすることで、秘密情報の安全性を確保することができる。特に本実施の形態では、セキュア領域202とチップ2外部との直接的な通信(情報の入出力)が不可能に構成され、セキュア領域202に情報を入力、又はセキュア領域202から情報を取得するためにはリッチ領域201を経由しなければならず、安全性をより強固にすることができる。また、セキュア領域202はソフトウェアモジュールであるため、ICチップ等の物理的モジュールよりも、演算処理能力を高めることができる。さらに、SIMのような専用の物理的モジュールをデバイスに搭載する必要がないため、省スペース化、省電力化に資する。
また、本実施の形態によれば、発行段階でチップ2に書き込んだ秘密情報に対し、書き換え禁止を設定可能としてあり、発行後の秘密情報の改竄を防止することができる。
また、本実施の形態によれば、発行後にデータの追加書き込み、書き換え等を行う場合、発行段階で書き込んである秘密情報(例えばコマンドテーブル142、変換テーブル143等)を用いて認証を行うことで、安全にデータの書き込みを行うことができる。
また、本実施の形態によれば、ネットワークNを介して、遠隔でデータの書き込みを行うことができる。
また、本実施の形態によれば、遠隔でデータを書き込む際に、変換テーブル143に従い書き込みデータを変換した上で配信することで、通信路上でのデータの盗聴、搾取等に対応することができる。
また、本実施の形態によれば、サーバ1及びチップ2でコマンドコードを共有しておき、当該コマンドコードと変換テーブル143とを組み合わせた真正性の検証(認証)を行うことで、より安全性を高めることができる。
また、本実施の形態によれば、製品メーカ等の要望に従い固有情報245を書き換えることで、製品メーカ等におけるチップ2の管理を容易にすることができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
1 サーバ(情報処理装置)
11 制御部
12 主記憶部
13 通信部
14 補助記憶部
P1 プログラム
141 製品DB
142 コマンドテーブル
143 変換テーブル
2 チップ(制御装置)
21 CPU
22 RAM
23 入出力I/F
24 不揮発性メモリ
241 リッチOS
242 アプリケーション
243 セキュアOS
244 アプリケーション
245 固有情報
246 鍵情報
247 認証情報

Claims (5)

  1. 制御装置が有する記憶領域にデータを書き込むデータ書き込み方法であって、
    前記制御装置は、ハイパーバイザを介して互いに情報の入出力を行う複数の実行領域を有し、
    前記複数の実行領域のうち、第1実行領域からのアクセスが制限された第2実行領域に対し、所定の秘密情報を書き込む
    処理をコンピュータに実行させることを特徴とするデータ書き込み方法。
  2. 前記制御装置は、入出力インターフェイスを備え、
    前記入出力インターフェイスを介した情報の入出力が不可能に構成された前記第2実行領域に対し、前記秘密情報を書き込む
    ことを特徴とする請求項1に記載のデータ書き込み方法。
  3. 前記第2実行領域は、前記制御装置に固有の固有情報を予め保持してあり、
    前記固有情報を所定の値に書き換える
    ことを特徴とする請求項1又は2に記載のデータ書き込み方法。
  4. ネットワークを介して、前記第2実行領域に新たに書き込むデータを該制御装置に送信する
    ことを特徴とする請求項3に記載のデータ書き込み方法。
  5. 前記第2実行領域に対し、データコードの変換規則を規定する変換テーブルを書き込んでおき、
    前記変換テーブルに従って変換した前記データを前記制御装置に送信する
    ことを特徴とする請求項4に記載のデータ書き込み方法。
JP2021187073A 2018-01-16 2021-11-17 データ書き込み方法 Active JP7211472B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021187073A JP7211472B2 (ja) 2018-01-16 2021-11-17 データ書き込み方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018005042A JP7073733B2 (ja) 2018-01-16 2018-01-16 制御装置、データ書き込み方法及びプログラム
JP2021187073A JP7211472B2 (ja) 2018-01-16 2021-11-17 データ書き込み方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018005042A Division JP7073733B2 (ja) 2018-01-16 2018-01-16 制御装置、データ書き込み方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2022010365A true JP2022010365A (ja) 2022-01-14
JP7211472B2 JP7211472B2 (ja) 2023-01-24

Family

ID=87888204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021187073A Active JP7211472B2 (ja) 2018-01-16 2021-11-17 データ書き込み方法

Country Status (1)

Country Link
JP (1) JP7211472B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009933A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 記憶装置とその制御方法
JP2010055393A (ja) * 2008-08-28 2010-03-11 Nec Corp 認証システム、認証制御方法、及び認証制御プログラム
JP2013242644A (ja) * 2012-05-18 2013-12-05 Panasonic Corp 仮想計算機システム、制御方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009933A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 記憶装置とその制御方法
JP2010055393A (ja) * 2008-08-28 2010-03-11 Nec Corp 認証システム、認証制御方法、及び認証制御プログラム
JP2013242644A (ja) * 2012-05-18 2013-12-05 Panasonic Corp 仮想計算機システム、制御方法、およびプログラム

Also Published As

Publication number Publication date
JP7211472B2 (ja) 2023-01-24

Similar Documents

Publication Publication Date Title
CN109951489B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
US11196572B2 (en) Blockchain-based content verification
EP1557741B1 (en) Information storage device, security system, access permission method, network access method and security process execution permission method
US7415729B2 (en) Storage device
CN1269071C (zh) 存储卡
EP2927836B1 (en) Anytime validation for verification tokens
US10650168B2 (en) Data processing device
CN102449631B (zh) 用于执行管理操作的系统和方法
JP4360422B2 (ja) 認証情報管理システム、認証情報管理サーバ、認証情報管理方法及びプログラム
JP2006080636A (ja) 情報処理装置
JP6591495B2 (ja) 内蔵型アクセス・コントロール機能を有するモバイル機器
US9608979B2 (en) Systems, methods, and computer program products for securely managing data on a secure element
TW202036337A (zh) 基於身分資訊的密碼金鑰管理
WO2011042363A1 (en) Method and apparatus for using cryptographic mechanisms to provide access to a portable device using integrated authentication using another portable device.
JP7073733B2 (ja) 制御装置、データ書き込み方法及びプログラム
JP6760631B1 (ja) 認証リクエストシステム及び認証リクエスト方法
TWM540328U (zh) 內建智慧安全行動裝置
JP7211472B2 (ja) データ書き込み方法
JP2008176506A (ja) 情報処理装置、情報処理方法、および管理サーバ
JP7003740B2 (ja) モバイル運転免許証システム及び携帯端末装置
JP2019047325A (ja) 認証システム
WO2024190149A1 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
US20220353073A1 (en) Method for authenticating an end-user account, method for single authenticating within a cluster of hsm, and method for implementing access control
TW201828186A (zh) 內建智慧安全行動裝置
JP2005250636A (ja) Icカード

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221226

R150 Certificate of patent or registration of utility model

Ref document number: 7211472

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150