JP5354189B2 - セキュア媒体 - Google Patents

セキュア媒体 Download PDF

Info

Publication number
JP5354189B2
JP5354189B2 JP2009107717A JP2009107717A JP5354189B2 JP 5354189 B2 JP5354189 B2 JP 5354189B2 JP 2009107717 A JP2009107717 A JP 2009107717A JP 2009107717 A JP2009107717 A JP 2009107717A JP 5354189 B2 JP5354189 B2 JP 5354189B2
Authority
JP
Japan
Prior art keywords
program
function
secure
cpu
protection
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.)
Expired - Fee Related
Application number
JP2009107717A
Other languages
English (en)
Other versions
JP2010257302A (ja
Inventor
尚棋 國重
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.)
Toppan Inc
Original Assignee
Toppan Inc
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
Application filed by Toppan Inc filed Critical Toppan Inc
Priority to JP2009107717A priority Critical patent/JP5354189B2/ja
Publication of JP2010257302A publication Critical patent/JP2010257302A/ja
Application granted granted Critical
Publication of JP5354189B2 publication Critical patent/JP5354189B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、セキュア媒体に関する。
従来から、アプリケーションプログラムは、ディスク媒体によりユーザに配布している。
しかしながら、ディスク媒体によりユーザに配布するアプリケーションプログラムは、ディスクを丸ごとコピーすれば、全く同じものを作れてしまい、違法コピーをなくすことが不可能である。
また従来から、ドングルにより使用制限を行うアプリケーションプログラムがある。
しかしながら、ドングルにより使用制限を行うアプリケーションプログラムは、アプリケーションプログラムとドングルとを個別に配布する必要がある。
また、ドングルにより使用制限を行うアプリケーションプログラムを、リバースエンジニアリングすることで、ドングルによる認証を回避するようにアプリケーションプログラムが改変される可能性がある。
また従来から、ICカードと、このICカードによる使用制限を行うパソコン用のアプリケーションとを個別にユーザに配布することが行われている。
しかしながら、ICカード等のセキュア媒体をパソコンで使用する場合、それを操作するためのアプリケーションプログラムを別途インストールする必要がある。
また従来から、プログラムを、保護が必要な部分(保護コード)とそれ以外の通常コードにあらかじめ分割して用意し、各々を保護環境と通常環境という一つのPC上の独立した2つの計算機環境で連係動作させる技術がある(例えば特許文献1又は2参照)。
しかしながら、保護コードと通常コードとに分割されたアプリケーションプログラムは、インストール後はプログラムコードは解析から守られるが、プログラム配布段階、インストール段階ではプログラムを解析される恐れがある。
特開2002−251326号公報 特開2006−164184号公報
本発明は斯かる背景技術に鑑みてなされたもので、アプリケーションプログラムの不正使用を確実に防止しながら正当な利用が容易にできるようにすることを課題とする。
本発明において上記課題を解決するために、まず請求項1の発明では、CPUとセキュア領域を有するメモリとを備え、保護プログラムと非保護プログラムとからなる電卓アプリケーションプログラムの保護プログラムをセキュア領域に格納し非保護プログラムをセキュア領域とは別のメモリの領域に格納しているセキュア媒体であって、数式入力機能と、ICカード通信機能と、計算結果表示機能とを有する非保護プログラムは、コンピュータにインストールされて実行され、数式受信機能と、数式演算機能と、計算結果送信機能と、バイナリーデータ読み出し送信機能とを有する保護プログラムは、セキュア媒体のCPUに、非保護プログラムを実行しているコンピュータからコマンドを受信させて、このコマンドで命じられる処理を実行させて、その処理結果をコンピュータに返信させ、非保護プログラムは、バイナリーデータでセキュア媒体に格納され、保護プログラムは、セキュア媒体のCPUに、ICカード通信機能と、コンピュータへのプログラムインストール機能とを有するインストーラープログラムを実行しているコンピュータからバイナリーデータ取得コマンドを受信させて、非保護プログラムのバイナリーデータをセキュア領域から読み出させて、コンピュータに返信させることを特徴とするセキュア媒体としたものである。
請求項1の発明は、セキュア媒体を購入するだけでアプリケーションプログラムを利用できるけれども、アプリケーションプログラムによる処理の一部を、セキュア媒体から外に出ることのない保護プログラムが受け持つために、保護プログラムの秘密が保たれると同時に、セキュア媒体がなければアプリケーションプログラムを利用できないので、アプリケーションプログラムの不正使用を確実に防止しながら正当な利用が容易にできるという効果がある。
さらに請求項の発明は、非保護プログラムを汎用のインストーラープログラムで容易にインストールできるという効果がある。
本発明に係るシステムにおけるハードウエア構成例を示す図。 本発明に係るシステムにおけるプログラム構成例を示す図。 本発明に係るシステムにおけるプログラム相互の作用を示す図。 本発明に係るシステムにおけるプログラム相互の作用を示す図。 非保護プログラムのソースコードの例と、この例の非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を返す保護プログラムの部分のソースコードの例とを示す図。 アプリケーションプログラムをインストールする処理の流れを示すフローチャート。 アプリケーションプログラムを実行する処理の流れを示すフローチャート。 数式欄に計算式を入力したときの様子を示す図。 計算ボタンを押したときの様子を示す図。
以下に、本発明の一実施形態を説明する。
本発明に係るシステムは、図1に示すように、セキュア媒体と、パソコンとを備える。
パソコンは、CPU、セキュア媒体リーダライタ、表示装置、入力装置、主記憶装置、補助記憶装置などを備える。図2に示すように、補助記憶装置には、インストーラープログラムがインストールされて、CPUによって実行可能である。
セキュア媒体は、CPU、I/F、メモリなどを備え、耐タンパ性を有する。
I/Fは、通信インターフェースとも呼ばれ、セキュア媒体がセキュア媒体リーダライタに装着された場合に、電力とクロックの供給を受けるとともに、セキュア媒体リーダライタとCPUとの間の通信を仲介するインターフェースである。
メモリは、通常の読み出し専用記憶装置であるROMや電気的に内容の書き換えが可能なRAMなどが該当し、セキュア媒体リーダライタからデータの読み出しが可能な領域と不可能な領域とに分かれている。セキュア媒体リーダライタからデータの読み出しが不可能な領域は、セキュア領域とも呼ばれる。
本発明に係るアプリケーションプログラムは、非保護プログラムと、保護プログラムとからなり、図2に示すように、保護プログラムは、メモリのセキュア領域にインストールされてセキュア媒体のCPUによってのみ実行可能であり、非保護プログラムは、メモリのセキュア領域とは別の領域にバイナリデータとして保存されている。
保護プログラムは、図3に示すように、インストーラープログラムからバイナリーデータ取得コマンドで呼び出されると、非保護プログラムのバイナリーデータを読み出して返す。そして、インストーラープログラムは、パソコンの補助記憶装置に非保護プログラムをインストールする。
また保護プログラムは、図4に示すように、パソコンにインストールされた非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を、この非保護プログラムに返す。
すなわち、保護プログラムは、インストーラープログラムからバイナリーデータ取得コマンドで呼び出されると、非保護プログラムのバイナリーデータを読み出して返す部分と、非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を返す部分とからなる。
図5に、非保護プログラムのソースコードの例と、この例の非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を返す保護プログラムの部分のソースコードの例とを示す。これらのソースコードは、C言語で記述されている。
以下に、アプリケーションプログラムをインストールする処理の流れを、図6のフローチャートに従って説明する。
S(STEP)1;
パソコンのCPUは、インストーラープログラムによって、パソコンのセキュア媒体リーダライタを介して、バイナリーデータ取得コマンドを、セキュア媒体に送信する。
S(STEP)2;
セキュア媒体のCPUは、保護プログラムによって、セキュア媒体のI/Fを介して、バイナリーデータ取得コマンドを受信すると、セキュア媒体のメモリから非保護プログラムのバイナリーデータを読み出して、セキュア媒体のI/Fを介して、パソコンに送信する。
S(STEP)3;
パソコンのCPUは、インストーラープログラムによって、パソコンのセキュア媒体リーダライタを介して、非保護プログラムのバイナリーデータを受信すると、この非保護プログラムを、パソコンの補助記憶装置に、インストールする。
以下に、アプリケーションプログラムを実行する処理の流れを、図7のフローチャートに従って説明する。
S(STEP)1;
パソコンのCPUは、非保護プログラムに記述されている処理を順に行い、コマンドの送信が指示されている箇所に達すると、パソコンのセキュア媒体リーダライタを介して、コマンドを、セキュア媒体に送信する。
S(STEP)2;
セキュア媒体のCPUは、保護プログラムによって、セキュア媒体のI/Fを介して、コマンドを受信すると、このコマンドが命じる処理を行い、その処理の結果を、セキュア媒体のI/Fを介して、パソコンに送信する。
S(STEP)3;
パソコンのCPUは、非保護プログラムによって、パソコンのセキュア媒体リーダライタを介して、その処理の結果を受信し、以後、非保護プログラムに記述されている残りの順に処理を行い、コマンドの送信が指示されている箇所に再度達した場合には、STEP1〜3と同様の処理を繰り返す。
以下、本発明の実施例1を具体的に説明する。
実施例1では、セキュア媒体は、ICカードであり、それに伴って、セキュア媒体リーダライタは、ICカードリーダライタとなる。
実施例1では、アプリケーションプログラムは、電卓アプリケーションプログラムであり、図8示すように、数式欄に計算式をキーボードから入力し、計算ボタンをマウスで押すと、図9に示すように、結果欄に計算結果が表示されるものである。
ここで、非保護プログラムは、数式入力機能と、ICカード通信機能と、計算結果表示機能とを有する。
また、保護プログラムは、数式受信機能と、数式演算機能と、計算結果送信機能と、バイナリーデータ読み出し送信機能とを有する。
また、インストーラープログラムは、ICカード通信機能と、パソコンへのプログラムインストール機能とを有する。
以下に、アプリケーションプログラムのインストールについて説明する。
まず、パソコンのICカードリーダライタに装着されると、パソコンのCPUは、インストーラープログラムのICカード通信機能によって、ICカードから、ICカードのメモリのセキュア領域とは別の領域に保存されている非保護プログラムバイナリーデータを、パソコンの主記憶装置にロードする。このとき、パソコンのCPUは、ICカードのメモリのセキュア領域に保存されている保護プログラムのバイナリーデータ読み出し送信機能を利用して、非保護プログラムバイナリーデータを読み出す。パソコンのCPUは、インストーラープログラムのパソコンへのプログラムインストール機能によって、ICカードからロードした保護プログラムのバイナリーデータを、パソコンの補助記憶装置にインストールする。
ここで、電卓アプリケーションプログラムによるシステムの動作を、123+456=579の計算を行う場合を例に取って説明する。この計算は、以下の(1)〜(3)の順に処理が行われる。
(1)数式欄にキーボードで“123+456”と入力する(図8参照)。
(2)計算ボタンをマウスでクリックする。
(3)結果欄に計算結果である“579”が表示される(図9参照)。
以下に、非保護プログラムによるパソコンの動作を説明する。
まず、上記(1)では、パソコンのCPUは、非保護プログラムの数式入力機能によって、ユーザーからのキーボードによる数式の入力を受け付け、数式欄に入力された数式をディスプレイに表示する。
次に、上記(2)では、パソコンのCPUは、入力された数式データを“123+456”を、非保護プログラムのICカード通信機能によって、ICカードリーダライタを介して、ICカードに送信する。このとき、送信するデータは、非保護プログラムと保護プログラムとの間で予め決められたフォーマットで送信する。例えば、“123+456”とデータを一度に送信する、また例えば、“123”,“+”,“456”と複数回に分けて送信する等がある。
次に、パソコンのCPUは、数式データの送信が終了すると、非保護プログラムのICカード通信機能によって、ICカードから、ICカードリーダライタを介して、計算結果を受信する。このとき、受信するデータは、非保護プログラムと保護プログラムとの間で予め決められたフォーマットで受信する。例えば計算結果を数字“579”として受信する、また例えば文字“579”として受信する等がある。
最後に、上記(3)では、パソコンのCPUは、非保護プログラムの計算結果表示機能によって、ICカードから受信した計算結果をディスプレイに表示する。
以下に、保護プログラムによるICカードの動作を説明する。
まず、上記(1)のとき、ICカードのCPUは、パソコンからのデータの受信待ち状態となっている。
次に、ICカードのCPUは、保護プログラムの数式受信機能によって、パソコンからの数式データ“123+456”を、I/Fを介して受信する。
次に、ICカードのCPUは、保護プログラムの数式演算機能によって、受信した数式
データに基づいて計算を行い、保護プログラムの計算結果送信機能によって、計算結果を、I/Fを介してパソコンに送信する。
最後に、上記(3)のとき、ICカードのCPUは、パソコンからのデータの受信待ち状態となっている。
このように、保護プログラムは、全ての段階において、ICカード内から外部には出ないため、保護プログラムの解析を行うことは不可能である。
また、電卓アプリケーションプログラムのコア技術である数式演算機能を保護プログラムに含めることで、非保護プログラムを、いくら解析、改変しても、電卓アプリケーションプログラムを、不正に使用、又はコピーすることは不可能である。
実施例2は、オープンソースプログラム(プログラムのソースコードが公開されているプログラム)に独自の技術を組み込んだアプリケーションプログラムを開発する場合、オープンソース部分を非保護プログラム、独自技術部分を保護プログラムとするものである。
このようにすることで、コア技術である独自の技術を保護することができる。

Claims (1)

  1. CPUとセキュア領域を有するメモリとを備え、保護プログラムと非保護プログラムとからなる電卓アプリケーションプログラムの保護プログラムをセキュア領域に格納し非保護プログラムをセキュア領域とは別のメモリの領域に格納しているセキュア媒体であって、数式入力機能と、ICカード通信機能と、計算結果表示機能とを有する非保護プログラムは、コンピュータにインストールされて実行され、数式受信機能と、数式演算機能と、計算結果送信機能と、バイナリーデータ読み出し送信機能とを有する保護プログラムは、セキュア媒体のCPUに、非保護プログラムを実行しているコンピュータからコマンドを受信させて、このコマンドで命じられる処理を実行させて、その処理結果をコンピュータに返信させ、非保護プログラムは、バイナリーデータでセキュア媒体に格納され、保護プログラムは、セキュア媒体のCPUに、ICカード通信機能と、コンピュータへのプログラムインストール機能とを有するインストーラープログラムを実行しているコンピュータからバイナリーデータ取得コマンドを受信させて、非保護プログラムのバイナリーデータをセキュア領域から読み出させて、コンピュータに返信させることを特徴とするセキュア媒体。
JP2009107717A 2009-04-27 2009-04-27 セキュア媒体 Expired - Fee Related JP5354189B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009107717A JP5354189B2 (ja) 2009-04-27 2009-04-27 セキュア媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009107717A JP5354189B2 (ja) 2009-04-27 2009-04-27 セキュア媒体

