JP2002140126A - プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法 - Google Patents
プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法Info
- Publication number
- JP2002140126A JP2002140126A JP2000332068A JP2000332068A JP2002140126A JP 2002140126 A JP2002140126 A JP 2002140126A JP 2000332068 A JP2000332068 A JP 2000332068A JP 2000332068 A JP2000332068 A JP 2000332068A JP 2002140126 A JP2002140126 A JP 2002140126A
- Authority
- JP
- Japan
- Prior art keywords
- file
- program
- receiving
- executable file
- encrypted
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000007547 defect Effects 0.000 claims description 65
- 238000004891 communication Methods 0.000 claims description 63
- 230000005540 biological transmission Effects 0.000 claims description 48
- 230000006870 function Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 230000002950 deficient Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 238000012550 audit Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 239000000463 material Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001364 causal effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 244000005894 Albizia lebbeck Species 0.000 description 1
- 208000019901 Anxiety disease Diseases 0.000 description 1
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000036506 anxiety Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000004090 dissolution Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000011842 forensic investigation Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2135—Metering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
するプログラム配布システム及びその方法を提供する。 【解決手段】 ソースファイル送信装置101 は、ソース
ファイルを暗号化プログラム配布装置102に送信し、暗
号化プログラム配布装置102は、これをコンパイルし実
行ファイルとする。更にこの実行ファイルを所定の鍵で
暗号化し、実行ファイル受信装置103に送信する。実行
ファイル受信装置103は受信した実行ファイルを、所定
の鍵に対応した自装置のプロセッサ固有の鍵を用いて復
号し、実行ファイルを取り出して実行する。また、この
実行ファイルの不具合情報を暗号化プログラム配布装置
102に送信する。暗号化プログラム配布装置102はユーザ
の所定の秘密情報を取り除き、平文としてソースファイ
ル送信装置101に送信する。
Description
グラムの配布システムに係り、特に安全であることが保
証された暗号化されたプログラムの検証、配布、バグ情
報のフィードバックなどを実現するプログラム配布シス
テム、暗号化プログラム配布装置及びその方法に関す
る。
語などの高級言語が使用されることが多い。この高級言
語で書かれたソースファイルをコンパイル及びリンクす
ることで実行ファイルが生成される。
には、メモリに置かれるデータと直接プログラムローダ
によって解釈されるがメモリには配置されないデータと
がある。さらに前者は、CPUが直接読み取り実行可能
な機械語命令列と、命令としては実行されないデータと
からなる。
ルスクリプトなどの機械語以外で書かれたものは含ま
ず、機械語命令列を含むものとする。
不正な解析、改変が問題となっている。本発明の発明者
らによる特願2000-35898の特許出願明細書に記載された
プログラムとデータを暗号化する機能を備えたマイクロ
プロセッサ(以下、耐タンパプロセッサと呼ぶ)はその問
題を解決する手段の一つである。
解析、改変がハードウェアによる実行コードとデータの
暗号化によって防止されるためである。その安全性はプ
ロセッサチップに埋め込まれた秘密鍵の安全性に依存す
る。
は、一部のプロセッサの鍵が暴かれてしまった場合に備
えてチップ毎に異なる固有の鍵を用いることが多い。
少なくとも一部はこれらの耐タンパプロセッサチップが
持つ固有の鍵に依存する部分を持たなければならない。
このような耐タンパプロセッサチップ毎に異なる実行プ
ログラムの配布にはネットワークによる配布が適してい
る。
れるプログラムにはいわゆるコンピュータウィルスやワ
ームの恐れがある。あるプログラムが有害なものでない
ことは、その配布者の署名と身元確認によって消極的に
確かめることはできるが、一般にプログラムを配布する
主体が十分信用できるかを判断することは難しい。
に関係なくつきまとう問題である。特に現在では無数と
いえるほどの企業、個人がソフトウエアを開発し、その
中には知名度こそ低いものの、有用なものがたくさん含
まれている。
これらソフトウエアの安全性を判定することは逆に多く
の有用なソフトウエアを締め出すことになってしまう。
タイプのいわゆるウィルス検査プログラムは、いくつか
の限界はあるにせよ直接ネットワーク配布されたプログ
ラムの安全性を検証できる。
用いる環境においてはプログラムはそれぞれの耐タンパ
プロセッサのチップ固有の鍵に基づいて暗号化されてい
るため、汎用のウィルス検査プログラムによって安全性
を検証することが困難であった。
それらソフトウェアがユーザのさまざまなプライバシー
情報を扱うようになりつつある。一方で、コンピュータ
ウィルスのようなプログラムも現れている。また、従来
の技術で記したようにコンピュータソフトウェアに含ま
れる秘密が不正に読み出されることもしばしばおきてい
るという問題があった。
場合、課金情報を課金サーバに通知する部分がユーザに
よる解析、改変から安全であることが必要とされる。更
に著作権が設定されたコンテンツをユーザシステムに配
信するときの不正コピー作成の防止も行われなければな
らない。
の保護は、プログラムの保護が暗号学的に保証される環
境、例えば耐タンパプロセッサが導入された環境では解
決が困難である。なぜなら、ユーザが入手した暗号化さ
れたプログラムを実行前に検証することはできないとい
う問題があった。
化されたプログラムを実行できる環境が特定される耐タ
ンパプロセッサなどを利用したシステムでは、それぞれ
の耐タンパプロセッサのチップ固有の鍵に基づいて暗号
化されているため、その実行ファイルの中身を検証する
ことができないという問題があった。
ルスやワームの恐れがあるかどうかを検証することは、
耐タンパプロセッサを利用する場合には、耐タンパプロ
セッサが各々違う固有鍵を有するという問題から、困難
であった。
ークを経由して、暗号化プログラムを配布する仕組みが
なく、更にその暗号化プログラムの不具合情報をユーザ
の秘密情報を保護してプログラム開発者に提供すること
も困難であった。
グラムの配布、その検証、フィードバックといった一連
の情報の流れを、コンピュータネットワークが支援する
ことで従来の方法に比べて安価かつ確実に行うことがで
きるプログラム配布システムを実現することを目的とす
る。
に、本発明では、ネットワークに接続されたソースファ
イル送信装置、暗号化プログラム配布装置及び実行ファ
イル受信装置とからなるプログラム配布システムにおい
て、ソースファイル送信装置は、プログラムのソースフ
ァイルを暗号化プログラム配布装置宛てに送信する第1
の送信手段を具備し、暗号化プログラム配布装置は、ソ
ースファイル送信装置から送信されたソースファイルを
受信する第1の受信手段と、第1の受信手段で受信した
ソースファイルからプログラムの実行ファイルを生成す
る実行ファイル生成手段と、実行ファイル受信装置から
該実行ファイル受信装置固有の公開鍵、又は該実行ファ
イル受信装置のプロセッサ固有の公開鍵のいずれか一方
を受信する公開鍵受信手段と、実行ファイルの少なくと
も一部を公開鍵にて暗号化する暗号化手段と、暗号化手
段で暗号化された実行ファイルを実行ファイル受信装置
宛てに送信する第2の送信手段とを具備し、実行ファイ
ル受信装置は、公開鍵を暗号化プログラム配布装置宛て
に送信する暗号化鍵送信手段と、暗号化プログラム配布
装置から送信された実行ファイルを受信する第2の受信
手段と、公開鍵に対応した秘密鍵を用いて、第2の受信
手段で受信した実行ファイルを復号化する第2の復号化
手段とを具備する。
たソースファイル送信装置、暗号化プログラム配布装置
及び実行ファイル受信装置とからなるプログラム配布シ
ステムにおいて、ソースファイル送信装置は、プログラ
ムのソースファイルを暗号化プログラム配布装置宛てに
送信する第1の送信手段を具備し、暗号化プログラム配
布装置は、ソースファイル送信装置から送信されたソー
スファイルを受信する第1の受信手段と、第1の受信手
段で受信したソースファイルからプログラムの実行ファ
イルを生成する実行ファイル生成手段と、実行ファイル
の少なくとも一部を所定の共通鍵にて暗号化する第1の
暗号化手段と、実行ファイル受信装置から該実行ファイ
ル受信装置固有の公開鍵、又は該実行ファイル受信装置
のプロセッサ固有の公開鍵のいずれか一方を受信する公
開鍵受信手段と、共通鍵を、公開鍵受信手段で受信した
公開鍵で暗号化する第2の暗号化手段と、第1の暗号化
手段で暗号化された実行ファイル及び第2の暗号化手段
で暗号化された共通鍵を実行ファイル受信装置宛てに送
信する第2の送信手段とを具備し、実行ファイル受信装
置は、公開鍵を暗号化プログラム配布装置宛てに送信す
る暗号化鍵送信手段と、暗号化プログラム配布装置から
送信された実行ファイル及び暗号化された共通鍵を受信
する第2の受信手段と、第2の受信手段で受信した共通
鍵を、公開鍵に対応した秘密鍵で復号化する第1の復号
化手段と、第1の復号化手段で復号化した共通鍵を用い
て、第2の受信手段で受信した実行ファイルを復号化す
る第2の復号化手段とを具備する。
ムに基づいてランダムに生成されることを特徴とする。
は、ソースファイル送信装置と暗号化プログラム配布装
置間で予め定められた秘密情報操作規約に基づき、ソー
スファイルが該秘密情報操作規約に違反しているか否か
を検出する検出手段とを更に具備し、検出手段において
ソースファイルが該秘密情報操作規約を違反していた場
合、ソースファイルの実行ファイル化、暗号化及び実行
ファイル受信装置への送信を中止することを特徴とす
る。
は、検出手段においてソースファイルが該秘密情報操作
規約を違反していた場合、及び又はソースファイルから
実行ファイルの作成に失敗した場合に、該違反を示す情
報及び又は該失敗を示す情報をソースファイル送信装置
に通知することを特徴とする。
は、プログラムの実行ファイル内の秘密情報領域を指定
する領域情報を暗号化プログラム配布装置宛てに送信す
る第3の送信手段を更に具備し、暗号化プログラム配布
装置は、領域情報を受信する第3の受信手段と、ソース
ファイル送信装置と暗号化プログラム配布装置間で予め
定められた秘密情報操作規約、及び又は領域情報に基づ
いて、実行ファイル内の秘密情報を格納する領域を決定
する秘密情報領域決定手段とを更に具備したことを特徴
とする。
は、ソースファイル、実行ファイル、該実行ファイルを
暗号化した公開鍵及び実行ファイル内の秘密情報領域を
指定する領域情報を関連付けて記録する記録手段とを更
に具備したことを特徴とする。
は、ソースファイル、実行ファイル、該実行ファイルを
暗号化した共通鍵及び実行ファイル内の秘密情報領域を
指定する領域情報を関連付けて記録する記録手段とを更
に具備したことを特徴とする。
は、実行ファイル生成手段において、ソースファイルか
ら実行ファイルを生成する際に、機能的に同一であり、
かつ異なる機械語命令を持つ実行ファイルを生成するこ
とを特徴とする。
は、実行ファイル生成手段において、ソースファイルか
ら実行ファイルを生成する際に、実行ファイルの一部に
プログラムの不具合情報送付先を示す情報を書き込むこ
とを特徴とする。
化プログラム配布装置であることを特徴とする。
実行ファイルに関する不具合情報を送信する第3の送信
手段を更に具備し、暗号化プログラム配布装置は、実行
ファイル受信装置から送信された不具合情報を受信する
第3の受信手段を更に具備したことを特徴とする。
は、受信した不具合情報をソースファイル送信装置宛て
に送信する第4の送信手段とを更に具備したことを特徴
とする。
実行ファイルに関する不具合情報を送信する第3の送信
手段を更に具備し、暗号化プログラム配布装置は、実行
ファイル受信装置から送信された不具合情報の一部を、
対応する実行ファイルの共通鍵にて復号化する第3の復
号化手段と、復号化した不具合情報から、予め定められ
た所定の秘密情報格納領域のデータを削除する削除手段
と、削除手段により、所定の秘密情報が削除された不具
合情報をソースファイル送信装置に送信する第3の送信
手段とを更に具備したことを特徴とする。
の通信装置から、プログラムのソースファイルを受信す
る第1の受信手段と、第1の受信手段で受信したソース
ファイルからプログラムの実行ファイルを生成する実行
ファイル生成手段と、ネットワークを介して第2の通信
装置から、該第2の通信装置固有の公開鍵、又は該第2
の通信装置のプロセッサ固有の公開鍵のいずれか一方を
受信する公開鍵受信手段と、実行ファイルの少なくとも
一部を公開鍵にて暗号化する暗号化手段と、暗号化手段
で暗号化された実行ファイルを第1の通信装置宛てに送
信する送信手段とを具備したことを特徴とする。
の通信装置から、プログラムのソースファイルを受信す
る第1の受信手段と、第1の受信手段で受信したソース
ファイルからプログラムの実行ファイルを生成する実行
ファイル生成手段と、実行ファイルの少なくとも一部を
所定の共通鍵にて暗号化する第1の暗号化手段と、ネッ
トワークを介して第2の通信装置から、該第2の通信装
置固有の公開鍵、又は該第2の通信装置のプロセッサ固
有の公開鍵のいずれか一方を受信する公開鍵受信手段
と、共通鍵を、公開鍵受信手段で受信した公開鍵で暗号
化する第2の暗号化手段と、第1の暗号化手段で暗号化
された実行ファイル及び第2の暗号化手段で暗号化され
た共通鍵を第2の通信装置宛てに送信する送信手段とを
具備したことを特徴とする。
ソースファイル送信装置、暗号化プログラム配布装置及
び実行ファイル受信装置とからなるプログラム不具合情
報収集システムにおいて、ソースファイル送信装置は、
プログラムのソースファイルを暗号化プログラム配布装
置宛てに送信する第1の送信手段とを具備し、暗号化プ
ログラム配布装置は、ソースファイル送信装置から送信
されたソースファイルを受信する第1の受信手段と、第
1の受信手段で受信したソースファイルからプログラム
の実行ファイルを生成する実行ファイル生成手段と、実
行ファイルの少なくとも一部を所定の共通鍵にて暗号化
する第1の暗号化手段と、実行ファイル受信装置から該
実行ファイル受信装置固有の公開鍵、又は該実行ファイ
ル受信装置のプロセッサ固有の公開鍵のいずれか一方を
受信する公開鍵受信手段と、共通鍵を、公開鍵受信手段
で受信した公開鍵で暗号化する第2の暗号化手段と、第
1の暗号化手段で暗号化された実行ファイル及び第2の
暗号化手段で暗号化された共通鍵を実行ファイル受信装
置宛てに送信する第2の送信手段と、実行ファイルに関
する不具合情報を実行ファイル受信装置から受信する第
2の受信手段と、不具合情報を送信した実行ファイル受
信装置のユーザに対する所定の報奨を決定する報奨決定
手段とを具備し、実行ファイル受信装置は、公開鍵を暗
号化プログラム配布装置宛てに送信する暗号化鍵送信手
段と、暗号化プログラム配布装置から送信された実行フ
ァイル及び暗号化された共通鍵を受信する第2の受信手
段と、第2の受信手段で受信した共通鍵を、公開鍵に対
応した秘密鍵で復号化する第1の復号化手段と、第1の
復号化手段で復号化した共通鍵を用いて、第2の受信手
段で受信した実行ファイルを復号化する第2の復号化手
段と、実行ファイルに関する不具合情報を送信する第3
の送信手段を具備したことを特徴とする。
ソースファイル送信装置、暗号化プログラム配布装置及
び実行ファイル受信装置とからなるプログラム配布シス
テムにて用いられるプログラム配布方法において、前記
ソースファイル送信装置は、プログラムのソースファイ
ルを前記暗号化プログラム配布装置宛てに送信し、前記
暗号化プログラム配布装置は、前記ソースファイル送信
装置から送信された前記ソースファイルを受信し、受信
した前記ソースファイルから前記プログラムの実行ファ
イルを生成し、前記実行ファイル受信装置から該実行フ
ァイル受信装置固有の公開鍵、又は該実行ファイル受信
装置のプロセッサ固有の公開鍵のいずれか一方を受信
し、前記実行ファイルの少なくとも一部を前記公開鍵に
て暗号化し、前記暗号化手段で暗号化された前記実行フ
ァイルを前記実行ファイル受信装置宛てに送信し、前記
実行ファイル受信装置は、前記公開鍵を前記暗号化プロ
グラム配布装置宛てに送信し、前記暗号化プログラム配
布装置から送信された前記実行ファイルを受信し、前記
公開鍵に対応した秘密鍵を用いて、受信した前記実行フ
ァイルを復号化することを特徴とする。
ソースファイル送信装置、暗号化プログラム配布装置及
び実行ファイル受信装置とからなるプログラム配布シス
テムにて用いられるプログラム配布方法において、前記
ソースファイル送信装置は、プログラムのソースファイ
ルを前記暗号化プログラム配布装置宛てに送信し、前記
暗号化プログラム配布装置は、前記ソースファイル送信
装置から送信された前記ソースファイルを受信し、受信
した前記ソースファイルから前記プログラムの実行ファ
イルを生成し、前記実行ファイルの少なくとも一部を所
定の共通鍵にて暗号化し、前記実行ファイル受信装置か
ら該実行ファイル受信装置固有の公開鍵、又は該実行フ
ァイル受信装置のプロセッサ固有の公開鍵のいずれか一
方を受信し、前記共通鍵を、受信した前記公開鍵で暗号
化し、暗号化された前記実行ファイル及び暗号化された
前記共通鍵を前記実行ファイル受信装置宛てに送信し、
前記実行ファイル受信装置は、前記公開鍵を前記暗号化
プログラム配布装置宛てに送信し、前記暗号化プログラ
ム配布装置から送信された前記実行ファイル及び暗号化
された前記共通鍵を受信し、受信した前記共通鍵を、前
記公開鍵に対応した秘密鍵で復号化し、復号化した前記
共通鍵を用いて、受信した前記実行ファイルを復号化す
ることを特徴とする。
の通信装置から、プログラムのソースファイルを受信
し、受信した前記ソースファイルから前記プログラムの
実行ファイルを生成し、ネットワークを介して第2の通
信装置から、該第2の通信装置固有の公開鍵、又は該第
2の通信装置のプロセッサ固有の公開鍵のいずれか一方
を受信し、前記実行ファイルの少なくとも一部を前記公
開鍵にて暗号化し、暗号化された前記実行ファイルを前
記第1の通信装置宛てに送信することを特徴とする。
の通信装置から、プログラムのソースファイルを受信
し、受信した前記ソースファイルから前記プログラムの
実行ファイルを生成し、前記実行ファイルの少なくとも
一部を所定の共通鍵にて暗号化し、ネットワークを介し
て第2の通信装置から、該第2の通信装置固有の公開
鍵、又は該第2の通信装置のプロセッサ固有の公開鍵の
いずれか一方を受信し、前記共通鍵を、受信した前記公
開鍵で暗号化し、暗号化された前記実行ファイル及び暗
号化された前記共通鍵を前記第2の通信装置宛てに送信
することを特徴とする。
能なコンピュータプログラムであって、ネットワークを
介して第1の通信装置から、プログラムのソースファイ
ルを受信する機能と、受信した前記ソースファイルから
前記プログラムの実行ファイルを生成する機能と、ネッ
トワークを介して第2の通信装置から、該第2の通信装
置固有の公開鍵、又は該第2の通信装置のプロセッサ固
有の公開鍵のいずれか一方を受信する機能と、前記実行
ファイルの少なくとも一部を前記公開鍵にて暗号化する
機能と暗号化された前記実行ファイルを前記第1の通信
装置宛てに送信する機能とを具備したことを特徴とす
る。
能なコンピュータプログラムであって、ネットワークを
介して第1の通信装置から、プログラムのソースファイ
ルを受信する機能と、受信した前記ソースファイルから
前記プログラムの実行ファイルを生成する機能と、前記
実行ファイルの少なくとも一部を所定の共通鍵にて暗号
化する機能と、ネットワークを介して第2の通信装置か
ら、該第2の通信装置固有の公開鍵、又は該第2の通信
装置のプロセッサ固有の公開鍵のいずれか一方を受信す
る機能と、前記共通鍵を、受信した前記公開鍵で暗号化
する機能と、暗号化された前記実行ファイル及び暗号化
された前記共通鍵を前記第2の通信装置宛てに送信する
機能とを具備したことを特徴とする。
を参照して詳細に説明する。
ェア開発者のコンピュータでありソースファイル送信装
置(以下、単に開発者と記す場合もある)、102 はソフト
ウェア配布者のコンピュータであり暗号化プログラム配
布装置 (以下、単に配布者と記す場合もある)、 103 は
ソフトウェア利用者のコンピュータであり実行ファイル
受信装置(以下、単にユーザと記す場合もある)をそれ
ぞれ表す。
ーク105 に接続され、通信が可能であるものとする。ネ
ットワーク 105 がインターネットの場合、コンピュー
タからネットワークへの接続は、直接の接続であっても
よいし、プロキシサーバ等を通じた間接的接続であって
も良い。さらに 認証局104もネットワーク 104 に接続
されている。
を簡単に説明する。
ン(秘密情報操作規約など)を公開しており(201,30
1)、開発者はそのガイドラインを取得し(302-303)、そ
れにしたがってアプリケーションプログラム(ソフトウ
エア)を作成する(202, 304)。
05〜308)を結び、作成したソースコードを配布者に提出
する(203, 309〜311)。配布者はプログラムをコンパイ
ルし、暗号化したロードモジュール(実行ファイル)を
作成する(204, 312)。暗号化ロードモジュールは配布者
のみが知る暗号化鍵で暗号化される。また、コンパイル
完了後にはソースコードは安全な場所に保管される。
コンピュータのCPUに対応する復号化鍵を添付されてユ
ーザへと配布される(205-206, 313〜315)。配布された
プログラムをユーザが利用(316)してプログラムに不具
合を発見した場合、配布者の元へその不具合が生じたと
きのメモリ上プログラムイメージ(不具合情報)が送ら
れる(208, 317-318)。
かじめ開発者が申告したプライバシー情報(秘密情報)
に相当する部分(秘密情報格納領域)の情報を抜き取っ
て(319)、開発者へプログラムイメージを送付する(209,
220-221)。開発者はこの情報に基づいてプログラムの
デバッグを行う(322)。
が高いとみなされるとき、配布者はプログラムのソース
ファイルを審査し、不正がないことを確かめる。また、
配布者、開発者、ユーザの処理の概略を示すフローチャー
トを 図4,5,6にそれぞれ示す。
説明する。配布者はネットワーク経由で、配布代行にあ
たっての倫理基準、ユーザ秘密情報保護の技術ガイドラ
イン、契約条件やプログラム開発環境のなどの情報をネ
ットワークを通じて公開している。ここではhtml 形式
で記述されたこれらの配布代行条件情報が http サーバ
を通じて公開されているものとする。
(例: Linux)のみに対応するだけでもよいし、複数のプ
ログラム開発環境(例: Linux, Windows)に対応していて
それらを選択できるようにしておいてもよい。開発者は
複数の配布者から自分に適した開発環境に対応する配布
者を選択する。
ザによって取得しその内容を知る。そして、配布代行情
報に基づいてプログラムを開発し、配布契約に必要な資
料を準備する。
配布者の web サーバにアクセスして、配布者との間で
配布の契約を結び、プログラムのソースコードを提出し
て、引き換えにソースコード受領証を受け取る。
アントによって行われ、開発者側で特別なプログラムや
サーバ装置は必要としない。契約とソースコードの提出
では、以下に述べる安全な署名ずみ契約条項の交換とソ
ースコードの委託を保証する手順が用いられるが、開発
者自身はこれら手順の詳細を意識することはなく、開発
者はソースコードを用意し、 web ブラウザ画面上で締結
したい契約の種類を選択して資料を送付するだけで完了
する。
サーバ上に用意されたプログラム(例えば JavaScript
形式)を実行するだけでよい。一方、サーバ側では契約、
ソースコード受領とその後に続く配布処理までが自動的
に処理され、基本的には人間のオペレータの介入を必要
としない。実際のシステムにおいては必要に応じてそれ
ぞれの手順において、オペレータが介入してもよい。
それぞれ相手の署名がなされた契約条項を交換し、契約
識別番号 CID を共有する。
には以下の資料が必要である。
ード一式(701) 2)取扱説明書(702) 3)秘密情報部分記述資料(703) 4)テスト用スクリプト(704) この契約にあたっては、一般的な電子商取引の方法が適
用できる。具体的には、認証局が配布者、開発者の身元を
証明する公開鍵の証明書を発行しておき、配布者、開発者
は自らの秘密鍵を安全に管理しておくことで、秘密鍵を
持つ相手だけがメッセージを受信できるよう適切な暗号
化を行うことで通信の安全を保つ。
局が契約書面の同時交換を行う手段を提供し、詐欺を防
止してもよい。ここでは開発者、配布者、ユーザはそれ
ぞれ自身の秘密鍵を安全に保持しており、公証局に身元
情報と秘密鍵に対応する公開鍵とが登録されているもの
とする。
が達成できればよく、必ずしも公証局の存在を前提とす
るものでなくともよい。例えば文献 岡本、山本著「現
代暗号」1997 産業図書で知られる秘密情報段階的交換
プロトコルなどを使用してもよい。資料と署名の交換が
完了すると、ロードモジュールの配布までは基本的に配
布者のサーバ内で処理が行われる。
コンパイルに関し説明する。
審査する。審査は具体的には次のようにプログラム部分
と変数を機械的に抽出する。
にプライバシー情報の入力を促し、入力結果が格納され
るプログラム中の変数のリスト。
ースやレジストリにアクセスしてユーザのプライバシー
情報を取得し、その結果が格納されるプログラム中の変
数のリスト。
具合情報のフィードバックの際にフィードバック情報か
ら削除されることになる。配布者は審査の結果と、開発
者から申告されたプライバシー情報(303)を照合し、一
致すればプログラムをコンパイルする。一致しない場
合、エラーとして開発者に通知する。
ログラムの記述方法は他にも多数あるが、ここでは契約
条件において、プライバシー情報を扱う場合にはあらか
じめ配布者が指定した形式の記述方法をとることが開発
者の義務として盛り込まれているものとする。
情報取得の隠蔽を意図的と判断した場合、契約違反とし
て以後の処理を中止し、契約条件に定められた違約時の
処理を行う。
たプログラムをコンパイルして、平文ロードモジュール
(図8)を作成する。この段階で作成されたロードモジュ
ールはまだ暗号化されていない。
る部分(803Pe)と実行時にリロケーションなどの操作を
可能にする暗号化されない部分(802Pp)がある。
ァイルが必要というわけではなく、汎用のライブラリ関
数などすでに安全性が配布者で検証された機械語ライブ
ラリなどがロードモジュールにリンクされてもよい。
に示す。平文ロードモジュールから暗号化ロードモジュ
ールを作成するときは、暗号化対象部分(803Pe)を、を
契約に対して配布者が決めたプログラム暗号化鍵(共通
鍵) Kx#CID により共通鍵暗号アルゴリズム、たとえば
DES アルゴリズムで暗号化し、フィードバック情報904
と契約識別子 CID 905 とを加えて、901〜905 の内容
についてハッシュ関数H[] を計算した結果にプログラム
暗号化鍵 Kx#CID で署名した署名 906 を加えた形式が
暗号化ロードモジュールとなる。ハッシュ関数はたとえ
ば MD5, SHA1などを使えばよい。
ユーザのプライバシー情報を除去の際にその範囲を決定
するために用いられる。フィードバック情報には不具合
情報の送り先が含まれる。ここでは送り先は配布者のUR
I(Universal Resource Indicator)で記述されるものと
する。
907は、プログラム暗号化鍵 Kx#CIDを、プログラムを
実行するユーザの実行ファイル受信装置(ターゲットシ
ステム)のCPU(耐タンパプロセッサなどん)の公開
鍵 Kp により、公開鍵アルゴリズム、たとえば RSA ア
ルゴリズムによって暗号化したもの(EKp[Kx#CID]であ
る。
鍵 Kp に対応する秘密鍵 Ks を内部に持っているので、
復号化鍵 907 (EKp[Kx#CID])を復号化して Kx#CID をと
りだし、暗号化プログラム部分 903 を復号化して実行
することができる。
システム)を所有するユーザもしくはアドミニストレー
タは、公開鍵 Kp に対応する秘密鍵 Ks を知らないので
直接暗号化プログラム部分 903 を復号化することはで
きない。CPUでのプログラムの復号化はチップの中で
行われるのでユーザが復号化されたプログラムを盗みと
ることは不可能であり、プログラムの秘密は守られる。
ロプロセッサでは、実行中のプログラムが扱うデータに
ついても保護機構が設けられており、ユーザによるデー
タの盗み読みを防ぐことができる。これらの秘密の保護
はプログラムの暗号化鍵 Kx#CID の秘密性に基づいてお
り、逆に Kx#CID がわかれば、メインメモリ中の暗号化
されたプログラム、データ、実行状態(レジスタ情報)
を読みとることにより、暗号化プログラム 903 も、プ
ログラムが扱うデータも暗号化前の状態に復元すること
ができる。
解析が行われる。このようにプログラムの暗号化によ
り、プログラム自身とそれが扱うデータの秘密をターゲ
ットシステムのユーザから効果的に守ることができる
が、一方であるプログラムがターゲットシステムまたは
ユーザにとって危険なものかどうかを、プログラムの実
行前にも実行後にも判断する材料がなくなってしまう。
が審査済みのプログラムを配布することにより、この潜
在的なユーザの危険を排除する効果がある。以上がプロ
グラムのコンパイルと暗号化ロードモジュールの作成手
順である。
敗した場合は、開発者にエラーの内容が通知され、開発
者はソースファイルを修正して再度ソースファイル委託
309 のシーケンスからやりなおすことになる。
ール、それに暗号化を行った暗号化モジュールのそれぞ
れについて配布者が、開発者の用意した自動化されたテ
スト用スクリプトに基づいた試験を行い、その結果が条
件を満たさない場合も、開発者にはエラーの内容が通知
され、開発者はやはりソースファイルの不具合を修正し
て再度ソースファイル供託 309 のシーケンスからやり
なおす。
完成したが、最後にもう一度、開発者による完成したロ
ードモジュールのテストを行ってもよい。この場合、配
布者から開発者に暗号化ロードモジュールが配布される
と、開発者はロードモジュールを実行するターゲットシ
ステムのCPUに対応する復号化鍵を、配布者に請求す
る。
ム配布と同様であり、例えばこれらの一実現方法は特開
平10-269078 に開示されている。ダウンロード後、開発
者によるテストが配布者に通知され、配布者は通知結果
が合格ならばそのまま次のユーザへの配布へと処理を進
め、不合格であれば、開発者が再びソースファイル供託
209 のシーケンスからやりなおす。
におけるコンパイルオプションや暗号化によるプログラ
ムへの性能の影響を実際にユーザの手に渡るものと同じ
ロードモジュールで検証することができる。
305-308 の間で締結されており、配布の手数料などもそ
こで決定される。このとき、ソースファイル検査、コン
パイルなどのサーバ負荷を配布手数料に反映させるた
め、ソースファイル供託を行った回数などに応じて配布
手数料を増加させてもよい。
める公序良俗に関する規定に違反がないことを、主に人
間によるプログラムの機能と説明書の検査によって確認
してもよい。
ロードモジュールと配布用説明書と契約に対応する暗号
化鍵 Kx#CID は配布者サーバの安全な場所に保存され
る。ここではプログラム暗号化鍵 Kx#CID は契約毎に1
つ発行されるものとする。
ログラム暗号化鍵 Kx#CID を更新したり、あるいはプロ
グラムの不具合修正やバージョンアップを配布プログラ
ムに反映させるときは契約を再度行うことになる。もち
ろん、このような継続契約には審査の簡易化や料金の割
引などの規則を設けてもよい。
る。
と続けて配布の準備が始まる。まずダウンロード画面の
html 形式記述が用意される。
応するソフトウェアのダウンロードを意味するリンクが
選択されると、ユーザのブラウザにそのリンクが指定す
るサーバに置かれたJava script がダウンロードされ、
実行されてプログラムがダウンロードされる。
上記暗号化鍵 Kx#CID によって暗号化されたプログラム
と、その鍵 Kx#CID をユーザ側コンピュータ 103 のプ
ロセッサの公開鍵 Kp#u で暗号化した暗号化鍵情報 E[K
p#u][Kx#CID] をユーザに配布しなければならない。こ
こで E[X][Y] はあるデータ Y の鍵 X による暗号化を
表す。
Kp#u は、プログラムの秘密保護とプログラムが正しく
実行されるために、実在するプロセッサに対応するもの
でなければならない。プロセッサの公開鍵 Kp#u を確認
してプログラムをダウンロードする方法の一例は特願20
00-35898 に開示されている。
CID に対応するソフトウェアのダウンロードを意味す
るリンクがユーザによって選択されると、それに対応す
る Javascript がユーザのブラウザユーザ側のJava scr
ipt では図に示す手順が実行され、プロセッサの公開鍵
が要求される。一方、配布者側では Java script から発
行されたダウンロード要求により、 315 のダウンロード
手順が実行される。
ザに対する課金処理が実行される。web サーバ、クライ
アント間の安全な課金処理の手順は既にさまざまなもの
が知られている。例えば特開平10-269078 に開示されて
いる方法である。課金処理はダウンロード処理より先、
または処理の間に開始されてもよい。もちろん、配布す
るファイルが無料で配布されるものであれば課金手続き
の必要はない。
報がダウンロードされ、それらはユーザシステム上で一
体となった実行ファイルとして格納される。暗号化ロー
ドモジュールはユーザのシステムで、特願2000-35898に
開示されているようにターゲットプロセッサによって復
号化、実行され、ユーザによって利用される。
があった場合、この情報を開発元へフィードバックする
方法について説明する。
合、いわゆるバグを含んでいることが普通である。ユー
ザの使用状況で発生したバグを修正して、プログラムの
完成度を高めることはプログラムの品質を向上させる上
で不可欠の作業である。
具合を解析する手段の代表は、不具合が発生した時のプ
ログラムのメモリイメージ、いわゆるコアダンプを解析
する方法である。
実行継続が不可能となったり、不具合を示す兆候があっ
たとき、メモリ上のイメージをファイルに保存し、解析
する機構はさまざまなOSに備えられている。こうして保
存されたメモリイメージを、開発者が解析することで、
不具合の原因を解析し、不具合をなおすことができる。
プライバシーに属する情報、例えば個人の住所録や健康
状態、クレジットカード番号などが含まれている可能性
がある。このような情報を含むプライバシー情報は、社
会的信用と厳密な監査体制の団体にのみ取り扱いが許さ
れるべきだが、一般に優秀なプログラムの開発元が必ず
しも社会的信用と厳密な監査体制を備えている場合は稀
と言える(ここでの監査体制とはユーザ情報の不正利用
に対する監査体制であって、企業会計における監査を意
味するものではない)。
合、そこに含まれるユーザのプライバシー情報が取り出
され、不正に使用される可能性は開発者が厳密な監査体
制を持たない限り排除できない。
のシステムから不具合情報を送付するとき、プライバシ
ー情報を削除してしまうことである。配布されたプログ
ラムの中に、予めユーザのプライバシー情報が格納され
るメモリ上の領域を指定する情報、(ここでは秘密情報
格納領域の識別子と呼ぶ)を格納しておき、その情報に
基づいて不具合を発生したプログラム自身、あるいはユ
ーザ側システムが、そのメモリ領域の情報を削除したメ
モリイメージを作成し、不具合情報として、送付先に送る
ものである。
で、この削除手順がユーザの意図に反して妨害されるこ
とはないと考えてよい。ただし、秘密情報格納領域の識
別子が正しいことが、削除手順が正しく行われることの
前提となる。この可能性は、信頼できるプログラム配布
者が、秘密情報格納領域の識別子に対して署名を行って
おくことにより排除できる。
名を検証し、もし改変が行われている場合は不具合情報
の送付をやめる。
示す。秘密情報格納領域の識別子 SECはその先頭アドレ
ス(Saddr)と終了アドレス(Eaddr)の組として定義さ
れ、記号1608 で示されている。そして SEC を含むロー
ドモジュール全体の配布者による署名 1606 によって、
秘密情報格納領域の識別子の改変を防いでいる。
る。プログラムの不具合情報を以下の手順により一度厳
密な監査体制を持つ配布者に送り、そこでプライバシー
情報を削除してから開発者に不具合情報を転送する。
次の2つの方法によってその時のプログラムの内部状態
を配布者に送信する。
検出と、プログラム内部状態の配布者への送信。
メージの、ユーザシステムによる配布者への送信。
じめプログラムに組み込まれた通知手続きが呼出され、
プログラムの内部状態が配布者に送信される。
布者によって指定され、直接開発者に内部状態が送信さ
れることはない。プログラムはメモリ上で暗号化された
上に、さらに配布者の公開鍵によって暗号化されて送信
される。
ック情報 504 の宛先にプログラムイメージを送る。メ
モリイメージには図9の元プログラムが添付されるもの
とする。
かどうか検証される。さらに宛先に対応する証明書を認
証局に要求し、その暗号化鍵でプログラムイメージを暗
号化して送ればより安全である。
は、ネットワーク転送のための暗号を復号化した後、契
約識別子 905に基づいて配布者の持つデータベースから
そのプログラムの暗号化鍵 Kx#CID を検索し、プログラ
ムとデータを復号化する。プログラムにはCPU対応のプ
ログラム復号化鍵 907 が含まれているが、対応するプ
ロセッサのみがそれを復号化可能であり、配布者はこれ
を復号化することができないことに注意が必要である。
識別子からデータベースに保存されたプライバシー情報
の場所をとりだし、プログラムイメージから当該部分の
データを値0で置き換えるなどして消去する。
ら、復号化した状態のプログラムイメージを開発者へと
送信する。開発者はそれを自身の秘密鍵で復号化し、解
析してプログラムの不具合を修正するために使う。
払い方法について説明する。
め、ユーザによる不具合情報の提供に報奨金を与えるこ
とができる。開発者はあらかじめ不具合情報の提供に対
してどのような報奨金を与えるかについての定義を配布
者に提出し、契約を行っておく。
情報を提供すると、その配布者のサイトで使用できる電
子的な商品券がユーザに与えられるなどである。つま
り、報奨金は実際の貨幣でなくてよい。もちろん、銀行
口座に直接報奨金が振り込まれてもよいが、このような
報奨金は非常に定額であり、銀行取り引きの手数料に見
合う金額ではないことを考慮する必要がある。
題が発生する。同一の不具合を複数回送って、多数の報
奨金を得ようとするユーザが多くなることである。この
ような事態が起きると開発者は報奨金の支払いにもかか
わらずプログラムを改善するための材料を得ることがで
きないことになる。
サーバに既知の不具合のパターンを記憶しておき、既知
の不具合に対応する場合には報奨金を減額する方法をと
ることができる。ある条件、たとえば変数の値が0の時
に不具合が発生することがわかっていれば、その条件に
合致する不具合情報の報奨金を減額する。
かじめ配布者のサーバに掲示しておき、それらに該当す
る場合には報奨金は減額されることを公開しておくこと
が望ましい。
ログラムイメージ送信の際の通信帯域の占有や通信料と
いった負担が生じる。また、いわゆるプライバシー情報
以外にも、プログラムがエディタの場合には編集中の文
書全体秘密であるなど、ユーザにとって不具合情報の送
信が望ましくない場合がある。プログラムによる不具合
情報の送信の際には送信前にユーザの許可を求めること
が望ましい。
ップを行う場合を説明する。
を行う場合は、配布者との新たに配布者と契約を行う。
その際、オプションとして前回の契約IDを入力するこ
とにより、配布手数料の割引などの措置を受けられると
ともに、ユーザへのダウンロード方法紹介画面の識別子
(URL)に前のバージョンと同じ名前を使うことができ
る。プログラムは再度コンパイルされ、暗号化鍵 Kx#C
ID は契約識別子(CID)ごとに新たな値が割り当てられ、
暗号化ロードモジュールが作られる。
た場合も契約を新たにやり直す。当然プログラムの暗号
化鍵 Kx#CID は変更される。
などの条件を変更する場合も新たに契約をやりなおし新
たにロードモジュールを作成する。ただし、フィードバ
ック情報に対する報奨金の金額や除外リストの変更では
ロードモジュールは変更されない。
説明する。
03 は、プログラムのコンパイル完了直後に決定された
暗号化鍵 Kx#CID によって暗号化されることとなってお
り、たとえば複数のユーザからプログラムのダウンロー
ド要求があったときは、暗号化プログラム部分 903 は
共通だが、復号化鍵 908 はターゲットのCPU毎に異
なる実行ファイルが作られ、ユーザに送られる。
処理はプログラムコンパイル直後に一度だけ行われ、ユ
ーザによるダウンロード要求の都度暗号化処理をやりな
おす必要はない。
鍵 Kx#CID を決め、プログラムを暗号化する手順はかな
らずしも上記の順序に限定されなくてもよい。
ド要求を受け取ってからプログラム暗号化鍵を決定し
て、暗号化部分 903 の暗号化と、復号化鍵 908 の作成
を行ってもよい。
直接公衆ネットワークに接続されている例を示した。実
施例1における配布者システムにはプログラムのソース
ファイルや、実行プログラムを暗号化して保護するため
の暗号化鍵 Kx#CID, プログラム上のプライバシー情報
の領域などの秘密情報あるいは契約情報のような改竄を
防止する必要のある情報が保存されている。
通じた攻撃によって読み出されたり、改変されることを
防がなければならない。
10に示すような、ファイアウォールによりフロントエン
ドとバックエンドのサーバが分離された構成をとり、ネ
ットワークからの攻撃を防いでいる。
する。配布者は開発者向けサーバ 1004により配布条件
情報を公開している。開発者システム 101 は配布条件
情報の入手と契約を開発者向けサーバ 1004 との通信に
より実行する。
保持しており、配布者のその他のサーバとは独立に配布
を実行する。だが、開発者からの契約の要求は配布者の
バックエンドサーバ 1001 に転送され、そこで開発者の
身元証明の確認や契約条件の確認、契約終了後の契約文
書の保管などの処理が行われる。配布者バックエンドサ
ーバは開発者向けサーバからの要求のみを受け付けるよ
うに構成されている。
システム内部セグメント 602 を接続するファイアウォ
ール 1003 はバリアセグメント 1007 におかれた配布
者のサーバ、開発者向けサーバ 1004, 不具合情報受け
付けサーバ 1005 、ダウンロードサーバ 1006 以外の要
求は転送しない。配布者システムの外部、たとえば開発
者 101 やユーザ 103 が直接配布者バックエンドサーバ
に要求を発行することはできない。
ンドシステムはソースファイルをうけとり、審査してコ
ンパイル、暗号化して配布可能な暗号化ロードモジュー
ルを作成する。そして、配布のために作成された html
ドキュメントはダウンロードサーバ 1006 に転送され、
公開される。
バに指定ドキュメントのダウンロード要求を発行し、ダ
ウンロードサーバにシステムの CPU の公開鍵 Kp の証
明書を提示する。ダウンロードサーバはバックエンドサ
ーバにダウンロード要求を転送し、暗号化されたロード
モジュールに、CPU の公開鍵 Kp で暗号化された ロー
ドモジュール暗号化鍵 EKp[Kx#CID] を添付したファイ
ルを作成する。ダウンロードサーバはこのファイルをユ
ーザにダウンロードする。
行し、不具合があった場合には不具合情報受け付けサー
バに不具合情報を送る。ロードモジュールのフィードバ
ック情報 504 には不具合情報受け付けサーバの URI が
書かれている。
送信元のユーザ情報をバックエンドサーバに送り、不具
合情報の契約 ID からプライバシー情報の領域を決定
し、その領域の情報を消去して、開発元へ送付する。
トワーク外部からの要求を直接受け付けるサーバと、秘
密情報を保持するバックエンドサーバを分離することに
より、秘密情報をより安全に管理することができる。
りで販売するのではなく、実行回数や実行時間によって
使用料金を徴収する方法がある。このような目的を実現
するにあたっては、プログラム提供側と利用者の双方に
とって安全かつ安価なシステムが求められる。プログラ
ム提供側にとっては不正にただで利用されず、利用者側
にとっては第3者による不正な課金を防ぐことである。
グラム提供者が課金情報を管理するサーバを運用し、ユ
ーザが実行するプログラムはサーバとの接続なしでは動
作しないようにすることである。
点が利用者側の不安となる。
アが使用不能になるおそれ これらは課金サーバの運用に対する信頼の問題といえる
が、すでに述べたような監査体制の場合と同じように、
一般にプログラムの開発元がサーバの運用に十分な経験
と管理体制を備えているとはいえない。この問題を解決
するため、課金サーバの管理を配布者が代行する実施例
を説明する。
の違いは配布者システムに課金サーバ 1208 が追加され
たことである。以下、実施例1、2との変更点について
のみ説明する。
金の徴収代行と料金条件を契約条件として選択する。そ
して開発者はプログラム中で配布者が用意する課金関数
が呼出されるようにプログラムを開発する。
課金関数の呼出しが正しく行われているかを検査する。
検査に合格すると、配布者が用意した課金関数がリンク
された暗号化ロードモジュールが作成される。課金関数
は悪意のユーザによって改変されないように暗号化領域
に置かれる。
数、時間による課金が行われることが記述されている。
ロードモジュールのダウンロード時に、配布者は課金契
約IDを含む、課金の同意を求める同意書をユーザに送付
し、ユーザはその同意書にユーザの(CPUのではな
く)秘密鍵で署名してダウンロードサーバに返送する。
サーバに転送し、バックエンドサーバは図9の暗号化ロ
ードモジュール基本形式に、ユーザ情報 1308 を追加し
た、図13の形式の暗号化ロードモジュールファイルを作
成する。追加された課金契約情報 1308 は、課金契約 I
D と1301〜1307 と課金契約IDに対するハッシュから成
る。
れ、課金関数が呼出されると、課金関数は課金契約情報
1308 のハッシュを検証し、正しければ課金サーバへの
接続を行い、課金要求をしてソフトウェアの正常実行を
継続する。
すりかえられていたり、改変されていた場合、課金関数
はハッシュの検証に失敗し、ソフトウェアの実行は停止
される。このようにユーザの課金情報書き換えによる意
図的な課金の回避が防止されている。
に書き換えの必要な部分を1306〜1308に限定することで
サーバ側のファイル書き換えの負荷を軽減している。
査を行っても、ユーザの秘密情報を盗み取るようなプロ
グラムを完全に排除することは困難である。したがっ
て、実際にそのプログラムを使用して発生したトラブル
の解決を支援する機構が必要となる。それは同時にユー
ザのプライバシーと開発者のプログラムの秘密が守られ
るものでなければならない。
バック情報によって得たデータに基づいて監査を行う例
を説明する。配布者はユーザからフィードバック情報と
して不具合情報とともにコメントや苦情なども受け付け
る。
ータベースに蓄積される。また、ソフトウェアを使用し
ているユーザに定期的にアンケートを取り、「最近SPAM
(受信者の意志を無視して送られる広告などのメール)が
多くなった」、「個人情報が漏れていると感じる」など
の情報を事前に収集してもよい。
易に推定できるもの、たとえばある健康管理ソフトウェ
アを使っているユーザの健康状態が漏れて、医療機関の
ダイレクトメールが届く、あるいは生命保険への加入を
断られるなどの場合は、配布者が供託されたソースコー
ドを検査し、不審な部分がないかどうかを検査する。も
しプライバシー情報が不正に取り扱われている場合、配
布者は配布を中止して、ユーザに通知を行う。
係が不明確な場合が覆いと予想される。このような場合
でも、ソフトウェアに不正が組み込まれている可能性が
あるため、苦情内容毎の件数とソフトウェア利用との間
に因果関係がある場合、相関の高いものから調査が行わ
れ、不正なソフトウェアが配布されないよう配布業者は
管理を行う。
間になんらかの関係があるかどうかを推定する手法は現
在データベースの機能としてさまざまなものが利用可能
であり、説明を省略する。
フィードバック情報収集とソフトウェアの監査を配布業
者が行うこととしていた。だが、ソフトウェアの配布と
監査とはある場合には利害が相反する業務である。たと
えばあるソフトウェア配布業者で多くの配布手数料を稼
いでいるソフトウェアにユーザのプライバシー侵害のお
それがあったとき、その監査に消極的になることは想像
に難くない。
基づいて監査業者が不具合情報を回収する実施例を説明
する。
1506 までのシーケンスは配布者のみの場合と同じであ
る。違いはユーザがダウンロード要求をするとき、監査
業者を契約書に指定し自らの契約書に秘密鍵で署名す
る。
ロードモジュール中のフィードバック情報 1304 とし
て格納された暗号化ロードモジュールを作成し、ユーザ
に配布する。ユーザは配布業者とは関わりなく複数の監
査業者の中から好きな業者を選択することができる。
をフィードバック情報の送り先に送るのは前の例と同じ
である。その後、監査業者でのプライバシー情報の削除
には2通りの方法がある。
る場合始めに監査業者でフィードバック情報を復号化す
る場合について説明する。この場合、監査業者は契約ID
に対応する復号化鍵とプライバシー情報領域情報を配布
業者に要求する。監査業者はフィードバック情報を復号
化してプライバシー情報領域を削除し、開発者へフィー
ドバック情報を送る。
の平文実行コードの全てとユーザのプライバシー情報の
全てを平文で見ることができるため、監査業者が自主的
に機械語レベルでの監査行為を行うことができるが、監
査業者のプログラムやプライバシー情報の取り扱いに厳
密性が求められる。
しない場合を説明する。
情報を復号化することなく、プライバシー領域情報のみ
をうけとり、フィードバック情報が暗号化された状態で
プライバシー領域の情報の削除を行う。
バシー領域の暗号化は他の領域と関係を持たないような
変数は位置、暗号ブロック方式、暗号アルゴリズムが選
択されている必要がある。
死には平文の機械語プログラムを解読することができな
いため、自主的な監査行為は制限される。
に説明したようなユーザの苦情などに基づいて状況証拠
を収集し、不正の疑いが濃い場合は配布業者にそれらの
状況証拠を提示してソースファイルの開示を求める。監
査業者には限定された強制捜査権が与えられ、状況証拠
に基づいて配布業者に対してソースファイルの開示を強
制でキルとしてもよい。
監査業者であり、不正が発見された場合、配布業者に配
布の停止とユーザへのアナウンスを求める。そのソフト
ウェアによって被害を受けた専門的な知識をもたないユ
ーザに代わってそのソフトウェアの開発者に対する賠償
要求などを代行してもよい。
がないことがわかった場合、監査業者は配布業者にあら
かじめ定められた手数料を支払う。監査業者は監査のた
めに開示されたソースファイルに対して守秘義務を追う
のは当然である。
いて説明する。
は技術の共有化のために広く認められた権利である。特
に、ソフトウェアの作成元がメンテナンスを放棄したソ
フトウェアの不具合を修正する場合などには不可欠な技
術である。
〜20年ほど前に作られたコンピュータプログラムをリ
バースエンジニアリングによって補修した事例が多く見
られた。ところが、耐タンパマイクロプロセッサ上のア
プリケーションではソフトウェアを解析することは暗号
学的に不可能である。
て、ソースコードが行方不明になったりした場合、耐タ
ンパマイクロプロセッサでは機械語を解析することは原
則としてできない。
の秘密鍵を開示することにより、暗号化された機械語プ
ログラムを平文に戻すことは、そのプロセッサ上で動作
する他のプログラムをも危険にさらすことになり、現実
的ではない。
ースコードが役に立つ。あるソフトウェアの保守を行い
たい者は、そのソフトウェアの作成元が連絡不能である
ことを確認してソースコードを一般に公開する。
ウェアの保守を希望するものはその作業を行う。また、
配布業者は著作権法上の保護期間を経過したソフトウェ
アのソースコードを公開して、技術の共有化を促進す
る。
プロセッサの使用を前提とした場合でもソフトウェアの
保守と技術の共有という目的をリバースエンジニアリン
グという手段をとることなく行うことができる。
れば、耐タンパプロセッサに暗号化されたプログラムを
配布する場合でも、実行ファイルの安全が確保できるほ
か、バグ情報などの不具合情報をユーザーから、プログ
ラム配布装置を介してプログラム作成者へ伝えることが
できる。
提供したユーザに対して、このプログラム毎に報奨を決
定することができる。
チャート
チャート
チャート
明図
説明図
説明図
Claims (23)
- 【請求項1】 ネットワークに接続されたソースファ
イル送信装置、暗号化プログラム配布装置及び実行ファ
イル受信装置とからなるプログラム配布システムにおい
て、 前記ソースファイル送信装置は、 プログラムのソースファイルを前記暗号化プログラム配
布装置宛てに送信する第1の送信手段を具備し、 前記暗号化プログラム配布装置は、 前記ソースファイル送信装置から送信された前記ソース
ファイルを受信する第1の受信手段と、 前記第1の受信手段で受信した前記ソースファイルから
前記プログラムの実行ファイルを生成する実行ファイル
生成手段と、 前記実行ファイル受信装置から該実行ファイル受信装置
固有の公開鍵、又は該実行ファイル受信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信する公開鍵受信手
段と、 前記実行ファイルの少なくとも一部を前記公開鍵にて暗
号化する暗号化手段と、 前記暗号化手段で暗号化された前記実行ファイルを前記
実行ファイル受信装置宛てに送信する第2の送信手段と
を具備し、 前記実行ファイル受信装置は、 前記公開鍵を前記暗号化プログラム配布装置宛てに送信
する暗号化鍵送信手段と、 前記暗号化プログラム配布装置から送信された前記実行
ファイルを受信する第2の受信手段と、 前記公開鍵に対応した秘密鍵を用いて、前記第2の受信
手段で受信した前記実行ファイルを復号化する第2の復
号化手段とを具備したことを特徴とするプログラム配布
システム。 - 【請求項2】 ネットワークに接続されたソースファ
イル送信装置、暗号化プログラム配布装置及び実行ファ
イル受信装置とからなるプログラム配布システムにおい
て、 前記ソースファイル送信装置は、 プログラムのソースファイルを前記暗号化プログラム配
布装置宛てに送信する第1の送信手段を具備し、 前記暗号化プログラム配布装置は、 前記ソースファイル送信装置から送信された前記ソース
ファイルを受信する第1の受信手段と、 前記第1の受信手段で受信した前記ソースファイルから
前記プログラムの実行ファイルを生成する実行ファイル
生成手段と、 前記実行ファイルの少なくとも一部を所定の共通鍵にて
暗号化する第1の暗号化手段と、 前記実行ファイル受信装置から該実行ファイル受信装置
固有の公開鍵、又は該実行ファイル受信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信する公開鍵受信手
段と、 前記共通鍵を、前記公開鍵受信手段で受信した前記公開
鍵で暗号化する第2の暗号化手段と、 前記第1の暗号化手段で暗号化された前記実行ファイル
及び前記第2の暗号化手段で暗号化された前記共通鍵を
前記実行ファイル受信装置宛てに送信する第2の送信手
段とを具備し、 前記実行ファイル受信装置は、 前記公開鍵を前記暗号化プログラム配布装置宛てに送信
する暗号化鍵送信手段と、 前記暗号化プログラム配布装置から送信された前記実行
ファイル及び暗号化された前記共通鍵を受信する第2の
受信手段と、 前記第2の受信手段で受信した前記共通鍵を、前記公開
鍵に対応した秘密鍵で復号化する第1の復号化手段と、 前記第1の復号化手段で復号化した前記共通鍵を用い
て、前記第2の受信手段で受信した前記実行ファイルを
復号化する第2の復号化手段とを具備したことを特徴と
するプログラム配布システム。 - 【請求項3】 前記所定の共通鍵は、前記プログラム
に基づいてランダムに生成されることを特徴とする請求
項2記載のプログラム配布システム。 - 【請求項4】 前記暗号化プログラム配布装置は、 前記ソースファイル送信装置と暗号化プログラム配布装
置間で予め定められた秘密情報操作規約に基づき、前記
ソースファイルが該秘密情報操作規約に違反しているか
否かを検出する検出手段とを更に具備し、 前記検出手段において前記ソースファイルが該秘密情報
操作規約を違反していた場合、前記ソースファイルの実
行ファイル化、暗号化及び前記実行ファイル受信装置へ
の送信を中止することを特徴とする請求項1及び請求項
2記載のプログラム配布システム。 - 【請求項5】 前記暗号化プログラム配布装置は、 前記検出手段において前記ソースファイルが該秘密情報
操作規約を違反していた場合、及び又は前記ソースファ
イルから実行ファイルの作成に失敗した場合に、該違反
を示す情報及び又は該失敗を示す情報を前記ソースファ
イル送信装置に通知することを特徴とする請求項4記載
のプログラム配布システム。 - 【請求項6】 前記ソースファイル送信装置は、 前記プログラムの前記実行ファイル内の秘密情報領域を
指定する領域情報を前記暗号化プログラム配布装置宛て
に送信する第3の送信手段を更に具備し、 前記暗号化プログラム配布装置は、 前記領域情報を受信する第3の受信手段と、 前記ソースファイル送信装置と暗号化プログラム配布装
置間で予め定められた秘密情報操作規約、及び又は前記
領域情報に基づいて、前記実行ファイル内の秘密情報を
格納する領域を決定する秘密情報領域決定手段とを更に
具備したことを特徴とする請求項1及び請求項2記載の
プログラム配布システム。 - 【請求項7】 前記暗号化プログラム配布装置は、 前記ソースファイル、前記実行ファイル、該実行ファイ
ルを暗号化した公開鍵及び実行ファイル内の秘密情報領
域を指定する領域情報を関連付けて記録する記録手段と
を更に具備したことを特徴とする請求項1記載のプログ
ラム配布システム。 - 【請求項8】 前記暗号化プログラム配布装置は、 前記ソースファイル、前記実行ファイル、該実行ファイ
ルを暗号化した共通鍵及び実行ファイル内の秘密情報領
域を指定する領域情報を関連付けて記録する記録手段と
を更に具備したことを特徴とする請求項2記載のプログ
ラム配布システム。 - 【請求項9】 前記暗号化プログラム配布装置は、 前記実行ファイル生成手段において、前記ソースファイ
ルから前記実行ファイルを生成する際に、機能的に同一
であり、かつ異なる機械語命令を持つ前記実行ファイル
を生成することを特徴とする請求項1及び請求項2記載
のプログラム配布システム。 - 【請求項10】 前記暗号化プログラム配布装置は、 前記実行ファイル生成手段において、前記ソースファイ
ルから前記実行ファイルを生成する際に、前記実行ファ
イルの一部に前記プログラムの不具合情報送付先を示す
情報を書き込むことを特徴とする請求項1及び請求項2
記載のプログラム配布システム。 - 【請求項11】 前記不具合情報送付先は、前記暗号
化プログラム配布装置であることを特徴とする請求項1
0記載のプログラム配布システム。 - 【請求項12】 前記実行ファイル受信装置は、 前記実行ファイルに関する不具合情報を送信する第3の
送信手段を更に具備し、 前記暗号化プログラム配布装置は、 前記実行ファイル受信装置から送信された前記不具合情
報を受信する第3の受信手段を更に具備したことを特徴
とする請求項1及び請求項2記載のプログラム配布シス
テム。 - 【請求項13】 前記暗号化プログラム配布装置は、 受信した前記不具合情報を前記ソースファイル送信装置
宛てに送信する第4の送信手段とを更に具備したことを
特徴とする請求項12記載のプログラム配布システム。 - 【請求項14】 前記実行ファイル受信装置は、 前記実行ファイルに関する不具合情報を送信する第3の
送信手段を更に具備し、 前記暗号化プログラム配布装置は、 前記実行ファイル受信装置から送信された前記不具合情
報の一部を、対応する前記実行ファイルの前記共通鍵に
て復号化する第3の復号化手段と、 復号化した前記不具合情報から、予め定められた所定の
秘密情報格納領域のデータを削除する削除手段と、 前記削除手段により、前記所定の秘密情報が削除された
前記不具合情報を前記ソースファイル送信装置に送信す
る第3の送信手段とを更に具備したことを特徴とする請
求項2記載のプログラム配布システム。 - 【請求項15】 ネットワークを介して第1の通信装
置から、プログラムのソースファイルを受信する第1の
受信手段と、 前記第1の受信手段で受信した前記ソースファイルから
前記プログラムの実行ファイルを生成する実行ファイル
生成手段と、 ネットワークを介して第2の通信装置から、該第2の通
信装置固有の公開鍵、又は該第2の通信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信する公開鍵受信手
段と、 前記実行ファイルの少なくとも一部を前記公開鍵にて暗
号化する暗号化手段と、 前記暗号化手段で暗号化された前記実行ファイルを前記
第2の通信装置宛てに送信する送信手段とを具備したこ
とを特徴とする暗号化プログラム配布装置。 - 【請求項16】 ネットワークを介して第1の通信装
置から、プログラムのソースファイルを受信する第1の
受信手段と、 前記第1の受信手段で受信した前記ソースファイルから
前記プログラムの実行ファイルを生成する実行ファイル
生成手段と、 前記実行ファイルの少なくとも一部を所定の共通鍵にて
暗号化する第1の暗号化手段と、 ネットワークを介して第2の通信装置から、該第2の通
信装置固有の公開鍵、又は該第2の通信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信する公開鍵受信手
段と、 前記共通鍵を、前記公開鍵受信手段で受信した前記公開
鍵で暗号化する第2の暗号化手段と、 前記第1の暗号化手段で暗号化された前記実行ファイル
及び前記第2の暗号化手段で暗号化された前記共通鍵を
前記第2の通信装置宛てに送信する送信手段とを具備し
たことを特徴とする暗号化プログラム配布装置。 - 【請求項17】 ネットワークに接続されたソースフ
ァイル送信装置、暗号化プログラム配布装置及び実行フ
ァイル受信装置とからなるプログラム不具合情報収集シ
ステムにおいて、 前記ソースファイル送信装置は、 プログラムのソースファイルを前記暗号化プログラム配
布装置宛てに送信する第1の送信手段とを具備し、 前記暗号化プログラム配布装置は、 前記ソースファイル送信装置から送信された前記ソース
ファイルを受信する第1の受信手段と、 前記第1の受信手段で受信した前記ソースファイルから
前記プログラムの実行ファイルを生成する実行ファイル
生成手段と、 前記実行ファイルの少なくとも一部を所定の共通鍵にて
暗号化する第1の暗号化手段と、 前記実行ファイル受信装置から該実行ファイル受信装置
固有の公開鍵、又は該実行ファイル受信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信する公開鍵受信手
段と、 前記共通鍵を、前記公開鍵受信手段で受信した前記公開
鍵で暗号化する第2の暗号化手段と、 前記第1の暗号化手段で暗号化された前記実行ファイル
及び前記第2の暗号化手段で暗号化された前記共通鍵を
前記実行ファイル受信装置宛てに送信する第2の送信手
段と、 前記実行ファイルに関する不具合情報を前記実行ファイ
ル受信装置から受信する第2の受信手段と、 前記不具合情報を送信した前記実行ファイル受信装置の
ユーザに対する所定の報奨を決定する報奨決定手段とを
具備し、 前記実行ファイル受信装置は、 前記公開鍵を前記暗号化プログラム配布装置宛てに送信
する暗号化鍵送信手段と、 前記暗号化プログラム配布装置から送信された前記実行
ファイル及び暗号化された前記共通鍵を受信する第2の
受信手段と、 前記第2の受信手段で受信した前記共通鍵を、前記公開
鍵に対応した秘密鍵で復号化する第1の復号化手段と、 前記第1の復号化手段で復号化した前記共通鍵を用い
て、前記第2の受信手段で受信した前記実行ファイルを
復号化する第2の復号化手段と、 前記実行ファイルに関する不具合情報を送信する第3の
送信手段を具備したことを特徴とするプログラム不具合
情報収集システム。 - 【請求項18】 ネットワークに接続されたソースフ
ァイル送信装置、暗号化プログラム配布装置及び実行フ
ァイル受信装置とからなるプログラム配布システムにて
用いられるプログラム配布方法において、 前記ソースファイル送信装置は、 プログラムのソースファイルを前記暗号化プログラム配
布装置宛てに送信し、 前記暗号化プログラム配布装置は、 前記ソースファイル送信装置から送信された前記ソース
ファイルを受信し、 受信した前記ソースファイルから前記プログラムの実行
ファイルを生成し、 前記実行ファイル受信装置から該実行ファイル受信装置
固有の公開鍵、又は該実行ファイル受信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信し、 前記実行ファイルの少なくとも一部を前記公開鍵にて暗
号化し、 前記暗号化手段で暗号化された前記実行ファイルを前記
実行ファイル受信装置宛てに送信し、 前記実行ファイル受信装置は、 前記公開鍵を前記暗号化プログラム配布装置宛てに送信
し、 前記暗号化プログラム配布装置から送信された前記実行
ファイルを受信し、 前記公開鍵に対応した秘密鍵を用いて、受信した前記実
行ファイルを復号化することを特徴とするプログラム配
布方法。 - 【請求項19】 ネットワークに接続されたソースフ
ァイル送信装置、暗号化プログラム配布装置及び実行フ
ァイル受信装置とからなるプログラム配布システムにて
用いられるプログラム配布方法において、 前記ソースファイル送信装置は、 プログラムのソースファイルを前記暗号化プログラム配
布装置宛てに送信し、 前記暗号化プログラム配布装置は、 前記ソースファイル送信装置から送信された前記ソース
ファイルを受信し、 受信した前記ソースファイルから前記プログラムの実行
ファイルを生成し、 前記実行ファイルの少なくとも一部を所定の共通鍵にて
暗号化し、 前記実行ファイル受信装置から該実行ファイル受信装置
固有の公開鍵、又は該実行ファイル受信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信し、 前記共通鍵を、受信した前記公開鍵で暗号化し、 暗号化された前記実行ファイル及び暗号化された前記共
通鍵を前記実行ファイル受信装置宛てに送信し、 前記実行ファイル受信装置は、 前記公開鍵を前記暗号化プログラム配布装置宛てに送信
し、 前記暗号化プログラム配布装置から送信された前記実行
ファイル及び暗号化された前記共通鍵を受信し、 受信した前記共通鍵を、前記公開鍵に対応した秘密鍵で
復号化し、 復号化した前記共通鍵を用いて、受信した前記実行ファ
イルを復号化することを特徴とするプログラム配布方
法。 - 【請求項20】 ネットワークを介して第1の通信装
置から、プログラムのソースファイルを受信し、 受信した前記ソースファイルから前記プログラムの実行
ファイルを生成し、 ネットワークを介して第2の通信装置から、該第2の通
信装置固有の公開鍵、又は該第2の通信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信し、 前記実行ファイルの少なくとも一部を前記公開鍵にて暗
号化し、 暗号化された前記実行ファイルを前記第2の通信装置宛
てに送信することを特徴とするプログラム配布方法。 - 【請求項21】 ネットワークを介して第1の通信装
置から、プログラムのソースファイルを受信し、 受信した前記ソースファイルから前記プログラムの実行
ファイルを生成し、 前記実行ファイルの少なくとも一部を所定の共通鍵にて
暗号化し、 ネットワークを介して第2の通信装置から、該第2の通
信装置固有の公開鍵、又は該第2の通信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信し、 前記共通鍵を、受信した前記公開鍵で暗号化し、 暗号化された前記実行ファイル及び暗号化された前記共
通鍵を前記第2の通信装置宛てに送信することを特徴と
するプログラム配布方法。 - 【請求項22】 コンピュータにより実行可能なコン
ピュータプログラムであって、 ネットワークを介して第1の通信装置から、プログラム
のソースファイルを受信する機能と、 受信した前記ソースファイルから前記プログラムの実行
ファイルを生成する機能と、 ネットワークを介して第2の通信装置から、該第2の通
信装置固有の公開鍵、又は該第2の通信装置のプロセッ
サ固有の公開鍵のいずれか一方を受信する機能と、 前記実行ファイルの少なくとも一部を前記公開鍵にて暗
号化する機能と暗号化された前記実行ファイルを前記第
1の通信装置宛てに送信する機能とを具備したことを特
徴とするコンピュータプログラム。 - 【請求項23】 コンピュータにより実行可能なコン
ピュータプログラムであって、 ネットワークを介して第1の通信装置から、プログラム
のソースファイルを受信する機能と、 受信した前記ソースファイルから前記プログラムの実行
ファイルを生成する機能と、 前記実行ファイルの少なくとも一部を所定の共通鍵にて
暗号化する機能と、ネットワークを介して第2の通信装
置から、該第2の通信装置固有の公開鍵、又は該第2の
通信装置のプロセッサ固有の公開鍵のいずれか一方を受
信する機能と、 前記共通鍵を、受信した前記公開鍵で暗号化する機能
と、 暗号化された前記実行ファイル及び暗号化された前記共
通鍵を前記第2の通信装置宛てに送信する機能とを具備
したことを特徴とするコンピュータプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000332068A JP4067757B2 (ja) | 2000-10-31 | 2000-10-31 | プログラム配布システム |
EP01309273A EP1308820A3 (en) | 2000-10-31 | 2001-10-31 | Encrypted program distribution system using computer network |
US09/984,717 US20020053024A1 (en) | 2000-10-31 | 2001-10-31 | Encrypted program distribution system using computer network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000332068A JP4067757B2 (ja) | 2000-10-31 | 2000-10-31 | プログラム配布システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002140126A true JP2002140126A (ja) | 2002-05-17 |
JP4067757B2 JP4067757B2 (ja) | 2008-03-26 |
Family
ID=18808322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000332068A Expired - Fee Related JP4067757B2 (ja) | 2000-10-31 | 2000-10-31 | プログラム配布システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20020053024A1 (ja) |
EP (1) | EP1308820A3 (ja) |
JP (1) | JP4067757B2 (ja) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795921B2 (en) * | 1997-12-24 | 2004-09-21 | Fujitsu Limited | Apparatus and method for translating with decoding function |
JP2007067630A (ja) * | 2005-08-30 | 2007-03-15 | Ancl Inc | ネットワークを使用するデータ伝送システム及びその方法 |
JP2008090791A (ja) * | 2006-10-05 | 2008-04-17 | Nippon Telegr & Teleph Corp <Ntt> | 仮想端末を利用した検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラム |
WO2008056700A1 (fr) * | 2006-11-09 | 2008-05-15 | Panasonic Corporation | Système de détection de falsification, procédé de détection de falsification, programme de détection de falsification, support d'enregistrement, circuit intégré, dispositif de génération d'informations d'authentification et dispositif de détection de fals |
CN100418096C (zh) * | 2005-04-05 | 2008-09-10 | 株式会社Ntt都科摩 | 应用程序验证系统和应用程序验证方法 |
JP2009503698A (ja) * | 2005-07-26 | 2009-01-29 | アップル インコーポレイテッド | 安全なソフトウェア更新 |
JP2009026010A (ja) * | 2007-07-18 | 2009-02-05 | Yahoo Japan Corp | コンテンツ配信装置、コンテンツ配信制御方法、および、コンテンツ配信制御プログラム |
JP2010040051A (ja) * | 2009-09-15 | 2010-02-18 | Spicysoft Kk | コンテンツ配信システム及びコンテンツ配信方法、並びにコンテンツ配信装置 |
JP2011515743A (ja) * | 2008-03-04 | 2011-05-19 | アップル インコーポレイテッド | セキュアな動作環境におけるソフトウェア開発者に対するコードエンタイトルメントの管理 |
JP2020077347A (ja) * | 2018-11-09 | 2020-05-21 | 国立大学法人東北大学 | 情報処理システム、データ提供方法、および情報処理システムの製造方法 |
JP2020079891A (ja) * | 2018-11-14 | 2020-05-28 | 日鉄ソリューションズ株式会社 | プログラム、記憶媒体、情報処理装置及び情報処理方法 |
WO2020144758A1 (ja) * | 2019-01-09 | 2020-07-16 | 三菱電機株式会社 | 秘密計算装置及びクライアント装置 |
JP2020202535A (ja) * | 2019-06-13 | 2020-12-17 | 伊格拉斯▲控▼股有限公司 | 安全製造に適用される制御システム及び制御方法 |
WO2021245837A1 (ja) * | 2020-06-03 | 2021-12-09 | 日本電気株式会社 | バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7320075B2 (en) * | 2001-11-20 | 2008-01-15 | Safenet, Inc. | Software protection method utilizing hidden application code in a protection dynamic link library object |
US7280819B2 (en) * | 2003-02-19 | 2007-10-09 | Cingular Wireless Ii Llc | Interrogate-response communication system with privacy indication |
US7676546B2 (en) * | 2003-03-25 | 2010-03-09 | Verisign, Inc. | Control and management of electronic messaging |
JP4282472B2 (ja) * | 2003-12-26 | 2009-06-24 | 株式会社東芝 | マイクロプロセッサ |
GB0403705D0 (en) * | 2004-02-19 | 2004-03-24 | Waterleaf Ltd | Gaming facility and method of operation thereof |
JP4612461B2 (ja) * | 2004-06-24 | 2011-01-12 | 株式会社東芝 | マイクロプロセッサ |
JP4559794B2 (ja) * | 2004-06-24 | 2010-10-13 | 株式会社東芝 | マイクロプロセッサ |
JP4204522B2 (ja) * | 2004-07-07 | 2009-01-07 | 株式会社東芝 | マイクロプロセッサ |
US20060064488A1 (en) * | 2004-09-17 | 2006-03-23 | Ebert Robert F | Electronic software distribution method and system using a digital rights management method based on hardware identification |
US7822972B2 (en) * | 2005-04-05 | 2010-10-26 | Mcafee, Inc. | Remotely configurable bridge system and method for use in secure wireless networks |
US7761710B2 (en) | 2005-04-05 | 2010-07-20 | Mcafee, Inc. | Captive portal system and method for use in peer-to-peer networks |
US7606370B2 (en) * | 2005-04-05 | 2009-10-20 | Mcafee, Inc. | System, method and computer program product for updating security criteria in wireless networks |
US7757274B2 (en) * | 2005-04-05 | 2010-07-13 | Mcafee, Inc. | Methods and systems for exchanging security information via peer-to-peer wireless networks |
US20060288411A1 (en) * | 2005-06-21 | 2006-12-21 | Avaya, Inc. | System and method for mitigating denial of service attacks on communication appliances |
US7930557B2 (en) * | 2006-05-16 | 2011-04-19 | Autodesk, Inc. | Framework for embedding graphical processing unit programs in computer software |
US8302179B2 (en) * | 2006-12-13 | 2012-10-30 | Avaya Inc. | Embedded firewall at a telecommunications endpoint |
US7934197B2 (en) | 2006-12-19 | 2011-04-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Maintaining code integrity in a central software development system |
JP4976991B2 (ja) * | 2007-11-22 | 2012-07-18 | 株式会社東芝 | 情報処理装置、プログラム検証方法及びプログラム |
US9251339B2 (en) * | 2007-12-29 | 2016-02-02 | International Business Machines Corporation | Core dump privacy during application failure |
US20090327712A1 (en) * | 2008-06-29 | 2009-12-31 | Amnon Sarig | System and method for variable encryption |
US8010804B2 (en) * | 2008-08-08 | 2011-08-30 | International Business Machines Corporation | Method to protect secrets against encrypted section attack |
JP5322620B2 (ja) | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
DE102010003581A1 (de) * | 2010-04-01 | 2011-10-06 | Bundesdruckerei Gmbh | Elektronisches Gerät, Datenverarbeitungssystem und Verfahren zum Lesen von Daten aus einem elektronischen Gerät |
US8719415B1 (en) | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US8260840B1 (en) * | 2010-06-28 | 2012-09-04 | Amazon Technologies, Inc. | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program |
US8832855B1 (en) * | 2010-09-07 | 2014-09-09 | Symantec Corporation | System for the distribution and deployment of applications with provisions for security and policy conformance |
US8896858B2 (en) * | 2012-07-22 | 2014-11-25 | Xerox Corporation | Method for enforcing document privacy through third party systems |
CN104426989B (zh) * | 2013-09-09 | 2018-12-14 | 联想(北京)有限公司 | 数据呈现方法、数据请求方法及电子设备 |
CN103561091A (zh) * | 2013-10-31 | 2014-02-05 | 上海上讯信息技术有限公司 | 文档外发控制系统及方法 |
GB2531770A (en) * | 2014-10-30 | 2016-05-04 | Ibm | Confidential Extracting System Internal Data |
US10103891B2 (en) * | 2015-01-07 | 2018-10-16 | Cyph, Inc. | Method of generating a deniable encrypted communications via password entry |
US9961056B2 (en) | 2015-01-07 | 2018-05-01 | Cyph, Inc. | Method of deniable encrypted communications |
WO2016114822A1 (en) | 2015-01-16 | 2016-07-21 | Cyph Inc. | A system and method of cryprographically signing web applications |
US9965635B2 (en) * | 2015-04-24 | 2018-05-08 | Panasonic Intellectual Property Corporation Of America | Image tagging device |
DE102016009439A1 (de) * | 2016-08-03 | 2018-02-08 | Giesecke+Devrient Mobile Security Gmbh | Individuelles Verschlüsseln von Steuerbefehlen |
CN108471411B (zh) * | 2018-03-19 | 2020-11-13 | 银联商务股份有限公司 | 密钥处理方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509074A (en) * | 1994-01-27 | 1996-04-16 | At&T Corp. | Method of protecting electronically published materials using cryptographic protocols |
US5701343A (en) * | 1994-12-01 | 1997-12-23 | Nippon Telegraph & Telephone Corporation | Method and system for digital information protection |
SE504085C2 (sv) * | 1995-02-01 | 1996-11-04 | Greg Benson | Sätt och system för att hantera dataobjekt i enlighet med förutbestämda villkor för användare |
NO302388B1 (no) * | 1995-07-13 | 1998-02-23 | Sigurd Sigbjoernsen | Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse |
US5892904A (en) * | 1996-12-06 | 1999-04-06 | Microsoft Corporation | Code certification for network transmission |
US6141698A (en) * | 1997-01-29 | 2000-10-31 | Network Commerce Inc. | Method and system for injecting new code into existing application code |
US6108420A (en) * | 1997-04-10 | 2000-08-22 | Channelware Inc. | Method and system for networked installation of uniquely customized, authenticable, and traceable software application |
US6044469A (en) * | 1997-08-29 | 2000-03-28 | Preview Software | Software publisher or distributor configurable software security mechanism |
WO2001010076A2 (en) * | 1999-07-29 | 2001-02-08 | Intertrust Technologies Corp. | Systems and methods for protecting secure and insecure computing environments using cryptography |
US6684389B1 (en) * | 1999-08-05 | 2004-01-27 | Canon Kabushiki Kaisha | Compiler that decrypts encrypted source code |
-
2000
- 2000-10-31 JP JP2000332068A patent/JP4067757B2/ja not_active Expired - Fee Related
-
2001
- 2001-10-31 US US09/984,717 patent/US20020053024A1/en not_active Abandoned
- 2001-10-31 EP EP01309273A patent/EP1308820A3/en not_active Withdrawn
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795921B2 (en) * | 1997-12-24 | 2004-09-21 | Fujitsu Limited | Apparatus and method for translating with decoding function |
CN100418096C (zh) * | 2005-04-05 | 2008-09-10 | 株式会社Ntt都科摩 | 应用程序验证系统和应用程序验证方法 |
US8332823B2 (en) | 2005-04-05 | 2012-12-11 | Ntt Docomo, Inc. | Application program verification system, application program verification method and computer program |
JP2009503698A (ja) * | 2005-07-26 | 2009-01-29 | アップル インコーポレイテッド | 安全なソフトウェア更新 |
JP2007067630A (ja) * | 2005-08-30 | 2007-03-15 | Ancl Inc | ネットワークを使用するデータ伝送システム及びその方法 |
JP2008090791A (ja) * | 2006-10-05 | 2008-04-17 | Nippon Telegr & Teleph Corp <Ntt> | 仮想端末を利用した検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラム |
WO2008056700A1 (fr) * | 2006-11-09 | 2008-05-15 | Panasonic Corporation | Système de détection de falsification, procédé de détection de falsification, programme de détection de falsification, support d'enregistrement, circuit intégré, dispositif de génération d'informations d'authentification et dispositif de détection de fals |
JPWO2008056700A1 (ja) * | 2006-11-09 | 2010-02-25 | パナソニック株式会社 | 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置 |
US8453206B2 (en) | 2006-11-09 | 2013-05-28 | Panasonic Corporation | Detecting unauthorized tampering of a program |
JP2009026010A (ja) * | 2007-07-18 | 2009-02-05 | Yahoo Japan Corp | コンテンツ配信装置、コンテンツ配信制御方法、および、コンテンツ配信制御プログラム |
JP2011515743A (ja) * | 2008-03-04 | 2011-05-19 | アップル インコーポレイテッド | セキュアな動作環境におけるソフトウェア開発者に対するコードエンタイトルメントの管理 |
JP2010040051A (ja) * | 2009-09-15 | 2010-02-18 | Spicysoft Kk | コンテンツ配信システム及びコンテンツ配信方法、並びにコンテンツ配信装置 |
JP2020077347A (ja) * | 2018-11-09 | 2020-05-21 | 国立大学法人東北大学 | 情報処理システム、データ提供方法、および情報処理システムの製造方法 |
JP7090903B2 (ja) | 2018-11-09 | 2022-06-27 | 国立大学法人東北大学 | 情報処理システム、データ提供方法、および情報処理システムの製造方法 |
JP2020079891A (ja) * | 2018-11-14 | 2020-05-28 | 日鉄ソリューションズ株式会社 | プログラム、記憶媒体、情報処理装置及び情報処理方法 |
JP7261566B2 (ja) | 2018-11-14 | 2023-04-20 | 日鉄ソリューションズ株式会社 | プログラム、記憶媒体、情報処理装置及び情報処理方法 |
WO2020144758A1 (ja) * | 2019-01-09 | 2020-07-16 | 三菱電機株式会社 | 秘密計算装置及びクライアント装置 |
JPWO2020144758A1 (ja) * | 2019-01-09 | 2021-03-11 | 三菱電機株式会社 | クライアント装置 |
JP2020202535A (ja) * | 2019-06-13 | 2020-12-17 | 伊格拉斯▲控▼股有限公司 | 安全製造に適用される制御システム及び制御方法 |
JP2022084708A (ja) * | 2019-06-13 | 2022-06-07 | 伊格拉斯▲控▼股有限公司 | 安全製造に適用される制御システム及び制御方法 |
WO2021245837A1 (ja) * | 2020-06-03 | 2021-12-09 | 日本電気株式会社 | バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 |
JP7448005B2 (ja) | 2020-06-03 | 2024-03-12 | 日本電気株式会社 | バックドア検査装置、バックドア検査方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
EP1308820A3 (en) | 2003-07-09 |
US20020053024A1 (en) | 2002-05-02 |
EP1308820A2 (en) | 2003-05-07 |
JP4067757B2 (ja) | 2008-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4067757B2 (ja) | プログラム配布システム | |
US7734549B2 (en) | Methods and apparatus for managing secured software for a wireless device | |
EP1342149B1 (en) | Method for protecting information and privacy | |
EP1710724B1 (en) | Application program verification system, application program verification method and computer program | |
US7991995B2 (en) | Method and apparatus for protecting information and privacy | |
US9898587B2 (en) | Software protection using an installation product having an entitlement file | |
US20090031141A1 (en) | Computer platforms and their methods of operation | |
JPH10269078A (ja) | ソフトウエア流通方法およびサーバ装置およびクライアント装置 | |
JP2008146479A (ja) | ソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア部品管理システム | |
JP2004518205A5 (ja) | ||
JPH1031587A (ja) | データ端末装置およびコンピュータプログラム | |
US20100031033A1 (en) | Apparatus and method of sharing drm agents | |
CN102004887A (zh) | 程序保护方法和装置 | |
WO2002035324A2 (en) | System and method for managing digital content | |
US20140373167A1 (en) | Trace center apparatus and method for enabling contents to be traced | |
US20030212639A1 (en) | Method and system for providing secure authoring services for protected software | |
EP1211587A1 (en) | Distributing programming language code | |
JP2005084989A (ja) | ソフトウェア改ざん検出システム、方法及びプログラム | |
JP2021118444A (ja) | 情報処理装置、情報処理方法及びプログラム | |
Hachez et al. | Towards a practical secure framework for mobile code commerce | |
WO2022270626A1 (ja) | ソフトウェア利用システムおよびソフトウェア利用方法 | |
JP2002189526A (ja) | 配信システム | |
Gerrits | Implementing a DRM-Preserving Digital Content Redistribution System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050301 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050414 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070306 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070524 |
|
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: 20080108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080109 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |