JP4335707B2 - プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法 - Google Patents

プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法 Download PDF

Info

Publication number
JP4335707B2
JP4335707B2 JP2004031272A JP2004031272A JP4335707B2 JP 4335707 B2 JP4335707 B2 JP 4335707B2 JP 2004031272 A JP2004031272 A JP 2004031272A JP 2004031272 A JP2004031272 A JP 2004031272A JP 4335707 B2 JP4335707 B2 JP 4335707B2
Authority
JP
Japan
Prior art keywords
program
falsification
falsification detection
decrypted
executing
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
JP2004031272A
Other languages
English (en)
Other versions
JP2005222418A (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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2004031272A priority Critical patent/JP4335707B2/ja
Priority to TW094103186A priority patent/TWI293226B/zh
Priority to KR1020050010031A priority patent/KR100879274B1/ko
Priority to GB0502355A priority patent/GB2410818B/en
Priority to US11/050,425 priority patent/US7853798B2/en
Priority to CNB2005100078596A priority patent/CN100361038C/zh
Publication of JP2005222418A publication Critical patent/JP2005222418A/ja
Application granted granted Critical
Publication of JP4335707B2 publication Critical patent/JP4335707B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/20Removing cooking fumes
    • F24C15/2028Removing cooking fumes using an air curtain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/20Removing cooking fumes
    • F24C15/2035Arrangement or mounting of filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Chemical & Material Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Combustion & Propulsion (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は、コンピュータプログラムの改竄を防止するためのプログラム改竄検出装置、及びプログラム改竄防止プログラムに関する。
近年、コンピュータ技術の急速な進歩に伴って、様々な製品にコンピュータが搭載されるようになった。そのようなコンピュータはCPU(Central Processing Unit)とCPUを動作させるためのコンピュータプログラムが必要である。家電製品や通信機器などの製品に搭載されたコンピュータプログラムは、その製品独自の仕様に基づいて設計されている。例えば、有料放送システムなどに用いられる受信装置は、受信契約を交わした個人だけがその装置を利用できるようなものであることが望ましい。したがって搭載されるプログラムもその受信装置が適切に利用される場合のみ動作するように設計されていることが望ましい。そのような受信用装置を起動するためのプログラムは、装置に備えられたROM(Read Only Memory)に格納され、受信装置の起動時に読み込まれる。コンピュータは読み込んだプログラムを実行することによって、その受信装置の制御を行っている。
近年、コンピュータを用いて電子的な制御を行っている装置においては、その装置に備えられたROMに格納されたプログラムは、その装置本体と同様に、開発に大きなコストが費やされており、企業にとって重要な財産になっている。上記の有料放送システムを例に述べるならば、有料放送の受信用装置を起動するためのプログラムを受信契約を結んでいない第三者に容易に知られてしまうということは、その有料放送システムが提供するサービスを不正な第三者に利用されてしまう可能性を含んでいる。さらに、上記のプログラムはシステム上の知的財産であり、その知的財産であるプログラムを適切に保護するために、そのプログラムが第三者に容易に知られてしまうということを防止する技術が望まれている。
従来、汎用のCPUやROMの動作仕様は広く公開されているため、そのようなCPUやROMを使用するコンピュータを搭載した装置を入手した第三者は、容易にプログラムの解析を行うことができる。上記のような装置において、そのROMに格納されたプログラムの解析を防止する技術が知られている(例えば、特許文献1から特許文献4参照)。
また、近年の半導体技術の進歩により、不揮発性で、且つ、書き換え可能なROM(例えば、FlashROMなど)が登場し、このようなROMが上記の製品等に用いられることが多い。このようなROMを使用することよって、装置を動作させるプログラムのバージョンアップ等が容易になる。書き換え可能なROMを使用する装置においても、ROMに格納されたプログラムの不正な書き換えを防止する技術が望まれている。
図1は、従来の装置に搭載されたCPUとROM(FlashROM)との構成を示すブロック図である。図1を参照すると、従来の装置はFlashROM101とCPU102を備え、それらはバス103を介して接続されている。FlashROM101は更にNormal Area101aとOne Time Program Area101bとを備えている。
Normal Area101aは、書込まれた情報の書き換えが可能な領域であり、暗号化されたコンピュータプログラムを格納する。One Time Program Area101bは、書き換えが不可能な(一度の書込みしかできない)領域である。One Time Program Area101bはその暗号化されたプログラムを復号化するための復号化プログラムを格納している。装置を起動するための起動プログラムはOne Time Program Area101bに格納されている。
このCPU102は起動時に最初にOne Time Program Area101bの起動用プログラムを読み出し、装置の起動を開始する。更にOne Time Program Area101bの復号化プログラムにより、FlashROM101のNormal Area101aに格納された暗号化されているプログラムを解読しながら外部のRAM(図示されず)上に展開する。その後、展開されたプログラムにより、装置を動作させる。
従来の技術は、第三者の不正使用を防止できる。そのコンピュータプログラムの不正な解析を防止している点において優れておるが、より強固なプログラムの解析防止の技術が望まれている。さらに、プログラムの改竄も防止する技術が望まれている。また、仮にコンピュータプログラムが改竄された場合には、その改竄を検出し警告などを出力する技術が望まれている。
特開昭59−188897号公報 特開平5−197633号公報 特開平8−305558号公報 特開平11−126174号公報
本発明が解決しようとする課題は、暗号化されたコンピュータプログラムを備える装置において、その暗号化方式が容易に外部に漏洩しない構成を有する装置、およびそのプログラムを提供することにある。
本発明が解決しようとする他の課題は、その暗号化方式が漏洩した場合でも、暗号化されたコンピュータプログラムの改竄を防止する構成を有する装置、およびそのプログラムを提供することにある。
本発明が解決しようとするさらなる課題は、仮にコンピュータプログラムが改竄された場合には、その改竄を検出する構成を有する装置、およびそのプログラムを提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
改竄検出用コード(34)と、暗号化されたプログラム(35)とを格納する外部メモリ(4)と、復号化プログラムを格納する起動ROM(2)と、CPU(3)とを具備し、
前記CPU(3)は、前記復号化プログラムを実行することにより前記プログラム(35)を復号化して復号済プログラムを生成し、前記復号済プログラムのコードに対して所定の演算を実行して得られた演算結果と、前記改竄検出用コード(34)との比較に基づいて前記プログラム(35)の改竄を検出するプログラム改竄検出装置(21)によって内蔵されたコンピュータプログラムの改竄を検出する。
これにより、復号化プログラム(暗号解読プログラム)が漏洩してしまい、内蔵されたコンピュータプログラムが改竄されてしまった場合に、その改竄を速やかに検出することが可能になる。
そのプログラム改竄検出装置(21)において、さらにデータを格納するためのRAM(5)を具備し、
前記CPU(3)は、前記復号化プログラムを実行することにより生成する前記復号済プログラムを前記RAM(5)に格納し、前記RAM(5)から前記コードを読み出し、読み出した前記コードに対して前記演算を実行し、前記演算結果と前記改竄検出用コード(34)との比較に基づいて前記プログラム(35)の改竄を検出することによってプログラムの改竄を検出する。
そのプログラム改竄検出装置(21)において、前記外部メモリ(4)は、前記RAM(5)のアドレスを指定するアドレス情報(33)を有し、前記CPU(3)は、前記アドレス情報(33)に基づいて、前記復号済プログラムを前記RAM(5)に格納し、前記CPU(3)は、前記アドレス情報(33)に基づいて、前記RAM(5)から前記コードを読み出すことによってプログラムの改竄を検出する。
これにより、暗号化されたプログラムを復号化した際に、RAMの所定のアドレスに格納することが可能になる。復号済プログラム(暗号解読が完了したプログラム)を予め決められたアドレスに格納することで、演算を実行した場合の実行結果を一定に保つことが可能になる。
そのプログラム改竄検出装置(21)において、前記起動ROM(2)は起動プログラムを格納し、前記CPU(3)は、前記起動プログラムを実行することにより前記復号化プログラムを実行し、前記復号済プログラムを生成するプログラム改竄検出装置(21)によってプログラムの改竄を検出する。
これにより、プログラム改竄検出装置(21)を備える製品の起動に応答して、復号化を行うことが可能になり、起動(またはリセット)時に常にプログラムの改竄を監視することが可能になる。
そのプログラム改竄検出装置(21)において、前記起動ROM(2)は複数の領域(2a〜2c)を備え、前記複数の領域(2a〜2c)の各々は、暗号化方式が異なる複数の復号化プログラムを一対一に格納し、前記CPU(3)は、前記複数の領域(2a〜2c)から一つの領域を選択し、前記選択された領域に格納された復号化プログラムを実行することによってプログラムの改竄を検出する。
そのプログラム改竄検出装置(21)において、さらに第1記憶部(15)を備え、前記第1記憶部(15)は前記複数の領域(2a〜2c)から一つの領域を選択するために用いられる領域情報を格納し、
前記CPU(3)は、前記領域情報に基づいて前記複数の領域(2a〜2c)から一つの領域を選択し、前記選択された領域に格納された復号化プログラムを実行することにより前記プログラム(35)を復号化して復号済プログラムを生成するプログラム改竄検出装置(21)を用いてプログラムの改竄を検出する。
これにより、そのプログラム改竄検出装置(21)を製品(20)に適用する場合、その製品(20)を製造するメーカーが複数存在する場合、その複数の異なる製品メーカーに対して、各々異なる暗号化方式に対応したプログラム改竄検出装置(21)を提供することが可能になる。
そのプログラム改竄検出装置(21)において、さらに上記の第1記憶部(15)とは異なる第2記憶部(12)を備え、前記第2記憶部(12)はプログラム改竄検出装置(21)を識別するための識別子を格納し、
前記復号済プログラムは前記識別子に対応する識別子確認情報を含み、前記CPU(3)は、前記復号済プログラムを実行することによって前記識別子確認情報と前記識別子とを照合し、その照合結果に基づいて前記プログラム(35)の改竄を検出するプログラム改竄検出装置(21)を用いてプログラムの改竄を検出する。
これにより、演算結果による改竄が検出されなかった場合でも、復号済プログラムに含まれる識別子確認情報と、その製品に固有の識別子とを比較することでより強固なプログラムの保護が可能になる。また、その製品の識別子として使用される半導体デバイス(1、11、14)に付与されたデバイスIDを使用するようにしても良い。
そのプログラム改竄検出装置(21)を備える製品(20)がネットワーク(23)に接続されている場合において、前記起動ROM(2)は、改竄通知プログラムを格納し、前記CPU(3)は、前記プログラム(35)の改竄の検出に応答して前記改竄通知プログラムを実行することによって、前記プログラム(35)の改竄を通知する改竄検出メッセージを生成し、前記改竄通知メッセージを前記ネットワーク(23)を介して所定のアドレスに送信するプログラム改竄検出装置(21)を使用する。
これにより、プログラムの改竄を検出した場合に、速やかに所定の端末装置に通知することが可能になる。ネットワークを介してその通知を受信することで、改竄を迅速に把握するので、プログラム改竄検出装置(21)を備える製品(20)の設置場所まで赴いて改竄の事実を確認する必要なくなる。また。設定により、改竄検出に応答して復号済プログラムの実行を停止することも可能である。さらに、ネットワークを介して改竄通知メッセージを受信した端末装置は、そのメッセージに含まれる情報から送信元の製品(20)を特定することも可能である。
そのプログラム改竄検出装置(21)において、前記CPU(3)と前記起動ROM(2)とが一の半導体デバイス(1、11、14)内部に備えられ、前記半導体デバイス(1、11、14)は、前記外部メモリ(4)と前記RAM(5)との各々と接続するプログラム改竄検出装置(21)を用いてプログラムの改竄を検出する。
これにより、起動ROM(2)とCPU(3)とを半導体デバイスの内部に格納することが可能になる。CPU(3)と起動ROM(2)を1つのチップ内に備えるような構成にすることで、起動ROM(3)の復号化プログラム(暗号化方式)を比較的情報が漏洩しにくい半導体デバイス内部に格納することになり、暗号化方式の漏洩防止(改竄防止)の効果がある。
改竄検出用コード(34)と、暗号化されたプログラムとを格納する外部メモリ(4)と、復号化プログラムを格納する起動ROM(2)と、CPU(3)とを具備するプログラム改竄検出装置(21)を動作させる改竄検出プログラムにおいて、
前記起動ROM(2)から復号化プログラムを読み出すステップと、前記復号化プログラムを実行することにより前記プログラム(35)を復号化して復号済プログラムを生成するステップと、前記復号済プログラムのコードに対して、所定の演算を実行し、前記演算結果と前記改竄検出用コード(34)との比較に基づいて前記プログラム(35)の改竄を検出するステップを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによって外部メモリ(4)に格納されたプログラムの改竄を検出する。
そのプログラム改竄検出装置(21)はさらにRAM(5)を具備し、
その改竄検出プログラムにおいて、前記起動ROM(2)から復号化プログラムを読み出すステップと、前記復号化プログラムを実行することにより前記プログラム(35)を復号化して前記復号済プログラムを生成するステップと、前記復号済プログラムを前記RAM(5)に格納するステップと、前記RAM(5)から前記復号済プログラムのコードを読み出すステップと、読み出した前記コード対して、所定の演算を実行し、前記演算結果と前記改竄検出用コード(34)との比較に基づいて前記プログラム(35)の改竄を検出するステップを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによってプログラムの改竄を検出する。
その改竄検出プログラムにおいて、前記外部メモリ(4)から前記RAM(5)のアドレスを指定するアドレス情報(33)を読み出すステップと、前記アドレス情報(33)に基づいて、前記復号済プログラムを前記RAM(5)に格納するステップと、前記アドレス情報(33)に基づいて、前記RAM(5)から前記コードを読み出すステップを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによってプログラムの改竄を検出する。
その改竄検出プログラムにおいて、前記起動ROM(2)から起動プログラムを読み出すステップと、前記起動プログラムを実行することにより前記復号化プログラムを実行し、前記復号済プログラムを生成するステップとを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによってプログラムの改竄を検出する。
その改竄検出プログラムにおいて、前記起動ROM(2)は、暗号化方式が異なる複数の復号化プログラムを一対一に格納する複数の領域(2a〜2c)を備え、
前記複数の領域(2a〜2c)から一つの領域を選択するステップと、前記選択された領域に格納された復号化プログラムを読み出すステップと、読み出した前記復号化プログラムを実行するステップを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによってプログラムの改竄を検出する。
その改竄検出プログラムにおいて、前記領域情報を読み出すステップと、前記領域情報に基づいて前記複数の領域(2a〜2c)から一つの領域を選択するステップと、その選択された領域に格納された復号化プログラムを実行することにより前記プログラム(35)を復号化して復号済プログラムを生成するステップを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによってプログラムの改竄を検出する。
その改竄検出プログラムにおいて、前記起動ROM(2)と前記CPU(3)は一の半導体デバイス(1、11、14)に備えられ、
前記半導体デバイス(1、11、14)を識別するための識別子を読み出すステップと、前記復号済プログラムから前記識別子に対応する識別子確認情報を抽出するステップと、前記復号済プログラムを実行することによって前記識別子確認情報と前記識別子とを照合するステップと、その照合結果に基づいて前記プログラム(35)の改竄を検出するステップを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによってプログラムの改竄を検出する。
その改竄検出プログラムにおいて、前記プログラム改竄検出装置はネットワーク(23)に接続され、
前記起動ROM(2)から改竄通知プログラムを読み出すステップと、前記プログラム(35)の改竄の検出に応答して前記改竄通知プログラムを実行することによって、改竄検出メッセージを生成するステップと、前記改竄通知メッセージを前記ネットワーク(23)を介して所定のアドレスに送信するステップを具備する方法をコンピュータで実行可能な改竄検出プログラムを実行することによってプログラムの改竄を検出し、その改竄検出を通知する。
復号化プログラムを読み出すステップと、前記復号化プログラムを実行することにより暗号化プログラムを復号化して復号済プログラムを生成するステップと、前記復号済プログラムのコードに対して、所定の演算を実行し、前記演算結果と予め格納された改竄検出用コード(34)との比較に基づいて前記プログラム(35)の改竄を検出するステップを具備するプログラム改竄検出方法によって所定の製品(20)を動作させるためのコンピュータプログラムの改竄を検出する。
そのプログラム改竄検出方法において、RAM(5)のアドレスを指定するアドレス情報(33)を読み出すステップと、前記アドレス情報(33)に基づいて、前記復号済プログラムを前記RAM(5)に格納するステップと、前記アドレス情報(33)に基づいて、前記RAM(5)から前記コードを読み出すステップを具備するプログラム改竄検出方法によってプログラムの改竄を検出する。
そのプログラム改竄検出方法において、起動プログラムを読み出すステップと、前記起動プログラムを実行することにより前記復号化プログラムを実行し、前記復号済プログラムを生成するステップを具備するプログラム改竄検出方法によってプログラムの改竄を検出する。
そのプログラム改竄検出方法において、予め格納された、暗号化方式が異なる複数の復号化プログラムの中から一つの復号化プログラムを選択するステップと、前記選択された復号化プログラムを読み出すステップと、読み出した前記復号化プログラムを実行するステップを具備するプログラム改竄検出方法によってプログラムの改竄を検出する。
そのプログラム改竄検出方法において、領域情報を読み出すステップと、前記領域情報に基づいて複数の復号化プログラム格納領域から一つの復号化プログラム格納領域を選択するステップと、その選択された復号化プログラム格納領域に格納された復号化プログラムを実行することにより前記プログラム(35)を復号化して復号済プログラムを生成するステップとを具備するプログラム改竄検出方法によってプログラムの改竄を検出する。
そのプログラム改竄検出方法において、半導体デバイス(1、11、14)を識別するための識別子を読み出すステップと、前記復号済プログラムから前記識別子に対応する識別子確認情報を抽出するステップと、前記復号済プログラムを実行することによって前記識別子確認情報と前記識別子とを照合するステップと、その照合結果に基づいて前記プログラム(35)の改竄を検出するステップを具備するプログラム改竄検出方法によってプログラムの改竄を検出する。
そのプログラム改竄検出方法において、改竄通知プログラムを読み出すステップと、前記プログラム(35)の改竄の検出に応答して前記改竄通知プログラムを実行することによって、改竄検出メッセージを生成するステップと、前記改竄通知メッセージをネットワーク(23)を介して所定のアドレスに送信するステップを具備するプログラム改竄検出方法によってプログラムの改竄を検出する。
本発明は、暗号化されたコンピュータプログラムを備える装置において、その暗号化方式を容易に外部に漏洩させないための構成を備え、装置に格納された情報の漏洩に関する安全性を向上させる効果がある。
また、本発明はさらに、暗号化方式が漏洩した場合でも、暗号化されたコンピュータプログラムの改竄を防止し、より強固なセキュリティ対策の実現が可能になり、それにより装置に格納された情報の漏洩に関する安全性を向上させる効果がある。
また、本発明はさらに、仮にコンピュータプログラムが改竄された場合には、その改竄を検出するための動作を実行し、その動作によって改竄されたことを認識しないまま、そのコンピュータプログラムを実行しつづけてしまうことを防止する効果がある。
以下に、図面を使用して本発明のプログラム改竄検出装置について述べる。
本発明の実施の形態に述べるプログラム改竄検出機能を備えたコンピュータ(以下、プログラム改竄検出機能付コンピュータ21と称する)は、コンピュータを用いて電子的な制御を行っている製品全般に適用可能である。以下では、そのプログラム改竄検出機能付コンピュータ21を搭載した製品本体が、情報通信ネットワークに接続された状態で使用される製品、特に、製品本体に搭載されたプログラムの改竄が問題になりやすい有料放送システムの放送受信装置に適用された場合を例にして述べる。
[第1の実施の形態]
図2は、本発明によるプログラム改竄検出機能付コンピュータ21を、有料放送システムの放送受信装置に適用した場合のシステム構成の一例を示すブロック図である。図2を参照すると、その有料放送システムは、放送配信側に備えられた配信装置24、管理装置25および有料放送を受信する受信側に備えられた有料放送受信装置20とで構成される。配信装置24は、その有料放送システムが提供するサービスである有料放送をネットワーク23を介して送信する装置である。管理装置25は、上記の有料放送の配信状況や有料放送受信装置20の放送受信状態などを管理する装置である。有料放送受信装置20は、配信装置24から送信された情報(有料放送)をネットワーク23を介して受信し、表示装置(図示されず)に出力する。
有料放送受信装置20は更にプログラム改竄検出機能付コンピュータ21と通信用インターフェース22を備える。プログラム改竄検出機能付コンピュータ21は、LSI1(またはLSI11、LSI14)と書き換え可能外部ROM4とRAM5を備え、通信用インターフェース22を介してネットワーク23に接続する。ネットワーク23に接続された通信用インターフェース22は、プログラム改竄検出機能付コンピュータ21から出力された情報をネットワーク23を介して配信装置24に送信する。
図3は、本発明の第1の実施の形態によるプログラム改竄検出機能付コンピュータ21に備えられたプログラム改竄検出装置の構成を示すブロック図である。図3を参照すると、第1の実施の形態によるプログラム改竄検出装置は、起動用ROM2とCPU3と内部バス6とを内部に備えるLSI1と、外部ROM4とRAM5とで構成される。LSI1はシングルチップで構成された集積回路である。LSI1はデータ線9を介して外部ROM4に接続され、データ線10を介してRAM5に接続されている。
起動用ROM2は、格納された情報の書き換えが不可能なROMである。起動用ROM2はデータ線7を介して内部バス6に接続され、その内部バス6を介してCPU3と外部ROM4とRAM5との各々に接続されている。起動用ROM2はプログラム改竄検出機能付コンピュータ21の起動直後のみ使用され、CPU起動専用プログラムと外部ROM4上の暗号化されたプログラムの解読・展開を行うための復号化プログラムを格納する。CPU3は、そのCPU起動専用プログラムによって起動され、そのCPU起動専用プログラムに基づいて起動用ROM2から復号化プログラムを読み出す。CPU3はさらに、その復号化プログラムに基づいて外部ROM4上の暗号化されたプログラムを読出し、プログラムの復号化を実行する。CPU3は、復号化されてRAM5に展開されたプログラムを実行し、そのプログラムを実行することによりプログラム改竄検出機能付コンピュータ21の制御を行う。CPU3はデータ線8を介して内部バス6に接続され、その内部バス6を介して起動用ROM2と外部ROM4とRAM5とに接続されている。
書き換え可能外部ROM4は、格納された情報の書き換えが可能で、且つ、不揮発性の記憶領域を有する記憶装置である。書き換え可能外部ROM4はデータ線9を介してLSI1に接続され、暗号化プログラムを格納している。書き換え可能外部ROM4はLSI1からの要求に応答して、その暗号化プログラムを出力する。RAM5は、復号済プログラムを格納する記憶装置である。RAM5はデータ線10を介してLSI1に接続され、起動用ROM2に格納された復号化プログラムによって復号化された暗号化プログラムを、復号済プログラムとして格納する。
図4は書き換え可能外部ROM4の内部フォーマット30を示す図である。図4を参照すると、書き換え可能外部ROM4の情報格納領域はヘッダー部と、ヘッダー部以外の領域とで構成される。ヘッダー部はさらに複数の領域で構成され、各々の領域にはヘッダー検出用ユニークコード31と、ユーザプログラムコード量情報32と、RAM展開先アドレス情報33と、参照用セキュリティチェックコード34とが格納される。
ヘッダー検出用ユニークコード31は、書き換え可能外部ROM4に格納された情報に対するアクセスを確立するために使用されるコードである。ユーザプログラムコード量情報32から参照用セキュリティチェックコード34は、ヘッダー検出用ユニークコード31に続けて書き換え可能外部ROM4に格納される情報である。ユーザプログラムコード量情報32は、RAM5に展開される復号化されたプログラムのコード量が、所定のコード量に達したかどうかの判断に用いられる情報である。RAM展開先アドレス情報33は、RAM5のアドレスを示す情報である。CPU3は、復号化されたプログラムをRAM5に展開する場合にアドレス情報33に基づいて、復号化されたプログラムをRAM5に展開し、また、RAM5に格納された復号済プログラムを読み出す場合にもそのアドレス情報に基づいてデータの読み止しを行う。参照用セキュリティチェックコード34は、復号化が完了したプログラムの改竄を検出するための用いられるコードである。ユーザコード35は、書き換え可能外部ROM4に格納された暗号化されたプログラムである。
図5は、第1の実施の形態における動作を示すフローチャートである。以下の説明では、暗号化されたプログラムと復号化によってRAM5に展開されたプログラムとの区別を明確にするために、書き換え可能外部ROM4に格納されたプログラム(暗号化されたプログラム)をユーザコード35と呼び、そのユーザコード35を復号化してRAM5に展開されたプログラムをユーザプログラムと呼ぶ。図5を参照すると、第1の実施の形態の動作は、有料放送受信装置20を起動(またはリセット)することによって電源が投入されると開始する。ステップS101において、有料放送受信装置20の起動に応答して、起動用ROM2に格納されたCPU起動専用プログラムが実行され、CPU3が起動する。起動したCPU3は内部バス6を介して起動用ROM2にアクセスし、起動用ROM2に格納された復号化プログラムの読み出しを実行する。
ステップS102において、CPU3は書き換え可能外部ROM4にアクセスし、書き換え可能外部ROM4のヘッダー部に格納された情報の読み出しを行う。ステップS103において、CPU3はヘッダー検出用ユニークコード31を検出したかどうかの判断を行う。CPU3がヘッダー検出用ユニークコード31を検出した場合には、処理はステップS104に進む。CPU3がヘッダー検出用ユニークコード31を検出しなかった場合には、処理は戻りステップS102の読み出し動作を再び実行する。ヘッダー検出用ユニークコード31が検出されない場合には、処理はステップS102からステップS103の動作を繰り返す(有料放送受信装置20は起動されない)。
ステップS104において、ヘッダー検出用ユニークコード31を検出したCPU3は、ヘッダー検出用ユニークコード31に続くユーザプログラムコード量情報32、RAM展開先アドレス情報33、参照用セキュリティチェックコード34の読み出しを行う。ステップS105において、ユーザプログラムコード量情報32とRAM展開先アドレス情報33と参照用セキュリティチェックコード34との読み出しが完了したCPU3は書き換え可能外部ROM4に格納されたユーザコード35を読み出し、読み出したユーザコード35を復号化プログラムを実行することによって解読し、RAM5に展開する。
ここで実行される復号化プログラムの暗号方式としては、任意の暗号方式を使用することが可能である。例えば、ユーザコード35を複数ビット単位で読み出し、その複数ビットに対応して解読が可能な所定の解読用キーを用いてEXOR演算を実行することによりユーザコード35の復号化を行う方法を用いても良い。さらに複雑な暗号・復号化方式を使用することでより安全性の高いシステムを構成することも可能である。
ステップS106において、RAM5に展開された復号化後のプログラムであるユーザプログラム(バイナリコード)を使用し、所定の演算規則に基づいてセキュリティチェックコードを算出する。実行される演算規則は任意の演算規則を使用することが可能である。
ステップS107において、RAM5に展開されたユーザプログラムのコード量と、ステップS104で読み出したユーザプログラムコード量情報32との比較を実行する。その比較の結果、RAM5に展開されたユーザプログラムのコード量がユーザプログラムコード量情報32に達していない場合処理は戻り、読み出したユーザコード35の復号化とRAM5への展開および次のセキュリティチェックコードの算出を行う。
上記のステップS105〜ステップS107の動作を更に具体的に説明すると、例えば、その演算規則としてEXOR演算を利用する場合、最初に所定の32ビットの第1固定値と、32ビットの第2固定値を設定し、所定の領域に格納する。CPU3はその第1固定値とユーザコード35の最初の32ビットとのEXOR演算を実行し、32ビットのユーザプログラムを生成する(ステップS105)。CPU3は、その32ビットのユーザプログラムと第2固定値とのEXOR演算に基づいて第1セキュリティチェックコードを算出する。(ステップS106)
上述の第1セキュリティチェックコード算出後、CPU3は、RAM5に展開されたユーザプログラムのコード量がユーザプログラムコード量情報32に達したかどうかの判断を実行する(ステップS107)。その判断の結果、RAM5に展開されたユーザプログラムのコード量がユーザプログラムコード量情報32に達していない場合には、処理はステップS105に戻り、CPU3は第1固定値とユーザコード35の次の32ビットとのEXOR演算を実行して新たな32ビットのユーザプログラムを生成する(ステップS105)。CPU3は、生成された新たな32ビットのユーザプログラムと第1セキュリティチェックコードとのEXOR演算を実行し、第2セキュリティチェックコードを算出する(ステップS106)。
CPU3は、RAM5に展開されたユーザプログラムのコード量がユーザプログラムコード量情報32に一致するまでステップS105〜ステップS107の処理を繰り返し、その両方が一致したときのセキュリティチェックコードをユーザプログラム全体に対する最終的なセキュリティチェックコードとして決定する。また、CPU3は、RAM5に展開されたユーザプログラムのコード量とユーザプログラムコード量情報32とが一致したことに基づいて、ユーザコード35が全て復号化されたことを認識する。
ステップS108において、算出された最終的なセキュリティチェックコードと参照用セキュリティチェックコード34との比較を実行する。その比較の結果、算出されたセキュリティチェックコードと参照用セキュリティチェックコード34とが一致しなかった場合、ユーザコード35が改竄されたと判断する(ステップS110)。ステップS110において、ユーザコード35が改竄されたと判断された場合、プログラム改竄検出機能付コンピュータ21は改竄検出メッセージを生成し、通信用インターフェース22に出力する。出力されたメッセージはネットワークを介して有料放送システムの管理装置25に送信される。算出されたセキュリティコードと参照用セキュリティチェックコード34とが一致した場合、ステップS109に進み、プログラム改竄検出機能付コンピュータ21は、RAM5に展開されているユーザプログラムを実行することにより有料放送受信装置20を動作させる。ステップS109において、RAM5に展開されたユーザプログラムによる有料放送受信装置20の動作開始に応答して、プログラム改竄検出機能付コンピュータ21のLSI1は起動用ROM2へのアクセスを禁止する。この禁止はプログラム改竄検出機能付コンピュータ21の動作終了(例えば、電源断など)まで継続する。
このフローチャートの動作によって、起動用ROM2に格納された復号化プログラムによるセキュリティ対策だけでなく、復号化されたユーザプログラムのコードを使用したセキュリティチェックを実行することで、より強固なプログラム改竄検出機能付コンピュータ21に備えられたプログラムの保護が可能になる。
[第2の実施の形態]
図6は、本発明の第2の実施の形態によるプログラム改竄検出機能付コンピュータ21に備えられたプログラム改竄検出装置の構成を示すブロック図である。第2の実施の形態に述べるプログラム改竄検出装置は第1の実施の形態同様にコンピュータを用いて電子的な制御を行っている製品全般にコンピュータを用いて電子的な制御を行っている製品全般に適用可能である。したがって以下の説明では第1の実施の形態同様に、そのプログラム改竄検出機能付コンピュータ21を搭載した製品本体が、情報通信ネットワークに接続された状態で使用される製品、特に、製品本体に搭載されたプログラムの改竄が問題になりやすい、有料放送システムの有料放送受信装置20である場合を例に述べる。
図6を参照すると、第2の実施の形態で述べるプログラム改竄検出装置は、起動用ROM2とCPU3と内部バス6とデバイスID情報記憶部12とを内部に備えるLSI11と、書き換え可能外部ROM4と、RAM5とで構成される。LSI11はLSI1と同様のシングルチップを備えた集積回路である。LSI11に備えられた起動用ROM2とCPU3とは第1の実施の形態に示す起動用ROM2とCPU3と同様の構成であるので、以下では起動用ROM2とCPU3の構成に関する説明は省力する。また。書き換え可能外部ROM4とRAM5も第1の実施の形態で説明した書き換え可能外部ROM4とRAM5と同様の構成であるので、以下では書き換え可能外部ROM4とRAM5の構成に関する説明は省力する。
デバイスID情報記憶部12は、半導体デバイスに割当てられたデバイスIDをデバイスID情報として格納する記憶領域である。レジスタ、または、それに類する情報記憶機能を有し、データ線13を介して内部バス6に接続されている。デバイスIDはその半導体デバイスの設計時に決定された値であり、同じ設計の半導体デバイスには同じデバイスIDが付与される。また、同様の設計で品種の異なる半導体デバイスには、異なる品種毎にデバイスIDが付与される。
図7は第2の実施の形態の動作を示すフローチャートである。図7を参照すると、第2の実施の形態における動作は、ステップS101からステップS109までの動作は第1の実施の形態における動作と同様である。したがって、以下では図7に示されているフローチャートのステップS201からステップS204を中心に説明を行う。
LSI11のCPU3は、ステップS201の前ステップであるステップS109でRAM5に展開されたユーザプログラムを実行することによって有料放送受信装置20を動作させる。ステップS201において、そのユーザプログラムの実行開始に応答してLSI11に備えられたデバイスID情報記憶部12からデバイスID情報の読み出しを行う。
ステップS202において、CPU3はデバイスID情報記憶部12からのデバイスID情報の読み出し完了に応答して、RAM5に展開された復号化後のユーザプログラムに含まれるデバイスチェックIDを抽出する。ユーザコード35には、暗号化されたデバイスチェックIDが予め含まれており、CPU3は書き換え可能外部ROM4に格納されるユーザコード35を復号化することでユーザプログラムからデバイスチェックIDの抽出が可能である。
ステップS203において、ユーザプログラムから抽出したデバイスチェックIDとデバイスID情報記憶部12から読み出したデバイスID情報とが一致するかどうかの判断を行う。その判断の結果、デバイスチェックIDとデバイスID情報とが一致しなかった場合ステップS205に進み、ユーザプログラムの実行を停止する。また、プログラム改竄検出機能付コンピュータ21はプログラムの実行の停止に応答してプログラム停止メッセージを生成し、通信用インターフェース22に出力する。出力されたメッセージはネットワーク23を介して有料放送システムの管理装置25のアドレスに送信される。ステップS203の判断の結果、デバイスチェックIDとデバイスID情報とが一致した場合、ステップS204に進み、プログラム改竄検出機能付コンピュータ21は、RAM5に展開されているユーザプログラムを実行することによって有料放送受信装置20を動作を継続する。
このフローチャートの動作によって、復号化プログラムを起動用ROM2に格納するというセキュリティ対策だけでなく、復号化されたユーザプログラムから算出されたセキュリティチェックコードを使用した改竄検出を実行し、さらに、ユーザプログラムに含まれるデバイスチェックIDと、LSI11内部に格納されたデバイスID情報とを使用したセキュリティチェックを行うことで、プログラム改竄検出機能付コンピュータ21に格納されたプログラムをより強固に保護することが可能なる。
[第3の実施の形態]
図8は、本発明の第3の実施の形態によるプログラム改竄検出機能付コンピュータ21に備えられたプログラム改竄検出装置の構成を示すブロック図である。第3の実施の形態に述べるプログラム改竄検出装置は第1の実施の形態同様にコンピュータを用いて電子的な制御を行っている製品全般に適用可能である。したがって、以下では第1の実施の形態と同様に、そのプログラム改竄検出機能付コンピュータ21を搭載した製品本体が、情報通信ネットワークに接続された状態で使用される製品、特に、製品本体に搭載されたプログラムの改竄が問題になりやすい、有料放送システムの有料放送受信装置20である場合を例に述べる。
図8を参照すると、第3の実施の形態で述べるプログラム改竄検出装置は、起動用ROM2とCPU3と内部バス6とレジスタ15とを内部に備えるLSI14と、書き換え可能外部ROM4と、RAM5とで構成される。LSI14はLSI1と同様のシングルチップで構成された集積回路である。LSI14に備えられたCPU3は第1の実施の形態に示したCPU3と同様の構成であるので、以下では第3の実施の形態におけるCPU3の構成に関する説明は省力する。また。図8に示される書き換え可能外部ROM4とRAM5も第1の実施の形態で説明した書き換え可能外部ROM4とRAM5と同様の構成であるので、以下では第3の実施の形態における書き換え可能外部ROM4とRAM5の構成に関する説明は省力する。
起動用ROM2は、複数の領域(第1エリア2a〜第3エリア2c)を備え、その各々にLSI1に備えられた起動用ROM2と同様の情報を格納する。また、複数の領域(第1エリア2a〜第3エリア2c)は、設計変更によって任意に増減させることが可能である。レジスタ15はLSI14内部に備えられた記憶回路である。複数の領域を備える起動用ROM2の中から特定の領域を選択するための情報を格納する。レジスタ15はデータ線16を介して内部バス6に接続されている。起動用ROM2の複数の領域(第1エリア2a〜第3エリア2c)の各々には、対応する暗号方式が異なる復号化プログラムが一対一に格納される。暗号化されたユーザプログラム(ユーザコード35)は、上記の複数の暗号方式の中の一つで暗号化され、書き換え可能外部ROM4に格納される。
さらに、複数の領域から特定の領域を選択し暗号方式を決定するために、デバイス(LSI14)には特定外部端子を備えることが好ましい。デバイスは起動(またはリセット)時にその特定外部端子でレジスタ15を決定し、そのレジスタ15から格納された値を読み出す。
図9は第3の実施の形態の動作を示すフローチャートである。図9を参照すると、第2の実施の形態における動作は、ステップS102からステップS109までの動作は第1の実施の形態における動作と概ね同様であることが示されている。したがって、以下では図8に示されているフローチャートのステップS301からステップS303までを中心に説明を行う。
ステップS301において、有料放送受信装置20の起動に応答してLSI14に内蔵された起動用ROM2に格納されたCPU起動専用プログラムによってCPU3が起動される。起動したCPU3は起動直後に内部バス6を介してレジスタ15にアクセスする。
ステップS302において、CPU3は、起動時に使用された特定外部端子で決定したレジスタ15に格納された値の読み出しを実行する。CPU3は読み出したレジスタ15の値に基づいて起動用ROM2の複数の領域(第1エリア2a〜第3エリア2c)の中から、復号化プログラムを読み出す領域を決定する(ステップS303)。その後、処理はステップS102に進み、以下、第1の実施の形態におけるステップS102からステップS109(またはステップS110)と同様の処理を実行する。
このフローチャートの動作によって、書き換え可能外部ROM4に格納する暗号化されたユーザプログラムの暗号化方式を複数設定することが可能になる。さらに、書き換え可能外部ROM4に格納された暗号化されたユーザプログラムが解析されてしまった場合でも、起動時に選択される暗号化方式と一致させることが困難になるため、プログラム改竄検出機能付コンピュータ21に搭載されたプログラムに関する安全性が向上する。さらに、起動用ROM2に格納された復号化プログラムによるセキュリティ対策だけでなく、復号化されたユーザプログラムのコードを使用したセキュリティチェックを実行することで、より強固にプログラム改竄検出機能付コンピュータ21のプログラムの保護が可能になる。
また、複数の領域を備えることで、同一種類のデバイス(LSI)において、複数の暗号方式を選択することができる。これにより、複数の異なる有料放送受信装置20製造メーカーにプログラム改竄検出機能付コンピュータ21を提供する場合でも、各々のメーカーに異なる暗号方式を提供することができる。デバイスが同じでも、あるメーカーで使用している暗号方式と、他のメーカーで使用している暗号方式とを異なるものに設定することで、書き換え可能外部ROM4格納されたユーザコード35に対する強固なセキュリティ対策が可能になる。
なお、上述した第1の実施の形態から第3の実施の形態は、矛盾が発生しない場合において組合せて実行することが可能である。
図1は、従来のCPUと書き換え可能なROMとの構成を示すブロック図である。 図2は、、本発明によるプログラム改竄検出機能を備えたコンピュータを、有料放送システムの放送受信装置に適用した場合のシステム構成の一例を示すブロック図である。 図3は、第1の実施の形態の構成を示すブロック図である。 図4は、書き換え可能外部ROMのフォーマットを示す図である。 図5は、第1の実施の形態における動作を示すフローチャートである。 図6は、第2の実施の形態の構成を示すブロック図である。 図7は、第2の実施の形態における動作を示すフローチャートである。 図8は、第3の実施の形態の構成を示すブロック図である。 図9は、第3の実施の形態における動作を示すフローチャートである。
符号の説明
1、11、14 … LSI
2 … 起動用ROM
3 … CPU
4 … 書き換え可能外部ROM
5 … RAM
6 … 内部バス
7、8、9、10 … データ線
20 … 有料放送受信装置
21 … プログラム改竄検出機能付コンピュータ
22 … 通信用インターフェース
23 … ネットワーク
24 … 配信装置
25 … 管理装置
30 … 内部フォーマット
31 … ヘッダー検出用ユニークコード
32 … ユーザコード量情報
33 … RAM展開先アドレス情報
34 … 参照用セキュリティチェックコード
35 … ユーザコード
12 … デバイスID情報記憶部
13 … データ線
15 … レジスタ
16 … データ線
2a〜2c … 起動用ROMの記憶領域
101 … FlashROM
101a … Normal Area
101b … One Time Program Area
102 … CPU
103 … バス

Claims (22)

  1. 改竄検出用コードと暗号化されたプログラムとを格納する外部メモリと、
    前記暗号化されたプログラムを復号化するための復号化プログラムを格納する起動ROMと、
    CPUと、
    プログラム改竄検出装置を識別するための識別子を格納する第2記憶部と
    を具備し、
    前記暗号化されたプログラムは、前記識別子との照合に用いられる識別子確認情報を、暗号化した状態で保持し、
    前記CPUは、
    前記復号化プログラムを実行することにより、前記暗号化されたプログラムを復号化して、復号化された識別子確認情報を含む復号済プログラムを生成し、前記復号済プログラムのコードに対して所定の演算を実行して得られた演算結果と前記改竄検出用コードとの比較、及び、前記復号済プログラムを実行することによって前記復号済プログラムのコードから得られる前記復号化された識別子確認情報と前記識別子との照合結果に基づいて、前記暗号化されたプログラムの改竄を検出する
    プログラム改竄検出装置。
  2. 請求項1に記載のプログラム改竄検出装置において、
    さらにRAMを具備し、
    前記CPUは、前記復号化プログラムを実行することにより生成する前記復号済プログラムを前記RAMに格納し、前記RAMから前記コードを読み出し、読み出した前記コードに対して前記演算を実行し、前記演算結果と前記改竄検出用コードとの比較に基づいて前記プログラムの改竄を検出する
    プログラム改竄検出装置。
  3. 請求項2に記載のプログラム改竄検出装置において、
    前記外部メモリは、前記RAMのアドレスを指定するアドレス情報を有し、
    前記CPUは、前記アドレス情報に基づいて、前記復号済プログラムを前記RAMに格納し、
    前記CPUは、前記アドレス情報に基づいて、前記RAMから前記コードを読み出す
    プログラム改竄検出装置。
  4. 請求項1乃至3の何れか1項に記載のプログラム改竄検出装置において、
    前記起動ROMは起動プログラムを格納し、
    前記CPUは、前記起動プログラムを実行することにより前記復号化プログラムを実行し、前記復号済プログラムを生成する
    プログラム改竄検出装置。
  5. 請求項1乃至4の何れか1項に記載のプログラム改竄検出装置において、
    前記起動ROMは複数の領域を備え、
    前記複数の領域の各々は、暗号化方式が異なる複数の復号化プログラムを一対一に格納し、
    前記CPUは、前記複数の領域から一つの領域を選択し、前記選択された領域に格納された復号化プログラムを実行する
    プログラム改竄検出装置。
  6. 請求項5に記載のプログラム改竄検出装置において、
    第1記憶部を備え、前記第1記憶部は前記複数の領域から一つの領域を選択するために用いられる領域情報を格納し、
    前記CPUは、前記領域情報に基づいて前記複数の領域から一つの領域を選択し、前記選択された領域に格納された復号化プログラムを実行することにより前記プログラムを復号化して復号済プログラムを生成する
    プログラム改竄検出装置。
  7. 請求項1乃至6の何れかに記載のプログラム改竄検出装置において、
    さらに、ネットワークに接続され、
    前記起動ROMは、改竄通知プログラムを格納し、
    前記CPUは、前記プログラムの改竄の検出に応答して前記改竄通知プログラムを実行することによって、前記プログラムの改竄を通知する改竄検出メッセージを生成し、前記改竄通知メッセージを前記ネットワークを介して所定のアドレスに送信する
    プログラム改竄検出装置。
  8. 請求項1乃至7の何れか1項に記載のプログラム改竄検出装置において、
    前記CPUと前記起動ROMとが一の半導体デバイス内部に備えられ、
    前記半導体デバイスは、前記外部メモリと前記RAMの各々と接続する
    プログラム改竄検出装置。
  9. 請求項1乃至8の何れか1項に記載のプログラム改竄検出装置で使用され、前記CPUと前記起動ROMとを具備する
    半導体デバイス。
  10. 改竄検出用コードと暗号化されたプログラムとを格納する外部メモリと、前記暗号化されたプログラムを復号化する復号化プログラムを格納する起動ROMと、前記起動ROMと一の半導体デバイスに備えられえたCPUとを具備するプログラム改竄検出装置を動作させる改竄検出プログラムにおいて、
    前記暗号化されたプログラムは、前記半導体デバイスを識別するための識別子との照合に用いられる識別子確認情報を暗号化した状態で保持し、
    前記起動ROMから復号化プログラムを読み出すステップと、
    前記復号化プログラムを実行することにより前記暗号化されたプログラムを復号化して、復号化された識別子確認情報を含む復号済プログラムを生成するステップと、
    前記復号済プログラムのコードに対して、所定の演算を実行し、前記演算結果と前記改竄検出用コードとの比較に基づいて前記暗号化されたプログラムの改竄を検出するステップと、
    前記別子を読み出すステップと、
    前記復号済プログラムを実行することによって、前記復号済プログラムのコードから前記識別子に対応する前記復号化された識別子確認情報を抽出するステップと、
    前記復号済プログラムを実行することによって前記識別子確認情報と前記識別子とを照合するステップと、
    その照合結果に基づいて前記プログラムの改竄を検出するステップ
    を具備する方法をコンピュータで実行可能な
    改竄検出プログラム。
  11. 請求項10に記載の改竄検出プログラムであって、
    前記プログラム改竄検出装置はさらにRAMを具備し、
    前記復号化プログラムを実行することにより生成する前記復号済プログラムを前記RAMに格納するステップと、
    前記RAMから前記復号済プログラムのコードを読み出すステップと、
    読み出した前記コード対して、所定の演算を実行し、前記演算結果と前記改竄検出用コードとの比較に基づいて前記プログラムの改竄を検出するステップ
    を具備する方法をコンピュータで実行可能な
    改竄検出プログラム。
  12. 請求項10または11に記載の改竄検出プログラムにおいて、
    前記外部メモリから前記RAMのアドレスを指定するアドレス情報を読み出すステップと、
    前記アドレス情報に基づいて、前記復号済プログラムを前記RAMに格納するステップと、
    前記アドレス情報に基づいて、前記RAMから前記コードを読み出すステップ
    を具備する方法をコンピュータで実行可能な
    改竄検出プログラム。
  13. 請求項10乃至12の何れか1項に記載の改竄検出プログラムにおいて、
    前記起動ROMから起動プログラムを読み出すステップと、
    前記起動プログラムを実行することにより前記復号化プログラムを実行し、前記復号済プログラムを生成するステップと
    を具備する方法をコンピュータで実行可能な
    改竄検出プログラム。
  14. 請求項10乃至13の何れか1項に記載の改竄検出プログラムにおいて、
    前記起動ROMは、暗号化方式が異なる複数の復号化プログラムを一対一に格納する複数の領域を備え、
    前記複数の領域から一つの領域を選択するステップと、
    前記選択された領域に格納された復号化プログラムを読み出すステップと、
    読み出した前記復号化プログラムを実行するステップ
    を具備する方法をコンピュータで実行可能な
    改竄検出プログラム。
  15. 請求項14に記載の改竄検出プログラムにおいて、
    領域情報を読み出すステップと、
    前記領域情報に基づいて前記複数の領域から一つの領域を選択するステップと、
    その選択された領域に格納された復号化プログラムを実行することにより前記プログラムを復号化して復号済プログラムを生成するステップ
    を具備する方法をコンピュータで実行可能な
    改竄検出プログラム。
  16. 請求項10乃至15の何れか1項に記載の改竄検出プログラムにおいて、
    前記プログラム改竄検出装置はネットワークに接続され、
    前記起動ROMから改竄通知プログラムを読み出すステップと、
    前記プログラムの改竄の検出に応答して前記改竄通知プログラムを実行することによって、改竄検出メッセージを生成するステップと、
    前記改竄通知メッセージを前記ネットワークを介して所定のアドレスに送信するステップ
    を具備する方法をコンピュータで実行可能な
    改竄検出プログラム。
  17. 復号化プログラムを読み出すステップと、
    前記復号化プログラムを実行することにより、半導体デバイスを識別するための識別子との照合に用いられる識別子確認情報を暗号化した状態で保持する暗号化プログラムを復号化して、復号化された識別子確認情報を含む復号済プログラムを生成するステップと、
    前記復号済プログラムのコードに対して、所定の演算を実行し、前記演算結果と予め格納された改竄検出用コードとの比較に基づいて前記プログラムの改竄を検出するステップと、
    前記識別子を読み出すステップと、
    前記復号済プログラムを実行することによって、前記復号済プログラムのコードから前記識別子に対応する前記復号化された識別子確認情報を抽出するステップと、
    前記復号済プログラムを実行することによって前記復号化された識別子確認情報と前記識別子とを照合するステップと、
    その照合結果に基づいて前記プログラムの改竄を検出するステップ
    を具備する
    プログラム改竄検出方法。
  18. 請求項17に記載のプログラム改竄検出方法において、
    RAMのアドレスを指定するアドレス情報を読み出すステップと、
    前記アドレス情報に基づいて、前記復号済プログラムを前記RAMに格納するステップと、
    前記アドレス情報に基づいて、前記RAMから前記コードを読み出すステップ
    を具備する
    プログラム改竄検出方法。
  19. 請求項17または18に記載のプログラム改竄検出方法において、
    起動プログラムを読み出すステップと、
    前記起動プログラムを実行することにより前記復号化プログラムを実行し、前記復号済プログラムを生成するステップ
    を具備する
    プログラム改竄検出方法。
  20. 請求項17乃至19の何れか1項に記載のプログラム改竄検出方法において、
    予め格納された、暗号化方式が異なる複数の復号化プログラムの中から一つの復号化プログラムを選択するステップと、
    前記選択された復号化プログラムを読み出すステップと、
    読み出した前記復号化プログラムを実行するステップ
    を具備する
    プログラム改竄検出方法。
  21. 請求項20に記載のプログラム改竄検出方法において、
    領域情報を読み出すステップと、
    前記領域情報に基づいて複数の復号化プログラム格納領域から一つの復号化プログラム格納領域を選択するステップと、
    その選択された復号化プログラム格納領域に格納された復号化プログラムを実行することにより前記プログラムを復号化して復号済プログラムを生成するステップと
    を具備する
    プログラム改竄検出方法。
  22. 請求項17乃至21の何れか1項に記載のプログラム改竄検出方法において、
    改竄通知プログラムを読み出すステップと、
    前記プログラムの改竄の検出に応答して前記改竄通知プログラムを実行することによって、改竄検出メッセージを生成するステップと、
    前記改竄通知メッセージをネットワークを介して所定のアドレスに送信するステップ
    を具備する
    プログラム改竄検出方法。
JP2004031272A 2004-02-06 2004-02-06 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法 Expired - Fee Related JP4335707B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004031272A JP4335707B2 (ja) 2004-02-06 2004-02-06 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法
TW094103186A TWI293226B (en) 2004-02-06 2005-02-02 Program tamper detecting apparatus, method for program tamper detection, and computer program product
KR1020050010031A KR100879274B1 (ko) 2004-02-06 2005-02-03 프로그램개찬검출장치, 프로그램개찬검출을 위한 방법 및 이를 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 매체
GB0502355A GB2410818B (en) 2004-02-06 2005-02-04 Program tamper detecting apparatus, method for program tamper detection, and program for program tamper detection
US11/050,425 US7853798B2 (en) 2004-02-06 2005-02-04 Program tamper detecting apparatus, method for program tamper detection, and program for program tamper detection
CNB2005100078596A CN100361038C (zh) 2004-02-06 2005-02-06 程序窜改检测装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004031272A JP4335707B2 (ja) 2004-02-06 2004-02-06 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法

Publications (2)

Publication Number Publication Date
JP2005222418A JP2005222418A (ja) 2005-08-18
JP4335707B2 true JP4335707B2 (ja) 2009-09-30

Family

ID=34373668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004031272A Expired - Fee Related JP4335707B2 (ja) 2004-02-06 2004-02-06 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法

Country Status (6)

Country Link
US (1) US7853798B2 (ja)
JP (1) JP4335707B2 (ja)
KR (1) KR100879274B1 (ja)
CN (1) CN100361038C (ja)
GB (1) GB2410818B (ja)
TW (1) TWI293226B (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006041737A (ja) * 2004-07-23 2006-02-09 Toshiba Corp コンテンツ利用方法及びプログラム
CN101278300A (zh) * 2005-10-05 2008-10-01 松下电器产业株式会社 许可管理系统
JP4931542B2 (ja) * 2005-10-12 2012-05-16 パナソニック株式会社 ロード先情報に対する改ざん検証機能を備えたプログラムローダ、プログラムローダを含むプロセッサ、プロセッサを含むデータ処理装置、プログラムロード方法、及び集積回路
US8127144B2 (en) 2005-10-12 2012-02-28 Panasonic Corporation Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
JP4631658B2 (ja) * 2005-11-09 2011-02-16 ソニー株式会社 デジタル放送受信システム及びデジタル放送受信装置
US20090285280A1 (en) 2005-11-29 2009-11-19 Thomas Patrick Newberry Method and Apparatus for Securing Digital Content
JP5204997B2 (ja) * 2007-06-22 2013-06-05 株式会社エルイーテック 遊技機用チップ
KR20090043823A (ko) * 2007-10-30 2009-05-07 삼성전자주식회사 외부 공격을 감지할 수 있는 메모리 시스템
JP4932033B2 (ja) * 2008-03-28 2012-05-16 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
US8600896B2 (en) * 2008-03-28 2013-12-03 Panasonic Corporation Software updating apparatus, software updating system, invalidation method, and invalidation program
JP5060372B2 (ja) * 2008-04-10 2012-10-31 ルネサスエレクトロニクス株式会社 データ処理装置
US10755287B2 (en) * 2008-11-25 2020-08-25 Microsoft Technology Licensing, Llc Selecting between client-side and server-side market detection
WO2012124270A1 (ja) * 2011-03-15 2012-09-20 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
CN102262717B (zh) * 2011-07-18 2014-05-07 百度在线网络技术(北京)有限公司 用于更改原始安装信息及检测安装信息的方法、装置及设备
JP5626603B2 (ja) * 2012-07-30 2014-11-19 株式会社タツノ 給油装置
US9288058B2 (en) * 2013-09-03 2016-03-15 Red Hat, Inc. Executing compliance verification or remediation scripts
US9519533B2 (en) * 2015-01-28 2016-12-13 Qualcomm Incorporated Data flow tracking via memory monitoring
CN106250194B (zh) * 2016-08-08 2019-06-21 广州视源电子科技股份有限公司 程序文件安装方法和装置
JP6773000B2 (ja) * 2017-10-26 2020-10-21 京セラドキュメントソリューションズ株式会社 情報処理装置、改ざん検出方法
US11657391B1 (en) 2019-05-24 2023-05-23 Hiro Systems Pbc System and method for invoking smart contracts
US11513815B1 (en) 2019-05-24 2022-11-29 Hiro Systems Pbc Defining data storage within smart contracts
US10699269B1 (en) * 2019-05-24 2020-06-30 Blockstack Pbc System and method for smart contract publishing
WO2021005691A1 (ja) * 2019-07-08 2021-01-14 三菱電機株式会社 制御装置、プログラム監視方法及びプログラム
JP7268529B2 (ja) * 2019-08-07 2023-05-08 富士電機株式会社 電子機器
CN113094658A (zh) * 2019-12-23 2021-07-09 广州市中兴电子衡器厂 一种电子秤身份识别系统
US11487441B2 (en) 2020-04-29 2022-11-01 Macronix International Co., Ltd. Managing tamper detections in secure memory devices
CN113987469B (zh) * 2021-10-26 2022-07-29 山西大鲲智联科技有限公司 应用于车机系统的进程保护方法、装置、电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668740B2 (ja) 1983-04-11 1994-08-31 株式会社日立製作所 デ−タ処理装置におけるデ−タの秘密保護装置
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
US5442645A (en) * 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2620020B2 (ja) 1991-04-22 1997-06-11 株式会社エルイーテック 遊技機用マイクロプロセッサー
JPH05197633A (ja) 1992-01-21 1993-08-06 Nippon Steel Corp 集積回路
JPH07295893A (ja) 1994-04-28 1995-11-10 Nec Corp マイクロプロセッサのメモリ情報読込装置及び読込方法
JPH08305558A (ja) 1995-04-27 1996-11-22 Casio Comput Co Ltd 暗号化プログラム演算装置
JP4110298B2 (ja) 1995-07-10 2008-07-02 タイヨーエレック株式会社 遊技機
JP3627384B2 (ja) * 1996-01-17 2005-03-09 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法
JP3580333B2 (ja) 1996-04-10 2004-10-20 日本電信電話株式会社 暗号認証機能の装備方法
JPH1040095A (ja) 1996-07-26 1998-02-13 L Ii Tec:Kk プログラム実行メモリー内蔵のセキュリティチップ
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
JP2000059358A (ja) * 1998-08-11 2000-02-25 Mitsubishi Materials Corp 情報改竄検知装置および改竄検知プログラムを記録したコンピュータ読み取り可能な記録媒体
DE69942712D1 (de) * 1998-05-29 2010-10-14 Texas Instruments Inc Sichere Rechnervorrichtung
TW518497B (en) * 1999-03-30 2003-01-21 Sony Corp Information processing system
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
US7043641B1 (en) 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
KR100348027B1 (ko) * 2000-06-28 2002-08-07 류종렬 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템및 그 방법
JP2002014871A (ja) * 2000-06-29 2002-01-18 Fujitsu Ltd コンテンツチェック方法、コンテンツ更新方法、および処理装置
KR20030050300A (ko) * 2001-12-18 2003-06-25 (주)쉘컴정보통신 공개키 기반 소프트웨어 암호화 기법을 이용한 컴퓨터변조 방지 방법
JP4224670B2 (ja) 2001-12-20 2009-02-18 株式会社平和 遊技機用cpu及びromライター
US7877607B2 (en) * 2002-08-30 2011-01-25 Hewlett-Packard Development Company, L.P. Tamper-evident data management

Also Published As

Publication number Publication date
GB2410818B (en) 2006-09-06
CN100361038C (zh) 2008-01-09
KR100879274B1 (ko) 2009-01-19
KR20060030457A (ko) 2006-04-10
TWI293226B (en) 2008-02-01
JP2005222418A (ja) 2005-08-18
CN1652057A (zh) 2005-08-10
TW200533148A (en) 2005-10-01
GB0502355D0 (en) 2005-03-16
GB2410818A (en) 2005-08-10
US7853798B2 (en) 2010-12-14
US20050198521A1 (en) 2005-09-08

Similar Documents

Publication Publication Date Title
JP4335707B2 (ja) プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法
EP3644181B1 (en) Embedded program secure boot method, apparatus and device, and storage medium
US20110044451A1 (en) Information processing apparatus and falsification verification method
CN106529218B (zh) 一种应用校验方法和装置
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
CN112199644A (zh) 移动终端应用程序安全检测方法、系统、终端及存储介质
JP4813362B2 (ja) 半導体メモリカード
CN114785503B (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
KR20180092596A (ko) 임베디드 보안 모듈을 이용한 IoT 디바이스 플랫폼의 보안 부팅 방법 및 시스템
CN101888627B (zh) 一种移动终端及保护其系统数据的方法
JP2009104380A (ja) ロボット不正使用防止装置およびロボット不正使用防止方法
US11481523B2 (en) Secure element
CN107992760B (zh) 秘钥写入方法、装置、设备及存储介质
KR20060134771A (ko) 휴대 가능 전자 장치 및 휴대 가능 전자 장치의 데이터출력 방법
JP2004503860A (ja) データ処理方法及び保護された命令の実行のための装置
JP2007066021A (ja) 外部データ改ざん検出装置、および外部データ改ざん検出方法
KR100780362B1 (ko) 휴대용 단말기에서 소프트웨어 다운로드 방법 및 장치
CN116415313A (zh) 一种安全一体机、安全一体机的保护方法及装置
JP2002014871A (ja) コンテンツチェック方法、コンテンツ更新方法、および処理装置
JP2011128659A (ja) Os起動可否判定装置、os起動可否判定システム、os起動可否判定方法およびos起動可否判定プログラム
CN109150534B (zh) 终端设备及数据处理方法
US20070274143A1 (en) Semiconductor device, electronic equipment and equipment authentication program
JPH11238017A (ja) 受信機
CN113506390B (zh) 访问控制方法、装置、设备及可读存储介质
CN117610005A (zh) 系统启动方法、装置、终端设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090427

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090625

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4335707

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130703

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees