説明

ハッシュ値を用いたソフトウェア部品の検証

【課題】航空機上のソフトウェア部品を検証するためのシステムおよび方法を提供する。
【解決手段】航空機上のソフトウェア部品212に対して第1ハッシュ値を計算する。第1ハッシュ値が航空機上に保存されているソフトウェア完全性データ構造からの第2ハッシュ値と一致するか否かについて航空機上で判定する。ソフトウェア完全性データ構造220は、航空機により用いられるソフトウェア部品に対して航空機上で判定されていないハッシュ値を含む。第1ハッシュ値が第2ハッシュ値と一致するか否かに基づいて、検証状況を提供する。第1ハッシュ値が第2ハッシュ値と一致する場合にのみ、航空機上のソフトウェア部品に操作を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して航空機に関し、とりわけ、航空機のソフトウェア部品を管理することに関する。さらにより詳細には、本開示は、航空機のソフトウェア部品を管理し、かつ、ソフトウェア部品に対して操作が行われる前に航空機上のソフトウェア部品を検証するための方法および装置に関する。
【背景技術】
【0002】
現代の航空機は極めて複雑である。例えば、航空機は、数多くの種類の電子システムを搭載している可能性がある。航空機上の電子システムは、ライン交換可能ユニット(LRU)であってもよい。ライン交換可能ユニットは、容易に交換可能なように設計されている。ライン交換可能ユニットは、航空機の飛行中または航空機が地上にある間に交換することができる。ライン交換可能ユニットは、典型的には、箱に梱包されており、密封されていてもよい。
【0003】
電子システムは、さまざまな形態を取る可能性がある。航空機上の電子システムは、例えば限定はされないが、飛行管理システム、自動操縦装置、機内娯楽システム、通信システム、航法システム、飛行制御装置、飛行記録装置および衝突回避システムであってもよい。航空機上のさまざまな電子システムは、デジタル飛行機ネットワークを介して互いに通信することができる。
【0004】
電子システムは、さまざまな操作および機能のための論理または制御を提供するためにソフトウェアまたはプログラミングを用いることがある。これらの電子システムにおいて用いられているソフトウェアは、一般に、航空産業において部品として扱われている。とりわけ、航空機上のライン交換可能ユニットにおける使用のためのソフトウェアアプリケーションは、ライン交換可能ユニット自体とは別々に追跡されてもよい。航空機部品として扱われる航空機のソフトウェアは、読み込み可能なソフトウェア航空機部品、航空機ソフトウェア部品または、単に、ソフトウェア部品と呼ばれてもよい。ソフトウェア部品は、ソフトウェアを操作するハードウェアの一部というよりむしろ航空機構成の一部と考えられる。
【0005】
航空機の運航責任者は、航空機を運航させる実体である。航空機の運航責任者はまた、航空機の整備および修理の責任を負うことがある。航空機の運航責任者は、例として航空会社および軍隊を含む。航空機の運航責任者が航空機を受領するとき、ソフトウェア部品は典型的には、航空機上の電子システムに既にインストールされている。航空機の運航責任者はまた、ソフトウェア部品をインストールし直したり、航空機上の電子システムに読み込み直したりする必要がある場合、これら読み込まれたソフトウェア部品のコピーを受け取ってもよい。
【0006】
ソフトウェア部品の再読み込みが必要となる可能性があるのは、例えば、ソフトウェアが用いられるライン交換可能ユニットが交換または修理される場合である。さらに、航空機の運航責任者はまた、時折ソフトウェア部品の更新を受け取ってもよい。これらの更新は、現在インストールされているソフトウェア部品には存在していない追加の特徴を含んでいてもよく、1つ以上の電子システムに対する更新と考えられてもよい。航空機に読み込まれるソフトウェア部品のすべてを含む航空機の現在の構成が分かるように、航空機へのソフトウェア部品の読み込み中に特定の手順にしたがってもよい。
【0007】
部品が航空機上に読み込まれた後、ソフトウェア部品に対してさまざまな操作を施してもよい。例えば、電子システム上にソフトウェア部品を読み込んでもよく、電子システム上でソフトウェア部品を実行して、ある機能を行ってもよく、ソフトウェア部品を削除してもよく、かつ/または、ソフトウェア部品に対してまたはこれを用いてその他何らかの操作を行ってもよい。ソフトウェア部品は、あらゆる電子システム操作が部品に対して行われる前に検証されてもよい。ソフトウェア部品の検証は、ソフトウェア部品がその元来の形態から変更されていないことを確認するために行ってもよい。ソフトウェア部品を検証するための現在の方法は、デジタル署名に基づいており、かつ、複雑な公開鍵基盤構成要素の使用を要する。これらのプロセスは、望まれるよりも時間と費用がかかることがある。これらのプロセスはまた、すべてのソフトウェア部品の変更、とりわけ、本質的に意図的かつ悪意のある変更を検出する能力についてある特定の限定を有する。
【発明の概要】
【発明が解決しようとする課題】
【0008】
よって、より費用がかからず、かつ、変更されたソフトウェアの使用を防止可能なようにその検出を向上させるソフトウェア部品の検証方法および装置を有することが有利であろう。
【課題を解決するための手段】
【0009】
本開示の有利な実施形態は、航空機上のソフトウェア部品を検証するための方法を提供する。航空機上で、航空機上のソフトウェア部品に対して第1ハッシュ値を計算する。次に、航空機上で、第1ハッシュ値が航空機上に保存されているソフトウェア完全性データ構造からの第2ハッシュ値と一致するか否かを判定する。ソフトウェア完全性データ構造は、航空機により用いられるソフトウェア部品に対して航空機上で判定されていないハッシュ値を含む。検証状況は、第1ハッシュ値が第2ハッシュ値と一致するか否かに基づいて提供される。第1ハッシュ値が第2ハッシュ値と一致する場合にのみ、航空機上のソフトウェア部品に操作を行う。
【0010】
本開示の別の有利な実施形態は、航空機上に保存されているソフトウェア完全性データ構造と、航空機上の計算器と、航空機上の比較器と、を含む装置を提供する。ソフトウェア完全性データ構造は、航空機により用いられるソフトウェア部品に対して航空機上で判定されていないハッシュ値を含む。計算器は、航空機上のソフトウェア部品に対する第1ハッシュ値を計算するよう構成されている。比較器は、第1ハッシュ値がソフトウェア完全性データ構造からの第2ハッシュ値と一致するか否かを判定するよう構成されている。航空機は、第1ハッシュ値が第2ハッシュ値と一致する場合にのみ、ソフトウェア部品に操作を行うよう構成されている。
【0011】
本開示の別の有利な実施形態は、航空機用のソフトウェア部品を検証するための別の方法を提供する。ある数のソフトウェア部品を受領する。ある数のソフトウェア部品の各々に対するハッシュ値を決定して、ある数のハッシュ値を形成する。航空機上のある数のソフトウェア部品に操作を行うか否かの判定に用いるために、ある数のハッシュ値をソフトウェア完全性データ構造にまとめる。
【0012】
特徴、機能および利点は、本開示のさまざまな実施形態において独立して達成可能であり、または、以下の説明および図面を参照してさらなる詳細が理解可能であるさらに他の実施形態において組み合わせてもよい。
【0013】
有利な実施形態の特性と信じられている新規な特徴は、添付の請求項に記載されている。しかしながら、有利な実施形態および好適な使用形態、使用のさらなる目的および利点は、添付の図面とともに解釈すると、以下に示す本開示の有利な実施形態の詳細な説明を参照することにより、もっともよく理解されるだろう。
【図面の簡単な説明】
【0014】
【図1】図1は、有利な実施形態に係る地上および航空機上のソフトウェア部品を管理するためのソフトウェア部品管理環境のブロック図である。
【図2】図2は、有利な実施形態に係る航空機上のソフトウェア部品が適正か否かを判定するためのシステムのブロック図である。
【図3】図3は、有利な実施形態に係るソフトウェア完全性データ構造のブロック図である。
【図4】図4は、有利な実施形態に係るソフトウェア供給者から航空機へのソフトウェア部品の流れと、航空機上の使用のためのソフトウェア部品の検証用情報の流れとを示すブロック図である。
【図5】図5は、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図である。
【図6】図6は、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図である。
【図7】図7は、有利な実施形態に係る航空機の運航責任者から航空機へのソフトウェア部品の流れを示すブロック図である。
【図8】図8は、有利な実施形態に係るソフトウェア完全性データ構造を生成し、かつ、用いるためのプロセスのフローチャートである。
【図9】図9は、有利な実施形態に係る航空機上のソフトウェア部品を検証するためのプロセスのフローチャートである。
【図10】図10は、有利な実施形態に係るデータ処理システムを示している。
【発明を実施するための形態】
【0015】
種々の有利な実施形態は、ある数の種々の問題点を認識かつ考慮している。項目に言及してここで用いられる「ある数の」は、1つまたはそれ以上の項目を意味する。例えば、「ある数の種々の問題点」は、1つまたはそれ以上の種々の問題点である。
【0016】
種々の有利な実施形態は、航空機上に読み込まれたソフトウェアおよびその他のデータを検証するための現在の方法が、物理的媒体取り扱いプロセスおよび/またはデジタル署名に基づいているということを認識かつ考慮している。航空機ソフトウェア部品に対する物理的媒体取り扱いプロセスは、安全な出荷方法の使用、媒体内容の電子点検および航空機に搭載されている設備によるソフトウェア部品の周期的冗長検査の確認を含んでもよい。
【0017】
種々の有利な実施形態はまた、航空機上に読み込まれたソフトウェア部品に対する検証を提供するために証明書による公開鍵基盤(PKI)を用いたデジタル署名が現在用いられていることを認識かつ考慮している。デジタル署名の使用は、高価なセットアップおよび整備を要する公開鍵基盤構成要素に依存している。さらに、公開鍵基盤による安全性の解決法は、航空機用途における鍵および証明書の整備の難しさにより移動航空機隊に対する使用には向いていない。例えば、種々の有利な実施形態は、証明書による公開鍵基盤の解決法が、限定された寿命および適時取り消し状況を有する証明書を要するということを認識かつ考慮している。地上の証明機関への接続性が限定されている航空機は、適時に証明書登録状況を判定することができない可能性がある。
【0018】
有利な実施形態はまた、現在、航空機が、航空機用途における安全性について評価されていない可能性がある商用の市販の公開鍵基盤ソフトウェアを使用していることがあるということを認識かつ考慮している。したがって、そのようなソフトウェアを使用している航空機システムの安全性の認証は、複雑である可能性がある。
【0019】
有利な実施形態は、航空機電子システム上での使用のためにソフトウェアを検証する方法を改善する。とりわけ、有利な実施形態は、航空機上のソフトウェア部品の完全性を検証する手法を改善する。
【0020】
有利な実施形態によると、ハッシュ値およびデジタル指紋は、航空機上に読み込まれるソフトウェア部品に対して生成される。ハッシュ値および指紋は、ソフトウェア完全性データ構造内に保存されてもよい。ソフトウェア完全性データ構造は、その他のソフトウェア部品とは別に航空機上に読み込まれる。ソフトウェア完全性データ構造は、その他のソフトウェア部品の検証に用いられる前に検証され、かつ、確保される。ソフトウェア完全性データ構造は、限定はされないが、安全なネットワーク、安全な記憶装置、PKI、または、既知の適切な値(good value)に対するソフトウェア完全性データ構造のハッシュの検証といった業界で知られている方法を用いて検証され、かつ、確保されてもよい。次いで、ハッシュ値および指紋は、航空機電子システム内のソフトウェア部品に対して操作が行われる前に航空機上のソフトウェア部品の検証に用いられてもよい。ある実施形態において、ソフトウェア部品は、ソフトウェアを操作する航空機の電子システムにより検証されてもよい。別の有利な実施形態において、ソフトウェア部品は、ソフトウェア部品がライン交換可能ユニットへ転送される前にソフトウェア検証ツールにより検証されてもよい。
【0021】
ここで図1に注目して、有利な実施形態に係る地上および航空機上のソフトウェア部品を管理するためのソフトウェア部品管理環境のブロック図を描写する。本実施例において、ソフトウェア部品管理環境101におけるある数のソフトウェア供給者100は、ソフトウェア部品102を供給する。ある数のソフトウェア供給者100は、ソフトウェア部品102を開発するか、そうでなければ供給するいかなる実体を含んでもよい。例えば限定はされないが、ある数のソフトウェア供給者100は、航空機製造業者、航空会社や軍隊といった航空機の運航責任者、または、第三者ソフトウェア開発業者を含んでもよい。ソフトウェア部品102は、航空機104上で用いられるいかなるソフトウェアアプリケーションまたはデータを含んでもよい。
【0022】
ソフトウェア部品管理環境101における航空機整備実体106は、航空機104上での使用のためにある数のソフトウェア供給者100により提供されたソフトウェア部品102を航空機104に読み込む。航空機整備実体106は、航空機104上へのソフトウェア部品102の読み込みの責任を負ういかなる実体であってもよい。例えば、航空機整備実体106は、航空機製造業者108または航空機の運航責任者110を含んでもよい。航空機の運航責任者110は、限定はされないが、航空会社、軍隊、または、航空機104を運航させるその他のあらゆる民間または政府組織であってもよい。航空機整備実体106は、航空機104の所有者であっても、そうでなくてもよい。航空機整備実体106は、航空機104の所有者の代わりに行動して、航空機104上にソフトウェア部品102を読み込む実体を含んでもよい。いずれの場合も、航空機整備実体106は、航空機104上にソフトウェア部品102を読み込む権限を有すると想定される。航空機整備実体106は、航空機104上に現在読み込まれているすべてのソフトウェア部品102を含む航空機104の現在の構成が分かるように、航空機104上にソフトウェア部品102を読み込むための特定の手順にしたがってもよい。
【0023】
航空機104は、民間もしくは私有の旅客機や貨物航空機または軍隊もしくはその他の政府航空機であってもよい。ソフトウェア部品102は、航空機整備実体106により航空機104へ分配されてもよい。例えば、ソフトウェア部品102は、航空機104上の電子システム112による使用のために航空機104上に読み込まれてもよい。例えば、電子システム112は、ライン交換可能ユニットを含んでもよい。
【0024】
電子システム112によりソフトウェア部品102に対してまたはこれを用いて行われる操作114は、航空機104の性能または安全性に影響を与える可能性がある。したがって、航空機104上のソフトウェア部品102が適正か否かを判定することが望ましい。航空機104上で用いられるソフトウェア部品102が適正で、かつ、破損していないか否かを判定することは、ソフトウェア部品102を検証すると呼ばれてもよい。操作114は、ソフトウェア部品102の完全性が適正であると確認可能でなければ、電子システム112により航空機104上のソフトウェア部品102に対して行われるべきではない。
【0025】
ソフトウェア部品102の完全性を検証することは、航空機104に現在読み込まれているソフトウェア部品102がある数のソフトウェア供給者100により製造されたソフトウェア部品102と同じであるか否かを判定することを含んでもよい。航空機104上のソフトウェア部品102は、破損するか、そうでなければ変更されるかもしれない。例えば、ソフトウェア部品102は、ある数のソフトウェア供給者100から航空機整備実体106を経て航空機104へのソフトウェア部品の分配プロセス中、および、このプロセス中のさまざまな位置におけるソフトウェア部品102の保存中に破損する可能性がある。ソフトウェア部品102に対するそのような変更は、偶発的または悪意のあるものかもしれない。
【0026】
有利な実施形態にしたがって、航空機104に対してソフトウェア完全性検証機能116を行ってもよい。ソフトウェア完全性検証機能116は、操作114がソフトウェア部品102に対して行われる前に航空機104上のソフトウェア部品102が適正か否かを判定するために用いられてもよい。ソフトウェア完全性検証機能116は、航空機104上に読み込まれたソフトウェア部品102を定期的に検証するために用いられてもよい。
【0027】
有利な実施形態にしたがって、ソフトウェア完全性検証機能116は、航空機104上のソフトウェア部品102を検証するために、ソフトウェア完全性データ構造118内に収集されたハッシュ値およびその他の属性を使用する。ソフトウェア完全性データ構造118はまた、ハッシュファイルまたはマスターハッシュファイルと呼んでもよい。ソフトウェア完全性データ構造118は、航空機整備実体106により生成されてもよく、かつ、航空機整備実体106により航空機104上に読み込まれてもよい。ソフトウェア完全性データ構造118を生成する航空機整備実体106は、航空機104上にソフトウェア部品102を読み込む航空機整備実体106と同じであっても、異なっていてもよい。
【0028】
時間とともに、あるソフトウェア部品102を航空機104から取り除いてもよく、かつ、新たなソフトウェア部品102を航空機104上に読み込んでもよい。これらの行為により、航空機104の構成が変更される。航空機104上に読み込まれた新たなソフトウェア部品102は、航空機104上のソフトウェア部品102の検証に用いられるソフトウェア完全性データ構造118に対する変更を要することとなる。ソフトウェア完全性データ構造118に対する変更は、航空機104のモデル用のすべての既存のソフトウェア部品を反映する完全に新しいソフトウェア完全性データ構造118を生成することにより作成してもよい。
【0029】
あるいは、既存のソフトウェア完全性データ構造118に対する更新として、新たなソフトウェア部品を反映するために必要なソフトウェア完全性データ構造118に対する変更を提供してもよい。ソフトウェア完全性データ構造118に対する更新は、航空機整備実体106により生成してもよい。ソフトウェア完全性データ構造118に対する更新は、ソフトウェア完全性データ構造118全体の再生成および再読み込みを要することなく、航空機104上のソフトウェア完全性データ構造118を更新するために航空機104上に読み込まれてもよい。
【0030】
ここで図2に注目して、有利な実施形態に係る航空機上のソフトウェア部品が適正か否かを判定するためのシステムのブロック図を描写する。本実施例において、航空機200は、図1における航空機104のある実施構成の一例である。航空機200は、有利な実施形態を実施可能な輸送手段202の一例である。輸送手段202は、空気中、宇宙空間またはその両方を移動することができる宇宙機またはその他あらゆる輸送手段のような別の種類の航空宇宙輸送手段であってもよい。輸送手段202はまた、列車、水上艦または潜水艦のような地上輸送手段または水輸送手段であってもよい。輸送手段202は、有利な実施形態を実施可能なある種類の可動プラットフォーム204の一例である。
【0031】
航空機200は、航空機電子システム206を含んでもよい。航空機電子システム206は、あらゆる適切なネットワークアーキテクチャにおいてともに接続されているさまざまなハードウェア装置またはシステムを含んでもよい。航空機電子システム206は、ライン交換可能ユニット210を含んでもよい。例えば限定はされないが、航空機電子システム206は、ソフトウェア部品212の形態でソフトウェアを実行するプロセッサを有するシステムを含んでもよい。
【0032】
ソフトウェア部品212は、ある数のソフトウェア供給者214により開発されるか、そうでなければ提供されてもよい。ある数のソフトウェア供給者214からのソフトウェア部品212は、航空機整備実体216により航空機200上に読み込まれてもよい。本実施例において、ある数のソフトウェア供給者214は、図1におけるある数のソフトウェア供給者100の一例であり、かつ、航空機整備実体216は、図1における航空機整備実体106の一例である。
【0033】
航空機整備実体216はまた、ソフトウェア完全性データ構造220を生成し、航空機200上に読み込んでもよい。有利な実施形態によると、ソフトウェア完全性データ構造220は、航空機200上のその他のソフトウェア部品212を検証するために用いられる。したがって、ソフトウェア完全性データ構造220は、航空機200上に読み込まれ、かつ、ソフトウェア完全性データ構造220の安全性を維持するような手法で航空機200内に維持されてもよい。
【0034】
例えば、ソフトウェア完全性データ構造220は、その他の航空機ソフトウェア部品212が航空機200の適正な構造制御を維持するように航空機200上に読み込まれてもよい。航空機200上に読み込まれた際のソフトウェア完全性データ構造220に対する安全性を提供し、かつ、航空機200上のソフトウェア完全性データ構造220の破損を防ぐために、デジタル署名またはその他の方法もしくはシステムを用いてもよい。
【0035】
ソフトウェア完全性データ構造220は、航空機200上のソフトウェア部品212に対するハッシュ値222およびその他の属性224を含む。ハッシュ値222およびその他の属性224は、ソフトウェア部品212が航空機200上に読み込まれる前にソフトウェア部品212から航空機整備実体216またはその他何らかの実体により生成される。
【0036】
ハッシュ値222は、あらゆる適切な暗号のハッシュ機能またはその他の適切なハッシュ機能を用いてソフトウェア部品212から生成されるデジタルまたはその他の数値を含んでもよい。例えば限定はされないが、SHA−256ハッシュ機能または別のハッシュ機能を用いて、ソフトウェア部品212に対するハッシュ値222を生成してもよい。該SHA−256ハッシュ機能は、結果として、あらゆる所与のソフトウェア部品に対する256ビットのハッシュ値となる。
【0037】
その他の属性224は、ソフトウェア部品212を識別するさまざまなデジタル英数字またはその他の値を含んでもよい。その他の属性224は、対応するソフトウェア部品212に対する対応するハッシュ値222を有するソフトウェア完全性データ構造220において関連付けられてもよい。その他の属性224は、ソフトウェア部品212の各々に対する1つ以上の指紋を含んでもよい。これらの指紋は、指紋法アルゴリズムまたは指紋機能を用いてソフトウェア部品212から生成されてもよい。その他の属性224の生成に用いられるアルゴリズムまたは機能は、ハッシュ値222の生成に用いられるハッシュ機能とは異なることが好ましい。
【0038】
ソフトウェア完全性データ構造220からのハッシュ値222およびその他の属性224は、航空機200上のソフトウェア部品212を検証するためにソフトウェア検証ツール226により用いられてもよい。本実施例において、ソフトウェア検証ツール226は、図1におけるソフトウェア完全性検証機能116を行うための装置の一例である。ソフトウェア検証ツール226は、ここに説明するソフトウェア検証ツール226の機能を実行するために、ハードウェアまたはソフトウェアと組み合わせて動作するハードウェアを用いて航空機電子システム206において実施されてもよい。
【0039】
ソフトウェア検証ツール226は、計算器228および比較器230を含んでもよい。計算器228は、航空機200上のソフトウェア部品212に対するハッシュ値を決定するためにソフトウェア検証ツール226により用いられる。計算器228により決定されたハッシュ値は、第1ハッシュ値と呼んでもよい。航空機200上のソフトウェア部品212に対するハッシュ値は、ソフトウェア完全性データ構造220におけるハッシュ値222の生成に用いられたものと同じハッシュ機能を用いて計算器228により決定される。ソフトウェア完全性データ構造220におけるハッシュ値222は、第2ハッシュ値と呼んでもよい。
【0040】
計算器228はまた、航空機200上のソフトウェア部品212に対するその他の属性を決定するためにソフトウェア検証ツール226により用いられてもよい。計算器228により決定されたその他の属性は、第1属性と呼んでもよい。航空機200上のソフトウェア部品212に対するその他の属性は、ソフトウェア完全性データ構造220におけるその他の属性224の生成に用いられたものと同じアルゴリズムまたは機能を用いて計算器228により決定されてもよい。ソフトウェア完全性データ構造220におけるその他の属性224は、第2属性と呼ばれてもよい。
【0041】
比較器230は、計算機228により生成されたハッシュ値と、対応するソフトウェア部品212に対するソフトウェア完全性データ構造220におけるハッシュ値222とを比較するためにソフトウェア検証ツール226により用いられる。比較器230はまた、計算機228により生成されたその他の属性と、対応するソフトウェア部品212に対するソフトウェア完全性データ構造220におけるその他の属性224とを比較するためにソフトウェア検証ツール226により用いられてもよい。
【0042】
計算器228により決定された航空機200上のソフトウェア部品212のうちの1つに対するハッシュ値が、ソフトウェア部品に対するソフトウェア完全性データ構造220からのハッシュ値と一致しない場合、該ソフトウェア部品は検証されない。同様に、計算器228により決定された航空機200上のソフトウェア部品212のうちの1つに対するその他の属性が、ソフトウェア部品に対するソフトウェア完全性データ構造220からのその他の属性224と一致しない場合、該ソフトウェア部品は検証されない。いずれの場合も、ソフトウェア検証ツール226は、該ソフトウェア部品が検証されていないことの表示を航空機電子システム206に対して提供してもよい。この場合、航空機電子システム206は、該ソフトウェア部品に対して操作を行ってはならない。航空機200の機内または機外の人間の運航責任者は、適切な措置が講じられるように、ソフトウェア部品が検証されていないとソフトウェア検証ツール226が判定した際に通知を受けてもよい。
【0043】
計算器228により決定された航空機200上のソフトウェア部品212のうちの1つに対するハッシュ値が、ソフトウェア部品に対するソフトウェア完全性データ構造220からのハッシュ値と一致し、かつ、計算器228により決定された航空機200上のソフトウェア部品に対するその他の属性が、ソフトウェア部品に対するソフトウェア完全性データ構造220からのその他の属性224と一致すると比較器230が判定した場合、ソフトウェア部品は検証されている。この場合、ソフトウェア検証ツール226は、該ソフトウェア部品が検証されていることの表示を航空機電子システム206に対して提供してもよく、かつ、航空機電子システム206は、検証されたソフトウェア部品に対して所望の操作を行ってもよい。
【0044】
航空機200上のソフトウェア部品212とハッシュ値222およびその他の属性224の生成に用いられるソフトウェア部品とのあらゆる差異により、結果として、計算機228が、ソフトウェア完全性データ構造220におけるハッシュ値222およびその他の属性224とは異なるソフトウェア部品212に対するハッシュ値およびその他の属性を決定することとなる。これらの差異は、ソフトウェア部品212が、提供されるか、または、航空機200上のソフトウェア部品212の認証されていないソースまたは損なわれた完全性から読み込まれている結果であってもよい。
【0045】
いずれの場合も、比較器230は、適切な措置が講じられるようにこれらの差異を検出する。例えば、これらの措置は、限定はされないが、航空機200上のそのようなソフトウェア部品212に操作を行わないこと、および、航空機200の運航責任者に航空機200上のそのようなソフトウェア部品212が適性でないことを通知することを含んでもよい。
【0046】
ソフトウェア完全性データ構造220におけるハッシュ値222の生成に用いられるハッシュ機能のソフトウェア部品212の特定のビット画像を固有に識別する能力を次第に減少させることは可能である。ソフトウェア部品212が検証されるために計算器228により決定されたハッシュ値およびその他の属性の両方がソフトウェア完全性データ構造220におけるハッシュ値222およびその他の属性224と一致することを要することにより、検証の信頼度が向上し、かつ、ソフトウェア完全性データ構造220の耐用寿命が延びる。
【0047】
図1および図2の図示は、種々の有利な実施形態を実施可能な手法に対する物理的またはアーキテクチャの限定を暗示するという意図はない。図示されている構成要素に加えて、かつ/または、これに代えてその他の構成要素を用いてもよい。いくつかの構成要素は、いくつかの有利な実施形態において不必要であってもよい。また、ブロックは、いくつかの機能的構成要素を説明するために提示されている。これらのブロックのうちの1つ以上は、種々の有利な実施形態において実施される際に、組み合わせ、かつ/または、異なるブロックに分割されてもよい。
【0048】
例えば、航空機200における同時動作のために、1つより多くのソフトウェア検証ツール226を実施してもよい。さらに、ソフトウェア検証ツール226により行われる機能は、航空機200内の1つ以上の位置において実施されてもよい。ある実施例において、ソフトウェア検証ツール226は、ソフトウェア部品212を操作する1つ以上の航空機電子システム206において実施されてもよい。別の実施例として、ソフトウェア検証ツール226は、ある数の航空機電子システム206上での使用のためのソフトウェア部品212の検証に用いられる別個のソフトウェア完全性検証機能として実施されてもよい。この場合、ソフトウェア検証ツール226により行われる機能は、ソフトウェア部品212が航空機電子システム206内に読み込まれる前、または、航空機電子システム206によりソフトウェア部品212に対して操作が行われる前にソフトウェア部品212を検証するために行われてもよい。
【0049】
別の実施例として、ソフトウェア検証ツール226により行われる機能は、航空機電子システム206内の種々の位置において行われてもよい。例えば、計算機228により行われる機能は、検証されるソフトウェア部品212が読み込まれる航空機電子システム206により行われてもよい。この場合、計算機228により決定されるハッシュ値およびその他の属性は、航空機200の別の位置に位置している比較器230へ送られてもよい。次いで、比較器230は、航空機電子システム206に読み込まれたソフトウェア部品212のために比較器230により行われた比較の結果を示す表示を航空機電子システム206へ送り返してもよい。
【0050】
ここで図3に注目して、有利な実施形態に係るソフトウェア完全性データ構造のブロック図を描写する。本実施例において、ソフトウェア完全性データ構造300は、図1におけるソフトウェア完全性データ構造118および図2におけるソフトウェア完全性データ構造220のある実施構成の一例である。ソフトウェア完全性データ構造300は、データ構造属性302およびある数のソフトウェア部品記録304を含んでもよい。
【0051】
データ構造属性302は、ソフトウェア完全性データ構造300自体を記述する属性を含んでもよい。例えば限定はされないが、データ構造属性302は、ファイルバージョン識別子306、スキーマバージョン識別子308、適用可能性情報310、ソース識別子312および作成日314を含んでもよい。
【0052】
ファイルバージョン識別子306は、ソフトウェア完全性データ構造300のある特定のバージョンを識別してもよい。スキーマバージョン識別子308は、ソフトウェア完全性データ構造300の作成に用いられるスキーマのバージョンを識別してもよい。例えば、スキーマバージョン識別子308は、ソフトウェア完全性データ構造300の作成に用いられるXMLスキーマのバージョンを識別してもよい。適用可能性情報310は、ソフトウェア完全性データ構造300を用いることができる航空機またはその他の輸送手段についての情報を含んでもよい。例えば、適用可能性情報310は、ソフトウェア完全性データ構造300を用いることができる航空機モデルまたは航空機システムを識別する情報を含んでもよい。
【0053】
ソース識別子312は、ソフトウェア完全性データ構造300を作成した実体を識別してもよい。例えば、ソフトウェア完全性データ構造300を作成した会社またはその他の実体の名称を含んでもよい。作成日314は、ソフトウェア完全性データ構造300が作成された日付を特定してもよい。
【0054】
ソフトウェア完全性データ構造300を用いて検証されてもよい航空機における各ソフトウェア部品は、ソフトウェア完全性データ構造300内のソフトウェア部品記録304のうちの対応する1つにより表されてもよい。ソフトウェア部品記録304の各1つは、ある数のソフトウェア部品属性316を含んでもよい。ソフトウェア部品属性316は、対応するソフトウェア部品記録304により表されているソフトウェア部品を説明するか、または、これから導き出される属性を含んでもよい。例えば限定はされないが、ソフトウェア部品属性316は、ソフトウェア部品番号318、ハッシュ値320、ファイル数322およびファイル指紋データ324を含んでもよい。
【0055】
ソフトウェア部品番号318は、対応するソフトウェア部品記録により表されるソフトウェア部品を識別する番号を含んでもよい。ハッシュ値320は、ソフトウェア部品に対して決定されたハッシュ値を含んでもよい。例えば限定はされないが、ハッシュ値320は、SHA−256または入力としてソフトウェア部品を用いて演算されるその他のハッシュ機能から得られるハッシュ値の16進表現またはその他の表現を含んでもよい。ファイル数322は、ソフトウェア部品を構成するファイルの数を示してもよい。
【0056】
ファイル指紋データ324は、ソフトウェア部品から導き出されるソフトウェア部品に対する指紋を含んでもよい。ファイル指紋データ324は、各々に対してソフトウェア部品内のファイル数とともに提供されてもよい。ファイル指紋データ324は、各ソフトウェア部品ファイルに対して用いられる1つ以上の指紋アルゴリズムまたは機能を用いてソフトウェア部品から導き出されてもよい。好ましくは、ファイル指紋データ324は、ハッシュ値320の決定に用いられるハッシュ機能のようなハッシュ機能を用いてソフトウェア部品からは決定されない。一実施例において、ファイル指紋データ324は、ファイル名の表現326、ファイル長の表現328およびファイル内のバイナリ1値の数330を含んでもよい。例えば、ファイル名の表現326は、ソフトウェア部品ファイル名のASCII文字表現またはその他の表現を含んでもよい。
【0057】
ファイル長の表現328は、バイトによるソフトウェア部品ファイル長のASCII整数またはその他の表現を含んでもよい。ファイル内のバイナリ1値の数330は、ソフトウェア部品ファイルに含まれるバイナリ1値の数のASCII整数またはその他の表現を含んでもよい。
【0058】
ファイル指紋データ324は、ファイル名の表現326、ファイル長の表現328およびファイル内のバイナリ1値の数330を、各項目がセミコロンまたはその他の文字により分離されている状態で連結することにより形成される文字列であってもよい。有利な実施形態によると、指紋は、ここでの実施例により説明されているファイル指紋データ324とは異なって決定またはフォーマットされてもよい。また、有利な実施形態によると、ソフトウェア完全性データ構造は、ここでの実施例により説明されているものより多い、少ないまたはこれとは異なるデータ構造属性またはソフトウェア部品属性を含んでもよい。
【0059】
ここで図4に注目して、有利な実施形態に係るソフトウェア供給者から航空機へのソフトウェア部品の流れと、航空機上の使用のためのソフトウェア部品の検証用情報の流れとを示すブロック図を描写する。本実施例において、ソフトウェア供給者400および航空機製造業者402は、図1におけるある数のソフトウェア供給者100および図2におけるある数のソフトウェア供給者214の一例である。本実施例において、航空機の運航責任者404は、図1における航空機整備実体106および図2における航空機整備実体216の一例である。本実施例において、航空機406は、図1における航空機104および図2における航空機200の一例である。
【0060】
ソフトウェア供給者400は、供給者ソフトウェア408を開発するか、そうでなければ航空機製造業者402へ提供する。ソフトウェア供給者400は、供給者ソフトウェア408を航空機製造業者402へ提供するある数の第三者またはその他のソフトウェア供給者のうちの1つであってもよい。
【0061】
航空機製造業者402は、自らの製造業者ソフトウェア410を開発してもよい。航空機製造業者402は、自らの製造業者ソフトウェア410をソフトウェア供給者400からの供給者ソフトウェア408と組み合わせて、ソフトウェア部品412を航空機の運航責任者404へ提供してもよい。ソフトウェア部品412は、航空機製造業者402により製造中の航空機上に読み込まれてもよい。航空機製造業者402はまた、ソフトウェア部品412からソフトウェア完全性データ構造416を生成してもよい。航空機製造業者402は、ソフトウェア部品412およびソフトウェア完全性データ構造416を航空機の運航責任者404に提供してもよい。航空機の運航責任者404は、ソフトウェア完全性データ構造416を航空機406上に読み込んでもよく、かつ、必要に応じてソフトウェア部品412を航空機406上に読み込んだり、読み込み直したりしてもよい。
【0062】
ソフトウェア部品412は、航空機406上のソフトウェア記憶装置418に保存してもよい。ソフトウェア完全性データ構造416は、航空機406上のソフトウェア完全性データ構造記憶装置420に保存してもよい。本実施例において、ソフトウェア部品の検証は、航空機406上の電子システム422により行われる。この場合、ソフトウェア部品は、ソフトウェア記憶装置418から電子システム422へ提供されてもよく、かつ、基準ハッシュ値およびその他の属性は、ソフトウェア完全性データ構造記憶装置420から電子システム422へ提供されてもよい。次いで、電子システム422は、ソフトウェア部品からハッシュ値およびその他の属性を決定し、決定したハッシュ値およびその他の属性をソフトウェア完全性データ構造416からの基準ハッシュ値およびその他の属性と比較して、上で説明したようにソフトウェア部品を検証してもよい。電子システム422は、ソフトウェア部品が電子システム422により検証されている場合に、ソフトウェア部品に対して操作を行ってもよい。
【0063】
ここで図5に注目して、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図を描写する。本実施例において、航空機500は、図4における航空機406の別の一例である。図5は、図4におけるソフトウェア部品を検証するためのプロセスの代替例の航空機上のソフトウェア部品を検証するためのプロセスに対する航空機500上の情報の流れを示す。ソフトウェア部品502は、航空機500上のソフトウェア記憶装置504に保存してもよい。ソフトウェア完全性データ構造506は、航空機500上のソフトウェア完全性データ構造記憶装置508に保存してもよい。
【0064】
本実施例において、ソフトウェア部品の検証は、ソフトウェア部品が用いられる電子システム512から分離したソフトウェア検証ツール510により行われる。この場合、ソフトウェア部品は、ソフトウェア記憶装置504からソフトウェア検証ツール510へと送られてもよく、かつ、基準ハッシュ値およびその他の属性は、ソフトウェア完全性データ構造記憶装置508からソフトウェア検証ツール510へと送られてもよい。次いで、ソフトウェア検証ツール510は、ソフトウェア部品からハッシュ値およびその他の属性を決定してもよい。
【0065】
ソフトウェア検証ツール510はまた、決定したハッシュ値およびその他の属性をソフトウェア完全性データ構造506からの基準ハッシュ値およびその他の属性と比較してもよい。この比較は、上で説明したようにソフトウェア部品を検証するために行われる。ソフトウェア部品がソフトウェア検証ツール510により検証されれば、ソフトウェア部品は、航空機500上の電子システム512に提供されてもよい。次いで、電子システム512により検証されたソフトウェア部品に操作を行ってもよい。
【0066】
ここで図6に注目して、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図を描写する。本実施例において、航空機600は、図4における航空機406の別の一例である。図6は、図4および図5におけるソフトウェア部品を検証するためのプロセスの代替例の航空機上のソフトウェア部品を検証するためのプロセスに対する航空機600上の情報の流れを示す。ソフトウェア部品602は、航空機600上のソフトウェア記憶装置604に保存してもよい。ソフトウェア完全性データ構造606は、航空機600上のソフトウェア完全性データ構造記憶装置608に保存してもよい。
【0067】
本実施例において、ソフトウェア部品の検証は、ソフトウェア検証ツール610および電子システム612により行われる。この場合、ソフトウェア部品は、ソフトウェア記憶装置604からソフトウェア検証ツール610へと送られてもよく、かつ、基準ハッシュ値およびその他の属性は、ソフトウェア完全性データ構造記憶装置608からソフトウェア検証ツール610へと送られてもよい。次いで、ソフトウェア検証ツール610は、電子システム612上へソフトウェア部品を読み込んでもよい。電子システム612は、ソフトウェア部品からハッシュ値およびその他の属性を決定してもよい。
【0068】
次いで、電子システム612により決定されたハッシュ値およびその他の属性は、ソフトウェア検証ツール610へと送り返されてもよい。次いで、ソフトウェア検証ツール610は、電子システム612により決定したハッシュ値およびその他の属性をソフトウェア完全性データ構造606からのハッシュ値およびその他の属性と比較して、上で説明したようにソフトウェア部品を検証してもよい。ソフトウェア検証ツール610は、ソフトウェア部品がソフトウェア検証ツール610により検証される際に、電子システム612へ表示を送ってもよい。次いで、電子システム612により検証されたソフトウェア部品に操作を行ってもよい。
【0069】
ここで図7に注目して、有利な実施形態に係る航空機の運航責任者から航空機へのソフトウェア部品の流れを示すブロック図を描写する。本実施例において、航空機の運航責任者700は、図4における航空機の運航責任者404の一例であり、かつ、航空機702は、図4における航空機406の一例である。
【0070】
航空機の運航責任者700は、航空機製造業者からソフトウェア部品704およびソフトウェア完全性データ構造706の提供を受ける。本実施例において、航空機の運航責任者700はまた、自らの航空機運航責任者ソフトウェア708を開発するか、そうでなければ提供してもよい。航空機の運航責任者700は、航空機702上に航空機運航責任者ソフトウェア708を含むソフトウェア部品704を読み込んでもよい。ソフトウェア部品704は、例示的な本実施例において航空機702上のソフトウェア記憶装置710に保存される。
【0071】
描写されている本実施例において、航空機の運航責任者700はまた、航空機運航責任者ソフトウェア708から自らの航空機運航責任者ソフトウェア完全性データ構造712を生成する。ソフトウェア完全性データ構造706および航空機運航責任者ソフトウェア完全性データ構造712は、航空機の運航責任者700により航空機702上に読み込まれ、航空機702上のソフトウェア完全性データ構造記憶装置714に保存されてもよい。ソフトウェア記憶装置710に保存されているソフトウェア部品704ならびにソフトウェア完全性データ構造記憶装置714に保存されているハッシュ値およびその他の属性は、図4、図5または図6を参照して上で説明したソフトウェア部品検証のための手順のうちの1つを用いて航空機702上のソフトウェア検証機能716によりソフトウェア部品704を検証するために用いられてもよい。
【0072】
ここで図8に注目して、有利な実施形態に係るソフトウェア完全性データ構造を生成し、かつ、用いるためのプロセスのフローチャートを描写する。図8に示すプロセスは、例えば、図1におけるソフトウェア部品管理環境101において実施可能である。
【0073】
プロセスは、ソフトウェア部品を受領することにより開始する(動作802)。例えば、動作802は、ソフトウェア供給者から航空機ソフトウェア部品を受領することを含んでもよい。次いで、ソフトウェア部品からハッシュ値および指紋を決定する(動作804)。動作804は、適切なハッシュ機能またはその他のアルゴリズムを用いてソフトウェア部品からハッシュ値および指紋を決定することを含んでもよい。
【0074】
次いで、複数のソフトウェア部品に対するハッシュ値および指紋をソフトウェア完全性データ構造へとまとめてもよい(動作806)。ソフトウェア完全性データ構造を検証し、航空機のような輸送手段上に読み込む(動作808)。ソフトウェア完全性データ構造は、その他のソフトウェア部品の検証に用いられる前に、それ自体が検証されることが望ましい。そうでなければ、ソフトウェア完全性データ構造は、その他のソフトウェア部品の検証には信頼できない。
【0075】
ソフトウェア部品も輸送手段上に読み込んでもよい(動作810)。ソフトウェア完全性データ構造は、ソフトウェア部品が輸送手段上で用いられる前に、輸送手段上でソフトウェア部品の検証に用いられてもよく(動作812)、その後プロセスは終了する。
【0076】
ここで図9に注目して、有利な実施形態に係る航空機上のソフトウェア部品を検証するためのプロセスのフローチャートを描写する。図9のプロセスは、例えば、図2におけるソフトウェア検証ツール226において実施可能である。図9のプロセスは、図8における動作812の実施に用いてもよいプロセスの一例である。
【0077】
プロセスは、航空機上に保存されているソフトウェア部品に対する第1ハッシュ値および第1指紋を計算することにより開始してもよい(動作902)。ソフトウェア完全性データ構造においてソフトウェア部品に対する第2ハッシュ値および第2指紋を識別する(動作904)。
【0078】
第1ハッシュ値が第2ハッシュ値と一致し、かつ、第1指紋が第2指紋と一致するか否かについて判定する(動作906)。両方のハッシュ値と指紋が一致すると判定された場合、航空機上でソフトウェア部品を用いてもよく(動作908)、その後プロセスは終了する。第1ハッシュ値が第2ハッシュ値と一致しないか、第1指紋が第2指紋と一致しないかのいずれかと判定された場合、航空機上でソフトウェア部品を用いてはならない(動作910)。ソフトウェア部品が検証されていない場合、航空機の運航責任者に通知してもよく(動作912)、その後プロセスは終了する。
【0079】
描写された種々の実施形態におけるフローチャートおよびブロック図は、ある有利な実施形態における装置および方法のいくつかの可能な実施構成のアーキテクチャ、機能性および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、動作または工程のモジュール、区分、機能および/または一部を表していてもよい。例えば、ブロックの1つ以上は、プログラムコードとして、ハードウェア内で、または、プログラムコードとハードウェアとの組み合わせで実施されてもよい。ハードウェア内で実施されるとき、そのハードウェアは、例えば、フローチャートまたはブロック図における1つ以上の動作を行うよう製造または構成されている集積回路の形態を取ってもよい。
【0080】
ある有利な実施形態のいくつかの代替の実施構成において、ブロック内で示されている1つまたは複数の機能は、図示されているのとは異なった順序で起こってもよい。例えば、いくつかの場合において、関連する機能性によっては、連続して示されている2つのブロックが実質的に同時に実行されてもよく、または、該ブロックが時として逆の順序で行われてもよい。また、フローチャートまたはブロック図に示されているブロックに加えて、その他のブロックが追加されてもよい。
【0081】
有利な実施形態の1つ以上は、ソフトウェア供給者から航空機へ分配されるソフトウェアまたはその他のデータの完全性を検証する能力を提供する。有利な実施形態にしたがって、航空機から地上へのネットワーク接続により、または、これによらずに航空機上のソフトウェア検証を行ってもよい。有利な実施形態によるソフトウェア検証は、証明機関のような複雑な公開鍵基盤構成要素を要しない。有利な実施形態は、ソフトウェア検証用のハッシュ値を使用する。ハッシュ値は有効期限がない。したがって、有利な実施形態は、ソフトウェアの安全性のために公開鍵基盤構成要素に依存するシステムにおける証明書管理および証明書有効期限切れという制限を取り除く。
【0082】
したがって、有利な実施形態は、ソフトウェア完全性データ構造のソースが信頼されるという条件で、航空機上のソフトウェアまたはその他のデータの完全性の検証を提供する。有利な実施形態はまた、公開鍵基盤ソフトウェアを用いる現在の方法よりリスクおよびコストが低く安全性を証明可能な手法で航空機上のソフトウェア部品の検証を提供する。
【0083】
ここで図10に注目して、有利な実施形態に係るデータ処理システムの図を描写する。本実施例において、データ処理システム1000は、図2における航空機電子システム206の一例である。例えば、データ処理システム1000は、図2におけるライン交換可能ユニット210のある実施構成の一例である。本説明例において、データ処理システム1000は、通信機構1002を含む。通信機構1002は、プロセッサユニット1004、メモリ1006、固定記憶域1008、通信ユニット1010、入出力(I/O)ユニット1012および表示部1014の間の通信を提供する。
【0084】
プロセッサユニット1004は、メモリ1006内に読み込まれてもよいソフトウェア用の命令を実行する役割を果たす。プロセッサユニット1004は、特定の実施構成によって、ある数のプロセッサ、マルチプロセッサコア、またはその他何らかの種類のプロセッサであってもよい。項目に言及してここで用いられる「ある数の」は、1つまたはそれ以上の項目を意味する。さらに、プロセッサユニット1004は、単一のチップ上に主プロセッサが副プロセッサとともに存在するある数の異種プロセッサシステムを用いて実施可能である。別の説明例として、プロセッサユニット1004は、同種の複数のプロセッサを含む対称型マルチプロセッサシステムであってもよい。
【0085】
メモリ1006および固定記憶域1008は、記憶装置1016の一例である。記憶装置は、例えば限定はされないが、データ、機能的形態のプログラムコード、および/または、一時的かつ/または永久的いずれかのその他適切な情報といった情報を保存することができるあらゆるハードウェアである。記憶装置1016はまた、これらの実施例においてコンピュータ読み取り可能な記憶装置と呼ばれてもよい。これらの実施例において、メモリ1006は、例えば、ランダムアクセスメモリまたはその他あらゆる適切な揮発性もしくは不揮発性記憶装置であってもよい。固定記憶域1008は、特定の実施構成によって、さまざまな形態を取ってもよい。
【0086】
例えば、固定記憶域1008は、1つまたはそれ以上の構成要素または装置を含んでもよい。例えば、固定記憶域1008は、ハードドライブ、フラッシュメモリ、書き換え可能な光学ディスク、書き換え可能な磁気テープ、または、上記の何らかの組み合わせであってもよい。固定記憶域1008により用いられる媒体もまた、着脱可能であってもよい。例えば、固定記憶域1008用に着脱可能なハードドライブを用いてもよい。
【0087】
これらの実施例において、通信ユニット1010は、その他のデータ処理システムまたは装置との通信を提供する。これらの実施例において、通信ユニット1010は、ネットワークインタフェースカードである。通信ユニット1010は、物理的通信回線と無線通信回線とのいずれかまたは両方の使用により通信を提供してもよい。
【0088】
入出力ユニット1012は、データ処理システム1000と接続可能なその他の装置に対してデータを入力および出力可能とする。例えば、入出力ユニット1012は、キーボード、マウス、および/または、その他何らかの適切な入力装置を介するユーザ入力に対する接続を提供してもよい。さらに、入出力ユニット1012は、プリンタへの出力を送信してもよい。表示部1014は、ユーザに対する情報を表示する機構を提供する。
【0089】
オペレーティングシステム、アプリケーションおよび/またはプログラムに対する命令は、記憶装置1016内に位置していてもよく、該記憶装置1016は、通信機構1002を介してプロセッサユニット1004と通信状態にある。これらの説明例において、命令は、固定記憶域1008上で機能的形態にある。これらの命令は、メモリ1006内に読み込まれて、プロセッサユニット1004により実行されてもよい。種々の実施形態のプロセスは、メモリ1006のようなメモリ内に位置していてもよいコンピュータにより実行される命令を用いてプロセッサユニット1004により行われてもよい。
【0090】
これらの命令は、プロセッサユニット1004内のプロセッサにより読取りおよび実行可能なプログラム命令、プログラムコード、コンピュータ使用可能なプログラムコードまたはコンピュータ読取り可能なプログラムコードと呼ばれる。種々の実施形態におけるプログラムコードは、メモリ1006または固定記憶域1008といった種々の物理的またはコンピュータ読み取り可能な記憶媒体上で実現されてもよい。
【0091】
プログラムコード1018は、選択的に着脱可能で、かつ、プロセッサユニット1004による実行のためにデータ処理システム1000上に読み込まれたり、これに転送されてもよいコンピュータ読み取り可能な媒体1020上で機能的な形態で位置している。プログラムコード1018およびコンピュータ読み取り可能な媒体1020は、これらの実施例においてコンピュータプログラム製品1022を形成する。一例において、コンピュータ読み取り可能な媒体1020は、コンピュータ読み取り可能な記憶媒体1024またはコンピュータ読み取り可能な信号媒体1026であってもよい。
【0092】
コンピュータ読み取り可能な記憶媒体1024は、例えば、固定記憶域1008の一部であるドライブまたはその他の装置内へ挿入または設置されて、固定記憶域1008の一部であるハードドライブのような記憶装置上へ転送される光学または磁気ディスクを含んでもよい。コンピュータ読み取り可能な記憶媒体1024はまた、データ処理システム1000と接続されているハードドライブ、サムドライブまたはフラッシュメモリといった固定記憶域の形態を取ってもよい。いくつかの場合において、コンピュータ読み取り可能な記憶媒体1024は、データ処理システム1000から取り外しできないこともある。
【0093】
これらの実施例において、コンピュータ読み取り可能な記憶媒体1024は、プログラムコード1018を伝搬または伝送する媒体というよりむしろ、プログラムコード1018を保存するために用いられる物理的または有形の記憶装置である。コンピュータ読み取り可能な記憶媒体1024は、コンピュータ読み取り可能な有形の記憶装置またはコンピュータ読み取り可能な物理的記憶装置とも呼ばれる。言い換えると、コンピュータ読み取り可能な記憶媒体1024は、人間が触れることのできる媒体である。
【0094】
あるいは、プログラムコード1018は、コンピュータ読み取り可能な信号媒体1026を用いてデータ処理システム1000へ転送されてもよい。コンピュータ読み取り可能な信号媒体1026は、例えば、プログラムコード1018を含む伝搬されたデータ信号であってもよい。例えば、コンピュータ読み取り可能な信号媒体1026は、電磁気信号、光信号および/またはその他あらゆる適切な種類の信号であってもよい。これらの信号は、無線通信回線、光ファイバーケーブル、同軸ケーブル、電線および/またはその他あらゆる適切な種類の通信回線といった通信回線により伝送されてもよい。言い換えると、通信回線および/または接続は、本説明例において、物理的なものであっても、無線であってもよい。
【0095】
いくつかの有利な実施形態において、プログラムコード1018は、別の装置またはデータ処理システムからコンピュータ読み取り可能な信号媒体1026を介して固定記憶域1008へのネットワークによりダウンロードされて、データ処理システム1000内で用いられてもよい。例えば、サーバデータ処理システムにおけるコンピュータ読み取り可能な記憶媒体に保存されたプログラムコードは、サーバからデータ処理システム1000へネットワークによりダウンロードされてもよい。プログラムコード1018を提供するデータ処理システムは、サーバコンピュータ、クライアントコンピュータまたはプログラムコード1018を保存および伝送可能なその他何らかの装置であってもよい。
【0096】
データ処理システム1000に対して例示された種々の構成要素は、種々の実施形態が実施可能な手法に対するアーキテクチャの限定を提供することを意図しているのではない。種々の有利な実施形態は、データ処理システム1000に対して例示された構成要素に加えた、または、これに代えた構成要素を含むデータ処理システムにおいて実施されてもよい。図10に示したその他の構成要素は、示されている例示的実施例から変形させることができる。種々の実施形態は、プログラムコードを実行可能ないかなるハードウェア装置またはシステムを用いて実施されてもよい。一例として、データ処理システムは、無機構成要素と一体化した有機構成要素を含んでもよく、かつ/または、人間以外の有機構成要素から全体が構成されていてもよい。例えば、記憶装置は、有機半導体から構成されていてもよい。
【0097】
別の例示的実施例において、プロセッサユニット1004は、ある特定の使用のために製造または構成されている回路を有するハードウェアユニットの形態を取っていてもよい。この種のハードウェアは、動作を行うよう構成されるためにプログラムコードが記憶装置からメモリ内へ読み込まれる必要なく該動作を行ってもよい。
【0098】
例えば、プロセッサユニット1004がハードウェアユニットの形態を撮るとき、プロセッサユニット1004は、ある数の動作を行うよう構成されている回路システム、特定用途向け集積回路(ASIC)、プログラム可能な論理装置またはその他何らかの適切な種類のハードウェアであってもよい。プログラム可能論理装置について、該装置は、ある数の動作を行うよう構成されている。該装置は、後に再構成されてもよく、または、該ある数の動作を行うよう永久に構成されてもよい。プログラム可能論理装置の例として、例えば、プログラム可能論理アレイ、プログラム可能アレイ論理、フィールドプログラム可能論理アレイ、フィールドプログラム可能ゲートアレイおよびその他の適切なハードウェア装置が含まれる。この種の実施構成により、種々の実施形態に対するプロセスがハードウェアユニットにおいて実施されるので、プログラムコード1018を省略してもよい。
【0099】
さらに別の例示的実施例において、プロセッサユニット1004は、コンピュータおよびハードウェアユニットにおいて見られるプロセッサの組み合わせを用いて実施されてもよい。プロセッサユニット1004は、プログラムコード1018を実行するよう構成されているある数のハードウェアユニットおよびある数のプロセッサを有してもよい。この描写した実施例により、プロセスのうちのいくつかは、該ある数のハードウェアユニットにおいて実施されてもよい一方、その他のプロセスは、該ある数のプロセッサにおいて実施されてもよい。
【0100】
別の実施例において、バスシステムは、通信機構1002の実施に用いられてもよく、かつ、システムバスまたは入出力バスといった1つ以上のバスから構成されていてもよい。もちろん、バスシステムは、バスシステムに取り付けられている種々の構成要素または装置間のデータの転送を可能とするあらゆる適切な種類のアーキテクチャを用いて実施されてもよい。
【0101】
また、通信ユニット1010は、データを送信するか、データを受信するか、または、データを送受信するある数の装置を含んでもよい。通信ユニット1010は、例えば、モデムもしくはネットワークアダプタ、2つのネットワークアダプタ、または、これらの何らかの組み合わせであってもよい。さらに、メモリは、例えば、メモリ1006、または、通信機構1002内に存在してもよいインタフェースおよびメモリコントローラハブにおいて見られるようなキャッシュであってもよい。
【0102】
種々の有利な実施形態の説明は、例示および説明のために提示したものであり、網羅的であったり、開示されている形態の実施形態を限定することを意図しているのではない。数多くの修正および変形が当業者にとって明らかであろう。さらに、種々の有利な実施形態は、その他の有利な実施形態と比較して種々の利点を提供してもよい。選択された1つまたは複数の実施形態は、実施形態の原理や実際の用途を最もよく説明し、かつ、当該技術分野における通常の技術を有する他者が、検討されている特定の使用に適したようなさまざまな修正を有するさまざまな実施形態のための開示を理解可能とするために、選択および説明されている。
【0103】
その他の潜在的な実施形態は、以下を含む。
A1. 航空機(104)用のソフトウェア部品(102)を検証するための方法であって、
ある数のソフトウェア部品(102)を受領することと、
ある数のソフトウェア部品(102)の各々に対するハッシュ値を決定して、ある数のハッシュ値を形成することと、
航空機(104)上のある数のソフトウェア部品(102)に操作を行うか否かの判定に用いるために、ある数のハッシュ値をソフトウェア完全性データ構造(118)にまとめることと、
を含む方法。
A2. ソフトウェア完全性データ構造(118)を航空機(104)上に読み込むことと、
ある数のソフトウェア部品(102)を航空機(104)上に読み込むことと、
航空機(104)上のある数のソフトウェア部品(102)に操作を行う前に、ソフトウェア完全性データ構造(118)からのある数のハッシュ値を用いて、航空機(104)上のある数のソフトウェア部品(102)を検証することと、
をさらに含む段落A1に記載の方法。
A3. ある数のソフトウェア部品(102)の各々に対する指紋を決定して、ある数の指紋を形成することと、
ある数の指紋をソフトウェア完全性データ構造(118)にまとめることと、
をさらに含む段落A1に記載の方法。
A4. ソフトウェア完全性データ構造(118)が、
ソフトウェア完全性データ構造(118)を記述する属性と、
各々が、航空機(104)により用いられるソフトウェア部品と対応し、かつ、対応するソフトウェア部品に対するハッシュ値を含むある数の記録と、
を含む段落A1に記載の方法。
A5. 属性が、ソフトウェア完全性データ構造(118)に対するバージョン識別子、ソフトウェア完全性データ構造(118)の作成に用いられるスキーマに対するバージョン識別子、航空機(104)の適用可能性についての情報、ソフトウェア完全性データ構造(118)を作成した実体の名称、および、ソフトウェア完全性データ構造(118)が作成された日付からなる属性の群から選択される属性を含む段落A4に記載の方法。
A6. ある数の記録の各々が、対応するソフトウェア部品に対する部品番号(318)、対応するソフトウェア部品を構成するファイル数(322)を示す数字、および、ソフトウェア部品に対する指紋からなる属性の群から選択される属性をさらに含む段落A4に記載の方法。
【符号の説明】
【0104】
100 ある数のソフトウェア供給者
101 ソフトウェア部品管理環境
102 ソフトウェア部品
104 航空機
106 航空機整備実体
108 航空機製造業者
110 航空機の運航責任者
112 電子システム
114 操作
116 ソフトウェア完全性検証機能
118 ソフトウェア完全性データ構造
200 航空機
202 輸送手段
204 可動プラットフォーム
206 航空機電子システム
210 ライン交換可能ユニット
212 ソフトウェア部品
214 ある数のソフトウェア供給者
216 航空機整備実体
220 ソフトウェア完全性データ構造
222 ハッシュ値
224 その他の属性
226 ソフトウェア検証ツール
228 計算器
230 比較器
300 ソフトウェア完全性データ構造
302 データ構造属性
304 ソフトウェア部品記録
306 ファイルバージョン識別子
308 スキーマバージョン識別子
310 適用可能性情報
312 ソース識別子
314 作成日
316 ソフトウェア部品属性
318 ソフトウェア部品番号
320 ハッシュ値
322 ファイル数
324 ファイル指紋データ
326 ファイル名の表現
328 ファイル長の表現
330 ファイル内のバイナリ1値の数
400 ソフトウェア供給者
402 航空機製造業者
404 航空機の運航責任者
406 航空機
408 供給者ソフトウェア
410 製造業者ソフトウェア
412 ソフトウェア部品
416 ソフトウェア完全性データ構造
418 ソフトウェア記憶装置
420 ソフトウェア完全性データ構造記憶装置
422 電子システム
500 航空機
502 ソフトウェア部品
504 ソフトウェア記憶装置
506 ソフトウェア完全性データ構造
508 ソフトウェア完全性データ構造記憶装置
510 ソフトウェア検証ツール
512 電子システム
600 航空機
602 ソフトウェア部品
604 ソフトウェア記憶装置
606 ソフトウェア完全性データ構造
608 ソフトウェア完全性データ構造記憶装置
610 ソフトウェア検証ツール
612 電子システム
700 航空機の運航責任者
702 航空機
704 ソフトウェア部品
706 ソフトウェア完全性データ構造
708 航空機運航責任者ソフトウェア
710 ソフトウェア記憶装置
712 航空機運航責任者ソフトウェア完全性データ構造
714 ソフトウェア完全性データ構造記憶装置
716 ソフトウェア検証機能
1000 データ処理システム
1002 通信機構
1004 プロセッサユニット
1006 メモリ
1008 固定記憶域
1010 通信ユニット
1012 入出力ユニット
1014 表示部
1016 記憶装置
1018 プログラムコード
1020 コンピュータ読み取り可能な媒体
1022 コンピュータプログラム製品
1024 コンピュータ読み取り可能な記憶媒体
1026 コンピュータ読み取り可能な信号媒体

【特許請求の範囲】
【請求項1】
航空機(104)上のソフトウェア部品(102)を検証するための方法であって、
航空機(104)上のソフトウェア部品に対する第1ハッシュ値を計算することと、
航空機(104)上で、第1ハッシュ値が航空機(104)上に保存されているソフトウェア完全性データ構造(118)からの第2ハッシュ値と一致するか否かを判定することであって、ソフトウェア完全性データ構造(118)が、航空機(104)により用いられるソフトウェア部品(102)に対して航空機(104)上で判定されていないハッシュ値を含む、判定することと、
第1ハッシュ値が第2ハッシュ値と一致する場合にのみ、航空機(104)上のソフトウェア部品に操作を行うことと
を含む方法。
【請求項2】
航空機(104)上で、ソフトウェア部品に対するある数の第1属性を計算することと、
航空機(104)上で、ある数の第1属性がソフトウェア完全性データ構造(118)におけるある数の第2属性と一致するか否かを判定することと、
ある数の第1属性がある数の第2属性と一致し、かつ、第1ハッシュ値が第2ハッシュ値と一致する場合にのみ、航空機(104)上のソフトウェア部品に操作を行うことと
をさらに含む請求項1に記載の方法。
【請求項3】
ある数の第2属性が、ソフトウェア部品に対する指紋を含む請求項2に記載の方法。
【請求項4】
第1ハッシュ値を計算すること、および、第1ハッシュ値が第2ハッシュ値と一致するか否かを判定することが、航空機(104)上の電子システムにより行われる請求項1に記載の方法。
【請求項5】
第1ハッシュ値を計算することが、ソフトウェア部品を航空機(104)上のソフトウェア検証ツール(226)へ送信することと、ソフトウェア検証ツール(226)によりソフトウェア部品を受信することと、ソフトウェア検証ツール(226)によりソフトウェア部品から第1ハッシュ値を計算することとを含み、
第1ハッシュ値が第2ハッシュ値と一致するか否かを判定することが、ソフトウェア完全性データ構造(118)におけるソフトウェア部品に対する記録を識別することと、記録から第2ハッシュ値を取り出すことと、ソフトウェア検証ツール(226)により第1ハッシュ値を第2ハッシュ値と比較することとを含み、かつ、
第1ハッシュ値が第2ハッシュ値と一致する場合に、ソフトウェア検証ツール(226)により表示を送信することをさらに含む請求項1に記載の方法。
【請求項6】
第1ハッシュ値を計算することが、航空機(104)上の電子システムにより第1ハッシュ値を計算することと、第1ハッシュ値を航空機(104)上で電子システムからソフトウェア検証ツール(226)へ送信することとを含み、
第1ハッシュ値が第2ハッシュ値と一致するか否かを判定することが、ソフトウェア検証ツール(226)により第1ハッシュ値を受信することと、ソフトウェア完全性データ構造(118)におけるソフトウェア部品に対する記録を識別することと、記録から第2ハッシュ値を取り出すことと、ソフトウェア検証ツール(226)により第1ハッシュ値を第2ハッシュ値と比較することとを含み、かつ、
第1ハッシュ値が第2ハッシュ値と一致する場合に、ソフトウェア検証ツール(226)により電子システムへ表示を送信することをさらに含む請求項1に記載の方法。
【請求項7】
ソフトウェア完全性データ構造(118)が、
ソフトウェア完全性データ構造(118)を記述する属性と、
各々が、航空機(104)により用いられるソフトウェア部品と対応し、かつ、対応するソフトウェア部品に対するハッシュ値を含むある数の記録と
を含む請求項1に記載の方法。
【請求項8】
航空機(104)上に保存されているソフトウェア完全性データ構造(118)であって、航空機(104)により用いられるソフトウェア部品(102)に対して航空機(104)上で判定されていないハッシュ値を含むソフトウェア完全性データ構造(118)と、
航空機(104)上のソフトウェア部品に対する第1ハッシュ値を計算するよう構成されている航空機(104)上の計算器(228)と、
第1ハッシュ値がソフトウェア完全性データ構造(118)からの第2ハッシュ値と一致するか否かを判定するよう構成されている航空機(104)上の比較器(230)と
を含む装置であって、
航空機(104)が、第1ハッシュ値が第2ハッシュ値と一致する場合にのみ、ソフトウェア部品に操作を行うよう構成されている装置。
【請求項9】
計算器(228)が、ソフトウェア部品に対するある数の第1属性を計算するよう構成されており、
比較器(230)が、ある数の第1属性がソフトウェア完全性データ構造(118)におけるある数の第2属性と一致するか否かを判定するよう構成されており、かつ、
航空機(104)が、ある数の第1属性がある数の第2属性と一致し、かつ、第1ハッシュ値が第2ハッシュ値と一致する場合にのみ、ソフトウェア部品に操作を行うよう構成されている請求項8に記載の装置。
【請求項10】
ある数の第2属性が、ソフトウェア部品に対する指紋を含む請求項9に記載の装置。
【請求項11】
計算器(228)および比較器(230)が、航空機(104)上の電子システム上で実施されており、かつ、ソフトウェア部品に対する操作が、航空機(104)上の電子システムにより行われている請求項8に記載の装置。
【請求項12】
計算器(228)が、航空機(104)上のソフトウェア検証ツール(226)において実施されており、ソフトウェア検証ツール(226)が、ソフトウェア部品を受信し、ソフトウェア部品からの第1ハッシュ値を決定するよう構成されており、かつ、
比較器(230)が、ソフトウェア検証ツール(226)において実施されており、ソフトウェア検証ツール(226)が、ソフトウェア完全性データ構造(118)におけるソフトウェア部品に対する記録を識別し、記録から第2ハッシュ値を取り出し、第1ハッシュ値を第2ハッシュ値と比較し、第1ハッシュ値が第2ハッシュ値と一致する場合に表示を送信するようさらに構成されている請求項8に記載の装置。
【請求項13】
計算器(228)が、航空機(104)上の電子システムにおいて実施されており、電子システムが、第1ハッシュ値を航空機(104)上のソフトウェア検証ツール(226)へ送信するよう構成されており、
比較器(230)が、ソフトウェア検証ツール(226)において実施されており、ソフトウェア検証ツール(226)が、電子システムから第1ハッシュ値を受信し、ソフトウェア完全性データ構造(118)におけるソフトウェア部品に対する記録を識別し、記録から第2ハッシュ値を取り出し、第1ハッシュ値を第2ハッシュ値と比較し、第1ハッシュ値が第2ハッシュ値と一致する場合に電子システムへ表示を送信するよう構成されており、かつ、
電子システム(112)が、ソフトウェア検証ツール(226)からの表示に応答してソフトウェア部品に操作を行うようさらに構成されている請求項8に記載の装置。
【請求項14】
ソフトウェア完全性データ構造(118)が、
ソフトウェア完全性データ構造(118)を記述する属性と、
各々が、航空機(104)により用いられるソフトウェア部品と対応し、かつ、対応するソフトウェア部品に対するハッシュ値を含むある数の記録と
を含む請求項8に記載の装置。

【図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


【公開番号】特開2013−35539(P2013−35539A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−140734(P2012−140734)
【出願日】平成24年6月22日(2012.6.22)
【出願人】(500520743)ザ・ボーイング・カンパニー (773)
【氏名又は名称原語表記】The Boeing Company