JP4998314B2 - 通信制御方法および通信制御プログラム - Google Patents

通信制御方法および通信制御プログラム Download PDF

Info

Publication number
JP4998314B2
JP4998314B2 JP2008037330A JP2008037330A JP4998314B2 JP 4998314 B2 JP4998314 B2 JP 4998314B2 JP 2008037330 A JP2008037330 A JP 2008037330A JP 2008037330 A JP2008037330 A JP 2008037330A JP 4998314 B2 JP4998314 B2 JP 4998314B2
Authority
JP
Japan
Prior art keywords
identification value
processing apparatus
information processing
application program
communication control
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
JP2008037330A
Other languages
English (en)
Other versions
JP2009199147A (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.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2008037330A priority Critical patent/JP4998314B2/ja
Priority to US12/201,196 priority patent/US20090210719A1/en
Publication of JP2009199147A publication Critical patent/JP2009199147A/ja
Application granted granted Critical
Publication of JP4998314B2 publication Critical patent/JP4998314B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、通信制御方法および通信制御プログラムに関し、特に、通信相手の端末との通信の許可/不許可を決定する通信制御方法および通信制御プログラムに関する。
一般的に、ユーザが、ある端末において、あるアプリケーションプログラムを実行させて、他のアプリケーションプログラムを実行する他の端末との間で通信を行なう場合、アプリケーションプログラム間の通信が安全になされることが望まれる。なぜなら、通信相手のアプリケーションプログラム(上記した他のアプリケーションプログラム)が違法に改造されていたり、あるいは接続の補償がされていない悪意のあるアプリケーションプログラムであった場合、当該ユーザが利用するある端末からの情報漏洩のおそれが生じるからである。
クライエント端末で実行されるアプリケーションプログラムの正当性を検証する手法については、特許文献1(特開2005−293504号公報)や特許文献2(特開2006−203564号公報)に開示がある。
特許文献1は、クライアント装置で起動されるアプリケーションプログラムの正当性をサーバ装置が確認する際に、クライアント装置内でアプリケーションプログラムの正当性を確認し、その結果をサーバ装置に送信する技術を開示している。クライアント装置内でのアプリケーションプログラムの正当性の確認が行なわれる場合、アプリケーションプログラムのハッシュデータがハッシュ関数を用いて作成され、当該作成されたハッシュデータが予め用意されたデータを比較され、これらが一致すればアプリケーションプログラムが正当なものであるという判断がなされる。
特許文献2は、サーバから送出されたプログラムをノードが実行し、実行したプログラムおよびそのプログラムの実行結果を含む結果情報をサーバに送り返すグリッドコンピューティングシステムを開示している。このシステムでは、ノードが結果情報をサーバに送り返す際に、実行後のプログラムのハッシュ値を算出してサーバに送信する。サーバでは、そのノードから受信したハッシュ値と、ノードに送出したプログラム(サーバに記憶されている)から算出したハッシュ値とが比較され、これらの一致によって、ノードによって実行されたプログラムが改ざんされたものではないことが検証されている。
特開2005−293504号公報 特開2006−203564号公報
しかしながら、上記した特許文献1に開示されたような従来技術では、クライアント端末が自ら起動するアプリケーションプログラムの正当性を検証し、その結果を示す証明データをサーバに送信する。この際の正当性の検証は、アプリケーションプログラム全体が対象とされていた。つまり、プログラム全体のハッシュ値が算出され、正当性の検証に用いられていた。
また、特許文献2に開示された従来技術は、グリッドコンピュータシステムにおいて、サーバからプログラムを複数のノードに配布し、各ノードが対応するプログラムの実行が完了した時点で、各ノードの秘密鍵を用いて、ハッシュ関数が演算されたプログラムおよびプログラムの実行結果にデジタル署名を行うものである。この際の正当性の検証も、アプリケーションプログラム全体が対象とされていた。つまり、プログラム全体のハッシュ値が算出され、正当性の検証に用いられていた。
さらに、従来では、特許文献1および特許文献2に記載されるように、プログラム自体(全体)のハッシュ値が算出されて当該プログラムの正当性の検証がなされていたため、当該プログラムが当該プログラムの使用権限の無い第三者に入手された場合でも正当なものであると判断されてしまう場合があった。
本発明は、係る実情に鑑み考え出されたものであり、その目的は、異なる端末で実行されるアプリケーションプログラムの認証を速やかにかつ確実に行なうことができる通信制御方法および通信制御プログラムを提供することである。
また、本発明の他の目的は、アプリケーションプログラムが当該プログラムプログラムの使用権限の無い第三者に入手された場合に正当なものであると判断されてしまう事態を回避することができる通信制御方法および通信制御プログラムを提供することである。
本発明のある局面に従った通信制御方法は、第1の情報処理装置と第2の情報処理装置の間での通信を制御する通信制御方法であって、前記第1の情報処理装置が、ファイル形式で保存されている第1のアプリケーションプログラムを第1のメモリに前記第1の情報処理装置が直接実行可能なバイナリ形式のプログラムに展開するステップと、前記第1の情報処理装置が、前記第1のメモリに展開された前記第1のアプリケーションプログラムのバイナリコードにおいて特定の相対位置アドレスで規定される特定の一部分と特定関数を用いて第1の識別値を算出するステップと、前記第1の情報処理装置が、前記第1の識別値を前記第2の情報処理装置に送信するステップと、前記第2の情報処理装置が、第2のアプリケーションプログラムを第2のメモリに展開するステップと、前記第2の情報処理装置が、前記第2のメモリに展開された前記第2のアプリケーションプログラムのバイナリコードの特定の一部分と前記特定関数を用いて第2の識別値を算出するステップと、前記第2の情報処理装置が、前記第1の情報処理装置から受信した前記第1の識別値を前記第2の識別値と比較し、前記第1の識別値と前記第2の識別値とが同一であった場合に、前記第1の情報処理装置との接続を許可するステップとを備えることを特徴とする。
また、本発明の通信制御方法では、前記第1の情報処理装置は、前記第1の識別値を暗号化して前記第2の情報処理装置に送信し、前記第2の情報処理装置は、暗号化された前記第1の識別値を復号化した上で、前記第2の識別値と比較することが好ましい。
また、本発明の通信制御方法では、前記第1の情報処理装置は、前記第1の識別値を暗号化するために認証サーバに送信し、前記認証サーバから暗号化された前記第1の識別値を受信することが好ましい。
また、本発明の通信制御方法では、前記第1の情報処理装置は、前記第1の識別値を算出するに際してユーザ情報をさらに用い、前記第2の情報処理装置は、前記第2の識別値を算出するに際して前記ユーザ情報をさらに用いることが好ましい。
本発明に従った通信制御プログラムは、他の情報処理装置との通信を制御する通信制御プログラムであって、ファイル形式で保存されているアプリケーションプログラムが実行されるに際してメモリ上に直接実行可能なバイナリ形式のプログラムに展開された当該アプリケーションプログラムのバイナリコードにおいて特定の相対位置アドレスで規定される特定の一部分と特定関数を用いて第1の識別値を算出するステップと、前記第1の識別値を他の情報処理装置に送信するステップと、前記他の情報処理装置から第2の識別値を受信するステップと、前記第2の識別値を前記第1の識別値と比較し、前記第1の識別値と前記第2の識別値とが同一であった場合に、前記他の情報処理装置との接続を許可するステップとを、情報処理装置に実行させることを特徴とする。
本発明によれば、アプリケーションプログラムを実行する情報処理装置同士において、アプリケーションプログラムがメモリ上に展開された際のバイナリコードの特定の一部分に基づいて行なわれるため、相手の情報端末装置のアプリケーションプログラムの認証を速やかにかつ確実に行なうことができる。
また、本発明によれば、アプリケーションプログラムの認証がメモリ上に展開されたバイナリコードの特定の一部分に基づいて行なわれるため、アプリケーションプログラム自体が第三者に入手された場合においても、どの部分を認証に用いているかは容易にはわからない。したがって、正当性の認証をより安全に行なうことができる。
以下、本発明の一実施の形態である情報処理装置について、図面を参照して説明する。
[第1の実施の形態]
図1は、本実施の形態の情報処理装置を含むネットワークの構成を模式的に示す図である。
図1を参照して、このネットワークには、通信制御装置の一実施の形態であるパーソナルコンピュータ(PC)が複数含まれている。図1では、各PC200が、PC(1)〜PC(n)で示されている。各PC200は、ネットワークケーブル300を通じてハブ400と接続されている。各PC200は、ハブ400およびルータ500を介して、図示しない別のネットワークに接続された端末との接続が可能に構成されている。図2は、PC200のハードウェア構成を模式的に示す図である。また、各PC200は、当該PC200内の情報処理の結果等を表示させるためのモニタ100に接続されている。
図2を参照して、PC200は、当該PC200の動作を全体的に制御するCPU(Central Processing Unit)250、CPU250のワークエリアとして機能するRAM(Random Access Memory)254、プログラムやデータなどを記憶するROM(Read Only Memory)256、PC200に対して情報を入力するためのキーボードなどの入力装置260、他のPC200または別のネットワークとの通信を行なう通信装置262、プログラムやファイルを記憶するハードディスクを備えるハードディスク装置(HDD)264、およびPC200に対して着脱可能な記憶媒体252Aとアクセスするメディアドライブ252とを備えている。つまり、PC200は、入力装置260を介して入力された情報の入力を受付け、通信装置262を介して他の端末やネットワークと接続可能であり、また、モニタ100に当該PC200において処理されている情報を表示させることができる。
また、CPU250が実行するプログラムのファイルは、ROM256やHDD264のハードディスクに記憶されていてもよいし、通信装置262を介してアクセスする外部の記憶装置に記憶されているものであってもよい。また、HDD264のハードディスクでは、メディアドライブ252を介して記憶媒体252Aに記憶されたファイルや、通信装置262を介してアクセス可能となる外部の記憶装置に記憶されたファイルがHDD264のハードディスクに記憶されて、CPU250はこのファイルを実行するように構成されていてもよい。
CPU250が、アプリケーションプログラムを実行する際には、たとえば、HDD264のような不揮発性の記憶媒体に記憶されたアプリケーションプログラムに基づいて、RAM254にバイナリ形式のプログラムと実行動作に使用されるデータとが展開される。このようなRAM254に展開されたバイナリ形式のプログラム(以下、「バイナリコード」と呼ぶ)は、CPU250のハードウェア構成に依存して、CPU250が直接実行することが可能な、いわゆるネイティブコードである。
図3は、PC200の機能ブロックを模式的に示す。
図3を参照して、ハブ400(図1を参照)を介してPC200へ送信されるデータは、データ受信部202において受信される。データ受信部202は受信したデータ(パケット)が、自機宛のパケットであるか否かを判断し、自機宛のデータであると判断すると、当該データをデータ解析部203に送る。データ解析部203は、受信されたパケットからデータを抽出し、抽出されたデータの中に処理命令が含まれていれば、署名部204、識別値作成/検証部205、処理部207のいずれかで処理をさせる。
識別値作成/検証部205は、RAM254上に展開されたアプリケーションプログラムから、その一部を抽出し、データ保持部206において保持されているユーザ情報と合せて、特定識別値を作成する。署名部204は、識別値作成/検証部205で作成された特定識別値を利用して暗号識別値を作成する。作成された特定識別値および暗号識別値は、データ保持部206に記憶される。なお、これらの識別値の内容および作成方法については、後述する。
識別値作成/検証部205は、ルータ500を介して接続されている他の端末において実行されているプログラムと通信を開始する際に、当該他の端末において実行されているアプリケーションから送られてきた特定識別値と暗号識別値とを後述する態様で比較する。そして、識別値作成/検証部205は、当該比較結果に応じて、上記した他の端末において実行されているアプリケーションとの間の接続の許可/拒否を決定する。
識別値作成/検証部205は、他の端末へメッセージを送信する場合、送信するべきデータを作成してデータ作成部211に送る。そして、データ作成部211は、受取ったデータをネットワークパケットの形に成形し、データ送信部212へ送る。データ送信部212は、データ作成部211が受取ったデータなどによって決定される送り先に当該パケットが送られるように、当該パケットをハブ400へ送信する。
以上、図3に示したブロック構成において、各機能ブロックの機能を実現するハードウェアについては、特に限定されないが、たとえば、データ保持部206は、RAM254およびHDD264によって構成される。また、署名部204、識別値作成/検証部205、処理部207、データ解析部203、データ作成部211は、HDD264のハードディスクに記憶されたプログラムを実行するCPU250およびRAM254によって構成される。データ受信部202およびデータ送信部212は、通信装置262によって構成される。なお、データ保持部206には、不揮発性記憶装置として、HDD264に加えて、あるいは、HDD264に代えて、フラッシュメモリなどのような記憶装置が設けられていてもよい。
その他処理部207は、上述したような機能以外の機能、たとえば、アプリケーションプログラムの固有のサービスを提供する処理(たとえば、アプリケーションプログラムがワープロ用のソフトであるならば、ワープロ機能を提供する処理)や、アプリケーションプログラムをオンラインで更新する処理や、更新の有無等の問合せや、プログラムのバージョンの管理等の処理を行う。
したがって、図3に示された例では、特に限定されないが、各機能ブロックのうち、データ解析部203、署名部204、識別値作成/検証部205、その他処理部207は、アプリケーションプログラムがCPU250によって実行されることにより実現される機能であり、データ解析部203およびデータ作成部211は、OS(Operating System)ソフトがCPU250によって実行されることにより実現される機能である、とすることができる。
本実施の形態では、PC200において実行されているアプリケーションプログラムと他の端末において実行されているアプリケーションプログラムとの間で通信を行なう際に、各アプリケーションプログラムが相手のアプリケーションプログラムの正当性を認証したことを条件として、接続が許可される。
図4は、アプリケーションプログラムの認証のために、PC200において実行される認証用データ生成の手続きを説明するための図である。
データ保持部206(たとえばHDD264)に保持されたアプリケーションプログラム620は、ファイル形式のものであり、PC200において起動されると、RAM254などで構成されるメインメモリ610の領域611にバイナリコードの形式で展開される。この展開されたアプリケーションプログラムのバイナリコードの一部分611Aを特定関数(例えばハッシュ関数)で処理することによって特定識別値630が算出される。このバイナリコードの一部分611Aは、アプリケーションプログラムが展開される領域611内で特定の相対位置にある。つまり、メインメモリ610において領域611のアドレスはアプリケーションプログラムを展開するたびに異なるかもしれないが、例えばその先頭アドレスから予め定められた所定の位置にあるアドレスの範囲を指定することによってバイナリコードの一部分611Aが特定される。
バイナリコードの一部分611Aとしては、アプリケーションプログラムをメモリ上に展開したときに、その相対位置が移動しない領域であって、使用中にデータの変更が行なわれない領域が用いられる。たとえば、通信モジュールが展開された部分、アプリケーションプログラムのオリジナル情報(セキュリティデータ)が保持された部分、暗号化/復号化モジュールが展開された部分、バージョン情報が展開された部分などが好適である。このバイナリコードの一部分611Aを指定するための情報は、例えばアプリケーションプログラムのセキュリティデータとして組み込まれており、通信を行なう互いのPC200において予め認識されている。
なお、本実施の形態においては、より安全性を高めるために、上述したバイナリコードの一部分611Aにユーザ情報612を組合わせて(例えば両情報を単純に並べる)特定関数で処理し、特定識別値630を算出している。このユーザ情報612は、通信を行なう互いのPC200が認識しているものであり、例えば以下のようなものである。
1)管理者用パスワード…互いのPCの管理者が同一である場合のパスワード
2)ネットワークインストールID…互いのPCのアプリケーションプログラムがネットワーク経由インストールされている場合の共通のインストールID
3)ライセンス情報…互いのPCアプリケーションプログラムで共通のライセンス情報
4)ワークグループパスワード…互いのPCが同一のワークグループに所属しており、そのワークグループにおける共通のパスワード
本実施の形態では、特定関数としてハッシュ関数を用いており、特定識別値630はバイナリコードの一部分611Aとユーザ情報612を組合わせた値をハッシュ関数で演算した結果としてのハッシュ値となり、例えば128bitの値である。このハッシュ値は、アプリケーションプログラムが改変されておらず、ユーザ情報612が変更されない限り、一定の値となる。特定関数としては、入力値が変われば出力値も一意に変更されるような関数であれば、ハッシュ関数以外の関数であっても構わない。
さらに、本実施の形態では、前述したように算出された特定識別値630を暗号化して暗号識別値640を生成している。この暗号化は、各PC200が保持している電子証明書(例えば、X.509証明書)に含まれる公開鍵と対応した秘密鍵によって特定識別値630に署名を施すことで実行される。
図6は、通信を行なう互いのPC200においてアプリケーションプログラムの正当性を認証するために必要な認証用データの構成を説明するための図である。以降、一方のPC200で実行されるアプリケーションプログラムを「アプリ(1)」と呼び、他方のPC200で実行されるアプリケーションプログラムを「アプリ(2)」と呼ぶ。ここでのアプリケーションプログラムはファームウェアであってもよい。なお、説明上、各アプリケーションプログラムを実行しているPC200自体を「アプリ(1)」および「アプリ(2)」と表現することもある。
図5(A)にアプリ(1)側のPC200が保持するに認証データを示し、図5(B)にアプリ(2)側のPC200が保持する認証用データを示す。
図5(A)に示すように、アプリ(1)側のPC200は、アプリ(1)の特定識別値と暗号識別値を保持し、また、自己の証明書(1)を保持している。さらに、例えばHDD264に設定された外部から読出し不能なセキュリティ領域に、特定関数とユーザ情報や秘密鍵等を保持している。特定関数としては、特定関数自体であってもよいし、入力と出力の対応関係を示すデータテーブルであってもよい。秘密鍵は証明書(1)に格納された公開鍵と対応したものである。一方、図5(B)に示すように、アプリ(2)側のPC200もまた、アプリ(2)の特定識別値と暗号識別値を保持し、また、自己の証明書(2)を保持している。さらに、例えばHDD264に設定された外部から読出し不能なセキュリティ領域に、特定関数とユーザ情報や秘密鍵等を保持している。秘密鍵は、証明書(2)に格納された公開鍵と対応したものである。
図6を参照して、アプリ(1)においてアプリ(2)との通信を要求する情報が入力されるとアプリ(1)は自らの証明書(証明書(1))をアプリ(2)に対して送るとともに、上記のように算出した特定識別値と暗号識別値とをアプリ(2)に送る。また、アプリ(2)においてアプリ(1)との通信を要求する情報が入力されると、同様に、アプリ(1)に対して自らの証明書(2)と、および特定識別値と暗号識別値とをアプリ(1)へ送信する。また、相手から証明書および特定識別値と暗号識別値とを受信した場合には、当該相手に対してアプリ(1)またはアプリ(2)が、自らの証明書および特定識別値と暗号識別値とを当該相手に送り返す。
図7は、本実施の形態において、アプリ(2)を起動した端末(PC200等)が、アプリ(1)をインストールされている端末(PC200等)に対して接続の許可を求める際の処理のフローチャートである。図7では、接続の許可を求める側の端末は「送信側」と記載され、接続の許可/不許可を決定する側の端末は「受信側」と記載されている。
図7を参照して、送信側の端末において、アプリ(2)が起動した時点、または外部から(たとえば、入力装置260を介して)受信側端末に対する接続要求を指示する情報が入力された時点において、特定識別値が算出される(ステップST10)。なお、このように算出された特定識別値を、以降「特定識別値(1)」と呼ぶ。次に、ステップST30において、暗号識別値が作成され、かつ、当該暗号識別値がRAM254等のメモリに格納される。そして、ステップST40において、特定識別値(1)と暗号識別値が受信側端末へと送信される。また、アプリ(2)側の証明書(2)もまた受信側端末へと送信される。
ここで、ステップST30における暗号識別値の作成の内容について、当該処理のサブルーチンのフローチャートである図8を参照して説明する。
図8では、識別値作成/検証部205と署名部204における処理内容が示されている。
まず、識別値作成/検証部205において、ステップSA10として、ステップST10で作成した特定識別値(1)が署名用データに変換されて、ステップSA20へ処理が進められる。
次に、識別値作成/検証部205において、ステップSA20として、ステップSA10における変換後のデータが署名部204へ送信される。
次に、署名部204において、ステップSB10として、識別値作成/検証部205から送信されてきたデータが受信され、そして、ステップSB20として、受信した特定識別値(1)に対して自機(送信側のPC200)の秘密鍵で署名が行なわれ、ステップSB30へ処理が進められる。
ステップSB30では、署名部204において、ステップSB30として、署名後のデータ(暗号識別値)を識別値作成/検証部205へ送信する。
そして、識別値作成/検証部205では、ステップSA30として、署名部204から送信されてきた暗号識別値を受信し、その後、ステップSA40として、メモリに適宜記憶させて、処理を図7にリターンさせる。なお、暗号識別値は、ファイルとして不揮発性記憶装置に保存してもよいものの、アプリケーションプログラムの終了と同時に削除される。また、暗号識別値は、特定関数と同様に、HDD264などの不揮発性記憶装置において、外部から読み出し不能な領域(セキュリティ領域)に保持されているものとすることができる。
図7に戻って、ステップST40で送信側端末から受信側端末に特定識別値(1)と暗号識別値が送信されると、受信側の端末では、ステップSR10で特定識別値(1)と暗号識別値とが受信され、ステップSR20で、受信した証明書(証明書(2))からアプリ(2)の公開鍵を抽出して、当該公開鍵により暗号識別値を復号し(検証し)、ステップSR30へ処理を進められる。
ステップSR30では、アプリ(2)から送信されてきた暗号識別値の暗号化前のデータであると考えられる特定識別値(復号化特定識別値)を抽出する。ここで抽出された特定識別値を、以降「特定識別値(2)」と呼ぶ。
次に、ステップSR31では、受信側端末において、特定識別値が算出される。なお、ここで算出された特定識別値を、以降「特定識別値(3)」と呼ぶ。
次に、ステップSR40では、特定識別値(1)と特定識別値(2)と特定識別値(3)とが比較される。そして、これらのすべてが同一であればステップSR50へ処理が進められ、同一ではないと判断されるとステップSR60へ処理を進められる。
ステップSR50では、アプリ(1)ではアプリ(2)との通信が許可され、通信のためのその後の処理が実行される。
一方、ステップSR60では、アプリ(2)との間での通信を拒否するための処理が実行される。
本実施の形態において、アプリ(1)側PCとアプリ(2)側PCで共通情報として保持されていなければならない情報を以下に列記する。
・特定関数(ハッシュ関数)
・アプリケーションプログラムのどの部分を特定関数(ハッシュ関数)に入力するかについての情報(この情報は、アプリケーションプログラムをメモリ上に展開した場合のメモリ上での相対的なアドレスの範囲を示すものである。なお、ここでの「部分」とは、アプリケーションプログラムの実行によって値が変化しないような部分が好適である。具体的には、たとえば、通信モジュール部、アプリケーションプログラムオリジナル情報(セキュリティデータ)保持部/展開部、符号化・復号化モジュール展開部、バージョン情報展開部等が挙げられる。
・ユーザ情報(ただし、ユーザ情報は特定識別値算出に必須ではない)
・その他の情報(公開鍵認証のために必要な情報。たとえば、各PCのユーザに対して作成された秘密鍵、相手PCの公開鍵(証明書)、CAのルート証明書。)
また、ステップSR40では、以上説明した本実施の形態では、ユーザ情報は、特定識別値(1)と特定識別値(2)と特定識別値(3)が比較され、これらがすべて一致しなければ接続が許可されないが、本発明は必ずしもこのように構成される必要はない。
つまり、本実施の形態のネットワークは、特定識別値(1)か暗号識別値のいずれかが送信側端末から受信側端末に送信されれば良いものとして構成することができる。そして、特定識別値(1)が送信された場合には、受信側端末では、ステップSR40において、特定識別値(1)と特定識別値(3)が一致すると判断すると、接続を許可する。このような場合には、送信側端末において暗号識別値の算出(ステップST30)を省略でき、また、受信側端末では特定識別値(2)の抽出(ステップSR30)を省略でき、そして、受信側端末における判断の処理(ステップSR40)を簡略化できる。
一方、暗号識別値が送信された場合には、受信側端末では、ステップSR40において、特定識別値(2)と特定識別値(3)が一致すると判断すると、接続を許可する。このような場合にも、受信側端末における判断処理(ステップSR40)の簡略化が可能となる。
なお、以上の第1の実施の形態の説明において、アプリ(1)とアプリ(2)とは、認証局等が発行した「ルート証明書」を格納しておき、かつ、アプリ(1)またはアプリ(2)は、各々、自己の証明書(1)または証明書(2)について、認証局(認証サーバ)から署名を得ておき、相手方に送信する際には、認証局の署名ととともに、自己の証明書を送る構成とすることもできる。このようにすることで、受信側または送信側のアプリケーションプログラムは、相手方のアプリケーションプログラムが認証局もしくはそれに類する正式な機関から発行された証明書を持つ相手であることを確認可能となり、証明書の信頼度を向上させることができる。
[第2の実施の形態]
以上説明した第1の実施の形態では、アプリ(2)を起動された端末がアプリ(1)をインストールされた端末に対して接続要求をする際、図7を参照して説明したように、送信側端末は、特定識別値と暗号識別値を受信側端末に送信するたびに作成していた。
一方、本実施の形態では、送信側端末は、図9に示すように、特定のタイミング(たとえば、アプリ(2)のインストール時やバージョンアップ時)で特定識別値とそれに基づいた暗号識別値を作成し、保存する(ステップST1)。
そして、受信側端末から暗号識別値および特定識別値の送信要求等を受けると、送信側端末は、ステップST10で、特定識別値(1)を算出し、そして、ステップST40で、ステップST10で算出した特定識別値(1)とステップST1で保存していた暗号識別値とを、受信側端末へ送信する。
なお、受信側端末では、特定識別値(2)は、送信側端末から受信した暗号識別値から抽出される(ステップSR30)。また、図7を参照して説明したのと同様に、本実施の形態においても、特定識別値(1)と特定識別値(2)と特定識別値(3)のすべてが一致しなければ、送信側端末との接続は拒否される。つまり、特定識別値(1)と特定識別値(2)とが一致しない場合でも、受信側端末は送信側端末との接続を拒否する。
したがって、本実施の形態では、送信側端末において、アプリ(1)に、暗号識別値が作成されてから特定識別値(1)が算出されるまでの間に改変を加えられた場合、特定識別値(1)と特定識別値(2)が一致しなくなる。このような場合、本実施の形態では、ステップSR40においてNOの判断がなされるため、受信側端末は、送信側端末との接続を拒否することができる。
[第3の実施の形態]
本発明の第3の実施の形態では、第1の実施の形態に対して、送信側端末であるアプリ(2)における暗号識別値の作成の態様が異なる。
図10は、本実施の形態の送信側端末(アプリ(2))において暗号識別値が作成される際のフローチャートである。なお、このフローチャートは、図7のステップST30のサブルーチンの変形例に相当する。また、本実施の形態では、暗号識別値の生成に関して、アプリ(2)をインストールされた端末(クライアント)と認証サーバ(CA(Certification Authority)サーバ)との間でデータの送受信が行なわれる。
図10を参照して、クライアントにおいて、アプリ(2)が起動されると、ステップSC10として、ステップST10(図7参照)で作成した特定識別値(1)が署名承認用データに変換されて、ステップSC20へ処理が進められる。
次に、クライアントにおいて、ステップSC20として、ステップSC10における変換後のデータがCAサーバへ送信される。
次に、CAサーバでは、ステップSD10として、クライアントから送信されてきたデータが受信され、そして、ステップSD20として、受信したデータの中から、証明書が抽出され、ステップSD30へ処理が進められる。
そして、ステップSD30では、CAサーバは、ステップSD20で抽出した証明書に基づいてクライエントが正当なものであるか否かを判断し、正当なものであると判断するとステップSD50へ処理を進め、正当なものではないと判断するとステップSD40へ処理を進める。
ステップSD50では、CAサーバは、ステップSD10で受信したデータの中から特定識別値(1)を抽出し、当該特定識別値(1)に対してCAサーバで保持している秘密鍵を用いて署名を行ない、ステップSD60へ処理を進める。ステップSD60では、CAサーバは、署名後の特定識別値(1)(暗号識別値)をクライアントへ送信する。
一方、ステップSD40では、CAサーバは、クライアントに対し署名を拒否する旨を通知し、ステップSD50のような署名を行なわず処理を終了させる。
そして、クライアントでは、ステップSC30として、CAサーバから送信されてきた暗号識別値を受信し、その後、ステップSC40として、ステップSA40と同様に、暗号識別値をメモリに適宜記憶させる。この場合も、第1の実施の形態と同様にして、暗号識別値は、ファイルとして不揮発性記憶装置に保存してもよいものの、アプリケーションプログラムの終了と同時に削除される。また、暗号識別値は、特定関数や相手方から受信した証明書と同様に、HDD264などの不揮発性記憶装置において、外部から読み出し不能な領域(セキュリティ領域)に保持されているものとすることができる。
以上説明したように、本実施の形態では、暗号識別値は、CAサーバの秘密鍵によって署名(暗号化)されたものとなる。これに伴って、受信側端末(アプリ(1))において、暗号識別値の署名を確認するステップSR20(図7参照)および暗号識別値から特定識別値(2)を抽出するステップSR30(図7参照)で用いられる公開鍵は、CAサーバの証明書であるルート証明書に格納されたものになる。
以上のような構成でも、第1の実施の形態と同様の効果を奏することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の第1の実施の形態の情報処理装置を含むネットワーク構成を模式的に示す図である。 図1のPCの機能ブロックを模式的に示す図である。 図1のPCの制御ブロック図である。 図1のPCにおいて、通信相手の端末にアプリケーションプログラムの正当性を認証させるためにデータを作成する手続きを説明するための図である。 図1のPCにおいて、通信相手の端末において実行されているアプリケーションプログラムの正当性を認証するために必要な構成を説明するための図である。 図1のPCにおいて、通信相手の端末において実行されているアプリケーションプログラムの正当性の認証の際のデータの流れを説明するための図である。 本実施の形態において、アプリ(2)を起動した端末が、アプリ(1)をインストールされている端末に対して接続の許可を求める際の処理のフローチャートである。 図7における暗号識別値の作成についてのサブルーチンのフローチャートである。 本発明の第2の実施の形態において、アプリ(2)を起動した端末が、アプリ(1)をインストールされている端末に対して接続の許可を求める際の処理のフローチャートである。 本発明の第3の実施の形態における暗号識別値の作成についてのサブルーチンのフローチャートであり、図8の変形例に相当する図である。
符号の説明
100 モニタ、200 PC、202 データ受信部、203 データ解析部、204 署名部、205 識別値作成/検証部、206 データ保持部、207 処理部、211 データ作成部、212 データ送信部、250 CPU、252 メディアドライブ、252A 出力媒体、254 RAM、256 ROM、260 入力装置、262 通信装置、264 HDD、300 ネットワークケーブル、400 ハブ、500 ルータ、610 メインメモリ、611 第1の領域、611A 領域、612 第2の領域、620 ファイル、630 特定識別値、640 暗号識別値。

Claims (5)

  1. 第1の情報処理装置と第2の情報処理装置の間での通信を制御する通信制御方法であって、
    前記第1の情報処理装置が、ファイル形式で保存されている第1のアプリケーションプログラムを第1のメモリに前記第1の情報処理装置が直接実行可能なバイナリ形式のプログラムに展開するステップと、
    前記第1の情報処理装置が、前記第1のメモリに展開された前記第1のアプリケーションプログラムのバイナリコードにおいて特定の相対位置アドレスで規定される特定の一部分と特定関数を用いて第1の識別値を算出するステップと、
    前記第1の情報処理装置が、前記第1の識別値を前記第2の情報処理装置に送信するステップと、
    前記第2の情報処理装置が、第2のアプリケーションプログラムを第2のメモリに展開するステップと、
    前記第2の情報処理装置が、前記第2のメモリに展開された前記第2のアプリケーションプログラムのバイナリコードの特定の一部分と前記特定関数を用いて第2の識別値を算出するステップと、
    前記第2の情報処理装置が、前記第1の情報処理装置から受信した前記第1の識別値を前記第2の識別値と比較し、前記第1の識別値と前記第2の識別値とが同一であった場合に、前記第1の情報処理装置との接続を許可するステップとを備える、通信制御方法。
  2. 前記第1の情報処理装置は、前記第1の識別値を暗号化して前記第2の情報処理装置に送信し、
    前記第2の情報処理装置は、暗号化された前記第1の識別値を復号化した上で、前記第2の識別値と比較する、請求項1に記載の通信制御方法。
  3. 前記第1の情報処理装置は、前記第1の識別値を暗号化するために認証サーバに送信し、前記認証サーバから暗号化された前記第1の識別値を受信する、請求項2に記載の通信制御方法。
  4. 前記第1の情報処理装置は、前記第1の識別値を算出するに際してユーザ情報をさらに用い、
    前記第2の情報処理装置は、前記第2の識別値を算出するに際して前記ユーザ情報をさらに用いる、請求項1〜請求項のいずれかに記載の通信制御方法。
  5. 他の情報処理装置との通信を制御する通信制御プログラムであって、
    ファイル形式で保存されているアプリケーションプログラムが実行されるに際してメモリ上に直接実行可能なバイナリ形式のプログラムに展開された当該アプリケーションプログラムのバイナリコードにおいて特定の相対位置アドレスで規定される特定の一部分と特定関数を用いて第1の識別値を算出するステップと、
    前記第1の識別値を他の情報処理装置に送信するステップと、
    前記他の情報処理装置から第2の識別値を受信するステップと、
    前記第2の識別値を前記第1の識別値と比較し、前記第1の識別値と前記第2の識別値とが同一であった場合に、前記他の情報処理装置との接続を許可するステップとを、
    情報処理装置に実行させる、通信制御プログラム。
JP2008037330A 2008-02-19 2008-02-19 通信制御方法および通信制御プログラム Expired - Fee Related JP4998314B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008037330A JP4998314B2 (ja) 2008-02-19 2008-02-19 通信制御方法および通信制御プログラム
US12/201,196 US20090210719A1 (en) 2008-02-19 2008-08-29 Communication control method of determining whether communication is permitted/not permitted, and computer-readable recording medium recording communication control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008037330A JP4998314B2 (ja) 2008-02-19 2008-02-19 通信制御方法および通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2009199147A JP2009199147A (ja) 2009-09-03
JP4998314B2 true JP4998314B2 (ja) 2012-08-15

Family

ID=40956246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008037330A Expired - Fee Related JP4998314B2 (ja) 2008-02-19 2008-02-19 通信制御方法および通信制御プログラム

Country Status (2)

Country Link
US (1) US20090210719A1 (ja)
JP (1) JP4998314B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10353210A1 (de) * 2003-11-13 2005-06-16 Siemens Ag Sichere Erfassung von Eingabewerten
US20140129686A1 (en) * 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices
JP6317099B2 (ja) * 2013-01-08 2018-04-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America プログラムの正当性を確認するための確認方法及び、確認システム
DE102013210243A1 (de) * 2013-06-03 2014-12-04 Siemens Aktiengesellschaft Verfahren und Rechnervorrichtung zur Bereitstellung einer authentisierten Kommunikation für Anwendungsprogramme
US10298553B2 (en) * 2017-03-31 2019-05-21 Sprint Communications Company L.P. Hardware trusted data communications over system-on-chip (SOC) architectures

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301772A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JPH11143840A (ja) * 1997-11-05 1999-05-28 Hitachi Ltd 分散オブジェクトシステムおよびその方法
JPH11285582A (ja) * 1998-04-03 1999-10-19 Pa Net Gijutsu Kenkyusho:Kk 遊技機監視システム
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6378069B1 (en) * 1998-11-04 2002-04-23 Nortel Networks Limited Apparatus and methods for providing software updates to devices in a communication network
US6463534B1 (en) * 1999-03-26 2002-10-08 Motorola, Inc. Secure wireless electronic-commerce system with wireless network domain
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
KR100653804B1 (ko) * 2000-01-21 2006-12-05 소니 가부시끼 가이샤 데이터 처리 장치 및 방법
FR2808947B1 (fr) * 2000-05-09 2002-10-18 Bull Cp8 Procede pour authentifier un objet portatif, objet portatif correspondant, et appareil pour mettre en oeuvre le procede
US7089585B1 (en) * 2000-08-29 2006-08-08 Microsoft Corporation Method and system for authorizing a client computer to access a server computer
US7127609B2 (en) * 2001-01-12 2006-10-24 Siemens Medical Solutions Health Services Corporation System and user interface for adaptively processing and communicating URL data between applications
EP1225498A3 (en) * 2001-01-19 2004-05-19 Matsushita Electric Industrial Co., Ltd. Communications terminal
US6979266B2 (en) * 2001-03-30 2005-12-27 Igt Method and apparatus for downloading peripheral code
JP4743374B2 (ja) * 2001-08-23 2011-08-10 大日本印刷株式会社 インターネットを利用したicカードへのアプリケーションプログラム追加システム
JP2003122442A (ja) * 2001-10-16 2003-04-25 Sony Corp ソフトウェア・ダウンロードシステムのための無線データ通信方法および装置
JP2003202929A (ja) * 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム
US7380238B2 (en) * 2002-04-29 2008-05-27 Intel Corporation Method for dynamically adding new code to an application program
US7240200B2 (en) * 2002-09-26 2007-07-03 International Business Machines Corporation System and method for guaranteeing software integrity via combined hardware and software authentication
DE602004030534D1 (de) * 2003-01-28 2011-01-27 Cellport Systems Inc Ein System und ein Verfahren zum Steuern des Zugriffs von Anwendungen auf geschützte Mittel innerhalb eines sicheren Fahrzeugtelematiksystems
JP4176533B2 (ja) * 2003-03-31 2008-11-05 株式会社エヌ・ティ・ティ・ドコモ 端末装置及びプログラム
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
TW200607288A (en) * 2004-04-05 2006-02-16 Sony Corp Program, computer, and data processing method
US8627086B2 (en) * 2004-10-11 2014-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Secure loading and storing of data in a data processing device
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
JP2006237687A (ja) * 2005-02-22 2006-09-07 Ntt Communications Kk プログラムおよび利用者追跡装置
US7685593B2 (en) * 2005-05-12 2010-03-23 Microsoft Corporation Systems and methods for supporting multiple gaming console emulation environments
US8838974B2 (en) * 2005-07-15 2014-09-16 The Mathworks, Inc. System and method for verifying the integrity of read-only components in deployed mixed-mode applications

Also Published As

Publication number Publication date
US20090210719A1 (en) 2009-08-20
JP2009199147A (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
JP4907895B2 (ja) プライベートデータを露出せずに通信ネットワークを介してパスワードで保護されたプライベートデータを回復する方法およびシステム
TWI454111B (zh) 用於確保通訊之鑑別及完備性的技術
EP2086162B1 (en) System, device, method and program for authenticating communication partner by means of electronic certificate including personal information
US8196186B2 (en) Security architecture for peer-to-peer storage system
KR100621420B1 (ko) 네트워크 접속 시스템
JP4818664B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
JP5006817B2 (ja) 認証情報生成システム、認証情報生成方法、クライアント装置及びプログラム
JP5613596B2 (ja) 認証システム、端末装置、認証サーバ、およびプログラム
KR102137122B1 (ko) 보안 체크 방법, 장치, 단말기 및 서버
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
US20090119505A1 (en) Transaction method and verification method
JP4823704B2 (ja) 認証システムおよび同システムにおける認証情報委譲方法ならびにセキュリティデバイス
JP4998314B2 (ja) 通信制御方法および通信制御プログラム
KR20090019576A (ko) 모바일 단말기 인증 방법 및 모바일 단말기 인증 시스템
CN111901303A (zh) 设备认证方法和装置、存储介质及电子装置
JP5665592B2 (ja) サーバ装置並びにコンピュータシステムとそのログイン方法
JP5049179B2 (ja) 情報処理端末装置及びアプリケーションプログラムの起動認証方法
KR101379854B1 (ko) 공인인증서 패스워드를 보호하는 장치 및 방법
KR101443309B1 (ko) 접속 인증정보를 보호하는 장치 및 방법
JP5487659B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2008004065A (ja) 半導体装置、電子機器及び機器認証プログラム
CN115996126B (zh) 信息交互方法、应用设备、辅助平台及电子设备
JP2009246459A (ja) 通信制御方法、通信制御プログラムおよび情報処理装置
JP6398308B2 (ja) 情報処理システム、情報処理方法、及びプログラム
JP2016163198A (ja) ファイル管理装置、ファイル管理システム、ファイル管理方法及びファイル管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120322

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees