説明

計算機システム、処理方法及びプログラム

【課題】多数決処理を用いるシステムにおいて、ポリシファイルの完全性を向上させ、多数決処理のための通信の負荷を低減し、改ざんの時刻を特定する。
【解決手段】主ノード及び複数の副ノードとそれらを接続するネットワークを備えた計算機システムにおいて、各ノードは、リソースへのアクセスを制御するためのポリシファイル、及びポリシファイルを参照してアクセスを制御するための多数決処理を行う多数決処理部を備え、ポリシファイルは、1以上のポリシデータを含み、ポリシデータは、各ノードに共通のアクセス制御を示すデータと時刻印のデータとを含み、ノードは、多数決処理を実行する前に、時刻印が正常値であるか否かを判定し、時刻印が正常値であるポリシファイルの状態を正常状態に設定し、正常状態のポリシファイルのみを用いて、多数決処理を実行することを特徴とする計算機システム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュアOS(Operating System)を搭載したコンピュータシステムに関し、特に、ポリシファイルの完全性(データが正しい状態に保たれること)の向上する技術に関連する。
【背景技術】
【0002】
従来のコンピュータシステムにおける高信頼化技術は、ハードウェア障害やソフトウェア障害が発生した際、ユーザに障害を隠すための耐障害技術が中心であり、これによってコンピュータのハードウェアとソフトウェアの信頼性を向上させてきた。
【0003】
近年、不正アクセスや情報漏洩などが増加し、コンピュータシステムのセキュリティ向上が強く求められている。例えば、セキュアOSでは、複数コンピュータにそれぞれポリシファイルを備えることにより、リソースへのアクセス権を判定し、セキュリティや信頼性を向上させてきた。このポリシファイルが改ざんされると、第三者にサーバが乗っ取られ、データ漏洩などの不正行為が行われる。
【0004】
また、多数の仮想化プログラムが市販されており、1台の計算機に複数のOSを稼動させることが容易になっている。
【0005】
例えば、耐障害システムの技術として、多数のノードから構成されるクラスタ構成において、環境情報(プロセッサ使用状態、メモリ使用状態など)を取得し、これらの情報の多数決処理を行うことにより、あるいはデータとして発生しにくい統計的外れ値により、サーバの障害を検出する技術が提案されている(例えば、特許文献1参照)。
【0006】
また、ポリシファイルを所有し、ポリシファイル内のルール衝突を解決することにより、セキュリティを確保する技術もある(例えば、特許文献2参照)。
【0007】
また、ポリシファイルに制御データを設けポリシファイルの改ざんを検知してから、複数ノード間でポリシファイルの多数決処理を行うシステムに関するものもある(例えば、特許文献3、4参照)。
【0008】
また、サーバ計算機に対するクライアント計算機からのアクセス要求を許可することに関して、アクセス許可後アクセス要求がある一定期間まではアクセス要求待ちであり、アクセス要求がなければアクセスを許可せず、アクセス要求があればアクセスを許可する方法に関するものもある(例えば、特許文献5参照)。
【0009】
また、本コンピュータに対する認証処理をする情報処理装置において、複数の認証部を持ち経過時間に応じて認証処理を行う数を変化させ、成功した認証の数が必要認証数に達すれば本体計算機の仕様を許可する方法に関するものもある(例えば、特許文献6参照)。
【0010】
また、ワークステーションと複数の端局制御装置間で、複数の圧縮ディレクトリ情報に矛盾が検出された場合、正しい圧縮ディレクトリ情報を決定し、矛盾した圧縮ディレクトリ情報を修復するものであり、多数派と矛盾するものがあった場合には矛盾したものを修復するシステムに関するものもある(例えば、特許文献7参照)。
【0011】
また、半導体記憶装置への書込み可否の判定を多数決で行う方法に関するものもある(例えば、特許文献8参照)。
【特許文献1】特開2004−355233号公報
【特許文献2】特開2004−303243号公報
【特許文献3】特開2008−033793号公報
【特許文献4】特開2007−299184号公報
【特許文献5】特開2005−228351号公報
【特許文献6】特開2007−299034号公報
【特許文献7】特開2002−373100号公報
【特許文献8】特開2005−039127号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
セキュアOSやアクセス制御の処理は、リソースのアクセスの可否を示すポリシファイルを参照して、リソースのアクセス制御の値を求め、その値によってリソースのアクセスを制御する。このため、セキュアOSやアクセス制御の処理は、ポリシファイルの完全性を保つことが要求される。しかし、ポリシファイルは不正アクセスなどによって改ざんされる可能性がある。
【0013】
ポリシファイルの改ざんを防止する従来方式として、現用サーバと待機サーバからなるホットスタンバイ方式でのバックアップがある。しかし、現用サーバと待機サーバは同一構成なので同時に侵入されやすく、両方のサーバで侵入され、かつ両方のポリシファイルが改ざんされると、正しいポリシファイルがわからないため、現用サーバと待機サーバはポリシファイルを回復できない。このため、ポリシファイルの改ざんを未然に防止し、ポリシファイルの完全性(データが正しい状態に保たれること)を向上させるために、ポリシファイルの多数決処理方式が用いられている(特許文献3参照)。
【0014】
この多数決処理は、複数のサーバ間で各々のポリシファイルを送受信する必要がある。しかし、従来からポリシファイルを送受信する通信の負荷が大きいという問題があった。また、従来の方法では、改ざんされた時を正確に特定できないため、ポリシファイルを定期的に確認する必要もあった。
【0015】
本発明が解決しようとする目的は、ポリシファイルの完全性を向上させ、多数決処理のための通信の負荷を小さくし、改ざんの時刻を特定することを目的とする。
【課題を解決するための手段】
【0016】
主ノード及び複数の副ノードとそれらを接続するネットワークを備えた計算機システムにおいて、各ノードは、リソースへのアクセスを制御するためのポリシファイル、及びポリシファイルを参照してアクセスを制御するための多数決処理を行う多数決処理部を備え、ポリシファイルは、1以上のポリシデータを含み、ポリシデータは、各ノードに共通のアクセス制御を示すデータと時刻印のデータとを含み、ノードは、多数決処理を実行する前に、時刻印が正常値であるか否かを判定し、時刻印が正常値であるポリシファイルの状態を正常状態に設定し、正常状態のポリシファイルのみを用いて、多数決処理を実行することを特徴とする計算機システムを用いる。
【発明の効果】
【0017】
本発明の実施形態によると、ポリシファイルの完全性を向上させ、多数決処理のオーバヘッドを削減できる。
【発明を実施するための最良の形態】
【0018】
以下に、本発明の実施形態について図面を参照して説明する。
【0019】
図1は、本発明の実施形態のシステム構成図である。システムの構成例として、本発明の実施形態のシステムは、ノード101〜151、ネットワーク2、端末1を備える。ノードは、ノード1(101)、ノード2(111)、ノード3(121)、ノード4(131)、ノード5(141)及びノード6(151)を含む。各ノードは、端末1とネットワーク2を介して接続する。ノード1〜6(101〜151)は、端末1から電文を受信し、その結果を電文として端末1に返す。
【0020】
図2は、本発明の実施形態のノードの構成図である。図2は、ノード1(101)のハードウェア構成とソフトウェア構成を示す。ノード1は、ハードウェアとして、CPU(Central Processing Unit)102、メモリ103、IOP(Input Output Processor)104、NIC(Network Interface Controller)105、ディスクコントローラ106及びディスク装置107を備える。
【0021】
ノード1(101)のソフトウェアは、複数のOS(Operating System)を同時に稼動する仮想化プログラム1010、OS10111〜10113、ポリシファイル10121〜10123、多数決処理部10131〜10133及びアプリケーションプログラム(AP:Application Program)を含む。APは、AP1(10151)、AP2(10152)、AP3(10153)を含む。
【0022】
他のノード2〜6(111〜151)のハードウェア構成とソフトウェア構成は、ノード1(101)の構成と同一である。なお、ノードの数はいくつでもよく、本実施形態の六つに限定されない。また、各ノード1〜6は、仮想化プログラム1010を使用せず、単一のOS10111が実行される。
【0023】
図3及び図7は、ポリシファイル10121のデータ構造を示す。ポリシファイル10121は、あるAPによる各リソースへのアクセスを、許可するかを示すデータを含む。
【0024】
図3は、本発明の実施形態のポリシファイル10121の共通アクセス制御データ10161と個別アクセス制御データ10171とを示す図である。ポリシファイル10121は、いくつかのポリシデータの集まりである。ポリシデータは共通アクセス制御データ10161と個別アクセス制御データ10171を含む。
【0025】
共通アクセス制御データ10161は、AP101611、リソース101612及びアクセス種別101613を含む。アクセス種別101613は、AP101611がリソース101612にアクセスできるかを示す。
【0026】
個別アクセス制御データ10171は、時刻印(タイムスタンプ)101710を含む。時刻印101710は、年101711、月101712、日101713、時101714、分101715及び秒101716のデータを含む。
【0027】
図4には、本発明の実施形態におけるアクセス種別101613の値を示す図である。
【0028】
図4において、「アクセス不可(n)」は「00」、「読み出しのみ可能(r)」は「01」、「読み出し、書き込み可能(rw)」は「02」とする。
【0029】
図5は、本発明の実施形態のAPの値を示す図である。ノード1(101)のAP1(AP10151)の値は「01」、AP2(AP10152)の値は「02」、AP3(AP10153)の値は「03」とする。
【0030】
図6は、本発明の実施形態のリソース101612の値を示す。ファイルA11(20)の値は「01」、ファイルB11(21)の値は「02」と、ファイルC11(22)の値は「03」とする。
【0031】
図7は、本発明の実施形態の共通アクセス制御データ10161と個別アクセス制御データ10171とを含むポリシファイル10121の、具体的な数値例を示す図である。
【0032】
図7は、リソース101612をファイルA11(20)、ファイルB11(21)、ファイルC11(22)とし、アプリケーションプログラムが、ノード1(101)のAP1(10151)、AP2(10152)、AP3(10153)である場合のポリシファイル10121を例として示し、特に、AP1(10151)がファイルA11(20)をアクセスする場合を示す。図7において、リソースがファイルA11(20)で、アプリケーションプログラムがAP1(10151)の共通アクセス制御データ10161は、アクセス種別101613を「02」とする。これは、「ノード1(101)のAP1(10151)は、ファイルA11(20)に対して、読み出し及び書き込みは可能である。」ことを意味する。個別アクセス制御データ10171の時刻印101710は、「20080521102800」である。これは、2008年5月21日10時28分00秒に更新されたことを示す。ファイルB11(21)及びファイルC11(22)のポリシデータも、同様の意味を持つ。
【0033】
図8は、本発明の実施形態のトランザクション処理の流れを示す図である。ノード1〜6(101〜151)は、端末1から電文を受信し、電文に相当するトランザクション処理を実行し、結果を端末1に返す処理の概要を示す。図8は、例として、ノード1(101)が電文を受信する場合を示す。まずノード1は、端末1から電文を受信し、受信した電文を解析し、電文に該当するトランザクションを実行する(ステップ30)。
【0034】
トランザクションの実行後、ノード1(101)は、トランザクションによって実行されたアプリケーションがアクセスしようとするリソースへのアクセスを、ポリシファイル10121で一括して判定する(ステップ31)。判定の結果、リソースへのアクセスがそれぞれ可能であると判定された場合、ノード1(101)は、トランザクションの処理を続ける。図8は、リソースがディスクに格納されているファイルA11(20)、ファイルB11(21)、ファイルC11(22)である場合を例示する。ノード1(101)は、ディスクからのデータの読み出し(ステップ32)、ディスクへのデータの書き込み(ステップ33)、を処理し、処理結果の電文を端末1に送信して、トランザクションを終了する(ステップ34)。図8に示す例では、トランザクションはAP1(10151)を実行し、AP1(10151)では、ファイルB11とファイルC11とを読み出し(ステップ321、ステップ322)、その結果をファイルA11に書き込む(ステップ331)場合を示す。
【0035】
図9は、本発明の実施形態のポリシファイルの通信処理を示すシーケンス図である。
【0036】
主ノード101は、多数決処理とトランザクション処理を実行し、副ノード111〜151は主ノード101のポリシファイル10121のコピーを所有する。図9では、ノード1(101)を主ノード、ノード2(111)からノード6(151)を副ノードとする。なお、本通信処理は、トランザクションの実行とは別に定期的に実施されてもよいし、トランザクションが発生する毎にトランザクション処理が開始される前に実行されてもよい。
【0037】
まず、主ノード101から副ノード111〜151へのポリシファイル10121の通信処理を示す。主ノード101は、通信に必要となるCPU102やネットワーク2などのリソースの負荷を監視する(ステップ40)。リソースの負荷が通信に適した使用率である場合、主ノード101は、ポリシファイル10121を副ノード111〜151に送信する(ステップ41)。
【0038】
副ノード111〜151は、ポリシファイル10121を受信し(ステップ41)、受信したポリシファイル10121の時刻印101710を判定する。正常値であると判定した場合、副ノード111〜151は、時刻印101710が判定された時刻(又は、時刻印101710が更新された時刻)を時刻印101710に入力する(ステップ43)。なお正常値とは、時刻印101710の値が、時刻印101710の月101712の値が1から12で、日101713の値がポリシファイル10121を判定した時の年101711と月101712を考慮し実在する日であり、時101714の値は0から23であり、分101715の値は0から59であり、秒101716の値は0から59の範囲内である場合に正常値とされる。なお、ポリシファイル10121を受信した時刻よりも過去を示す時刻であることを正常値の条件としてもよい。
【0039】
次に、副ノード111〜151から主ノード101へのポリシファイル10121の通信処理を示す。副ノード111〜151も主ノード101と同様に、負荷を監視する(ステップ45)。負荷が通信に適した使用率である場合、副ノード111〜151は、副ノード111〜151が持つポリシファイル10121を主ノード101に送信する(ステップ46)。送信するポリシファイル10121は、ポリシファイル10121の全体を送信してもよいし、各副ノード111〜151に関するポリシデータのみを送信してもよい。
【0040】
主ノード101は、ポリシファイル10121を受信し(ステップ47)、受信したポリシファイル10121の時刻印101710を判定する。時刻印101710が正常値である場合、時刻印101710に時刻印101710が判定された時刻を入力する(ステップ48)。
【0041】
主ノード101は、主ノード101で実行するトランザクションがある場合、トランザクションがアクセスするリソースのアクセス制御について、多数決処理を実行する(ステップ49)。
【0042】
図10は、本発明の実施形態のポリシファイル10121の状態とその状態遷移を示す図である。ポリシファイル10121の状態は、正常状態60、異常状態61、保留状態62の三つがある。
【0043】
正常状態60は、多数決処理の結果が多数側であり、かつポリシファイル10121の時刻印101710が示す時刻から、現在時刻までの時間が有効時間内の場合のポリシファイル10121の状態である。なお有効時間とは、任意に定めた時間であり、時刻印101710が示した時刻から、ポリシファイル10121が有効時間内に判定されない場合、改ざんの可能性が高いものとするものである。
【0044】
異常状態61は、多数決処理の結果が少数側であり、又は、ポリシファイル10121の時刻印101710が示す時刻が、改ざんが検出された時刻より前の時刻を示す場合のポリシファイル10121の状態である。
【0045】
保留状態62は、ポリシファイル10121の時刻印101710が示す時刻から、現在時刻までの時間が有効時間よりも長いポリシファイル10121の状態である。
【0046】
各ノード(101〜151)は、ポリシファイル10121の多数決処理を行い、自ノードのポリシファイル10121が多数側であり、かつ時刻印101710が有効期限内の時刻を示す場合は、ポリシファイル10121を正常状態60のままとする(63)。
【0047】
同様に各ノード(101〜151)は、ポリシファイル10121の多数決処理を行い、多数決処理の結果が少数側である場合は改ざん発生と判定し、ポリシファイル10121を正常状態60から異常状態61とする(64)。また、各ノード(101〜151)は、改ざんされたポリシデータの時刻印101710が示す時刻よりも古い時刻を示すポリシデータを持つポリシファイル10121がある場合も、ポリシファイル10121を異常状態61とする(65)。
【0048】
さらに、各ノード(101〜151)は、ポリシファイル10121の時刻印101710が示す時刻から、有効時間を経過すると、ポリシファイル10121を正常状態60から保留状態62にする(66)。異常状態61、あるいは保留状態62は、後述の回復処理により、正常状態60に戻される(67、68)。
【0049】
なお、ポリシファイル10121の正常状態、異常状態、保留状態は、ポリシファイル10121に含まれるポリシデータに付されてもよい。
【0050】
図11は、本発明の実施形態の主ノードのポリシファイル10121の例を示す説明図である。
【0051】
主ノード101のポリシファイル10121は、全ノード(101〜151)のポリシデータをすべて含む。図11は、AP1(10151)がファイルA11(20)にアクセスするためのアクセス権を示す例である。図11に示す例では、ポリシファイル10121は、有効時間を前回更新してから60分と設定されている。また、共通アクセス制御データ10161の値は、「AP1(10151)はファイルA11(20)読み取りと書き込みがともに可能である」ことを意味する「010102」が正しい値とする。なお、経過時間28は、図11に示す例においてはポリシファイル10121のデータ列として設けたが、個別アクセス制御データ10171の時刻から判定までの時刻の差分を随時求めてもよい。
【0052】
図11のノード1(101)、ノード2(111)及びノード3(121)のポリシファイル10121は、共通アクセス制御データ10161の値が「010102」であり、個別アクセス制御データ10171も正常値であり、経過時間28も60分より短いため、改ざんされておらず、正常状態60である。ノード4(131)のポリシファイル10121は、共通アクセス制御データ10161が「010101」に改ざんされている。ノード5(141)のポリシファイル10121は、個別アクセス制御データ10171が「20081321103200」であり、2008年13月21日10時32分00秒を意味し、正常値ではないため、改ざんされている。ノード6(151)のポリシファイル10121は、共通アクセス制御データ10161と個別アクセス制御データ10171は改ざんされていないが、経過時間28が1時間30分と、有効時間を過ぎている。
【0053】
図12は、本発明の実施形態の主ノード101がポリシファイル10121を副ノード111〜151に送信する処理手順を示すシーケンス図である。
【0054】
まず、前回のポリシファイル10121の送信(ステップ100)から定められた更新時間が経過する(ステップ101)。更新時間は、任意に定められるものとし、ポリシファイル10121の更新を一定時間の間隔で実施する場合に定められる。
【0055】
ノード1(101)は、ネットワーク2とCPU102の使用率を測定する(ステップ102)。ノード2〜6(111〜151)は、各々のCPUの使用率を測定する(ステップ103、104)。ノード1(101)は、CPU102とネットワーク2の負荷を監視し、これらの負荷が通信に適した使用率である場合、ポリシファイル10121を副ノード111〜151に送信する。
【0056】
ノード1(101)からノード6(151)の各CPU102及びネットワーク2の負荷が通信に適している場合、ノード1(101)は、ポリシファイル10121をノード2〜6(111〜151)に送信する(ステップ110)。ノード2〜6(111〜151)は、ポリシファイル10121を受信し(ステップ111、112)、ポリシファイル10121の時刻印101710を判定する(ステップ121、122)。
【0057】
時刻印101710の値は、時刻印101710の月101712の値が1から12で、日101713の値がポリシファイル10121を判定した時の年101711と月101712を考慮し実在する日であり、時101714の値は0から23であり、分101715の値は0から59であり、秒101716の値は0から59の範囲内である場合に正常値と判定される。なお、ポリシファイル10121を受信した時刻よりも過去を示す時刻であることを正常値の条件としてもよい。そして、時刻印101710が正常値ではない場合、ノード2〜6(111〜151)は、ポリシファイル10121が改ざんされたと判断し(ステップ123、124)、ポリシファイル10121を異常状態61とする。一方、時刻印101710が正常値の場合は、ノード2〜6(111〜151)は、時刻印101710を判定時の時刻に更新する(ステップ125、126)。
【0058】
なお、ノード1(101)からノード2〜6(111〜151)へポリシファイル10121を送信する前に、ノード1(101)で時刻印101710を判定し、更新してもよい。時刻印101710の判定は、ノード1(101)またはノード2〜6(111〜151)の少なくとも一方で実施されていればよい。
【0059】
また、ポリシファイル10121の状態である正常状態、異常状態は、ポリシファイル10121にフラグとして付してもよく、ポリシデータにフラグとして付してもよい。
【0060】
CPU102とネットワーク2の負荷が通信に適した使用率にならず、有効時間が経過した場合(ステップ130)、ノード1(101)は、ネットワーク2及びCPU102の使用率にかかわらず、ポリシファイル10121をノード2〜6(111〜151)に送信する(ステップ131)。ノード2〜6(111〜151)は、ステップ111〜126を実行する。
【0061】
図13は、本発明の実施形態における副ノード111〜151から主ノード101へポリシファイル10121を送信する処理手順を示すシーケンス図である。
【0062】
副ノード111〜151からの前回のポリシファイル10121の送信(ステップ200、201)から、定められた更新時間が経過する(ステップ202、203)。副ノード111〜151は、各CPU102の使用率を測定する(ステップ210〜212)。各CPU102の負荷が通信に適した使用率である場合、副ノード111〜151は、ポリシファイル10121を主ノード101に送信する(ステップ220、221)。
【0063】
なお、副ノード111〜151から主ノード101へ、ポリシファイル10121を送信してもよいし、各副ノード111〜151に関するポリシデータを抽出して送信してもよい。また、ポリシデータを抽出して送信する場合は、正常状態のポリシデータを送信してもよい。
【0064】
主ノード101は、ポリシファイル10121を受信する(ステップ230)。ポリシデータが副ノード111〜151から送信された場合は、主ノード101は、ポリシデータをマージし、主ノード101のポリシファイル10121を作成する。主ノード101はポリシファイル10121を判定する(ステップ231)。図12のステップ123及びステップ124と同様に、判定の結果において、時刻印101710が正常値ではない場合、ポリシファイル10121の改ざんを検出したものとし(ステップ232)、主ノード101はポリシファイル10121を異常状態61にする。正常値である場合は、主ノード101は時刻印101710を判定の時刻に更新する(ステップ233)。
【0065】
CPU102の負荷が通信に適した使用率にならず、副ノード111〜151の経過時間28が有効時間を超過する(ステップ240、241)と、CPU102の使用率にかかわらず、副ノード111〜151は、ポリシファイル10121を主ノード101に送信し(ステップ131)、主ノード101は、ステップ200〜232を行う。
【0066】
次に、図14と図15を用いて、トランザクション処理におけるポリシファイル10121の多数決処理について示す。
【0067】
図14は、本発明の実施形態のトランザクション処理の全体の処理手順を示すフローチャートである。
【0068】
トランザクション処理の概要は、図8に示した流れである。図14では、ノード1(101)上でトランザクションが実行される場合を例に示す。ノード1(101)は端末1からネットワーク2を経由して、電文を受信する(ステップ300)。ノード1(101)は、電文を解析し、「ファイルB11(21)とファイルC11(22)とからデータを読み出し、ファイルA11(20)にデータを書き込む。その結果を端末1に送信する。」というトランザクションを実行する。
【0069】
その後トランザクションは、ノード1(101)に保持されるリソース管理テーブルから自らがアクセスすべきファイルを認識する(ステップ302)。なお、リソース管理テーブルについての詳細は、後述の図17において示す。図14に示す処理では、トランザクションがアクセスすべきリソースは、すべてリソース管理テーブルに登録されている。次に、トランザクションは、アクセスするファイルのアクセス権が許可されているか否かを判定するため、多数決処理を一括で実行する(ステップ310)。多数決処理の後、アクセスする全てのファイルがアクセス可能であれば、トランザクションは処理を続ける(ステップ311、ステップ312)。一方、アクセスするファイルがアクセス不可である場合は、トランザクションは処理を中断する(ステップ311、ステップ313)。
【0070】
実行結果は電文として端末1に送信され、トランザクションが終了する(ステップ340)。
【0071】
図15は、図14の一括多数決処理(ステップ310)の詳細なフローチャートである。図15では、図11のポリシファイル10121を用いて一括多数決処理を説明する。
【0072】
ノード1(101)は、ポリシファイル10121の共通アクセス制御データ10161を読み出す(ステップ400)。ノード1(101)は、同様に個別アクセス制御データ10171である時刻印101710を読み出す(ステップ401)。
【0073】
ノード1(101)は、時刻印101710が正常値であるか否かを判定する(ステップ420)。判定の方法は、図12のステップ121、122と同じである。
【0074】
図11に示す例では、ノード4(131)のポリシデータは、共通アクセス制御データ10161の値が「010101」に改ざんされているが、個別アクセス制御データ10171の値は正常値であるので、ステップ420の段階ではノード4(131)のポリシデータは、異常状態61としない。ノード5(141)は、個別アクセス制御データ10171が「20081321103200」に改ざんされており、月101712が「13」になっているため、時刻印101710が正常値ではないとして、ノード5(141)のポリシデータは異常状態61とされる。なお、ポリシデータの状態を異常状態61としたが、ポリシファイル10121の状態を異常状態61としてもよい。
【0075】
次に、ノード1(101)は、時刻印101710の時刻と、多数決処理を実施した時刻との差分を経過時間28とし、時刻印101710の経過時間28は有効時間内か否かを判定する。有効時間を経過している場合(ステップ427)は、ポリシデータの状態を保留状態62にする(ステップ428)。図11に示す例では、ノード6(141)の経過時間は1時間30分であり、有効時間を越えている。このため、ノード6(141)のポリシデータの状態を保留状態62とする。なお、ポリシデータの状態を保留状態62としたが、ポリシファイル10121の状態を保留状態62としてもよい。
【0076】
更に、ノード1(101)は、状態が異常状態61又は保留状態62であるポリシファイル10121又はポリシデータを、多数決の候補からはずす(ステップ430)。図11に示す例では、ノード1(101)は、異常状態61であるノード5(141)と保留状態62であるノード6(141)とのポリシファイル10121又はポリシデータを多数決の候補からはずす。
【0077】
そして、ノード1(101)は、残ったノード1(101)、ノード2(111)、ノード3(121)及びノード4(131)のポリシデータを順に読み出し、共通アクセス制御データ10161が同値であるポリシファイル10121をカウントアップする(ステップ431)。このカウントアップした数が全体のポリシデータの数の過半数以上か否かを判定する(ステップ440)。カウントアップした数が過半数に達していなければ、再度ポリシファイル10121を読み出す(ステップ441)。一方、カウントアップした数が、過半数に達していれば、過半数となった共通アクセス制御データ10161を正常値とする(ステップ450)。
【0078】
図11に示す例では、共通アクセス制御データ10161の値が「010102」の数は、ノード1(101)からノード3(121)の「3」であり、「010101」の数はノード4(131)の「1」である。この結果、共通アクセス制御データ10161の「010102」が正常値と判断される。
【0079】
ノード1(101)は、ポリシファイル10121の正常値を決定した後、少数側の共通アクセス制御データ10161を持つポリシデータの状態を異常状態61とする(ステップ451)。図11の例では、ノード1(101)は、ノード4(131)のポリシデータの状態を、異常状態61とする
以上のステップを処理した後、多数決処理は終了する。
【0080】
図8、図16及び図17を用いて、トランザクション処理の処理手順を示す。
【0081】
図16は、本発明の実施形態におけるトランザクション処理の処理手順を示すフローチャートである。
【0082】
図16では、実行されるトランザクションをトランザクション−Aとし、トランザクション−A(Tr−A)は、AP1(10151)を実行し、Tr−AはAP1(10151)を用いて、ファイルB11(21)とファイルC11(22)を順に読み出し、その結果をファイルA11(20)に書き込む。ファイルA11(20)、ファイルB11(21)、ファイルC11(22)のアクセス種別101613は、図7に示すポリシファイル10121のアクセス種別101613と同じである。
【0083】
ノード1(101)は、端末1から電文を受信し、Tr−Aを開始する(ステップ500)。Tr−Aは、アクセスする対象となるリソースを認識する(ステップ302)。Tr−Aがアクセスするリソースは、ファイルA11(20)、ファイルB11(21)、ファイルC11(22)のファイルである。
【0084】
図17は、本発明の実施形態のTr−Aのリソース管理テーブル550を示す図である。
【0085】
本実施形態では、Tr−Aが実行される前の段階では、リソース管理テーブル550には、ファイルA11(20)とファイルB11(21)のみが登録されており、ファイルC11(22)は登録されていない。リソース管理テーブル550には、ファイルA11(20)とファイルB11(21)が登録されているため、ファイルA11(20)とファイルB11(21)のアクセス権について多数決処理を一括(以下、一括多数決処理)して行う(ステップ501)。
【0086】
ステップ502において、Tr−Aは、ファイルB11(21)の読み出し処理を行う。Tr−Aは、ファイルB11(21)が、一括多数決処理済みか否かを判定する(ステップ502)。ファイルB11(21)は、ステップ501で一括多数決処理済みなので、Tr−Aは、ファイルB11(21)のアクセス権が許可されているか否かを判定する(ステップ510)。ファイルB11(21)のアクセス権は、図7に示す例より、読み出し可なので、ファイルB11(21)をノード1(101)のメモリ103又はディスク装置107から読み出す(ステップ512)。なお、ステップ510で、ファイルB11(21)にアクセス権が許可されていないと判定された場合、Tr−Aは、ファイル11(21)へのアクセス不可を通知し、Tr−Aを中断する。ファイルB11(21)の読み出し終了後、Tr−Aは、全てのアクセスすべきファイルにアクセスしたか判定し、アクセスすべきファイルが他にある場合は、ステップ502に戻る(ステップ520)。
【0087】
次に、Tr−Aは、ファイルC11(22)の読み出し処理を行う。Tr−Aは、ファイルC11(22)が、一括多数決処理済みか否かを判定する(ステップ502)。ファイルC11(22)は、Tr−A開始時にリソース管理テーブル550に登録されておらず、ステップ501で一括多数決処理を行っていないので、Tr−Aは、多数決処理によって、ファイルC11に対するAP1のアクセス種別101613の正常値を判定する(ステップ503)。そして、Tr−Aは、ファイルC11(22)をリソース管理テーブル550に登録する(ステップ504)。次に、Tr−Aは、ファイルC11(22)のアクセス権が許可されているか否かを判定する(ステップ510)。ファイルC11(22)のアクセス権は、図7に示す例より、読み出し可なので、Tr−Aは、ファイルC11(22)をノード1(101)のメモリ103若しくはディスク装置107から読み出す(ステップ512)。ファイルC11(22)の読み出し終了後、Tr−Aは、全てのアクセスすべきファイルにアクセスしたか判定し、アクセスすべきファイルが他にある場合は、ステップ502に戻る(ステップ520)。
【0088】
次に、Tr−Aは、ファイルA11(20)に書き込み処理をする。Tr−Aは、ファイルA11(20)が、一括多数決処理済みか否かを判定する(ステップ502)。ファイルA11(20)はステップ501で一括多数決済みなので、Tr−Aは、ファイルA11(20)のアクセス権が許可されているか否かを判定する(ステップ510)。ファイルA11(20)のアクセス権は、図7の例より、読み出し書き込み可なので、Tr−Aは、ノード1(101)のメモリ103又はディスク装置107のファイルA11(20)に書き込む(ステップ512)。
【0089】
Tr−Aは、全てのファイルをアクセスしたか否かを判定し(ステップ520)、全てのファイルにアクセスした場合は、端末1へ電文を送信し、Tr−Aを終了する(ステップ521)。
【0090】
リソース管理テーブル550に登録されているリソースは、トランザクション処理の最初にアクセス制御をするために、一括多数決処理される。図17に示す例では、リソース管理テーブル550は、Tr−Aのトランザクションに、ファイルA11(20)とファイルB11(21)が登録されている。すなわち、ファイルA11(20)及びファイルB11(21)のアクセス制御は一括多数決処理が実行済みであるが、ファイルC11(22)のアクセス制御は多数決処理が未実行の状態である。ファイルC11(22)は、図16に示したとおり、Tr−Aの処理の中で、多数決処理されたので、リソース管理テーブル550に登録される(ステップ504)。
【0091】
図18及び図19は、ポリシファイル10121の回復処理を示す図である。
【0092】
図18は、本発明の実施形態の主ノードのポリシファイル10121の回復処理を示す図である。
【0093】
図18に示す例では、主ノード101のポリシファイル10121が多数決処理されたことにより、主ノード101のポリシファイル10121は改ざん又は改ざんの可能性のある状態である。
【0094】
主ノード101は、多数決処理を実行し、異常状態61又は保留状態62のポリシファイル10121を持つ(ステップ600)。主ノード101は、あらかじめディスク装置107にマスターのポリシファイルを持っており、主ノード101のポリシファイル10121が異常状態61又は保留状態62と判定された場合、ディスク装置107からマスターのポリシファイルを読み出す(ステップ601)。主ノード101は、異常状態61又は保留状態62のポリシファイル10121を、ディスク装置107から読み出したマスターのポリシファイルで上書きし、ポリシファイル10121の時刻印101710を上書きした時刻に更新する(ステップ602)。上書きと同時に、主ノード101は、主ノード101のポリシファイル10121を、正常状態60とする。なお、主ノード101は、異常状態61又は保留状態62の状態にあるポリシデータに対応した、マスターのポリシファイルのポリシデータを取り出し、異常状態61又は保留状態62の状態にあるポリシデータに置き換えてもよい。次に、主ノード101は、主ノード101のポリシファイル10121を副ノード111〜151に送信する(ステップ603)。
【0095】
副ノード111〜151は、ポリシファイル10121を主ノード101から受信し(ステップ610、611)、受信したポリシファイル10121を判定する(ステップ612、613)。ポリシファイル10121の判定方法は、図12のステップ121、122と同じである。判定の結果、時刻印101710が正常値である場合、副ノード111〜151は、ポリシファイル10121の時刻印101710を判定した時刻の数値に更新する(ステップ616、617)。副ノード111〜151は、副ノード111〜151のポリシファイル10121を主ノード101に送信する(ステップ618、619)。
【0096】
主ノード101は、ポリシファイル10121を受信し(ステップ610、611)、ポリシファイル10121を判定する(ステップ621)。ポリシファイル10121の判定方法は、図12のステップ121、122と同じである。判定の結果、時刻印101710が正常値である場合、主ノード101は、ポリシファイル10121の時刻印101710を判定した時刻に更新する(ステップ623)。
【0097】
図19は、本発明の実施形態の副ノード111〜151におけるポリシファイル10121の回復処理を示す図である。図19に示す例では、ノード2(111)が副ノードである。
【0098】
副ノード111は、ポリシファイル10121の判定の際に、改ざんを検出した。この判定において、ポリシファイル10121の状態は異常状態61若しくは保留状態62になった(ステップ700)。主ノード101は、主ノード101のポリシファイル10121を送信する(ステップ701)。副ノード111は、ポリシファイル10121を受信し(ステップ702)、ポリシファイル10121を判定する(ステップ703)。ポリシファイル10121の判定方法は、図12のステップ125と同じである。判定の結果、時刻印101710が正常値である場合、副ノード111は、ポリシファイル10121の時刻印101710を判定した時刻の値に更新する(ステップ705)。
【0099】
図20は、本発明の実施形態の個別アクセス制御データ10171の時刻印101710により、改ざんの時刻範囲の特定を説明する図である。
【0100】
図20に示す例では、ノード1(101)は、ファイルA11(20)とファイルB11(21)へのアクセスに関するノード1〜6(101〜151)のポリシデータを所有し、これらのポリシデータ又はポリシファイル10121について多数決処理を行う。
【0101】
ノード1(101)は、ファイルA11(20)へのアクセス時に、多数決処理を実行する。A11(20)に関するノード4(131)のポリシデータは、共通アクセス制御データ10161が「010101」に改ざんされている。A11(20)に関するノード6(151)のポリシデータは、個別アクセス制御データ10171が改ざんされている。このため、図20に示す例のファイルA11のポリシデータの個別アクセス制御データ10171において、ノード6(151)の(20080521093300:2008年5月21日9時33分00秒)からノード4(131)の(20080521103200:2008年5月21日10時32分00秒)までの範囲内で改ざんが発生したと特定する。
【0102】
一方、ファイルB11に関するノード1〜6(101〜151)のポリシデータの共通アクセス制御データ10161は、全て一致しており、正常であり、個別アクセス制御データ10171は改ざんされていない。しかし、個別アクセス制御データ10171のノード6の(20080521095300:2008年5月21日9時53分00秒)は、上記のポリシデータの改ざんの範囲に入るため、改ざんと判定(図10における処理65)し、ポリシデータは異常状態となる。このファイルB11に関するノード6のポリシデータは、多数決の候補からはずされ、回復処理によって正常状態に戻される。
【0103】
以上のように、ポリシファイル10121に制御データに時刻印を設け、ノード間でポリシファイル10121を転送し、ポリシファイル10121の多数決などの判定により、改ざん時刻を特定する。
【0104】
以上、説明したように、本実施形態では、ポリシファイル10121へのアクセスに伴い、複数のノード間で多数決処理をするにあたり、ポリシファイル10121に時刻印101710を付することによって、多数決処理前にポリシファイル10121の改ざんを早期に見つけることができ、改ざんのあった時刻を特定することができる。また、改ざんが見つかったポリシファイル10121を多数決処理からはずすことにより、多数決処理に要する負荷を低減することができる。また、本実施形態の多数決処理は、CPU102やネットワーク2の負荷が小さい時にノード間で通信するため、他トランザクションに影響を与えない。
【0105】
セキュアOSやアクセス制御では、不正アクセスやデータ漏洩を防止するために、ポリシファイル10121は改ざんされていないという完全性が要求されている。本発明では、ポリシファイル10121を複数のノードに分散させて、アクセス時には多数決処理を行うため、セキュアOSやアクセス制御に適用可能である。また、ポリシファイル10121以外にも、適用可能である。
【図面の簡単な説明】
【0106】
【図1】本発明の実施形態のシステム構成図である。
【図2】本発明の実施形態のノードの構成図である。
【図3】本発明の実施形態のポリシファイルの共通アクセス制御データと個別アクセス制御データを示す図である。
【図4】本発明の実施形態のアクセス種別の値を示す図である。
【図5】本発明の実施形態のAPの値を示す図である。
【図6】本発明の実施形態のリソースの値を示す図である。
【図7】本発明の実施形態の共通アクセス制御データと個別アクセス制御データから構成されるポリシファイルの具体的な数値例を示す図である。
【図8】本発明の実施形態のトランザクション処理の流れを示す図である。
【図9】本発明の実施形態のポリシファイルの通信処理を示すシーケンス図である。
【図10】本発明の実施形態のポリシファイルの状態とその状態遷移を示す図である。
【図11】本発明の実施形態の主ノードのポリシファイルの例を示す説明図である。
【図12】本発明の実施形態の主ノードがポリシファイルを副ノードに送信する処理手順を示すシーケンス図である。
【図13】本発明の実施形態の副ノードが主ノードのポリシファイルを主ノードに送信する処理手順を示すシーケンス図である。
【図14】本発明の実施形態のトランザクション処理の全体の処理手順を示す図である。
【図15】本発明の実施形態の一括多数決処理の詳細なフローチャートである。
【図16】本発明の実施形態のトランザクション処理の処理手順を示すフローチャートである。
【図17】本発明の実施形態のTr−Aのリソース管理テーブルを示す図である。
【図18】本発明の実施形態の主ノードにおけるポリシファイルの回復処理を示す図である。
【図19】本発明の実施形態の副ノードにおけるポリシファイルの回復処理を示す図である。
【図20】本発明の実施形態の個別アクセス制御データの時刻印により、改ざんの時刻範囲の特定を説明する図である。
【符号の説明】
【0107】
1 端末
2 ネットワーク
101 ノード1
111 ノード2
121 ノード3
131 ノード4
141 ノード5
151 ノード6
102 CPU
103 メモリ
104 IOP
105 NIC
106 ディスクコントローラ
1010 仮想化プログラム
10111 OS1
10121 ポリシファイル
10131 多数決処理部
10151 AP1
10161 共通アクセス制御データ
10171 個別アクセス制御データ
101611 AP
101612 リソース
101613 アクセス種別
101710 時刻印

【特許請求の範囲】
【請求項1】
主ノード及び複数の副ノードを備え、前記主ノード及び前記複数の副ノードをネットワークによって接続した計算機システムにおいて、
前記主ノード及び前記複数の副ノードの各々は、
他の前記ノードと接続されるインターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
リソースへのアクセスを制御するためのポリシファイル、及び前記ポリシファイルを参照してアクセスを制御するための多数決処理を行う多数決処理部を備え、
前記ポリシファイルは、1以上のポリシデータを含み、
前記ポリシデータは、前記各ノードに共通のアクセス制御を示すデータ、及び時刻印のデータを含み、
前記ノードは、
前記多数決処理を実行する前に、前記時刻印が正常値であるか否かを判定し、
前記時刻印が正常値である前記ポリシファイルの状態を正常状態に設定し、
前記正常状態の前記ポリシファイルのみを用いて、前記多数決処理を実行することを特徴とする計算機システム。
【請求項2】
前記ノードは、前記多数決処理の結果、少数側となった前記ポリシファイルの状態を異常状態に設定することを特徴とする請求項1に記載の計算機システム。
【請求項3】
前記時刻印は、年、月、日、時、分及び秒のデータを含み、
前記ノードは、前記月のデータが1から12であり、前記日のデータが前記年及び前記月を考慮した実在する値であり、前記時のデータが0から23であり、前記分のデータが0から59であり、前記秒のデータが0から59であり、かつ、前記時刻印が判定時より過去の日時である場合、前記時刻印が正常値であると判定し、
前記条件の少なくとも一つを満たさない場合、前記時刻印が異常値であると判定し、
前記時刻印が異常値である前記ポリシファイルの状態を異常状態に設定することを特徴とする請求項1に記載の計算機システム。
【請求項4】
前記ノードは、
前記ポリシファイルを、他の前記ノードに送信し、
前記ポリシファイルを受信した後に、前記受信したポリシファイルに含まれる時刻印が正常値であるか否かを判定し、
前記判定されたポリシファイルの時刻印を、前記判定時の時刻に更新することを特徴とする請求項1に記載の計算機システム。
【請求項5】
前記ノードは、前記ポリシファイルを、他の前記ノードに送信し、
前記各ノードは、
前記ポリシファイルの送信時に、前記ポリシファイルの時刻印が正常値であるか否かを判定し、前記判定されたポリシファイルの時刻印を前記判定時の時刻に更新することを特徴とする請求項1に記載の計算機システム。
【請求項6】
前記ポリシファイルには、前記ポリシファイルが有効である有効時間が設定されており、
前記ノードは、前記時刻印と現在時刻の差が前記有効時間を経過した場合、前記ポリシファイルを他の前記ノードに送信することを特徴とする請求項1に記載の計算機システム。
【請求項7】
前記ノードは、
前記ノードで実行されるトランザクションと、前記トランザクションによってアクセスされるリソースとの対応を規定するリソース管理情報を備え、
前記リソース管理情報に規定されたリソースのアクセスを制御するための多数決処理を、前記トランザクションの実行開始時に一括して行うことを特徴とする請求項1に記載の計算機システム。
【請求項8】
前記ポリシファイルには、前記ポリシファイルが有効である有効時間が設定されており、
前記ノードは時刻印と現在時刻との差が前記有効時間を経過した場合、前記ポリシファイルの状態を保留状態に設定し、
前記保留状態の前記ポリシファイルを用いずに、前記多数決処理を実行することを特徴とする請求項1に記載の計算機システム。
【請求項9】
前記ノードは、前記ポリシファイルの状態が前記異常状態、及び前記保留状態である場合、前記正常状態に状態を回復する回復処理を実行することを特徴とする請求項1に記載の計算機システム。
【請求項10】
前記ノードは、
前記ポリシファイルの時刻印によって、前記ポリシファイルの改ざんの発生時刻を特定し、
前記時刻印が前記特定された改ざんの発生時刻より後の時刻である前記ポリシファイルの状態を異常状態に設定することを特徴とする請求項1に記載の計算機システム。
【請求項11】
主ノード及び複数の副ノードを備え、前記主ノード及び前記複数の副ノードをネットワークによって接続した計算機システムにおける処理方法であって、
前記主ノード及び前記複数の副ノードの各々は、
他の前記ノードと接続されるインターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
リソースへのアクセスを制御するためのポリシファイル、及び前記ポリシファイルを参照してアクセスを制御するための多数決処理を行う多数決処理部を備え、
前記ポリシファイルは、1以上のポリシデータを含み、
前記ポリシデータは、前記各ノードに共通のアクセス制御を示すデータ、及び時刻印のデータを含み、
前記方法は、
前記ノードが、前記多数決処理を実行する前に、前記時刻印が正常値であるか否かを判定し、
前記ノードが、前記時刻印が正常値である前記ポリシファイルの状態を正常状態に設定し、
前記ノードが、前記正常状態の前記ポリシファイルのみを用いて、前記多数決処理を実行することを特徴とする処理方法。
【請求項12】
前記ノードは、前記多数決処理の結果、少数側となった前記ポリシファイルの状態を、異常状態に設定することを特徴とする請求項11に記載のデータ処理方法。
【請求項13】
前記時刻印は、年、月、日、時、分及び秒のデータを含み、
前記方法は、前記時刻印が正常値であるか否かを判定するステップにおいて、
前記月のデータが1から12であり、前記日のデータが前記年及び前記月を考慮した実在する値であり、前記時のデータが0から23であり、前記分のデータが0から59であり、前記秒のデータが0から59であり、かつ、前記時刻印が判定時より過去の日時である場合、前記時刻印が正常値であると判定し、
前記条件の少なくとも一つを満たさない場合、前記時刻印が異常値であると判定することを特徴とする請求項11に記載の処理方法。
【請求項14】
主ノード及び複数の副ノードを備え、前記主ノード及び前記複数の副ノードをネットワークによって接続した計算機システムにおけるノードにデータを処理させるためのプログラムであって、
前記主ノード及び前記複数の副ノードの各々は、
他のノードと接続されるインターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
リソースへのアクセスを制御するためのポリシファイル、及び前記ポリシファイルを参照してアクセスを制御するための多数決処理を実行し、
前記ポリシファイルは、1以上のポリシデータを含み、
前記ポリシデータは、前記各ノードに共通のアクセス制御を示すデータ、及び時刻印のデータを含み、
前記プログラムは、
前記多数決処理を実行する前に、前記時刻印が正常値であるか否かを判定する手順と、
前記時刻印が正常値である前記ポリシファイルの状態を正常状態に設定する手順と、
前記正常状態の前記ポリシファイルのみを用いて、前記多数決処理を実行する手順とを、前記ノードに実行させるプログラム。
【請求項15】
前記多数決処理の結果、少数側となった前記ポリシファイルの状態を、異常状態に設定する手順を、前記ノードに実行させる請求項14に記載のプログラム。
【請求項16】
前記時刻印は、年、月、日、時、分及び秒のデータを含み、
前記時刻印が正常値であるか否かを判定する手順は、
前記月のデータが1から12であり、前記日のデータが前記年及び前記月を考慮した実在する値であり、前記時のデータが0から23であり、前記分のデータが0から59であり、前記秒のデータが0から59であり、かつ、前記時刻印が判定時より過去の日時である場合、前記時刻印が正常値であると判定し、
前記条件の少なくとも一つを満たさない場合、前記時刻印が異常値であると判定することを特徴とする請求項14に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2010−61548(P2010−61548A)
【公開日】平成22年3月18日(2010.3.18)
【国際特許分類】
【出願番号】特願2008−228647(P2008−228647)
【出願日】平成20年9月5日(2008.9.5)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】