Publications (2)

Publication Number Publication Date
JP2010257302A JP2010257302A (ja) 2010-11-11
JP5354189B2 true JP5354189B2 (ja) 2013-11-27

Family

ID=43318118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009107717A Expired - Fee Related JP5354189B2 (ja) 2009-04-27 2009-04-27 セキュア媒体

Country Status (1)

Country Link
JP (1) JP5354189B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014030168A2 (en) * 2011-08-05 2014-02-27 Kpit Technologies Ltd. A system for protection of embedded software codes
GB2512376A (en) * 2013-03-28 2014-10-01 Ibm Secure execution of software modules on a computer
CN103793633A (zh) * 2014-02-14 2014-05-14 宇龙计算机通信科技(深圳)有限公司 一种sdk校验方法及装置
JP7056151B2 (ja) * 2017-12-29 2022-04-19 大日本印刷株式会社 デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6024639A (ja) * 1983-07-20 1985-02-07 Toshiba Corp プログラム盗用防止カ−ド
EP1086411B1 (fr) * 1998-06-12 2003-11-12 Gemplus Procede de controle de l'execution d'un produit logiciel
JP2004272893A (ja) * 2003-02-21 2004-09-30 Matsushita Electric Ind Co Ltd ソフトウェア管理システム、記録媒体及び情報処理装置
JP2006301772A (ja) * 2005-04-18 2006-11-02 Security Electronics Co Ltd Usbストレージデバイス
EP1983458A1 (en) * 2007-04-19 2008-10-22 THOMSON Licensing Media package, system comprising a media package and method of using stored data

Also Published As

Publication number Publication date
JP2010257302A (ja) 2010-11-11

Similar Documents

Publication Publication Date Title
Wang et al. oo7: Low-overhead defense against spectre attacks via program analysis
EP2962193B1 (en) Compiler based obfuscation
US8631390B2 (en) Archiving a build product
JP5963957B2 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP5346386B2 (ja) ソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体
JP5354189B2 (ja) セキュア媒体
WO2019144547A1 (zh) 数据录入方法、装置、计算机设备和存储介质
US9715372B2 (en) Executable guidance experiences based on implicitly generated guidance models
KR101832594B1 (ko) 중간 언어 파일의 로딩 속도 개선을 위한 방법 및 시스템
JP4707748B2 (ja) 外部記憶デバイス、外部記憶デバイスに記憶されたデータを処理するための方法、プログラムおよび情報処理装置
Dalai et al. A code obfuscation technique to prevent reverse engineering
CN101681415A (zh) 用于改变和添加用于数字内容的功能的激活密钥而不必改变和重编译所述数字内容的方法和设备
CN104412255A (zh) 文本处理***、电子文本、文本处理方法以及程序
CN101484877A (zh) 用可重新配置的硬件执行计算机指令
JP6906057B2 (ja) ソフトウェアコードをセキュアにするための方法
US20110090532A1 (en) Image forming apparatus and program operating method
US20080301654A1 (en) Program processing apparatus, program processing method and computer readable information recording medium
JP4340253B2 (ja) アプリケーションプログラム、及び、記憶媒体
JP2010231477A (ja) プログラム及びプログラム実行装置
US9158558B1 (en) Methods and systems for providing application manifest information
KR101097105B1 (ko) Sw 소스코드 난독화와 버전 관리시스템과의 연동 방법 및 시스템
JP2005250635A (ja) ライセンス管理方法および装置
JP5545133B2 (ja) 静的解析処理システム、方法、およびプログラム
KR102615798B1 (ko) 텍스트 필드 보호 속성을 이용한 스크린 캡처 및 미러링 방지 장치 및 방법
US20230409617A1 (en) Method for providing term conversion service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130710

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: 20130731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130813

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees