JP2008171365A - ソフトウェア保護装置、ソフトウェア保護方法及びプログラム - Google Patents

ソフトウェア保護装置、ソフトウェア保護方法及びプログラム Download PDF

Info

Publication number
JP2008171365A
JP2008171365A JP2007006392A JP2007006392A JP2008171365A JP 2008171365 A JP2008171365 A JP 2008171365A JP 2007006392 A JP2007006392 A JP 2007006392A JP 2007006392 A JP2007006392 A JP 2007006392A JP 2008171365 A JP2008171365 A JP 2008171365A
Authority
JP
Japan
Prior art keywords
software
hash function
program
protected
specifying information
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.)
Pending
Application number
JP2007006392A
Other languages
English (en)
Inventor
Ryoji Kirihara
亮治 桐原
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.)
Kenwood KK
Original Assignee
Kenwood KK
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 Kenwood KK filed Critical Kenwood KK
Priority to JP2007006392A priority Critical patent/JP2008171365A/ja
Publication of JP2008171365A publication Critical patent/JP2008171365A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】ソフトウェア処理の迅速な実行を確保しつつ、あるいはソフトウェア自体の暗号化を伴わずにソフトウェアを保護するためのソフトウェア保護装置等を提供することである。
【解決手段】制御部11は、保護対象のソフトウェアをROM25より取得し、圧縮領域情報、ハッシュテーブル、及び識別子をSIMカード22より取得して、保護対象のソフトウェアのうち、圧縮領域情報により指定される一部とハッシュテーブルとに基づいて識別子を生成し、SIMカード22より取得した識別子と自ら生成した識別子とが合致するか否かを判別して、合致しないと判別したとき、保護対象のソフトウェアの処理を中止する。
【選択図】図1

Description

本発明は、ソフトウェア保護装置、ソフトウェア保護方法及びプログラムに関する。
プロセッサ等によるアクセスが可能な状態に置かれたプログラム等のソフトウェアの不正な利用を阻止する手法として、従来、例えば特許文献1に開示されているものがあった。
特許文献1に開示されている技術は、例えば図4に示すように、プログラム保存用メモリ101とこれにアクセスするCPU(Central Processing Unit)コア103及びプログラマブル演算回路105のそれぞれにソフトウェア保護手段(ソフトウェア保護手段102、104及び106)を接続し、プログラム保存用メモリ101がプログラムを暗号化された状態で記憶し、プログラム保護手段104又は106がこの暗号化されたプログラムを復号化してCPUコア103又はプログラマブル演算回路105に供給するようにすることで、プログラムのバス上での伝送が常に暗号化された状態で行われるようにする、というものである。
特開平10−55273号公報
しかし、上述の手法では、暗号化された状態のプログラムを利用可能とするために復号化する動作が介在するため、プログラムの迅速な実行が困難である。また、プログラムの復号化に用いる暗号キーが漏洩するとプログラムの保護は図れない。
本発明は、このような問題点に鑑みてなされたもので、ソフトウェア処理の迅速な実行を確保しつつ、あるいはソフトウェア自体の暗号化を伴わずにソフトウェアを保護するためのソフトウェア保護装置、ソフトウェア保護方法及びプログラムを提供することを目的とする。
この目的を達成するため、本発明の第1の観点に係るソフトウェア保護装置は、
保護対象のソフトウェアを記憶する第1の記憶手段と、
前記保護対象のソフトウェアの一部を指定する領域指定情報、ハッシュ関数を特定するハッシュ関数特定情報、及び、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を前記ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶する第2の記憶手段と、
前記保護対象のソフトウェアを前記第1の記憶手段より取得して処理に供するソフトウェア処理手段と、を備え、
前記ソフトウェア処理手段は、
前記保護対象のソフトウェアを前記第1の記憶手段より取得し、前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得する手段と、
当該保護対象のソフトウェアのうち、当該領域指定情報により指定される一部を当該ハッシュ関数特定情報が特定するハッシュ関数に代入して得られるハッシュ値を表す第2のプログラム識別子を生成する手段と、
当該第1及び第2のプログラム識別子が合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止する手段と、を備える、
ことを特徴とする。
前記ソフトウェア保護装置は、
前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得して暗号化する暗号化手段と、
前記暗号化手段が暗号化した前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を復号化して前記ソフトウェア処理手段に供給する復号化手段と、を更に備えていてもよく、
この場合、前記ソフトウェア処理手段は、前記暗号化手段及び前記復号化手段を介して、前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得するものであってもよい。
前記ソフトウェア保護装置は、第3の記憶手段を更に備えていてもよく、
この場合、前記ソフトウェア処理手段は、
所定の第1のタイミングが到来したか否かを判別し、到来したと判別する毎に、前記第2のプログラム識別子を生成して前記第3の記憶手段に記憶させ、
所定の第2のタイミングが到来したか否かを判別し、到来したと判別する毎に、前記第2のプログラム識別子のうち前記第3の記憶手段が記憶する最新のものと前記第1のプログラム識別子とが合致するか否かを判別するものであってもよい。
前記ハッシュ関数特定情報は、例えばハッシュテーブルより構成されていればよい。
前記第2の記憶手段は、互いに異なるハッシュ関数を特定する複数の前記ハッシュ関数特定情報を記憶し、且つ、各々の当該ハッシュ関数につき、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を当該ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶するものであってもよい。
この場合、前記ソフトウェア処理手段は、
前記第1の記憶手段より取得した保護対象のソフトウェアのうち、前記領域指定情報により指定される一部を、前記複数のハッシュ関数特定情報が特定するハッシュ関数のいずれかに代入して得られるハッシュ値を表す第2のプログラム識別子を生成するものであってもよく、また、
当該第1のプログラム識別子と、前記第2のプログラム識別子のうち当該第1のプログラム識別子の生成に用いたハッシュ関数と同一のハッシュ関数を用いて生成されたものとが合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止するものであってもよい。
また、本発明の第2の観点に係るソフトウェア保護方法は、
保護対象のソフトウェアを記憶する第1の記憶ステップと、
前記保護対象のソフトウェアの一部を指定する領域指定情報、ハッシュ関数を特定するハッシュ関数特定情報、及び、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を前記ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶する第2の記憶ステップと、
前記保護対象のソフトウェアを前記第1の記憶ステップより取得して処理に供するソフトウェア処理ステップと、より構成され、
前記ソフトウェア処理ステップは、
前記第1の記憶ステップで記憶されている前記保護対象のソフトウェアを取得し、前記第2の記憶ステップで記憶されている前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を取得するステップと、
当該保護対象のソフトウェアのうち、当該領域指定情報により指定される一部を当該ハッシュ関数特定情報が特定するハッシュ関数に代入して得られるハッシュ値を表す第2のプログラム識別子を生成するステップと、
当該第1及び第2のプログラム識別子が合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止するステップと、を含む、
ことを特徴とする。
また、本発明の第3の観点に係るプログラムは、
コンピュータを、
保護対象のソフトウェアを記憶する第1の記憶手段と、前記保護対象のソフトウェアの一部を指定する領域指定情報、ハッシュ関数を特定するハッシュ関数特定情報、及び、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を前記ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶する第2の記憶手段と、に接続され、前記保護対象のソフトウェアを前記第1の記憶手段より取得して処理に供する機能を有するコンピュータを、
前記保護対象のソフトウェアを前記第1の記憶手段より取得し、前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得する手段と、
当該保護対象のソフトウェアのうち、当該領域指定情報により指定される一部を当該ハッシュ関数特定情報が特定するハッシュ関数に代入して得られるハッシュ値を表す第2のプログラム識別子を生成する手段と、
当該第1及び第2のプログラム識別子が合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止する手段と、
して機能させるためのものであることを特徴とする。
本発明によれば、ソフトウェア処理の迅速な実行を確保しつつ、あるいはソフトウェア自体の暗号化を伴わずにソフトウェアを保護するためのソフトウェア保護装置、ソフトウェア保護方法及びプログラムが実現される。
以下、本発明の実施の形態を、通信装置を例とし、図面を参照して説明する。
本発明の実施の形態に係る通信装置の構成を図1に示す。図示するように、この通信装置は、送受信回路部10と、制御部11と、保護部12と、表示部13と、LCD(Liquid Crystal Display: 液晶ディスプレイ)ドライバ14と、操作キー15と、音声処理部16と、タイマ17と、フォントROM(Read Only Memory)18と、スピーカ19と、マイクロホン20と、保護部21と、SIM(Subscriber Identity Module)カード22と、保護部23と、EEPROM(Electronically Erasable and Programmable ROM)24と、ROM25と、RAM(Random Access Memory)26と、RAM27とより構成されている。
送受信回路部10は、変調回路、復調回路、高周波増幅回路及びアンテナなどより構成されている。送受信回路部10は、送信の動作として、搬送波を生成し、制御部11より供給されたデータを用いてこの搬送波を公知の手法により変調し、得られた変調波を増幅して、外部の装置へと無線送信する。一方、送受信回路部10は、受信の動作として、外部の装置が送信した変調波を受信し、受信した変調波を増幅して復調し、復調により得られたデータを制御部11へと供給する。
LCDドライバ14は、制御部11より供給されたデータが表す文字あるいは画像を表示部13が表示するよう、表示部13を制御する。
フォントROM18は、文字の形状を表すフォントデータを記憶するROMからなっており、LCDドライバ14はフォントROM18にアクセスしてこのフォントデータを取得することにより、表示部13に表示させるべき文字の形状の情報を取得する。
表示部13は、LCDなどより構成されており、LCDドライバ14の制御に従って文字や画像を表示する。
操作キー15は、パワーオンスイッチを含む複数のスイッチ等より構成されており、操作者の入力操作に従ったデータを制御部11へと供給する。
音声処理部16は、D/A(Digital-to-Analog)コンバータ、AF(Audio Frequency)増幅器及びA/D(Analog-to-Digital)コンバータ等より構成されており、制御部11より供給された、音声を表すデジタル信号をアナログ信号へと変換し、増幅して、増幅されたアナログ信号を用いてスピーカ19を駆動する。
また、マイクロホン20が集音した音声を表すアナログ信号を生成して音声処理部16に供給すると、音声処理部16は、このアナログ信号を増幅し、デジタル信号へと変換して制御部11へと供給する。
タイマ17は、例えば発振器及びカウンタ回路より構成されており、起動の指示が供給されると、この指示に応答して、指示が供給された時点からの経過時間を示すデータを生成し、制御部11へと連続的に供給する。
制御部11は、CPU(Central Processing Unit)等のプロセッサと、パワーオン待機用の電気回路とより構成されており、後述する処理を実行する。RAM27が備える記憶領域は、制御部11のワークエリアとして用いられる。
保護部12、保護部21及び保護部23は、それぞれ、CPU等のプロセッサあるいは専用の電子回路より構成されている。
保護部12は、制御部11がSIMカード22にアクセスするために供給したデータを暗号化して保護部21へと供給する。また、制御部11がRAM26にアクセスするために供給したデータを暗号化して保護部23へと供給する。一方、保護部12は、保護部21又は保護部23より供給された暗号化済みのデータを復号化して、制御部11へと供給する。
保護部21は、SIMカード22より供給されたデータを暗号化して保護部12へと供給する。また、保護部12より供給された暗号化済みのデータを復号化して、SIMカード22へと供給する。
保護部23は、RAM26より供給されたデータを暗号化して保護部12へと供給する。また、保護部12より供給された暗号化済みのデータを復号化して、RAM26へと供給する。
従って、制御部11、SIMカード22及びRAM26の三者間では、アクセスのための制御データやその他のデータの受け渡しは、保護部12、保護部21及び保護部23を媒介して行われ、保護部12、保護部21及び保護部23の三者間では、データの受け渡しは、受け渡しの対象であるデータが暗号化された状態で行われる。以下では、制御部11、SIMカード22及びRAM26の三者間でのデータの受け渡しについては、保護部12、保護部21及び保護部23による上述の媒介を省略して説明を行う。
SIMカード22は、複数のハッシュテーブルと、圧縮領域情報と、識別子とを記憶しており、保護部21に着脱可能に接続される。RAM26は、後述する処理に従って、SIMカード22が記憶するハッシュテーブル及び圧縮領域情報を、後述する処理に従って一時記憶する。
ハッシュテーブルは、後述する認証の処理の対象であるプログラムを構成する文字列と、この文字列のハッシュ値とを互いに対応付けて格納するテーブルであり、制御部11により、識別子の生成のために用いられる。
圧縮領域情報は、認証の処理の対象であるプログラムのうち識別子の生成に用いるべき部分(圧縮領域)を指定する情報からなる。
識別子は、認証対象のプログラムのうち、圧縮領域情報が示す部分のハッシュ値を、1個のハッシュテーブルを参照して特定することにより生成される情報である。識別子には、当該識別子の作成に用いられたハッシュテーブルを識別する情報が付されているものとする。
EEPROM24は、この通信装置が送受信する変調波の周波数や、通信の相手方の氏名などを示すデータを、制御部11の書き込みアクセスに従って、自己の記憶領域に記憶する。そして、記憶したこれらのデータを、制御部11の読み出しアクセスに従って読み出し、また、制御部11による消去のアクセスに従って、当該記憶領域より消去する。
ROM25は、制御部11が実行するプログラムを記憶する。ROM25が記憶するプログラムには、認証プログラム、圧縮プログラム及びその他のプログラムがあり、これらのプログラムのうち、認証プログラム及び圧縮プログラムを除いたプログラムは、認証プログラムに従って行われる後述の認証の処理の対象となり、認証に成功した場合のみ、制御部11により実行される。
次に、この通信装置の動作を、図2を参照して説明する。なお、以下では、保護部21には、複数のハッシュテーブルと圧縮領域情報とを記憶した状態のSIMカード22が接続されているものとする。
操作キー15のパワーオンスイッチが押下されると、この押下があったか否かを繰り返し判別する動作(図2、ステップS1)を行っているパワーオン待機用の電気回路は、この押下に応答して、パワーオンの処理を行う(ステップS2)。すなわち、図示しない主電源とこの通信装置の各部との間の電流路を接続し、当該各部への電力の供給を開始させる。
パワーオン後まず、制御部11はROM25より認証プログラムを読み出して、認証プログラムの実行を開始する。
認証プログラムの処理を行う制御部11はまず、SIMカード22へアクセスして、SIMカード22が記憶するハッシュテーブル及び圧縮領域情報を取得する。そして、取得したハッシュテーブル及び圧縮領域情報をRAM26へと転送し、RAM26に一時記憶させる(ステップS3)。
次に制御部11は、ROM25より圧縮プログラムを読み出して実行することにより、圧縮処理を行う(ステップS4)。具体的には、制御部11は、以下(a)〜(d)として示す処理を行う。すなわち、
(a) ステップS3でRAM26に一時記憶させたハッシュテーブル及び圧縮領域情報をRAM26から読み出し、
(b) ROM25が記憶するプログラムのうち、上記(a)の処理で読み出した圧縮領域情報が示す部分をROM25より読み出し、
(c) 一方、SIMカード22が記憶する複数のハッシュテーブルのうちいずれを用いるかを、疑似乱数を発生する等の手法により決定し、
(d) 上記(b)の処理で読み出した部分のハッシュ値からなる識別子を、上記(c)の処理で決定したハッシュテーブルを参照して生成する。
次に制御部11は、生成した識別子に、圧縮処理で当該識別子の生成に用いたハッシュテーブルを識別する情報を付した上でRAM26へと転送し、RAM26に記憶させる(ステップS5)。ステップS5において、RAM26に古い識別子がすでに記憶されている場合は、当該古い識別子を、ステップS5で新たに生成した識別子により上書き更新する。
次に制御部11は、タイマ17に、起動を指示する。タイマ17はこの指示に応答して起動する。すなわち、この指示が供給された時点からの経過時間を示すデータを生成して制御部11へと連続的に供給する動作を開始する(ステップS6)。
タイマが起動すると、制御部11は、タイマが起動した時点又は所定の時間が到来したとステップS7で最後に判別した時点のうち最新の時点から起算して、所定の時間が経過したか否かを、タイマが供給するデータに基づいて判別する(ステップS7)。そして、経過したと判別すると、ステップS4及びS5の処理と実質的に同一の処理を行い(ステップS8及びS9)、次いで、操作キー15を用いたパワーオフの操作が行われたか否かを判別する(ステップS10)。
ステップS10で、パワーオフの操作が行われていないと判別すると、制御部11は処理をステップS7に戻し、一方、パワーオフの操作が行われたと判別すると、制御部11は、この操作に応答して、パワーオフの処理を行う(ステップS11)。すなわち、主電源とこの通信装置の各部との間の電流路を切断する。この結果、この通信装置は駆動を停止する(ステップS12)。
一方、ステップS7で、所定の時間が経過していないと判別すると、制御部11は、操作キー15を用いて所定の制御の要求がなされたか否かを判別する(ステップS13)。ここで「所定の制御」とは、具体的には、例えば「ROM25が記憶するプログラムの実行を必要とする処理」を意味するものとする。ステップS13で、所定の制御の要求がないと判別すると、制御部11は処理をステップS7に戻す。
ステップS13で、所定の制御の要求があったと判別すると、制御部11は、SIMカード22から識別子(当該識別子の作成に用いたハッシュテーブルを識別する情報を含む)を読み出し、また、RAM26からも識別子(当該識別子の作成に用いたハッシュテーブルを識別する情報を含む)を読み出す。そして、RAM26から読み出した識別子が、SIMカード22から読み出した識別子のうち、RAM26から読み出した識別子の生成に用いたものと同一のハッシュテーブルを用いて生成された識別子に合致するか否かを判別する(ステップS14)。
そして、合致すると判別すると、制御部11は、要求があった所定の制御のために実行すべきプログラムをROM25から読み出して実行し(ステップS15)、処理をステップS10に移す。一方、合致しないと判別すると、制御部11は、ROM25が記憶するプログラムが不正に変更されているものと判断して、処理をステップS11に移す。この結果、この通信装置は駆動を停止する(ステップS12)。
以上説明した動作を行うことにより、この通信装置は、ROM25が記憶するプログラムが不正に変更されているとき、このプログラムが実行されることを阻止する。
ROM25が記憶するプログラムが正規に変更された場合は、当該プログラムの識別子を、SIMカード22が記憶するものと同一の各ハッシュテーブルを用いて生成し、SIMカード22に記憶させることとすれば、このプログラムの実行は阻止されない。
この通信装置では、ROM25がプログラムを暗号化されていない状態で記憶しており、また、制御部11とROM25の間でのプログラムの転送も暗号化されていない状態で行われるため、ROM25が記憶するプログラムの認証及び実行を行うにあたり、当該プログラムを復号化する処理は不要であり、従ってプログラムの実行が迅速に行われる。また、EEPROM24が記憶するデータも暗号化されていないため、当該データを復号化する処理は不要である。
また、保護部12、保護部21及び保護部23の相互間ではプログラム自体の受け渡しは行われないので、これらの保護部により暗号化されたデータが解読されても、プログラムの不正な変更が行われる危険は直ちには生じない。
また、保護部12、保護部21及び保護部23が実行する暗号化及び復号化の処理に際して暗証番号ないし暗号鍵が用いられるとしても、これらの暗証番号ないし暗号鍵は外部からの入力が不要であって、この通信装置の利用者自身もこれらを知る必要はない。従って、暗号化されたデータの不正な解読が行われにくい。
なお、この通信装置の構成は、上述のものに限られない。例えば、この通信装置は、必ずしもデータの無線による送受信を行う装置である必要はなく、プログラムを実行する任意の装置であってよい。また、認証の対象となるプログラムは必ずしもROMに記憶されている必要はなく、例えばハードディスク装置あるいはその他任意の記憶装置に記憶されていてよい。また、認証の対象となるソフトウェアはプログラムには限られず、制御部11が実行する処理に供されるデータベースその他任意のソフトウェアが認証の対象となり得る。
また、ステップS13あるいはステップS14の処理を行うタイミングは任意であり、必ずしもタイマ17が供給するデータに基づいてステップS13の処理を行うか否かを決定する必要はない。
従って、例えば制御部11が消費電力を低減させるスリープモードに入る機能を有している場合は、図3に示すように、ステップS5の処理の後、ステップS6の処理を経ることなく直ちに、制御部11自身がスリープモードに入っているか否かを判別する処理(図3、ステップS7B)を、図2のステップS7の処理に代えて行えばよい。そして、スリープモードに入っていると判別したときはステップS8へ、一方、スリープモードに入っていないと判別したときはステップS13へと処理を移すようにすればよい。
また、ROM25が認証プログラム及び圧縮プログラム以外のプログラムを複数記憶している場合、プログラムの認証はプログラム別におこなってもよい。この場合、SIMカード22は、例えば、認証対象のプログラム別に複数の圧縮領域情報を記憶していればよく、制御部11は、ステップS4及びS8では、認証対象のプログラムに対応付けられた圧縮領域情報を、識別子の生成に用いればよい。
また、SIMカード22は必ずしもハッシュテーブルを記憶する必要はなく、ハッシュ関数を特定する任意のデータを記憶していればよい。そして、このデータをハッシュテーブルに代えて取得した制御部11は、当該ハッシュテーブルを参照する処理に代えて、当該データが特定するハッシュ関数に、ROM25が記憶するプログラムのうち圧縮領域情報が指定する部分を代入する処理を実行することにより、識別子を生成すればよい。
以上、この発明の実施の形態を説明したが、この発明にかかるソフトウェア保護装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
例えば、送信機及び受信機に接続されたコンピュータに上述の通信装置の動作を実行させるためのプログラムを格納した記録媒体(CD−ROM、フレキシブルディスク等)から該プログラムをインストールすることにより、上述の処理を実行する通信装置を構成することができる。
また、例えば、通信回線のBBSにこれらのプログラムをアップロードし、これらを通信回線を介して配信してもよく、また、これらのプログラムを表す信号により搬送波を変調し、得られた変調波を伝送し、この変調波を受信した装置が変調波を復調して該プログラムを復元するようにしてもよい。
そして、これらのプログラムを起動し、OSの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
なお、OSが処理の一部を分担する場合、あるいは、OSが本願発明の1つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
本発明の実施形態に係る通信装置の構成を示すブロック図である。 プログラムの認証の処理の流れを示すフローチャートである。 プログラムの認証の処理の流れの変形例を示すフローチャートである。。 従来の技術に係るソフトウェア保護装置の構成を示すブロック図である。
符号の説明
10 送受信回路部
11 制御部
12 保護部
13 表示部
14 LCDドライバ
15 操作キー
16 音声処理部
17 タイマ
18 フォントROM
19 スピーカ
20 マイクロホン
21 保護部
22 SIMカード
23 保護部
24 EEPROM
25 ROM
26 RAM
27 RAM

Claims (7)

  1. 保護対象のソフトウェアを記憶する第1の記憶手段と、
    前記保護対象のソフトウェアの一部を指定する領域指定情報、ハッシュ関数を特定するハッシュ関数特定情報、及び、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を前記ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶する第2の記憶手段と、
    前記保護対象のソフトウェアを前記第1の記憶手段より取得して処理に供するソフトウェア処理手段と、を備え、
    前記ソフトウェア処理手段は、
    前記保護対象のソフトウェアを前記第1の記憶手段より取得し、前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得する手段と、
    当該保護対象のソフトウェアのうち、当該領域指定情報により指定される一部を当該ハッシュ関数特定情報が特定するハッシュ関数に代入して得られるハッシュ値を表す第2のプログラム識別子を生成する手段と、
    当該第1及び第2のプログラム識別子が合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止する手段と、を備える、
    ことを特徴とするソフトウェア保護装置。
  2. 前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得して暗号化する暗号化手段と、
    前記暗号化手段が暗号化した前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を復号化して前記ソフトウェア処理手段に供給する復号化手段と、を更に備え、
    前記ソフトウェア処理手段は、前記暗号化手段及び前記復号化手段を介して、前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得する、
    ことを特徴とする請求項1に記載のソフトウェア保護装置。
  3. 第3の記憶手段を更に備え、
    前記ソフトウェア処理手段は、
    所定の第1のタイミングが到来したか否かを判別し、到来したと判別する毎に、前記第2のプログラム識別子を生成して前記第3の記憶手段に記憶させ、
    所定の第2のタイミングが到来したか否かを判別し、到来したと判別する毎に、前記第2のプログラム識別子のうち前記第3の記憶手段が記憶する最新のものと前記第1のプログラム識別子とが合致するか否かを判別する、
    ことを特徴とする請求項1又は2に記載のソフトウェア保護装置。
  4. 前記ハッシュ関数特定情報は、ハッシュテーブルより構成される、
    ことを特徴とする請求項1、2又は3に記載のソフトウェア保護装置。
  5. 前記第2の記憶手段は、互いに異なるハッシュ関数を特定する複数の前記ハッシュ関数特定情報を記憶し、且つ、各々の当該ハッシュ関数につき、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を当該ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶するものであり、
    前記ソフトウェア処理手段は、
    前記第1の記憶手段より取得した保護対象のソフトウェアのうち、前記領域指定情報により指定される一部を、前記複数のハッシュ関数特定情報が特定するハッシュ関数のいずれかに代入して得られるハッシュ値を表す第2のプログラム識別子を生成するものであり、
    当該第1のプログラム識別子と、前記第2のプログラム識別子のうち当該第1のプログラム識別子の生成に用いたハッシュ関数と同一のハッシュ関数を用いて生成されたものとが合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止するものである、
    ことを特徴とする請求項1乃至4のいずれか1項に記載のソフトウェア保護装置。
  6. 保護対象のソフトウェアを記憶する第1の記憶ステップと、
    前記保護対象のソフトウェアの一部を指定する領域指定情報、ハッシュ関数を特定するハッシュ関数特定情報、及び、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を前記ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶する第2の記憶ステップと、
    前記保護対象のソフトウェアを前記第1の記憶ステップより取得して処理に供するソフトウェア処理ステップと、より構成され、
    前記ソフトウェア処理ステップは、
    前記第1の記憶ステップで記憶されている前記保護対象のソフトウェアを取得し、前記第2の記憶ステップで記憶されている前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を取得するステップと、
    当該保護対象のソフトウェアのうち、当該領域指定情報により指定される一部を当該ハッシュ関数特定情報が特定するハッシュ関数に代入して得られるハッシュ値を表す第2のプログラム識別子を生成するステップと、
    当該第1及び第2のプログラム識別子が合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止するステップと、を含む、
    ことを特徴とするソフトウェア保護方法。
  7. コンピュータを、
    保護対象のソフトウェアを記憶する第1の記憶手段と、前記保護対象のソフトウェアの一部を指定する領域指定情報、ハッシュ関数を特定するハッシュ関数特定情報、及び、前記保護対象のソフトウェアのうち前記領域指定情報により指定される一部を前記ハッシュ関数に代入して得られるハッシュ値を表す第1のプログラム識別子を記憶する第2の記憶手段と、に接続され、前記保護対象のソフトウェアを前記第1の記憶手段より取得して処理に供する機能を有するコンピュータを、
    前記保護対象のソフトウェアを前記第1の記憶手段より取得し、前記領域指定情報、前記ハッシュ関数特定情報、及び、前記第1のプログラム識別子を前記第2の記憶手段より取得する手段と、
    当該保護対象のソフトウェアのうち、当該領域指定情報により指定される一部を当該ハッシュ関数特定情報が特定するハッシュ関数に代入して得られるハッシュ値を表す第2のプログラム識別子を生成する手段と、
    当該第1及び第2のプログラム識別子が合致するか否かを判別して、合致しないと判別したとき、当該保護対象のソフトウェアの処理を中止する手段と、
    して機能させるためのプログラム。
JP2007006392A 2007-01-15 2007-01-15 ソフトウェア保護装置、ソフトウェア保護方法及びプログラム Pending JP2008171365A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007006392A JP2008171365A (ja) 2007-01-15 2007-01-15 ソフトウェア保護装置、ソフトウェア保護方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007006392A JP2008171365A (ja) 2007-01-15 2007-01-15 ソフトウェア保護装置、ソフトウェア保護方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2008171365A true JP2008171365A (ja) 2008-07-24

Family

ID=39699374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007006392A Pending JP2008171365A (ja) 2007-01-15 2007-01-15 ソフトウェア保護装置、ソフトウェア保護方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2008171365A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105825127A (zh) * 2016-03-11 2016-08-03 北京金山安全软件有限公司 一种窗口销毁拦截方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105825127A (zh) * 2016-03-11 2016-08-03 北京金山安全软件有限公司 一种窗口销毁拦截方法及装置

Similar Documents

Publication Publication Date Title
EP2549678B1 (en) Method and apparatus for protecting software of mobile terminal
JP2017505592A (ja) 監視映像の処理方法、装置、プログラム及び記録媒体
JP2010507838A (ja) 携帯電話における時間同期方式otp発生装置と方法
JP2006013641A (ja) コンテンツデータ利用システム及びその方法並びに移動通信端末及びプログラム
JP6397046B2 (ja) アドレス帳保護方法、装置及び通信システム
KR20170124953A (ko) 암호화된 otp를 모바일폰에서 지문 등을 이용하여 복호화하여 사용자 인증을 자동화하는 방법과 그 시스템
JP4715792B2 (ja) 復号制御システム、復号制御方法及び復号制御プログラム
JP2009253783A (ja) 携帯端末、データ保護方法およびデータ保護用プログラム
JP4936967B2 (ja) 通信端末装置、情報管理システムおよび情報管理方法
KR101583514B1 (ko) 지문센서와 장착식 스마트 카드와 메모리 카드를 구비한 유에스비 보안장치 및 그 보안 방법
JP4791193B2 (ja) 情報処理装置、携帯端末装置及び情報処理実行制御方法
JP2009157694A (ja) データダウンロードシステム及びデータダウンロード方法
JP5054317B2 (ja) 暗号鍵設定方法、ネットワークシステム、管理装置、情報処理端末、および暗号鍵設定プログラム
US20140208103A1 (en) File encryption, decryption and accessvia near field communication
KR20100061585A (ko) Forward Lock이 설정된 DRM 콘텐츠의 처리 방법, 장치 및 시스템
JP2008171365A (ja) ソフトウェア保護装置、ソフトウェア保護方法及びプログラム
KR20090120550A (ko) 데이터 통신단말의 보안강화 시스템 및 그의 동작방법
JP2009199212A (ja) 電子音楽装置、音楽コンテンツ提供システム及び音楽コンテンツ利用プログラム
JP2012205210A (ja) 情報処理装置、情報処理方法、および、通信装置
JP2002016592A (ja) 暗号鍵管理システム及び暗号鍵管理方法
JP2005045582A (ja) 無線データ通信システム
JP2002345037A (ja) 携帯通信装置及び通信システム並びにその通信方法
US10123209B2 (en) File encryption, decryption and accessvia near field communication
JP2010199979A (ja) データバックアップシステム、復号装置及びデータバックアップ方法
JP2004147187A (ja) 情報通信端末における暗号鍵情報の管理方法及び情報通信端末