情報処理システム、方法及びプログラム
【課題】機器において暗号に関する法律に準じた、暗号の設定を簡易に行うことができるようにする。
【解決手段】機器1を提供するメーカーは、暗号法律情報管理サーバ2に国毎の暗号法律情報を記録しておく。ユーザは、機器1をネットワークに接続する。機器1には、DHCPなどにより割り振られたり、手動で設定されたりしたIPアドレスが設定されている。機器1は自身のIPアドレスをキーとし、DNSサーバからドメイン名を逆引きする。機器1は、ドメイン名より国識別子を決定する。暗号法律情報管理サーバ2は、機器1が送信した国識別子から、機器1が存在する国を判別し、その国に応じた暗号法律情報を機器1に送信する。機器1は、暗号法律情報管理サーバ2から暗号法律情報を受信し、暗号法律情報を解析し、暗号の設定を行う。
【解決手段】機器1を提供するメーカーは、暗号法律情報管理サーバ2に国毎の暗号法律情報を記録しておく。ユーザは、機器1をネットワークに接続する。機器1には、DHCPなどにより割り振られたり、手動で設定されたりしたIPアドレスが設定されている。機器1は自身のIPアドレスをキーとし、DNSサーバからドメイン名を逆引きする。機器1は、ドメイン名より国識別子を決定する。暗号法律情報管理サーバ2は、機器1が送信した国識別子から、機器1が存在する国を判別し、その国に応じた暗号法律情報を機器1に送信する。機器1は、暗号法律情報管理サーバ2から暗号法律情報を受信し、暗号法律情報を解析し、暗号の設定を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号に関する法律に基づき、コンピュータに暗号に関する設定を行う情報処理システム等に関する。
【背景技術】
【0002】
近年、コンピュータにおいて、暗号は普通に用いられている。コンピュータにおいて、暗号は暗号アルゴリズムによって実現される。暗号アルゴリズムには、対称鍵アルゴリズム、公開鍵アルゴリズム、デジタル署名アルゴリズムなどがあり、用途に応じて使い分ける。
【0003】
また、例えば対称鍵アルゴリズムにも、DES、AESなど、さまざまな種類がある。暗号アルゴリズムは、そのアルゴリズムの違いによって暗号強度(暗号のやぶられにくさ)が異なる。また、暗号鍵と呼ばれる固定長のデータを用いる暗号アルゴリズムが多々あり、一般に、暗号鍵のデータ長(鍵長とも言う)が長いほど、暗号は破られにくくなる。
【0004】
暗号技術については、非特許文献1に詳しいので、本明細書において詳細は省略する。暗号は主に軍事用途に用いられていた経緯もあり、暗号の使用、輸出、輸入について、法律で制限を設けている場合がある。例えば日本においては、「外国為替および外国貿易管理法」によって輸出が制限される。一方、使用、輸入について制限はない。また非特許文献2によれば、フランスでは暗号の使用が制限されていた。
【0005】
このように、暗号は法律で制限されるので、暗号を組み込んだ機器を輸出する際には、輸出先の国の法律を調査し、法律に抵触しないようにする。例えば、機器に組み込まれた暗号アルゴリズム、使用可能な鍵のデータ長などを、法律に合わせて修正し、設定する。多くの場合、機器に用いる暗号アルゴリズムや鍵データは機器に組み込まれている。
【0006】
また、メモリカードなどのメディアに暗号の設定を記録し、それを機器に読み込ませることで設定を行うこともある。メディアに記録された設定を変更することで、国毎の法律に応じた設定を行える。例えば、特許文献1では国旗カードというメディアを用意し、これに暗号の設定を記録している。さらに、国旗カードが機器に挿入されていないと暗号機能を使用できないようにもしている。
【0007】
【特許文献1】特開平10−79731号公報
【特許文献2】特開平9−297191号公報
【特許文献3】特開2004−236182号公報
【特許文献4】特開2004−186853号公報
【非特許文献1】ブルース・シュナイアー著、山形 浩生 監訳、"暗号技術大全"、発行所:ソフトバンクパブリッシング、ISBN4-7973-1911-9
【非特許文献2】"暗号技術に係る政策動向調査報告書"、情報処理振興事業協会、URL:http://www.ipa.go.jp/security/fy11/report/contents/crypto/crypto/report/CryptogrphyPolicy/CryptographyPolicyReport.pdf
【発明の開示】
【発明が解決しようとする課題】
【0008】
上述したように、暗号機能を備える機器は、国毎の暗号に関する法律に従う必要がある。機器出荷後に暗号に関する法律が改訂された場合、機器に組み込まれた暗号機能、もしくはメディアに記録された暗号の設定を変更する必要があるが、多くは変更されずそのまま用いられていた。また、変更が可能であっても、機器内のシステムの入れ替えやメディアの書き換えなどが必要になり、煩雑であった。さらに、法律が変わらなくとも、機器を別の国へ移送して用いる際には、移動先の国の法律を調査し、それに応じた設定を行う必要があり、上述したことと同様の変更作業が発生していた。
【0009】
本発明は上記の問題を鑑みてなされたものであり、機器において、暗号に関する法律に準じた、暗号の設定を簡易に行うことを目的とする。
【課題を解決するための手段】
【0010】
本発明の情報処理システムは、機器からサーバに通信可能な環境において用いられる情報処理システムであって、国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する手段と、該機器において該機器内の暗号化処理を停止する手段と、該機器において該機器が属する国を判定する手段と、該機器において判定した国の国識別子を該サーバに送信する手段と、該サーバにおいて該機器が送信した該国識別子を受信する手段と、該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する手段と、該サーバにおいて該暗号法律情報を該機器に返信する手段と、該機器において該サーバが返信した該暗号法律情報を受信する手段と、該機器において受信した該暗号法律情報を解析する手段と、該機器において解析した該暗号法律情報をセキュリティポリシーに変換する手段と、該機器において変換した該セキュリティポリシーを設定する手段と、該機器において該機器内の暗号化処理の実行を許可する手段とを備え、該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする。
また、本発明の情報処理方法は、機器からサーバに通信可能な環境における情報処理方法であって、国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する工程と、該機器において該機器内の暗号化処理を停止する工程と、該機器において該機器が属する国を判定する工程と、該機器において判定した国の国識別子を該サーバに送信する工程と、該サーバにおいて該機器が送信した該国識別子を受信する工程と、該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する工程と、該サーバにおいて該暗号法律情報を該機器に返信する工程と、該機器において該サーバが返信した該暗号法律情報を受信する工程と、該機器において該暗号法律情報を解析する工程と、該機器において解析した該暗号法律情報をセキュリティポリシーに変換する工程と、該機器において変換した該セキュリティポリシーを設定する工程と、該機器において該機器内の暗号化処理の実行を許可する工程とを有し、該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする。
また、本発明のプログラムは、上記に記載の方法の各工程をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、ユーザは各国の法律に準じた暗号処理を簡易に行えるようになるので、法律違反となる可能性が低減するという効果が得られる。また、暗号法律情報管理サーバ上の暗号法律情報を、法律の改訂・施行に合わせて更新することにより、各国の法律の変化に容易に追随できる、という効果が得られる。さらに、機器がどの国にあるか判定する機能があるため、ユーザが設定する際の負荷を軽減する効果が得られる。
【発明を実施するための最良の形態】
【0012】
先に、本発明の情報処理システムの実施形態を説明する前に、適用例として用いるIPsecについて説明する。IPsec(IP security)は、RFC2401(Security Architecture for the Internet Protocol)を中心に、複数のRFCにより規定されている。
【0013】
IPsecは、IP層で認証・暗号化処理を行う。そのため、IP層よりも上位にある、アプリケーション層やTCP/UDP層などで認証・暗号化処理を行わなくとも、安全な通信を行うことが可能となる。
【0014】
IPsecで実現できる機能として、以下のことが挙げられる。
・アクセス制御:接続元のアドレスなどに基づいて接続の許可・不許可を行う。
・通信データの完全性の保証:通信データが通信経路の途中で改竄されていないことを保証する。
・通信内容の秘匿:通信データを暗号化して、通信経路上で通信データを傍受されても通信データの内容が容易に判別できないようにする。
【0015】
IPsecは、上記機能を実現するために、複数の技術から構成されている。IPsecではAH(Authentication Header)とESP(Encapsulating Security Payload)というセキュリティプロトコルを用いる。
【0016】
AHは認証(通信データの完全性の保証)に用い、ESPは暗号化(通信内容の秘匿)に用いる。AHはRFC2402、ESPはRFC2406で規定されている。AH、ESPには、それぞれトランスポートモードとトンネルモードの2つのモードがある。トランスポートモードはIPパケットのペイロード部分をセキュリティプロトコルの処理対象にし、トンネルモードはIPパケット全体を処理対象とする。
【0017】
IPsecでは鍵、暗号アルゴリズムなどを管理するために、SA(Security Association)というパラメータのセットを用いる。SAを管理するデータベースをSAD(Security Association Database)と呼ぶ。
【0018】
SAのパラメータとして、通信する2点間の識別子、SPI、セキュリティプロトコルの種類、暗号アルゴリズムとその鍵、SAの生存時間、暗号化アルゴリズムで用いるIV(Initial Vector)の値、カウンタがある。SAには方向があり、一組の双方向通信を行うためには2つのSAが必要となる。
【0019】
セキュリティポリシーとは、一般には「何を」「何から」「どのように」守るかを示す行動指針を指すが、IPsecにおけるSP(Security Policy)は、どのようなIPパケットに対してIPsecを適用するか否か(アクセス制御)を示す。SPのパラメータとしては、IP層プロトコル番号、IPアドレス、ネットワークアドレス、トランスポート層プロトコル、ポート番号、ユーザの識別子がある。
【0020】
SPを管理するデータベースをSPD(Security Parameter Database)と呼ぶ。実装例として、Linuxオペレーティングシステムで動作するSPの設定方法について説明する。
【0021】
SPを設定する方法は、setkeyコマンドを用いる方法と、スクリプトを用いてマシン起動時に設定する方法の2つがある。setkeyコマンドを用いて設定する場合、対話形式でSPを管理者が入力する方法と、予めSPを記述したファイルを用意し、それをsetkeyコマンドに読み込ませて設定する方法がある。図15の環境を例に説明する。
【0022】
図15では、ルータAの外側(WAN側)のネットワークインタフェースには2001:340:2::1のアドレスが割り当てられ、内側(LAN側)のネットワークインタフェースには2001:340:2:100::1が割り当てられているとする。ルータAは、2001:340:2:100::/64のプレフィックスを管理している。ルータAのサブネット内には、ホストAがあり、2001:340:2:100::2のアドレスを持つものとする。
【0023】
同様に、ルータBは外側のネットワークインタフェースに2001:340:2::2、内側のネットワークインタフェースに2001:340:2:200::1のアドレスが割り当てられる。そして、2001:340:2:200::/64のプレフィックスを管理し、ルータBのサブネット内には、2001:340:2:200::2のアドレスを持つホストBがあるものとする。
【0024】
図15において、ホストAとホストB間で通信を行い、ホストAとホストB間でIPsecトランスポートモードを双方向に行う場合を説明する。
【0025】
ホストAに図16に示すファイルを、ホストBに図17に示すファイルを用意し、setkeyコマンドを用いて読み込ませ、設定する。その後、後述するIKEプログラムを用いてSAを設定することにより、ホストAとホストB間の通信についてIPsecトランスポートモードが実施される。
【0026】
ここで、図中に参照される設定ファイルの「spdadd」はSPDにSPを追加することを示すコマンドであり、次のアドレスは送信元、さらにその次のアドレスは送信先アドレスを示し、処理対象となるアドレスは何か、ということを示す。他に削除を示す「spddelete」などがある。
【0027】
図16、図17に示したようなアドレス指定だけでなく、図18、図19で示すようにプレフィックスで指定することも可能である。
【0028】
図18のSPをホストAに、図19のSPをホストBに設定した場合、ホストAでは2001:340:2:200::/64のプレフィックスを持つ通信にIPsecトランスポートモードが適用される。また、ホストBでは2001:340:2:100::/64のプレフィックスを持つ通信にIPsecトランスポートモードが適用される。
【0029】
次の「any」の個所でトランスポート層プロトコルを指定する。「any」は全てのトランスポート層プロトコルが対象となることを示す。他に、「icmp」といった指定などが可能である。次の「−P in」「−P out」で、SPを適用する方向を指定する。
【0030】
次の「ipsec」は、条件に適合したパケットにIPsec処理を行うことを示す。他に、条件に適合したパケットに何も処理しないことを示す「none」や、パケットを廃棄する「discard」などの指定が可能である。
【0031】
次に、セキュリティプロトコル、モード、処理を行うノード、レベルを指定する。セキュリティプロトコル「esp」は暗号処理を行うことを示し、ここでは記述していないが「ah」は認証を行うことを示す。
【0032】
そして、次の項で、モードを指定する。「transport」でトランスポートモード、「tunnel」でトンネルモードとして動作させることを示す。
【0033】
そして、次のスラッシュ(/)とスラッシュの間には、処理を実際に行う機器のアドレスを示す。トランスポートモードの時は省略できる。
【0034】
トンネルモードの場合は、セキュリティゲートウェイのアドレスを(2箇所のセキュリティゲートウェイ間で処理を行うため)2つ指定する。
【0035】
最後のレベルは、条件に一致したパケットに対し、どれぐらいの厳しさで処理を行うかを示す。例えば「require」は、条件に一致したパケットには必ず処理を行うことを強制し、行えなければパケットを破棄する。ここで「use」の場合、条件に一致したパケットに処理を行うようにするが、処理が行えなくとも、通信を許可する。
【0036】
図15、図16、図17、図18、図19ではIPv6アドレスを用いた例を図示したが、IPv4アドレスでもIPsec通信は可能であり、SPの設定も可能である。なお、このSPの記述方法はあくまでLinuxにおける例であり、別の記述方法も存在する。
【0037】
IPsecを行うために、IPsec通信する2点間でSAのパラメータを共有する必要がある。また、暗号アルゴリズムで用いる鍵も共有する必要がある。IPsecでは、その管理方法として、手動鍵管理と自動鍵管理を定義している。
【0038】
手動鍵管理とは、管理者が通信以外の方法を用いて2点間でパラメータを共有する方法である。例えば鍵データを郵送で送る、電話で鍵データを教えあう、といった方法により、離れた2点間でパラメータを共有する。しかし、SAの確立と消滅が頻繁に発生する環境などでは事実上管理が不可能となる。そのため、通信を用いて自動でパラメータを交換する方法が望まれ、自動鍵管理が考案された。
【0039】
自動鍵管理の方法として、IPsecではIKE(Internet Key Exchange)を用いる。IKEはRFC2409で規定されている。IKEはIKE自身のSAを交換するフェーズ1と、フェーズ1により確立された(IKEの)SA下で安全にIPsecのSAのパラメータを交換するフェーズ2という2つのフェーズから成る。
【0040】
フェーズ1では、認証方式として電子署名、公開鍵暗号、Pre−shared Keyの3つが定義されており、IKEを実行するプログラム同士がどれか1つを合意して用いる。IKEを用いてIPsecのSAが設定されることにより、IPsec通信が可能となる。以上の点を踏まえ、以下で本発明の実施形態を説明する。
【0041】
(第1の実施の形態)
以下、本発明の実施形態を、図面を参照しながら説明する。先に、本発明で用いるシステム、機器の一般的な構成について説明する。
【0042】
図1は本発明を実施する環境の例である。機器1はネットワーク4に接続されており、インターネット5を通じてインターネットプロトコルによる通信が行える。ネットワーク4は広義にはインターネット5の一部である。またネットワーク4は有線、無線を問わず、インターネットプロトコルで通信可能なものとする。機器1が本発明を実施する上の中心となる。
【0043】
ネットワーク4には暗号法律情報管理サーバ2が接続されている。暗号法律情報管理サーバ2では、各国の暗号に関する法律についての情報が記録、管理される。ネットワーク4にはドメインネームシステム(Domain Name System、DNS)サーバ3が接続されている。
【0044】
暗号法律情報管理サーバ2およびDNSサーバ3は機器1からアクセス可能とする。本実施形態では、機器1が例えば日本の法律を適用される場所に設置されているものとする。
【0045】
DNSはIPアドレスとドメイン名と呼ばれる識別子の組み合わせを管理するシステムである。ドメイン名は階層構造になっており、「.」(ドット)で区切られる。また、ドメイン名の右側からトップレベルドメイン、セカンドレベルドメイン、サードレベルドメイン・・・と並ぶ。例えば、「canon.co.jp」というドメイン名では、「jp」がトップレベルドメイン、「co」がセカンドレベルドメイン、「canon」がサードレベルドメインとなる。
【0046】
トップレベルドメインで国を示すものを、カントリーコードトップレベルドメイン(country code Top Level Domain, ccTLD)と呼ぶ。例えば、「jp」は日本、「fr」はフランスを示す。ccTLDの割り当てはICANN(Internet Corporation for Assigned Names and Numbers)もしくはICANNの認定を受けたレジストリという組織が行っている。
【0047】
図2は機器1のハードウェア構成例である。図2において、CPU101が機器1全体の動作を制御する。RAM102は一時記憶装置(Random Access Memory)であり、ROM103はプログラムなど、消去不可能なデータが組み込まれている不揮発性メモリ(Read Only Memory)である。
【0048】
バス104は、各モジュールを接続する内部バスである。ネットワークインタフェース105は、機器1が外部機器とデータ送受信を行う際に使用するインタフェースである。記録装置106は、例えばハードディスクなどであり、読み書きが可能で、電源を落としても記録された内容は消えないものとする。表示装置107は液晶ディスプレイなど、ユーザに情報を表示する部分である。入力装置108はキーボード、マウスといった入力機器である。
【0049】
表示装置107と入力装置108は、例えばタッチパネル機能を備えた液晶ディスプレイなど、表示と入力の機能を兼ねた装置であってもよい。機器1において、本発明を実行するオペレーティングシステム(OS)が動作する。
【0050】
図3は本発明を実施するソフトウェアの構成である。OSが動作するカーネル空間とアプリケーションが動作するユーザ空間に分かれる。カーネル空間には、本発明の制御の中心となる暗号法律情報管理部201がある。暗号法律情報管理部201が他のソフトウェア部品を制御する。
【0051】
セキュリティポリシー変換部202は、暗号法律情報管理部201から渡された暗号法律情報を解析し、後述するセキュリティポリシー管理部211が解釈可能なデータに変換する役割を担う。セキュリティポリシー管理部211は、「何を」「何から」「どのように」守るかを示す行動指針を管理する。本実施形態では、セキュリティポリシー管理部211の機能およびセキュリティポリシーの書式として、前述したIPsecのSAとSPを一例として用いる。つまり、セキュリティポリシー管理部211は本実施形態ではIPsecのSAおよびSPとなる。但し、IPsecのSAおよびSPを用いることはあくまで一例であり、他のセキュリティポリシーの記述方法でも、暗号法律情報から変換できるのであれば問題ない。
【0052】
暗号化/復号化部212は、データの暗号化および復号化処理を、セキュリティポリシー管理部211で設定されたセキュリティポリシーに基づき行う。ネットワーク部213は、IPパケットによる通信を行う箇所である。
【0053】
ユーザ空間には、アプリケーション221がある。アプリケーション221は、通常、カーネル空間にあるセキュリティ機構を意識せず、IPパケットによる通信を行う。もちろん、セキュリティポリシー管理部211を操作することも可能である。任意に操作可能にするかは、機器1の設計方針による。
【0054】
また、ユーザ空間には暗号ライブラリ231がある。暗号ライブラリ231は、アプリケーション221がユーザ空間内で暗号化/復号化を行う場合に用いる。例えばOpenBSDなど、セキュリティ機能が充実したOSでは、アプリケーションがOS内の暗号化/復号化機能を用いることも可能であるが、多くのOSではその際に用いる仕組みやAPIが整備されていないため、ユーザ空間内の暗号ライブラリが用いられる。
【0055】
また、暗号化/復号化部212に用意されていない暗号アルゴリズムを用いるために、ユーザ空間に暗号ライブラリを用意することもある。本実施形態では、暗号ライブラリ231は暗号法律情報管理部201により制御されるとする。
【0056】
次に、本発明の全体の処理について説明する。本発明は、大きく2つのフェーズからなる。最初は、国判定フェーズである。これは、機器1がどの国のネットワークに接続されているか判定するフェーズである。接続されている国を判定したら、暗号法律情報設定フェーズに遷移する。暗号法律情報設定フェーズは、機器1が属している国の、暗号に関する法律の情報を取得し、法律に沿うように機器1の設定を行うフェーズである。2つのフェーズ終了後、機器1は、機器1が属する国の法律に基づいた暗号処理を行えるようになる。以下、フェーズ毎に説明する。
【0057】
<国判定フェーズ>
図4に国判定フェーズのフローチャートを示す。
ステップS101にてスタート後、ステップS102において、暗号法律情報管理部201は、セキュリティポリシー管理部211に対し、暗号化処理を停止する、つまり何ら暗号処理を行わないよう設定する。これはSPをフラッシュし、何もSPが設定されていない状態にすることで実現できる。これにより、全てのIPパケットによる通信は平文で行われる。ステップS102の処理は、機器1の起動後、IPパケットによる通信が開始される前に行う。
【0058】
次にステップS103で、機器1はIPアドレスを取得する。具体的には、図2のCPU101がネットワークインタフェース105にIPアドレスを設定する。ここで、IPアドレスの取得方法は問わない。例えば、DHCP(Dynamic Host Configuration Protocol)を用いてDHCPサーバから取得してもよい。或いは、機器1内の設定ファイル(/etc/hostsファイルや、/etc/sysconfig/network−scripts/ifcfg−eth0スクリプトファイル)を用いて静的に設定してもよい。
【0059】
ステップS104において、CPU101はステップS103で設定されたIPアドレスからドメイン名を逆引きする処理を行う。これは、図1において、機器1がDNSサーバ3にクエリーを送信し、返答を受けることで処理される。
【0060】
ステップS105において、国を示す情報を取得できたか判断する。本実施形態では、国を示す情報はccTLDであるとする。ドメイン名を取得していない場合と、ドメイン名を取得したがccTLDではなかった場合、NOとなりステップS106に遷移する。ccTLDかどうかの判断は、あらかじめ機器1内のROM103もしくは記録装置106にccTLDの一覧表を所持し、それとドメイン名をCPU101が比較することで判断する。もしくは、ccTLDの一覧表を持つ外部サーバを用意しておき、機器1がそれに問い合わせを行うことで実現してもよい。ccTLDを取得できた場合、YESとなり、ステップS108に遷移する。本実施形態では、機器1は「jp」という文字列を取得し、ccTLDであるかの判断を行い、日本を示すccTLDを取得できたとする。
【0061】
ステップS106において、他の国判定方法があるか判定する。ある場合YESとなり、ステップS107において該方法を実行し、ステップS105において国を示す情報を取得できたか、再び判定する。ステップS106において他の方法がない場合、ステップS109に遷移する。
【0062】
ステップS108において、後述のステップS109においてユーザに国を選択、もしくは確認してもらうための前処理として、国判定方法より得た、国を示す情報(本実施形態の場合、「jp」という文字列)をRAM102に記録する。
【0063】
ステップS109において、CPU101は表示装置107に、国識別選択画面を表示する。ユーザは、入力装置108を操作し、表示装置107に表示された、国を示す表示より、機器1が法律の適用を受ける国を選択する。ここで国を示す表示は国名、国旗のデザインなど、国を指し示すものであれば問題ない。
【0064】
ステップS110において、ユーザがステップS109で選択した国を示す表示を元とし、選択結果となる送信容易な国識別子をRAM102もしくは記録装置106に保存する。
【0065】
保存後、ステップS111にて国判定フェーズ終了となる。国識別子は、国名やccTLDなど、送信の容易さ、サイズの小ささより、テキスト文字が望ましい。本実施形態では、「japan」という文字列が保存されるとする。なお、国識別子は国を一意に識別可能であるなら、ccTLDを用いてもよいし、番号でもよいし、その他のデータでも問題ない。
【0066】
図4のステップS109の詳細な処理についての一例を図5を用いて説明する。図4で、何らかの国判定方法で国を示す情報(本実施形態では「jp」というccTLD)を取得できた場合、図5のステップS201より処理が開始される。
【0067】
ステップS202において、図4のステップS108で記録された国を示す情報より、国を示す表示を図2の表示装置107に表示する。ここで国を示す表示とは、国名や国旗のデザインなど、ユーザが国を容易に選択可能なデータが望ましい。本実施形態では、CPU101はステップS108で記録された文字列「jp」に対する、国を示す表示として、記録装置106内にあらかじめ用意してある文字列「jp」に対応する「日の丸」の国旗データを表示するものとする。そしてユーザに選択を促すための、CPU101は、機器1が法律の適用を受ける国は図4のステップS108で得た国を示す情報で正しいか否かを示す、YES/NOの選択肢を、表示装置107に表示する。ユーザは機器1の入力装置108を操作し、YES/NOを選択するものとする。本実施形態では、ユーザは「日の丸」の国旗データを見て、YESを選択するものとする。ステップS203において、ユーザがYESを選択した場合、ステップS205に遷移して終了となる。
【0068】
ここで、図4のステップS110において保存される国の識別子は、国判定方法より得た国を示す情報と同じ国を指し示すものとなる。本実施形態の場合、国の識別子は日本を示す文字列「japan」とする。ステップS203においてユーザがNOを選択した場合、もしくは図4のステップS106から遷移してステップS211から開始された場合、ステップS204に遷移する。
【0069】
ステップS204において、機器1は、記録装置106からあらかじめ用意した国識別リストを表示装置107に表示し、ユーザに、機器1が存在する国の選択を促す。ユーザが国を示す表示を選択したら、その国を示す表示と同じ国を指し示す国識別子をRAM102もしくは記録装置106に保存し、ステップS205に遷移して終了となる。
【0070】
図5で示した例では、何らかの国判定方法で得た国を示す情報より、国を示す表示をユーザに示してYES/NOをユーザに求めたが、他の方法でユーザに判定を求めても良い。例えば、ステップS203のようにYES/NOを求めず、ステップS204で国識別リストを表示する際、最も目立ち選択しやすい箇所に表示する、目立つ色で表示するなどを行っても問題ない。ユーザが選択する際の負荷を軽減できれば表示内容は問わない。また、ユーザに判定を求めず、国判定方法で得た国を示すデータをそのまま機器1が法律の適用を受ける国を示すデータとして用いることも可能である。しかし、機器1がどの国の法律が及ぶ箇所に設置されているか、誤りなく判定するのは困難なため、ユーザに最終的な判定を求めるのが望ましい。
【0071】
図4のステップS107における、他の国判定方法についての一例を図6に示す。図6においては、Tracerouteコマンドの仕組みを応用した方法を挙げる。本方法は、機器1から近いノードのIPアドレス(機器以外のIPアドレス)を取得し、そのIPアドレスについてDNSを用いて逆引きを行い、取得したccTLDを機器1の属する国と見なす方法である。これは、機器1のccTLDを取得できなくとも、機器1の近隣のノードのccTLDが機器1の属する国のccTLDと等しい可能性が高いという仮定に基づく。
【0072】
Tracerouteコマンドは、ICMPパケットをType8のECHO Requestにし、TTLと呼ばれる転送可能な値(ホップ数)を1から1つずつ増やして順次送信することで、インターネット上の経路を調査するコマンドである。TTLはIPパケットが転送されるたびに経路途中のノード(ルータなどの機器)で1つずつ減じられる。TTLが0となったときのネットワーク上のノードが、Type11(Time Exceeded for a Datagram)のICMPパケットを送信元に返信する。この返信されたICMPパケットより、経路途中のノードのIPアドレスを取得することが可能である。例えば、TTLが1の場合、送信元ノードから1ホップ離れたノードのIPアドレスを取得することが可能である。TTLが2の場合は2ホップ、TTLが3の場合は3ホップ、・・・となる。本実施形態において、機器1がICMPパケットを送信する際の送信先アドレスは、図1の暗号法律情報管理サーバ2とする。
【0073】
以下、図6について説明する。図6のステップS301において開始後、ステップS302においてCPU101はRAM102内のカウンタnの値を1にセットする。カウンタnは、機器1からノードへのホップ数を示す。
【0074】
ステップS303において、CPU101はカウンタnと最大ホップ数を比較する。最大ホップ数は、機器1と同じドメイン名を持つと思われる、機器1からのホップ数を設定することが望ましい。最大ホップ数は機器1のメーカーがあらかじめ設定してもよいし、ユーザが変更可能にしてもよい。比較した結果、カウンタnが設定された最大ホップ数以上であればNOとなり、ステップS309に遷移して終了となる。最大ホップ数未満であれば、YESとなり、ステップS304に遷移する。
【0075】
ステップS304において、機器1からnホップ目のノードのIPアドレスの取得を試行する。ここで、CPU101はカウンタnの値をTTLの値として、ICMP ECHO Requestパケットをネットワークインタフェース105を通じて送信し、返信があるか試行する。返信がある場合、YESとなり、ステップS305に遷移する。返信がない場合、もしくは何らかの原因でIPアドレスを取得できない場合はNOとなり、ステップS309に遷移して終了となる。
【0076】
ステップS305において、ステップS304で取得したIPアドレスに対し、ドメイン名を逆引きする。ステップS306において、ccTLDを取得できたか判定する。取得できた場合、YESとなり、ステップS308に遷移し終了となる。ドメイン名を取得できなかった場合、もしくはドメイン名は取得できたがccTLDではなかった場合、NOとなり、ステップS307に遷移する。
【0077】
ステップS307において、CPU101はカウンタnを1つ増加させ、ステップS303に遷移する。カウンタnに1を加えることは、加える前よりさらに1ホップ分、機器1から遠いノードについてccTLDの取得を試行することを意味する。
【0078】
以上のようにして、図6で示した方式を用いて、機器1は設定された最大ホップ数までのノードのIPアドレスから国を示す情報を取得することを試行することが可能となる。
【0079】
図4のステップS107で行われる、国判定方法については、他の方法もある。例えばグローバル・ポジショニング・システム(一般にGPSと省略される)を機器1に組込み、機器1の地球上の位置を取得し、その位置データと国の地図を比較することで、機器1が設置されている国を割り出すことが可能である。ただし、この方法を用いても、GPSの精度の問題や、機器1の物理的な位置とどの国の法律の適用を受けるかは必ずしも一致しない(例:日本においてフランス大使館の敷地内はフランスの法律が適用される)ため、絶対ではない。この方法を用いて国判定を行っている事例として、特許文献2が挙げられる。
【0080】
また、携帯電話網の基地局に含まれる事業者コードより国を判定する方式(例えば、特許文献3)や電圧に基づく方式(例えば、特許文献4)があるが、上述したようにどの国の法律の適用を受けるか、という問題については絶対ではない。これに対し、上述したような本発明に係る方法では、国判定方法を行っても問題ない。
【0081】
<暗号法律情報設定フェーズ>
本フェーズにおいては、機器1が暗号法律情報管理サーバ2に国識別子を送信し、それに対応した暗号法律情報を取得する。取得後、機器1が暗号法律情報を解析し、機器1に設定することにより、機器1が暗号に関する法律に沿った動作を行うようにする。本フェーズについて説明するにあたり、暗号法律情報管理サーバ2の構成について説明する。
【0082】
図7は暗号法律情報管理サーバ2のハードウェア構成例である。CPU301は暗号法律情報管理サーバ2全体の動作を制御する。RAM302は一時記憶装置(Random Access Memory)であり、ROM303はプログラムなど、消去不可能なデータが組み込まれている不揮発性メモリ(Read Only Memory)である。
【0083】
バス304は、各モジュールを接続する内部バスである。ネットワークインタフェース305は、暗号法律情報管理サーバ2が外部機器とデータ送受信を行う際に使用するインタフェースである。記録装置306は、例えばハードディスクなどであり、読み書きが可能で、電源を落としても記録された内容は消えないものとする。入力装置や表示装置があってもよいが、通常は必要ない。
【0084】
図8に本フェーズにおける機器1の動作についてのフローチャートを、図9に暗号法律情報管理サーバ2の動作についてのフローチャートを示す。以下では、図8と図9を主に参照しながら説明する。
【0085】
図8のステップS401において処理の開始後、ステップS402において、機器1のCPU101はネットワークインタフェース105を通じて、図4のステップS110で保存した国識別子を暗号法律管理サーバ2に送信する。本実施形態では、国識別子は「japan」という文字列となる。
【0086】
図9において、暗号法律管理サーバ2は、ステップS501において開始後、国識別子を受信する準備を行う。ステップS502において、機器1が図8のステップS402で送信した国識別子を、ネットワークインタフェース305を通じて受信する。
【0087】
ステップS503において、暗号法律管理サーバ2のCPU301は、国識別子に対応した暗号法律情報を記録装置306内より検索し、該暗号法律情報をステップS502で受信したパケットの送信元に、ネットワークインタフェース305を通じて返信する。
返信後、ステップS504に遷移し終了する。ステップS502およびS503を組みとする処理は、並列に行われても問題ない。つまり、暗号法律管理サーバ2において複数の国識別子を同時に受信しても対応可能なように、プロセスやスレッドを複数起動しておき、それぞれでステップS502およびS503を組みとする処理を行っても問題ない。
【0088】
図8のステップS403において、機器1は、暗号法律管理サーバ2が図9のステップS503において返信した暗号法律情報を、ネットワークインタフェース105を通じて受信する。ここで、図10に、暗号法律情報の一例を示す。
【0089】
図9において、括弧1組は暗号アルゴリズムと許可された最大鍵長を示す。例えば、(DES,*)はDES(Data Encryption Standard)において、「*」の場合、最大鍵長に制限がないことを示すとする。図10にはないが、例えば(AES、192)の場合は、AES(Advanced Encryption Standard)において、最大鍵長が192ビットまでの使用が許可されていることを示す。また、「−」の場合、その暗号アルゴリズムの使用が認められてないことを示すとする。暗号アルゴリズムの箇所が「any」の場合、全ての暗号アルゴリズムを示すとする。また、暗号法律情報の解釈は上から行い、先に解釈したものに対して上書きは行わないとする。
【0090】
つまり、図10では、DESの最大鍵長は制限無し、MD5は128ビットまで、SHA−1は使用禁止、DES、MD5、SHA−1以外のアルゴリズムは使用禁止、と解釈される。図10はあくまで例であり、例えば暗号アルゴリズムを細分化して指定可能でもよい。また、時間情報をつけて世界標準時間の0時から12時までは暗号の使用は禁止、ESPは可がAHは不可というようにセキュリティプロトコルを指定可能でもよいし、署名アルゴリズムの有無を指定可能でもよい。但し、拡張された暗号法律情報を機器1が解釈可能でなければならない。なお、本明細書記述時点において、日本で暗号の使用に制限はないため、図10の内容は日本の法律に適合していないが、説明のために制限があるとする。
【0091】
本実施形態では、図8のステップS403において、図10に示す暗号法律情報を受信したとして説明を続ける。図8のステップS404において、機器1の暗号法律情報管理部201は、受信した暗号法律情報を解析する。CPU101は、受信した暗号法律情報をRAM102に一時記録する。そして、ROM103もしくは記録装置106にあらかじめ記録されていた暗号法律情報を解析するプログラムを実行し解析する。
【0092】
ステップS405において、暗号法律情報管理部201はステップS404において解析した暗号法律情報をセキュリティポリシー変換部202に送信し、セキュリティポリシー管理部211に設定可能なセキュリティポリシーとなるよう変換する。例えば、SAは図11、SPは図12のようになる。
【0093】
ステップS406において、機器1のCPU101は、機器1に暗号法律情報に記された暗号アルゴリズムを実行可能な暗号化/復号化部プログラムがあるか判定する。あればYESとなり、ステップS410に遷移する。なければNOとなり、ステップS407に遷移する。
【0094】
ステップS407において、機器1は不足の暗号化/復号化プログラムの取得を外部のサーバに要求する。本実施形態では、暗号法律情報管理サーバ2に暗号化/復号化プログラムが蓄積されており、機器1はそれにアクセスするものとする。
【0095】
図13は暗号法律情報管理サーバ2が暗号化/復号化プログラムを要求された際のフローチャートである。図13のステップS601において、暗号法律情報管理サーバ2は、機器1からの暗号化/復号化プログラムの取得要求を処理するプロセスもしくはスレッドを起動する。
【0096】
ステップS602において、図8のステップS407において機器1が送信した暗号化/復号化プログラム取得の要求を受信する。ステップS603において、要求に合致する暗号化/復号化プログラムを選択し、ステップS604において該プログラムを返信する。ステップS605において終了する。図13のフローチャートを処理するプロセスもしくはスレッドは、複数起動しても問題ない。
【0097】
図8に戻り、ステップS408において、機器1は、図13のステップS604において返信された暗号化/復号化プログラムを受信し、ステップS409において受信した該プログラムを機器1のシステムに組み込む。Linuxにおいては、暗号化/復号化プログラムはモジュールと呼ばれるバイナリとして提供され、insmodコマンドなどを用いてカーネルに組み込まれるものとする。このように、暗号化/復号化を行うプログラムを外部から組込み可能とすることで、柔軟に暗号に関する法律に対応可能となる。組込み後、ステップS410に遷移する。
【0098】
ステップS410において、暗号法律情報管理部201は、セキュリティポリシー管理部211にセキュリティポリシーを設定する。本実施形態では、図11および図12で示したSA、SPを設定するものとする。
【0099】
ステップS411において、暗号法律情報管理部201はセキュリティポリシー管理部211にアクセスし、暗号化/復号化処理の実行を許可する。その後、ステップS412に遷移して終了となる。
【0100】
以上の処理により、機器1は、暗号に関する法律に沿った暗号処理を行えるようになる。本実施形態では、IPsec通信を行えるようになる。
【0101】
なお、本実施形態では、SAを手動鍵設定で行う場合を示したが、IKEを用いて自動鍵交換を行ってもよい。その場合、暗号法律情報管理部201が自動鍵交換の結果、取得されたSAを監視し、設定がなされる前に暗号法律情報を満たしているかチェックし、満たしていない場合、設定を行わない処理が必要となる。また、暗号ライブラリ231は、アプリケーション221から依頼された暗号処理を行う際、暗号法律情報管理部201にアクセスし、該暗号処理が、取得した暗号法律情報に適合するか判定をゆだねる。判定の結果、暗号法律情報に適合しない場合、暗号処理は許可されず、暗号処理は失敗する。適合する場合、暗号処理を行う。また、暗号ライブラリ231において、図8のように、暗号化/復号化を行うプログラムは機器1の外部から設定可能とする。このようにして、暗号ライブラリ231の動作も暗号に関する法律に適合させることが可能となる。上述の処理を、例えば一日に一回、例えば日が変わる時に行うようにすると、暗号法律情報管理サーバ2のデータを修正することにより、機器1は法律の施行に合わせて暗号処理を行うことが可能となる。
【0102】
(第2の実施の形態)
前記第1の実施形態では、図3に示したとおり、暗号法律情報管理部201とセキュリティポリシー変換部202がカーネル空間内で実装されていた。本実施形態では、図14に示すとおり、暗号法律情報管理部401とセキュリティポリシー変換部402をユーザ空間にて実装した例を示す。なお、機器1の基本構成は第1の実施の形態と同様のため異なる部分のみ説明する。
【0103】
本実施形態と前記第1の実施形態では、前記第1の実施形態で示した動作のフローチャートは変更ない。しかし、暗号法律情報管理部401とセキュリティポリシー変換部402がユーザ空間にあるため、カーネル空間に存在するセキュリティポリシー管理部211、ネットワーク部213を制御するためのインタフェースが必要となる。このインタフェースはシステムコールを使って実装可能である。
【0104】
また、デバイスファイルを用いても実装可能である。但し、前記第1の実施形態では、カーネル空間内に存在することによる保護、オーバーヘッドの少なさ、実装の容易さなどがあったが、本実施形態ではそのような利点は失われる。また、暗号法律情報管理部401もしくはセキュリティポリシー変換部402のどちらかをカーネル空間で実装することも可能である。その際は、両者の通信を可能にするインタフェースが必要となる。
【0105】
なお、本発明を実現するために、上述した実施形態の機能を実現するソフトウェアのプログラムコード(コンピュータプログラム)を記録した記憶媒体を用いても良い。この場合には記憶媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによって本発明の目的が達成される。
【0106】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0107】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0108】
また、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)等が実際の処理の一部又は全部を行う場合も含まれることは言うまでもない。
【0109】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。この場合には、書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行ってもよい。
【図面の簡単な説明】
【0110】
【図1】本発明を実施する環境の例を示す図である。
【図2】本発明の実施形態に係る機器のハードウェア構成例を示す図である。
【図3】本発明の実施形態に係る機器のソフトウェア構成例を示す図である。
【図4】本発明の実施形態に係る機器における、国判定フェーズの動作例を示すフローチャートである。
【図5】ユーザに国を選択させる表示の動作例を示すフローチャートである。
【図6】Tracerouteコマンドの仕組みを応用した国判定方法の例を示すフローチャートである。
【図7】本発明を実施形態に係る暗号法律情報管理サーバのハードウェア構成例を示す図である。
【図8】本発明の実施形態に係る機器における、暗号法律情報設定フェーズの動作例を示すフローチャートである。
【図9】本発明の実施形態に係る暗号法律情報管理サーバにおける、暗号法律情報を返信する動作例を示すフローチャートである。
【図10】暗号法律情報の一例を示す図である。
【図11】暗号法律情報より変換された、SAの一例を示す図である。
【図12】暗号法律情報より変換された、SPの一例を示す図である。
【図13】暗号化/復号化プログラムの提供を行う際の動作例を示すフローチャートである。
【図14】本発明の実施形態に係る機器の、他のソフトウェア構成例を示す図である。
【図15】IPsecの設定について説明するための環境の例を説明するための図である。
【図16】IPsecトランスポートモードを設定する際のSPの一例を説明するための図である。
【図17】IPsecトランスポートモードを設定する際のSPの一例を説明するための図である。
【図18】SPでプレフィックス指定を用いる際の一例を説明するための図である。
【図19】SPでプレフィックス指定を用いる際の一例を説明するための図である。
【符号の説明】
【0111】
1 機器
2 暗号法律情報管理サーバ
3 DNSサーバ
4 ネットワーク
5 インターネット
101、301 CPU
102、302 RAM
103、303 ROM
104、304 バス
105、305 ネットワークインタフェース
106、306 記録装置
107 表示装置
108 入力装置
201、401 暗号法律情報管理部
202、402 セキュリティポリシー変換部
211 セキュリティポリシー管理部
212 暗号化/復号化部212
213 ネットワーク部
221 アプリケーション
231 暗号ライブラリ
【技術分野】
【0001】
本発明は、暗号に関する法律に基づき、コンピュータに暗号に関する設定を行う情報処理システム等に関する。
【背景技術】
【0002】
近年、コンピュータにおいて、暗号は普通に用いられている。コンピュータにおいて、暗号は暗号アルゴリズムによって実現される。暗号アルゴリズムには、対称鍵アルゴリズム、公開鍵アルゴリズム、デジタル署名アルゴリズムなどがあり、用途に応じて使い分ける。
【0003】
また、例えば対称鍵アルゴリズムにも、DES、AESなど、さまざまな種類がある。暗号アルゴリズムは、そのアルゴリズムの違いによって暗号強度(暗号のやぶられにくさ)が異なる。また、暗号鍵と呼ばれる固定長のデータを用いる暗号アルゴリズムが多々あり、一般に、暗号鍵のデータ長(鍵長とも言う)が長いほど、暗号は破られにくくなる。
【0004】
暗号技術については、非特許文献1に詳しいので、本明細書において詳細は省略する。暗号は主に軍事用途に用いられていた経緯もあり、暗号の使用、輸出、輸入について、法律で制限を設けている場合がある。例えば日本においては、「外国為替および外国貿易管理法」によって輸出が制限される。一方、使用、輸入について制限はない。また非特許文献2によれば、フランスでは暗号の使用が制限されていた。
【0005】
このように、暗号は法律で制限されるので、暗号を組み込んだ機器を輸出する際には、輸出先の国の法律を調査し、法律に抵触しないようにする。例えば、機器に組み込まれた暗号アルゴリズム、使用可能な鍵のデータ長などを、法律に合わせて修正し、設定する。多くの場合、機器に用いる暗号アルゴリズムや鍵データは機器に組み込まれている。
【0006】
また、メモリカードなどのメディアに暗号の設定を記録し、それを機器に読み込ませることで設定を行うこともある。メディアに記録された設定を変更することで、国毎の法律に応じた設定を行える。例えば、特許文献1では国旗カードというメディアを用意し、これに暗号の設定を記録している。さらに、国旗カードが機器に挿入されていないと暗号機能を使用できないようにもしている。
【0007】
【特許文献1】特開平10−79731号公報
【特許文献2】特開平9−297191号公報
【特許文献3】特開2004−236182号公報
【特許文献4】特開2004−186853号公報
【非特許文献1】ブルース・シュナイアー著、山形 浩生 監訳、"暗号技術大全"、発行所:ソフトバンクパブリッシング、ISBN4-7973-1911-9
【非特許文献2】"暗号技術に係る政策動向調査報告書"、情報処理振興事業協会、URL:http://www.ipa.go.jp/security/fy11/report/contents/crypto/crypto/report/CryptogrphyPolicy/CryptographyPolicyReport.pdf
【発明の開示】
【発明が解決しようとする課題】
【0008】
上述したように、暗号機能を備える機器は、国毎の暗号に関する法律に従う必要がある。機器出荷後に暗号に関する法律が改訂された場合、機器に組み込まれた暗号機能、もしくはメディアに記録された暗号の設定を変更する必要があるが、多くは変更されずそのまま用いられていた。また、変更が可能であっても、機器内のシステムの入れ替えやメディアの書き換えなどが必要になり、煩雑であった。さらに、法律が変わらなくとも、機器を別の国へ移送して用いる際には、移動先の国の法律を調査し、それに応じた設定を行う必要があり、上述したことと同様の変更作業が発生していた。
【0009】
本発明は上記の問題を鑑みてなされたものであり、機器において、暗号に関する法律に準じた、暗号の設定を簡易に行うことを目的とする。
【課題を解決するための手段】
【0010】
本発明の情報処理システムは、機器からサーバに通信可能な環境において用いられる情報処理システムであって、国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する手段と、該機器において該機器内の暗号化処理を停止する手段と、該機器において該機器が属する国を判定する手段と、該機器において判定した国の国識別子を該サーバに送信する手段と、該サーバにおいて該機器が送信した該国識別子を受信する手段と、該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する手段と、該サーバにおいて該暗号法律情報を該機器に返信する手段と、該機器において該サーバが返信した該暗号法律情報を受信する手段と、該機器において受信した該暗号法律情報を解析する手段と、該機器において解析した該暗号法律情報をセキュリティポリシーに変換する手段と、該機器において変換した該セキュリティポリシーを設定する手段と、該機器において該機器内の暗号化処理の実行を許可する手段とを備え、該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする。
また、本発明の情報処理方法は、機器からサーバに通信可能な環境における情報処理方法であって、国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する工程と、該機器において該機器内の暗号化処理を停止する工程と、該機器において該機器が属する国を判定する工程と、該機器において判定した国の国識別子を該サーバに送信する工程と、該サーバにおいて該機器が送信した該国識別子を受信する工程と、該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する工程と、該サーバにおいて該暗号法律情報を該機器に返信する工程と、該機器において該サーバが返信した該暗号法律情報を受信する工程と、該機器において該暗号法律情報を解析する工程と、該機器において解析した該暗号法律情報をセキュリティポリシーに変換する工程と、該機器において変換した該セキュリティポリシーを設定する工程と、該機器において該機器内の暗号化処理の実行を許可する工程とを有し、該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする。
また、本発明のプログラムは、上記に記載の方法の各工程をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、ユーザは各国の法律に準じた暗号処理を簡易に行えるようになるので、法律違反となる可能性が低減するという効果が得られる。また、暗号法律情報管理サーバ上の暗号法律情報を、法律の改訂・施行に合わせて更新することにより、各国の法律の変化に容易に追随できる、という効果が得られる。さらに、機器がどの国にあるか判定する機能があるため、ユーザが設定する際の負荷を軽減する効果が得られる。
【発明を実施するための最良の形態】
【0012】
先に、本発明の情報処理システムの実施形態を説明する前に、適用例として用いるIPsecについて説明する。IPsec(IP security)は、RFC2401(Security Architecture for the Internet Protocol)を中心に、複数のRFCにより規定されている。
【0013】
IPsecは、IP層で認証・暗号化処理を行う。そのため、IP層よりも上位にある、アプリケーション層やTCP/UDP層などで認証・暗号化処理を行わなくとも、安全な通信を行うことが可能となる。
【0014】
IPsecで実現できる機能として、以下のことが挙げられる。
・アクセス制御:接続元のアドレスなどに基づいて接続の許可・不許可を行う。
・通信データの完全性の保証:通信データが通信経路の途中で改竄されていないことを保証する。
・通信内容の秘匿:通信データを暗号化して、通信経路上で通信データを傍受されても通信データの内容が容易に判別できないようにする。
【0015】
IPsecは、上記機能を実現するために、複数の技術から構成されている。IPsecではAH(Authentication Header)とESP(Encapsulating Security Payload)というセキュリティプロトコルを用いる。
【0016】
AHは認証(通信データの完全性の保証)に用い、ESPは暗号化(通信内容の秘匿)に用いる。AHはRFC2402、ESPはRFC2406で規定されている。AH、ESPには、それぞれトランスポートモードとトンネルモードの2つのモードがある。トランスポートモードはIPパケットのペイロード部分をセキュリティプロトコルの処理対象にし、トンネルモードはIPパケット全体を処理対象とする。
【0017】
IPsecでは鍵、暗号アルゴリズムなどを管理するために、SA(Security Association)というパラメータのセットを用いる。SAを管理するデータベースをSAD(Security Association Database)と呼ぶ。
【0018】
SAのパラメータとして、通信する2点間の識別子、SPI、セキュリティプロトコルの種類、暗号アルゴリズムとその鍵、SAの生存時間、暗号化アルゴリズムで用いるIV(Initial Vector)の値、カウンタがある。SAには方向があり、一組の双方向通信を行うためには2つのSAが必要となる。
【0019】
セキュリティポリシーとは、一般には「何を」「何から」「どのように」守るかを示す行動指針を指すが、IPsecにおけるSP(Security Policy)は、どのようなIPパケットに対してIPsecを適用するか否か(アクセス制御)を示す。SPのパラメータとしては、IP層プロトコル番号、IPアドレス、ネットワークアドレス、トランスポート層プロトコル、ポート番号、ユーザの識別子がある。
【0020】
SPを管理するデータベースをSPD(Security Parameter Database)と呼ぶ。実装例として、Linuxオペレーティングシステムで動作するSPの設定方法について説明する。
【0021】
SPを設定する方法は、setkeyコマンドを用いる方法と、スクリプトを用いてマシン起動時に設定する方法の2つがある。setkeyコマンドを用いて設定する場合、対話形式でSPを管理者が入力する方法と、予めSPを記述したファイルを用意し、それをsetkeyコマンドに読み込ませて設定する方法がある。図15の環境を例に説明する。
【0022】
図15では、ルータAの外側(WAN側)のネットワークインタフェースには2001:340:2::1のアドレスが割り当てられ、内側(LAN側)のネットワークインタフェースには2001:340:2:100::1が割り当てられているとする。ルータAは、2001:340:2:100::/64のプレフィックスを管理している。ルータAのサブネット内には、ホストAがあり、2001:340:2:100::2のアドレスを持つものとする。
【0023】
同様に、ルータBは外側のネットワークインタフェースに2001:340:2::2、内側のネットワークインタフェースに2001:340:2:200::1のアドレスが割り当てられる。そして、2001:340:2:200::/64のプレフィックスを管理し、ルータBのサブネット内には、2001:340:2:200::2のアドレスを持つホストBがあるものとする。
【0024】
図15において、ホストAとホストB間で通信を行い、ホストAとホストB間でIPsecトランスポートモードを双方向に行う場合を説明する。
【0025】
ホストAに図16に示すファイルを、ホストBに図17に示すファイルを用意し、setkeyコマンドを用いて読み込ませ、設定する。その後、後述するIKEプログラムを用いてSAを設定することにより、ホストAとホストB間の通信についてIPsecトランスポートモードが実施される。
【0026】
ここで、図中に参照される設定ファイルの「spdadd」はSPDにSPを追加することを示すコマンドであり、次のアドレスは送信元、さらにその次のアドレスは送信先アドレスを示し、処理対象となるアドレスは何か、ということを示す。他に削除を示す「spddelete」などがある。
【0027】
図16、図17に示したようなアドレス指定だけでなく、図18、図19で示すようにプレフィックスで指定することも可能である。
【0028】
図18のSPをホストAに、図19のSPをホストBに設定した場合、ホストAでは2001:340:2:200::/64のプレフィックスを持つ通信にIPsecトランスポートモードが適用される。また、ホストBでは2001:340:2:100::/64のプレフィックスを持つ通信にIPsecトランスポートモードが適用される。
【0029】
次の「any」の個所でトランスポート層プロトコルを指定する。「any」は全てのトランスポート層プロトコルが対象となることを示す。他に、「icmp」といった指定などが可能である。次の「−P in」「−P out」で、SPを適用する方向を指定する。
【0030】
次の「ipsec」は、条件に適合したパケットにIPsec処理を行うことを示す。他に、条件に適合したパケットに何も処理しないことを示す「none」や、パケットを廃棄する「discard」などの指定が可能である。
【0031】
次に、セキュリティプロトコル、モード、処理を行うノード、レベルを指定する。セキュリティプロトコル「esp」は暗号処理を行うことを示し、ここでは記述していないが「ah」は認証を行うことを示す。
【0032】
そして、次の項で、モードを指定する。「transport」でトランスポートモード、「tunnel」でトンネルモードとして動作させることを示す。
【0033】
そして、次のスラッシュ(/)とスラッシュの間には、処理を実際に行う機器のアドレスを示す。トランスポートモードの時は省略できる。
【0034】
トンネルモードの場合は、セキュリティゲートウェイのアドレスを(2箇所のセキュリティゲートウェイ間で処理を行うため)2つ指定する。
【0035】
最後のレベルは、条件に一致したパケットに対し、どれぐらいの厳しさで処理を行うかを示す。例えば「require」は、条件に一致したパケットには必ず処理を行うことを強制し、行えなければパケットを破棄する。ここで「use」の場合、条件に一致したパケットに処理を行うようにするが、処理が行えなくとも、通信を許可する。
【0036】
図15、図16、図17、図18、図19ではIPv6アドレスを用いた例を図示したが、IPv4アドレスでもIPsec通信は可能であり、SPの設定も可能である。なお、このSPの記述方法はあくまでLinuxにおける例であり、別の記述方法も存在する。
【0037】
IPsecを行うために、IPsec通信する2点間でSAのパラメータを共有する必要がある。また、暗号アルゴリズムで用いる鍵も共有する必要がある。IPsecでは、その管理方法として、手動鍵管理と自動鍵管理を定義している。
【0038】
手動鍵管理とは、管理者が通信以外の方法を用いて2点間でパラメータを共有する方法である。例えば鍵データを郵送で送る、電話で鍵データを教えあう、といった方法により、離れた2点間でパラメータを共有する。しかし、SAの確立と消滅が頻繁に発生する環境などでは事実上管理が不可能となる。そのため、通信を用いて自動でパラメータを交換する方法が望まれ、自動鍵管理が考案された。
【0039】
自動鍵管理の方法として、IPsecではIKE(Internet Key Exchange)を用いる。IKEはRFC2409で規定されている。IKEはIKE自身のSAを交換するフェーズ1と、フェーズ1により確立された(IKEの)SA下で安全にIPsecのSAのパラメータを交換するフェーズ2という2つのフェーズから成る。
【0040】
フェーズ1では、認証方式として電子署名、公開鍵暗号、Pre−shared Keyの3つが定義されており、IKEを実行するプログラム同士がどれか1つを合意して用いる。IKEを用いてIPsecのSAが設定されることにより、IPsec通信が可能となる。以上の点を踏まえ、以下で本発明の実施形態を説明する。
【0041】
(第1の実施の形態)
以下、本発明の実施形態を、図面を参照しながら説明する。先に、本発明で用いるシステム、機器の一般的な構成について説明する。
【0042】
図1は本発明を実施する環境の例である。機器1はネットワーク4に接続されており、インターネット5を通じてインターネットプロトコルによる通信が行える。ネットワーク4は広義にはインターネット5の一部である。またネットワーク4は有線、無線を問わず、インターネットプロトコルで通信可能なものとする。機器1が本発明を実施する上の中心となる。
【0043】
ネットワーク4には暗号法律情報管理サーバ2が接続されている。暗号法律情報管理サーバ2では、各国の暗号に関する法律についての情報が記録、管理される。ネットワーク4にはドメインネームシステム(Domain Name System、DNS)サーバ3が接続されている。
【0044】
暗号法律情報管理サーバ2およびDNSサーバ3は機器1からアクセス可能とする。本実施形態では、機器1が例えば日本の法律を適用される場所に設置されているものとする。
【0045】
DNSはIPアドレスとドメイン名と呼ばれる識別子の組み合わせを管理するシステムである。ドメイン名は階層構造になっており、「.」(ドット)で区切られる。また、ドメイン名の右側からトップレベルドメイン、セカンドレベルドメイン、サードレベルドメイン・・・と並ぶ。例えば、「canon.co.jp」というドメイン名では、「jp」がトップレベルドメイン、「co」がセカンドレベルドメイン、「canon」がサードレベルドメインとなる。
【0046】
トップレベルドメインで国を示すものを、カントリーコードトップレベルドメイン(country code Top Level Domain, ccTLD)と呼ぶ。例えば、「jp」は日本、「fr」はフランスを示す。ccTLDの割り当てはICANN(Internet Corporation for Assigned Names and Numbers)もしくはICANNの認定を受けたレジストリという組織が行っている。
【0047】
図2は機器1のハードウェア構成例である。図2において、CPU101が機器1全体の動作を制御する。RAM102は一時記憶装置(Random Access Memory)であり、ROM103はプログラムなど、消去不可能なデータが組み込まれている不揮発性メモリ(Read Only Memory)である。
【0048】
バス104は、各モジュールを接続する内部バスである。ネットワークインタフェース105は、機器1が外部機器とデータ送受信を行う際に使用するインタフェースである。記録装置106は、例えばハードディスクなどであり、読み書きが可能で、電源を落としても記録された内容は消えないものとする。表示装置107は液晶ディスプレイなど、ユーザに情報を表示する部分である。入力装置108はキーボード、マウスといった入力機器である。
【0049】
表示装置107と入力装置108は、例えばタッチパネル機能を備えた液晶ディスプレイなど、表示と入力の機能を兼ねた装置であってもよい。機器1において、本発明を実行するオペレーティングシステム(OS)が動作する。
【0050】
図3は本発明を実施するソフトウェアの構成である。OSが動作するカーネル空間とアプリケーションが動作するユーザ空間に分かれる。カーネル空間には、本発明の制御の中心となる暗号法律情報管理部201がある。暗号法律情報管理部201が他のソフトウェア部品を制御する。
【0051】
セキュリティポリシー変換部202は、暗号法律情報管理部201から渡された暗号法律情報を解析し、後述するセキュリティポリシー管理部211が解釈可能なデータに変換する役割を担う。セキュリティポリシー管理部211は、「何を」「何から」「どのように」守るかを示す行動指針を管理する。本実施形態では、セキュリティポリシー管理部211の機能およびセキュリティポリシーの書式として、前述したIPsecのSAとSPを一例として用いる。つまり、セキュリティポリシー管理部211は本実施形態ではIPsecのSAおよびSPとなる。但し、IPsecのSAおよびSPを用いることはあくまで一例であり、他のセキュリティポリシーの記述方法でも、暗号法律情報から変換できるのであれば問題ない。
【0052】
暗号化/復号化部212は、データの暗号化および復号化処理を、セキュリティポリシー管理部211で設定されたセキュリティポリシーに基づき行う。ネットワーク部213は、IPパケットによる通信を行う箇所である。
【0053】
ユーザ空間には、アプリケーション221がある。アプリケーション221は、通常、カーネル空間にあるセキュリティ機構を意識せず、IPパケットによる通信を行う。もちろん、セキュリティポリシー管理部211を操作することも可能である。任意に操作可能にするかは、機器1の設計方針による。
【0054】
また、ユーザ空間には暗号ライブラリ231がある。暗号ライブラリ231は、アプリケーション221がユーザ空間内で暗号化/復号化を行う場合に用いる。例えばOpenBSDなど、セキュリティ機能が充実したOSでは、アプリケーションがOS内の暗号化/復号化機能を用いることも可能であるが、多くのOSではその際に用いる仕組みやAPIが整備されていないため、ユーザ空間内の暗号ライブラリが用いられる。
【0055】
また、暗号化/復号化部212に用意されていない暗号アルゴリズムを用いるために、ユーザ空間に暗号ライブラリを用意することもある。本実施形態では、暗号ライブラリ231は暗号法律情報管理部201により制御されるとする。
【0056】
次に、本発明の全体の処理について説明する。本発明は、大きく2つのフェーズからなる。最初は、国判定フェーズである。これは、機器1がどの国のネットワークに接続されているか判定するフェーズである。接続されている国を判定したら、暗号法律情報設定フェーズに遷移する。暗号法律情報設定フェーズは、機器1が属している国の、暗号に関する法律の情報を取得し、法律に沿うように機器1の設定を行うフェーズである。2つのフェーズ終了後、機器1は、機器1が属する国の法律に基づいた暗号処理を行えるようになる。以下、フェーズ毎に説明する。
【0057】
<国判定フェーズ>
図4に国判定フェーズのフローチャートを示す。
ステップS101にてスタート後、ステップS102において、暗号法律情報管理部201は、セキュリティポリシー管理部211に対し、暗号化処理を停止する、つまり何ら暗号処理を行わないよう設定する。これはSPをフラッシュし、何もSPが設定されていない状態にすることで実現できる。これにより、全てのIPパケットによる通信は平文で行われる。ステップS102の処理は、機器1の起動後、IPパケットによる通信が開始される前に行う。
【0058】
次にステップS103で、機器1はIPアドレスを取得する。具体的には、図2のCPU101がネットワークインタフェース105にIPアドレスを設定する。ここで、IPアドレスの取得方法は問わない。例えば、DHCP(Dynamic Host Configuration Protocol)を用いてDHCPサーバから取得してもよい。或いは、機器1内の設定ファイル(/etc/hostsファイルや、/etc/sysconfig/network−scripts/ifcfg−eth0スクリプトファイル)を用いて静的に設定してもよい。
【0059】
ステップS104において、CPU101はステップS103で設定されたIPアドレスからドメイン名を逆引きする処理を行う。これは、図1において、機器1がDNSサーバ3にクエリーを送信し、返答を受けることで処理される。
【0060】
ステップS105において、国を示す情報を取得できたか判断する。本実施形態では、国を示す情報はccTLDであるとする。ドメイン名を取得していない場合と、ドメイン名を取得したがccTLDではなかった場合、NOとなりステップS106に遷移する。ccTLDかどうかの判断は、あらかじめ機器1内のROM103もしくは記録装置106にccTLDの一覧表を所持し、それとドメイン名をCPU101が比較することで判断する。もしくは、ccTLDの一覧表を持つ外部サーバを用意しておき、機器1がそれに問い合わせを行うことで実現してもよい。ccTLDを取得できた場合、YESとなり、ステップS108に遷移する。本実施形態では、機器1は「jp」という文字列を取得し、ccTLDであるかの判断を行い、日本を示すccTLDを取得できたとする。
【0061】
ステップS106において、他の国判定方法があるか判定する。ある場合YESとなり、ステップS107において該方法を実行し、ステップS105において国を示す情報を取得できたか、再び判定する。ステップS106において他の方法がない場合、ステップS109に遷移する。
【0062】
ステップS108において、後述のステップS109においてユーザに国を選択、もしくは確認してもらうための前処理として、国判定方法より得た、国を示す情報(本実施形態の場合、「jp」という文字列)をRAM102に記録する。
【0063】
ステップS109において、CPU101は表示装置107に、国識別選択画面を表示する。ユーザは、入力装置108を操作し、表示装置107に表示された、国を示す表示より、機器1が法律の適用を受ける国を選択する。ここで国を示す表示は国名、国旗のデザインなど、国を指し示すものであれば問題ない。
【0064】
ステップS110において、ユーザがステップS109で選択した国を示す表示を元とし、選択結果となる送信容易な国識別子をRAM102もしくは記録装置106に保存する。
【0065】
保存後、ステップS111にて国判定フェーズ終了となる。国識別子は、国名やccTLDなど、送信の容易さ、サイズの小ささより、テキスト文字が望ましい。本実施形態では、「japan」という文字列が保存されるとする。なお、国識別子は国を一意に識別可能であるなら、ccTLDを用いてもよいし、番号でもよいし、その他のデータでも問題ない。
【0066】
図4のステップS109の詳細な処理についての一例を図5を用いて説明する。図4で、何らかの国判定方法で国を示す情報(本実施形態では「jp」というccTLD)を取得できた場合、図5のステップS201より処理が開始される。
【0067】
ステップS202において、図4のステップS108で記録された国を示す情報より、国を示す表示を図2の表示装置107に表示する。ここで国を示す表示とは、国名や国旗のデザインなど、ユーザが国を容易に選択可能なデータが望ましい。本実施形態では、CPU101はステップS108で記録された文字列「jp」に対する、国を示す表示として、記録装置106内にあらかじめ用意してある文字列「jp」に対応する「日の丸」の国旗データを表示するものとする。そしてユーザに選択を促すための、CPU101は、機器1が法律の適用を受ける国は図4のステップS108で得た国を示す情報で正しいか否かを示す、YES/NOの選択肢を、表示装置107に表示する。ユーザは機器1の入力装置108を操作し、YES/NOを選択するものとする。本実施形態では、ユーザは「日の丸」の国旗データを見て、YESを選択するものとする。ステップS203において、ユーザがYESを選択した場合、ステップS205に遷移して終了となる。
【0068】
ここで、図4のステップS110において保存される国の識別子は、国判定方法より得た国を示す情報と同じ国を指し示すものとなる。本実施形態の場合、国の識別子は日本を示す文字列「japan」とする。ステップS203においてユーザがNOを選択した場合、もしくは図4のステップS106から遷移してステップS211から開始された場合、ステップS204に遷移する。
【0069】
ステップS204において、機器1は、記録装置106からあらかじめ用意した国識別リストを表示装置107に表示し、ユーザに、機器1が存在する国の選択を促す。ユーザが国を示す表示を選択したら、その国を示す表示と同じ国を指し示す国識別子をRAM102もしくは記録装置106に保存し、ステップS205に遷移して終了となる。
【0070】
図5で示した例では、何らかの国判定方法で得た国を示す情報より、国を示す表示をユーザに示してYES/NOをユーザに求めたが、他の方法でユーザに判定を求めても良い。例えば、ステップS203のようにYES/NOを求めず、ステップS204で国識別リストを表示する際、最も目立ち選択しやすい箇所に表示する、目立つ色で表示するなどを行っても問題ない。ユーザが選択する際の負荷を軽減できれば表示内容は問わない。また、ユーザに判定を求めず、国判定方法で得た国を示すデータをそのまま機器1が法律の適用を受ける国を示すデータとして用いることも可能である。しかし、機器1がどの国の法律が及ぶ箇所に設置されているか、誤りなく判定するのは困難なため、ユーザに最終的な判定を求めるのが望ましい。
【0071】
図4のステップS107における、他の国判定方法についての一例を図6に示す。図6においては、Tracerouteコマンドの仕組みを応用した方法を挙げる。本方法は、機器1から近いノードのIPアドレス(機器以外のIPアドレス)を取得し、そのIPアドレスについてDNSを用いて逆引きを行い、取得したccTLDを機器1の属する国と見なす方法である。これは、機器1のccTLDを取得できなくとも、機器1の近隣のノードのccTLDが機器1の属する国のccTLDと等しい可能性が高いという仮定に基づく。
【0072】
Tracerouteコマンドは、ICMPパケットをType8のECHO Requestにし、TTLと呼ばれる転送可能な値(ホップ数)を1から1つずつ増やして順次送信することで、インターネット上の経路を調査するコマンドである。TTLはIPパケットが転送されるたびに経路途中のノード(ルータなどの機器)で1つずつ減じられる。TTLが0となったときのネットワーク上のノードが、Type11(Time Exceeded for a Datagram)のICMPパケットを送信元に返信する。この返信されたICMPパケットより、経路途中のノードのIPアドレスを取得することが可能である。例えば、TTLが1の場合、送信元ノードから1ホップ離れたノードのIPアドレスを取得することが可能である。TTLが2の場合は2ホップ、TTLが3の場合は3ホップ、・・・となる。本実施形態において、機器1がICMPパケットを送信する際の送信先アドレスは、図1の暗号法律情報管理サーバ2とする。
【0073】
以下、図6について説明する。図6のステップS301において開始後、ステップS302においてCPU101はRAM102内のカウンタnの値を1にセットする。カウンタnは、機器1からノードへのホップ数を示す。
【0074】
ステップS303において、CPU101はカウンタnと最大ホップ数を比較する。最大ホップ数は、機器1と同じドメイン名を持つと思われる、機器1からのホップ数を設定することが望ましい。最大ホップ数は機器1のメーカーがあらかじめ設定してもよいし、ユーザが変更可能にしてもよい。比較した結果、カウンタnが設定された最大ホップ数以上であればNOとなり、ステップS309に遷移して終了となる。最大ホップ数未満であれば、YESとなり、ステップS304に遷移する。
【0075】
ステップS304において、機器1からnホップ目のノードのIPアドレスの取得を試行する。ここで、CPU101はカウンタnの値をTTLの値として、ICMP ECHO Requestパケットをネットワークインタフェース105を通じて送信し、返信があるか試行する。返信がある場合、YESとなり、ステップS305に遷移する。返信がない場合、もしくは何らかの原因でIPアドレスを取得できない場合はNOとなり、ステップS309に遷移して終了となる。
【0076】
ステップS305において、ステップS304で取得したIPアドレスに対し、ドメイン名を逆引きする。ステップS306において、ccTLDを取得できたか判定する。取得できた場合、YESとなり、ステップS308に遷移し終了となる。ドメイン名を取得できなかった場合、もしくはドメイン名は取得できたがccTLDではなかった場合、NOとなり、ステップS307に遷移する。
【0077】
ステップS307において、CPU101はカウンタnを1つ増加させ、ステップS303に遷移する。カウンタnに1を加えることは、加える前よりさらに1ホップ分、機器1から遠いノードについてccTLDの取得を試行することを意味する。
【0078】
以上のようにして、図6で示した方式を用いて、機器1は設定された最大ホップ数までのノードのIPアドレスから国を示す情報を取得することを試行することが可能となる。
【0079】
図4のステップS107で行われる、国判定方法については、他の方法もある。例えばグローバル・ポジショニング・システム(一般にGPSと省略される)を機器1に組込み、機器1の地球上の位置を取得し、その位置データと国の地図を比較することで、機器1が設置されている国を割り出すことが可能である。ただし、この方法を用いても、GPSの精度の問題や、機器1の物理的な位置とどの国の法律の適用を受けるかは必ずしも一致しない(例:日本においてフランス大使館の敷地内はフランスの法律が適用される)ため、絶対ではない。この方法を用いて国判定を行っている事例として、特許文献2が挙げられる。
【0080】
また、携帯電話網の基地局に含まれる事業者コードより国を判定する方式(例えば、特許文献3)や電圧に基づく方式(例えば、特許文献4)があるが、上述したようにどの国の法律の適用を受けるか、という問題については絶対ではない。これに対し、上述したような本発明に係る方法では、国判定方法を行っても問題ない。
【0081】
<暗号法律情報設定フェーズ>
本フェーズにおいては、機器1が暗号法律情報管理サーバ2に国識別子を送信し、それに対応した暗号法律情報を取得する。取得後、機器1が暗号法律情報を解析し、機器1に設定することにより、機器1が暗号に関する法律に沿った動作を行うようにする。本フェーズについて説明するにあたり、暗号法律情報管理サーバ2の構成について説明する。
【0082】
図7は暗号法律情報管理サーバ2のハードウェア構成例である。CPU301は暗号法律情報管理サーバ2全体の動作を制御する。RAM302は一時記憶装置(Random Access Memory)であり、ROM303はプログラムなど、消去不可能なデータが組み込まれている不揮発性メモリ(Read Only Memory)である。
【0083】
バス304は、各モジュールを接続する内部バスである。ネットワークインタフェース305は、暗号法律情報管理サーバ2が外部機器とデータ送受信を行う際に使用するインタフェースである。記録装置306は、例えばハードディスクなどであり、読み書きが可能で、電源を落としても記録された内容は消えないものとする。入力装置や表示装置があってもよいが、通常は必要ない。
【0084】
図8に本フェーズにおける機器1の動作についてのフローチャートを、図9に暗号法律情報管理サーバ2の動作についてのフローチャートを示す。以下では、図8と図9を主に参照しながら説明する。
【0085】
図8のステップS401において処理の開始後、ステップS402において、機器1のCPU101はネットワークインタフェース105を通じて、図4のステップS110で保存した国識別子を暗号法律管理サーバ2に送信する。本実施形態では、国識別子は「japan」という文字列となる。
【0086】
図9において、暗号法律管理サーバ2は、ステップS501において開始後、国識別子を受信する準備を行う。ステップS502において、機器1が図8のステップS402で送信した国識別子を、ネットワークインタフェース305を通じて受信する。
【0087】
ステップS503において、暗号法律管理サーバ2のCPU301は、国識別子に対応した暗号法律情報を記録装置306内より検索し、該暗号法律情報をステップS502で受信したパケットの送信元に、ネットワークインタフェース305を通じて返信する。
返信後、ステップS504に遷移し終了する。ステップS502およびS503を組みとする処理は、並列に行われても問題ない。つまり、暗号法律管理サーバ2において複数の国識別子を同時に受信しても対応可能なように、プロセスやスレッドを複数起動しておき、それぞれでステップS502およびS503を組みとする処理を行っても問題ない。
【0088】
図8のステップS403において、機器1は、暗号法律管理サーバ2が図9のステップS503において返信した暗号法律情報を、ネットワークインタフェース105を通じて受信する。ここで、図10に、暗号法律情報の一例を示す。
【0089】
図9において、括弧1組は暗号アルゴリズムと許可された最大鍵長を示す。例えば、(DES,*)はDES(Data Encryption Standard)において、「*」の場合、最大鍵長に制限がないことを示すとする。図10にはないが、例えば(AES、192)の場合は、AES(Advanced Encryption Standard)において、最大鍵長が192ビットまでの使用が許可されていることを示す。また、「−」の場合、その暗号アルゴリズムの使用が認められてないことを示すとする。暗号アルゴリズムの箇所が「any」の場合、全ての暗号アルゴリズムを示すとする。また、暗号法律情報の解釈は上から行い、先に解釈したものに対して上書きは行わないとする。
【0090】
つまり、図10では、DESの最大鍵長は制限無し、MD5は128ビットまで、SHA−1は使用禁止、DES、MD5、SHA−1以外のアルゴリズムは使用禁止、と解釈される。図10はあくまで例であり、例えば暗号アルゴリズムを細分化して指定可能でもよい。また、時間情報をつけて世界標準時間の0時から12時までは暗号の使用は禁止、ESPは可がAHは不可というようにセキュリティプロトコルを指定可能でもよいし、署名アルゴリズムの有無を指定可能でもよい。但し、拡張された暗号法律情報を機器1が解釈可能でなければならない。なお、本明細書記述時点において、日本で暗号の使用に制限はないため、図10の内容は日本の法律に適合していないが、説明のために制限があるとする。
【0091】
本実施形態では、図8のステップS403において、図10に示す暗号法律情報を受信したとして説明を続ける。図8のステップS404において、機器1の暗号法律情報管理部201は、受信した暗号法律情報を解析する。CPU101は、受信した暗号法律情報をRAM102に一時記録する。そして、ROM103もしくは記録装置106にあらかじめ記録されていた暗号法律情報を解析するプログラムを実行し解析する。
【0092】
ステップS405において、暗号法律情報管理部201はステップS404において解析した暗号法律情報をセキュリティポリシー変換部202に送信し、セキュリティポリシー管理部211に設定可能なセキュリティポリシーとなるよう変換する。例えば、SAは図11、SPは図12のようになる。
【0093】
ステップS406において、機器1のCPU101は、機器1に暗号法律情報に記された暗号アルゴリズムを実行可能な暗号化/復号化部プログラムがあるか判定する。あればYESとなり、ステップS410に遷移する。なければNOとなり、ステップS407に遷移する。
【0094】
ステップS407において、機器1は不足の暗号化/復号化プログラムの取得を外部のサーバに要求する。本実施形態では、暗号法律情報管理サーバ2に暗号化/復号化プログラムが蓄積されており、機器1はそれにアクセスするものとする。
【0095】
図13は暗号法律情報管理サーバ2が暗号化/復号化プログラムを要求された際のフローチャートである。図13のステップS601において、暗号法律情報管理サーバ2は、機器1からの暗号化/復号化プログラムの取得要求を処理するプロセスもしくはスレッドを起動する。
【0096】
ステップS602において、図8のステップS407において機器1が送信した暗号化/復号化プログラム取得の要求を受信する。ステップS603において、要求に合致する暗号化/復号化プログラムを選択し、ステップS604において該プログラムを返信する。ステップS605において終了する。図13のフローチャートを処理するプロセスもしくはスレッドは、複数起動しても問題ない。
【0097】
図8に戻り、ステップS408において、機器1は、図13のステップS604において返信された暗号化/復号化プログラムを受信し、ステップS409において受信した該プログラムを機器1のシステムに組み込む。Linuxにおいては、暗号化/復号化プログラムはモジュールと呼ばれるバイナリとして提供され、insmodコマンドなどを用いてカーネルに組み込まれるものとする。このように、暗号化/復号化を行うプログラムを外部から組込み可能とすることで、柔軟に暗号に関する法律に対応可能となる。組込み後、ステップS410に遷移する。
【0098】
ステップS410において、暗号法律情報管理部201は、セキュリティポリシー管理部211にセキュリティポリシーを設定する。本実施形態では、図11および図12で示したSA、SPを設定するものとする。
【0099】
ステップS411において、暗号法律情報管理部201はセキュリティポリシー管理部211にアクセスし、暗号化/復号化処理の実行を許可する。その後、ステップS412に遷移して終了となる。
【0100】
以上の処理により、機器1は、暗号に関する法律に沿った暗号処理を行えるようになる。本実施形態では、IPsec通信を行えるようになる。
【0101】
なお、本実施形態では、SAを手動鍵設定で行う場合を示したが、IKEを用いて自動鍵交換を行ってもよい。その場合、暗号法律情報管理部201が自動鍵交換の結果、取得されたSAを監視し、設定がなされる前に暗号法律情報を満たしているかチェックし、満たしていない場合、設定を行わない処理が必要となる。また、暗号ライブラリ231は、アプリケーション221から依頼された暗号処理を行う際、暗号法律情報管理部201にアクセスし、該暗号処理が、取得した暗号法律情報に適合するか判定をゆだねる。判定の結果、暗号法律情報に適合しない場合、暗号処理は許可されず、暗号処理は失敗する。適合する場合、暗号処理を行う。また、暗号ライブラリ231において、図8のように、暗号化/復号化を行うプログラムは機器1の外部から設定可能とする。このようにして、暗号ライブラリ231の動作も暗号に関する法律に適合させることが可能となる。上述の処理を、例えば一日に一回、例えば日が変わる時に行うようにすると、暗号法律情報管理サーバ2のデータを修正することにより、機器1は法律の施行に合わせて暗号処理を行うことが可能となる。
【0102】
(第2の実施の形態)
前記第1の実施形態では、図3に示したとおり、暗号法律情報管理部201とセキュリティポリシー変換部202がカーネル空間内で実装されていた。本実施形態では、図14に示すとおり、暗号法律情報管理部401とセキュリティポリシー変換部402をユーザ空間にて実装した例を示す。なお、機器1の基本構成は第1の実施の形態と同様のため異なる部分のみ説明する。
【0103】
本実施形態と前記第1の実施形態では、前記第1の実施形態で示した動作のフローチャートは変更ない。しかし、暗号法律情報管理部401とセキュリティポリシー変換部402がユーザ空間にあるため、カーネル空間に存在するセキュリティポリシー管理部211、ネットワーク部213を制御するためのインタフェースが必要となる。このインタフェースはシステムコールを使って実装可能である。
【0104】
また、デバイスファイルを用いても実装可能である。但し、前記第1の実施形態では、カーネル空間内に存在することによる保護、オーバーヘッドの少なさ、実装の容易さなどがあったが、本実施形態ではそのような利点は失われる。また、暗号法律情報管理部401もしくはセキュリティポリシー変換部402のどちらかをカーネル空間で実装することも可能である。その際は、両者の通信を可能にするインタフェースが必要となる。
【0105】
なお、本発明を実現するために、上述した実施形態の機能を実現するソフトウェアのプログラムコード(コンピュータプログラム)を記録した記憶媒体を用いても良い。この場合には記憶媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによって本発明の目的が達成される。
【0106】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0107】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0108】
また、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)等が実際の処理の一部又は全部を行う場合も含まれることは言うまでもない。
【0109】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。この場合には、書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行ってもよい。
【図面の簡単な説明】
【0110】
【図1】本発明を実施する環境の例を示す図である。
【図2】本発明の実施形態に係る機器のハードウェア構成例を示す図である。
【図3】本発明の実施形態に係る機器のソフトウェア構成例を示す図である。
【図4】本発明の実施形態に係る機器における、国判定フェーズの動作例を示すフローチャートである。
【図5】ユーザに国を選択させる表示の動作例を示すフローチャートである。
【図6】Tracerouteコマンドの仕組みを応用した国判定方法の例を示すフローチャートである。
【図7】本発明を実施形態に係る暗号法律情報管理サーバのハードウェア構成例を示す図である。
【図8】本発明の実施形態に係る機器における、暗号法律情報設定フェーズの動作例を示すフローチャートである。
【図9】本発明の実施形態に係る暗号法律情報管理サーバにおける、暗号法律情報を返信する動作例を示すフローチャートである。
【図10】暗号法律情報の一例を示す図である。
【図11】暗号法律情報より変換された、SAの一例を示す図である。
【図12】暗号法律情報より変換された、SPの一例を示す図である。
【図13】暗号化/復号化プログラムの提供を行う際の動作例を示すフローチャートである。
【図14】本発明の実施形態に係る機器の、他のソフトウェア構成例を示す図である。
【図15】IPsecの設定について説明するための環境の例を説明するための図である。
【図16】IPsecトランスポートモードを設定する際のSPの一例を説明するための図である。
【図17】IPsecトランスポートモードを設定する際のSPの一例を説明するための図である。
【図18】SPでプレフィックス指定を用いる際の一例を説明するための図である。
【図19】SPでプレフィックス指定を用いる際の一例を説明するための図である。
【符号の説明】
【0111】
1 機器
2 暗号法律情報管理サーバ
3 DNSサーバ
4 ネットワーク
5 インターネット
101、301 CPU
102、302 RAM
103、303 ROM
104、304 バス
105、305 ネットワークインタフェース
106、306 記録装置
107 表示装置
108 入力装置
201、401 暗号法律情報管理部
202、402 セキュリティポリシー変換部
211 セキュリティポリシー管理部
212 暗号化/復号化部212
213 ネットワーク部
221 アプリケーション
231 暗号ライブラリ
【特許請求の範囲】
【請求項1】
機器からサーバに通信可能な環境において用いられる情報処理システムであって、
国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する手段と、
該機器において該機器内の暗号化処理を停止する手段と、
該機器において該機器が属する国を判定する手段と、
該機器において判定した国の国識別子を該サーバに送信する手段と、
該サーバにおいて該機器が送信した該国識別子を受信する手段と、
該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する手段と、
該サーバにおいて該暗号法律情報を該機器に返信する手段と、
該機器において該サーバが返信した該暗号法律情報を受信する手段と、
該機器において受信した該暗号法律情報を解析する手段と、
該機器において解析した該暗号法律情報をセキュリティポリシーに変換する手段と、
該機器において変換した該セキュリティポリシーを設定する手段と、
該機器において該機器内の暗号化処理の実行を許可する手段とを備え、
該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする情報処理システム。
【請求項2】
該機器が属する国と判定した結果をユーザに表示する手段と、
該機器が属する国について、ユーザに選択肢を表示する手段と、
前記選択肢の選択結果を入力する手段と、
該選択結果を該国識別子に変換する手段とをさらに備えることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
該機器が属する国を判定する手段として、
IPアドレスからドメイン名を取得する手段と、
ドメイン名にカントリーコードトップレベルドメインが含まれているか判定する手段とをさらに備えることを特徴とする請求項1又は2に記載の情報処理システム。
【請求項4】
該機器以外のIPアドレスを取得する手段を更に備えることを特徴とする請求項3に記載の情報処理システム。
【請求項5】
該機器が取得した該暗号法律情報を実行する上で不足の暗号化/復号化プログラムを判定する手段と、
該サーバから該暗号化/復号化プログラムを提供する手段と、
該機器において該機器が該サーバに、該暗号化/復号化プログラムを要求する手段と、
該機器において該暗号化/復号化プログラムを受信し該機器に組み込む手段とをさらに備えることを特徴とする請求項1〜4のいずれか1項に記載の情報処理システム。
【請求項6】
機器からサーバに通信可能な環境における情報処理方法であって、
国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する工程と、
該機器において該機器内の暗号化処理を停止する工程と、
該機器において該機器が属する国を判定する工程と、
該機器において判定した国の国識別子を該サーバに送信する工程と、
該サーバにおいて該機器が送信した該国識別子を受信する工程と、
該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する工程と、
該サーバにおいて該暗号法律情報を該機器に返信する工程と、
該機器において該サーバが返信した該暗号法律情報を受信する工程と、
該機器において該暗号法律情報を解析する工程と、
該機器において解析した該暗号法律情報をセキュリティポリシーに変換する工程と、
該機器において変換した該セキュリティポリシーを設定する工程と、
該機器において該機器内の暗号化処理の実行を許可する工程とを有し、
該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする情報処理方法。
【請求項7】
請求項6に記載の方法の各工程をコンピュータに実行させるためのプログラム。
【請求項1】
機器からサーバに通信可能な環境において用いられる情報処理システムであって、
国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する手段と、
該機器において該機器内の暗号化処理を停止する手段と、
該機器において該機器が属する国を判定する手段と、
該機器において判定した国の国識別子を該サーバに送信する手段と、
該サーバにおいて該機器が送信した該国識別子を受信する手段と、
該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する手段と、
該サーバにおいて該暗号法律情報を該機器に返信する手段と、
該機器において該サーバが返信した該暗号法律情報を受信する手段と、
該機器において受信した該暗号法律情報を解析する手段と、
該機器において解析した該暗号法律情報をセキュリティポリシーに変換する手段と、
該機器において変換した該セキュリティポリシーを設定する手段と、
該機器において該機器内の暗号化処理の実行を許可する手段とを備え、
該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする情報処理システム。
【請求項2】
該機器が属する国と判定した結果をユーザに表示する手段と、
該機器が属する国について、ユーザに選択肢を表示する手段と、
前記選択肢の選択結果を入力する手段と、
該選択結果を該国識別子に変換する手段とをさらに備えることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
該機器が属する国を判定する手段として、
IPアドレスからドメイン名を取得する手段と、
ドメイン名にカントリーコードトップレベルドメインが含まれているか判定する手段とをさらに備えることを特徴とする請求項1又は2に記載の情報処理システム。
【請求項4】
該機器以外のIPアドレスを取得する手段を更に備えることを特徴とする請求項3に記載の情報処理システム。
【請求項5】
該機器が取得した該暗号法律情報を実行する上で不足の暗号化/復号化プログラムを判定する手段と、
該サーバから該暗号化/復号化プログラムを提供する手段と、
該機器において該機器が該サーバに、該暗号化/復号化プログラムを要求する手段と、
該機器において該暗号化/復号化プログラムを受信し該機器に組み込む手段とをさらに備えることを特徴とする請求項1〜4のいずれか1項に記載の情報処理システム。
【請求項6】
機器からサーバに通信可能な環境における情報処理方法であって、
国の暗号に関する法律をコンピュータが解釈可能にした暗号法律情報を該サーバで管理する工程と、
該機器において該機器内の暗号化処理を停止する工程と、
該機器において該機器が属する国を判定する工程と、
該機器において判定した国の国識別子を該サーバに送信する工程と、
該サーバにおいて該機器が送信した該国識別子を受信する工程と、
該サーバにおいて該国識別子に適する該国の暗号法律情報を選択する工程と、
該サーバにおいて該暗号法律情報を該機器に返信する工程と、
該機器において該サーバが返信した該暗号法律情報を受信する工程と、
該機器において該暗号法律情報を解析する工程と、
該機器において解析した該暗号法律情報をセキュリティポリシーに変換する工程と、
該機器において変換した該セキュリティポリシーを設定する工程と、
該機器において該機器内の暗号化処理の実行を許可する工程とを有し、
該機器が属する国を判定し、該国の法律に適した暗号の設定を行うことを特徴とする情報処理方法。
【請求項7】
請求項6に記載の方法の各工程をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2009−159485(P2009−159485A)
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願番号】特願2007−337569(P2007−337569)
【出願日】平成19年12月27日(2007.12.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願日】平成19年12月27日(2007.12.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]