(57)【要約】      （修正有）【課題】航空機上のソフトウェア部品を検証するためのシステムおよび方法を提供する。【解決手段】航空機上のソフトウェア部品２１２に対して第１ハッシュ値を計算する。第１ハッシュ値が航空機上に保存されているソフトウェア完全性データ構造からの第２ハッシュ値と一致するか否かについて航空機上で判定する。ソフトウェア完全性データ構造２２０は、航空機により用いられるソフトウェア部品に対して航空機上で判定されていないハッシュ値を含む。第１ハッシュ値が第２ハッシュ値と一致するか否かに基づいて、検証状況を提供する。第１ハッシュ値が第２ハッシュ値と一致する場合にのみ、航空機上のソフトウェア部品に操作を行う。【選択図】図２
2013035539.tif 000002
【特許請求の範囲】
【請求項１】
航空機（１０４）上のソフトウェア部品（１０２）を検証するための方法であって、
航空機（１０４）上のソフトウェア部品に対する第１ハッシュ値を計算することと、
航空機（１０４）上で、第１ハッシュ値が航空機（１０４）上に保存されているソフトウェア完全性データ構造（１１８）からの第２ハッシュ値と一致するか否かを判定することであって、ソフトウェア完全性データ構造（１１８）が、航空機（１０４）により用いられるソフトウェア部品（１０２）に対して航空機（１０４）上で判定されていないハッシュ値を含む、判定することと、
第１ハッシュ値が第２ハッシュ値と一致する場合にのみ、航空機（１０４）上のソフトウェア部品に操作を行うことと
を含む方法。
【請求項２】
航空機（１０４）上で、ソフトウェア部品に対するある数の第１属性を計算することと、
航空機（１０４）上で、ある数の第１属性がソフトウェア完全性データ構造（１１８）におけるある数の第２属性と一致するか否かを判定することと、
ある数の第１属性がある数の第２属性と一致し、かつ、第１ハッシュ値が第２ハッシュ値と一致する場合にのみ、航空機（１０４）上のソフトウェア部品に操作を行うことと
をさらに含む請求項１に記載の方法。
【請求項３】
ある数の第２属性が、ソフトウェア部品に対する指紋を含む請求項２に記載の方法。
【請求項４】
第１ハッシュ値を計算すること、および、第１ハッシュ値が第２ハッシュ値と一致するか否かを判定することが、航空機（１０４）上の電子システムにより行われる請求項１に記載の方法。
【請求項５】
第１ハッシュ値を計算することが、ソフトウェア部品を航空機（１０４）上のソフトウェア検証ツール（２２６）へ送信することと、ソフトウェア検証ツール（２２６）によりソフトウェア部品を受信することと、ソフトウェア検証ツール（２２６）によりソフトウェア部品から第１ハッシュ値を計算することとを含み、
第１ハッシュ値が第２ハッシュ値と一致するか否かを判定することが、ソフトウェア完全性データ構造（１１８）におけるソフトウェア部品に対する記録を識別することと、記録から第２ハッシュ値を取り出すことと、ソフトウェア検証ツール（２２６）により第１ハッシュ値を第２ハッシュ値と比較することとを含み、かつ、
第１ハッシュ値が第２ハッシュ値と一致する場合に、ソフトウェア検証ツール（２２６）により表示を送信することをさらに含む請求項１に記載の方法。
【請求項６】
第１ハッシュ値を計算することが、航空機（１０４）上の電子システムにより第１ハッシュ値を計算することと、第１ハッシュ値を航空機（１０４）上で電子システムからソフトウェア検証ツール（２２６）へ送信することとを含み、
第１ハッシュ値が第２ハッシュ値と一致するか否かを判定することが、ソフトウェア検証ツール（２２６）により第１ハッシュ値を受信することと、ソフトウェア完全性データ構造（１１８）におけるソフトウェア部品に対する記録を識別することと、記録から第２ハッシュ値を取り出すことと、ソフトウェア検証ツール（２２６）により第１ハッシュ値を第２ハッシュ値と比較することとを含み、かつ、
第１ハッシュ値が第２ハッシュ値と一致する場合に、ソフトウェア検証ツール（２２６）により電子システムへ表示を送信することをさらに含む請求項１に記載の方法。
【請求項７】
ソフトウェア完全性データ構造（１１８）が、
ソフトウェア完全性データ構造（１１８）を記述する属性と、
各々が、航空機（１０４）により用いられるソフトウェア部品と対応し、かつ、対応するソフトウェア部品に対するハッシュ値を含むある数の記録と
を含む請求項１に記載の方法。
【請求項８】
航空機（１０４）上に保存されているソフトウェア完全性データ構造（１１８）であって、航空機（１０４）により用いられるソフトウェア部品（１０２）に対して航空機（１０４）上で判定されていないハッシュ値を含むソフトウェア完全性データ構造（１１８）と、
航空機（１０４）上のソフトウェア部品に対する第１ハッシュ値を計算するよう構成されている航空機（１０４）上の計算器（２２８）と、
第１ハッシュ値がソフトウェア完全性データ構造（１１８）からの第２ハッシュ値と一致するか否かを判定するよう構成されている航空機（１０４）上の比較器（２３０）と
を含む装置であって、
航空機（１０４）が、第１ハッシュ値が第２ハッシュ値と一致する場合にのみ、ソフトウェア部品に操作を行うよう構成されている装置。
【請求項９】
計算器（２２８）が、ソフトウェア部品に対するある数の第１属性を計算するよう構成されており、
比較器（２３０）が、ある数の第１属性がソフトウェア完全性データ構造（１１８）におけるある数の第２属性と一致するか否かを判定するよう構成されており、かつ、
航空機（１０４）が、ある数の第１属性がある数の第２属性と一致し、かつ、第１ハッシュ値が第２ハッシュ値と一致する場合にのみ、ソフトウェア部品に操作を行うよう構成されている請求項８に記載の装置。
【請求項１０】
ある数の第２属性が、ソフトウェア部品に対する指紋を含む請求項９に記載の装置。
【請求項１１】
計算器（２２８）および比較器（２３０）が、航空機（１０４）上の電子システム上で実施されており、かつ、ソフトウェア部品に対する操作が、航空機（１０４）上の電子システムにより行われている請求項８に記載の装置。
【請求項１２】
計算器（２２８）が、航空機（１０４）上のソフトウェア検証ツール（２２６）において実施されており、ソフトウェア検証ツール（２２６）が、ソフトウェア部品を受信し、ソフトウェア部品からの第１ハッシュ値を決定するよう構成されており、かつ、
比較器（２３０）が、ソフトウェア検証ツール（２２６）において実施されており、ソフトウェア検証ツール（２２６）が、ソフトウェア完全性データ構造（１１８）におけるソフトウェア部品に対する記録を識別し、記録から第２ハッシュ値を取り出し、第１ハッシュ値を第２ハッシュ値と比較し、第１ハッシュ値が第２ハッシュ値と一致する場合に表示を送信するようさらに構成されている請求項８に記載の装置。
【請求項１３】
計算器（２２８）が、航空機（１０４）上の電子システムにおいて実施されており、電子システムが、第１ハッシュ値を航空機（１０４）上のソフトウェア検証ツール（２２６）へ送信するよう構成されており、
比較器（２３０）が、ソフトウェア検証ツール（２２６）において実施されており、ソフトウェア検証ツール（２２６）が、電子システムから第１ハッシュ値を受信し、ソフトウェア完全性データ構造（１１８）におけるソフトウェア部品に対する記録を識別し、記録から第２ハッシュ値を取り出し、第１ハッシュ値を第２ハッシュ値と比較し、第１ハッシュ値が第２ハッシュ値と一致する場合に電子システムへ表示を送信するよう構成されており、かつ、
電子システム（１１２）が、ソフトウェア検証ツール（２２６）からの表示に応答してソフトウェア部品に操作を行うようさらに構成されている請求項８に記載の装置。
【請求項１４】
ソフトウェア完全性データ構造（１１８）が、
ソフトウェア完全性データ構造（１１８）を記述する属性と、
各々が、航空機（１０４）により用いられるソフトウェア部品と対応し、かつ、対応するソフトウェア部品に対するハッシュ値を含むある数の記録と
を含む請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して航空機に関し、とりわけ、航空機のソフトウェア部品を管理することに関する。さらにより詳細には、本開示は、航空機のソフトウェア部品を管理し、かつ、ソフトウェア部品に対して操作が行われる前に航空機上のソフトウェア部品を検証するための方法および装置に関する。
【背景技術】
【０００２】
現代の航空機は極めて複雑である。例えば、航空機は、数多くの種類の電子システムを搭載している可能性がある。航空機上の電子システムは、ライン交換可能ユニット（ＬＲＵ）であってもよい。ライン交換可能ユニットは、容易に交換可能なように設計されている。ライン交換可能ユニットは、航空機の飛行中または航空機が地上にある間に交換することができる。ライン交換可能ユニットは、典型的には、箱に梱包されており、密封されていてもよい。
【０００３】
電子システムは、さまざまな形態を取る可能性がある。航空機上の電子システムは、例えば限定はされないが、飛行管理システム、自動操縦装置、機内娯楽システム、通信システム、航法システム、飛行制御装置、飛行記録装置および衝突回避システムであってもよい。航空機上のさまざまな電子システムは、デジタル飛行機ネットワークを介して互いに通信することができる。
【０００４】
電子システムは、さまざまな操作および機能のための論理または制御を提供するためにソフトウェアまたはプログラミングを用いることがある。これらの電子システムにおいて用いられているソフトウェアは、一般に、航空産業において部品として扱われている。とりわけ、航空機上のライン交換可能ユニットにおける使用のためのソフトウェアアプリケーションは、ライン交換可能ユニット自体とは別々に追跡されてもよい。航空機部品として扱われる航空機のソフトウェアは、読み込み可能なソフトウェア航空機部品、航空機ソフトウェア部品または、単に、ソフトウェア部品と呼ばれてもよい。ソフトウェア部品は、ソフトウェアを操作するハードウェアの一部というよりむしろ航空機構成の一部と考えられる。
【０００５】
航空機の運航責任者は、航空機を運航させる実体である。航空機の運航責任者はまた、航空機の整備および修理の責任を負うことがある。航空機の運航責任者は、例として航空会社および軍隊を含む。航空機の運航責任者が航空機を受領するとき、ソフトウェア部品は典型的には、航空機上の電子システムに既にインストールされている。航空機の運航責任者はまた、ソフトウェア部品をインストールし直したり、航空機上の電子システムに読み込み直したりする必要がある場合、これら読み込まれたソフトウェア部品のコピーを受け取ってもよい。
【０００６】
ソフトウェア部品の再読み込みが必要となる可能性があるのは、例えば、ソフトウェアが用いられるライン交換可能ユニットが交換または修理される場合である。さらに、航空機の運航責任者はまた、時折ソフトウェア部品の更新を受け取ってもよい。これらの更新は、現在インストールされているソフトウェア部品には存在していない追加の特徴を含んでいてもよく、１つ以上の電子システムに対する更新と考えられてもよい。航空機に読み込まれるソフトウェア部品のすべてを含む航空機の現在の構成が分かるように、航空機へのソフトウェア部品の読み込み中に特定の手順にしたがってもよい。
【０００７】
部品が航空機上に読み込まれた後、ソフトウェア部品に対してさまざまな操作を施してもよい。例えば、電子システム上にソフトウェア部品を読み込んでもよく、電子システム上でソフトウェア部品を実行して、ある機能を行ってもよく、ソフトウェア部品を削除してもよく、かつ／または、ソフトウェア部品に対してまたはこれを用いてその他何らかの操作を行ってもよい。ソフトウェア部品は、あらゆる電子システム操作が部品に対して行われる前に検証されてもよい。ソフトウェア部品の検証は、ソフトウェア部品がその元来の形態から変更されていないことを確認するために行ってもよい。ソフトウェア部品を検証するための現在の方法は、デジタル署名に基づいており、かつ、複雑な公開鍵基盤構成要素の使用を要する。これらのプロセスは、望まれるよりも時間と費用がかかることがある。これらのプロセスはまた、すべてのソフトウェア部品の変更、とりわけ、本質的に意図的かつ悪意のある変更を検出する能力についてある特定の限定を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
よって、より費用がかからず、かつ、変更されたソフトウェアの使用を防止可能なようにその検出を向上させるソフトウェア部品の検証方法および装置を有することが有利であろう。
【課題を解決するための手段】
【０００９】
本開示の有利な実施形態は、航空機上のソフトウェア部品を検証するための方法を提供する。航空機上で、航空機上のソフトウェア部品に対して第１ハッシュ値を計算する。次に、航空機上で、第１ハッシュ値が航空機上に保存されているソフトウェア完全性データ構造からの第２ハッシュ値と一致するか否かを判定する。ソフトウェア完全性データ構造は、航空機により用いられるソフトウェア部品に対して航空機上で判定されていないハッシュ値を含む。検証状況は、第１ハッシュ値が第２ハッシュ値と一致するか否かに基づいて提供される。第１ハッシュ値が第２ハッシュ値と一致する場合にのみ、航空機上のソフトウェア部品に操作を行う。
【００１０】
本開示の別の有利な実施形態は、航空機上に保存されているソフトウェア完全性データ構造と、航空機上の計算器と、航空機上の比較器と、を含む装置を提供する。ソフトウェア完全性データ構造は、航空機により用いられるソフトウェア部品に対して航空機上で判定されていないハッシュ値を含む。計算器は、航空機上のソフトウェア部品に対する第１ハッシュ値を計算するよう構成されている。比較器は、第１ハッシュ値がソフトウェア完全性データ構造からの第２ハッシュ値と一致するか否かを判定するよう構成されている。航空機は、第１ハッシュ値が第２ハッシュ値と一致する場合にのみ、ソフトウェア部品に操作を行うよう構成されている。
【００１１】
本開示の別の有利な実施形態は、航空機用のソフトウェア部品を検証するための別の方法を提供する。ある数のソフトウェア部品を受領する。ある数のソフトウェア部品の各々に対するハッシュ値を決定して、ある数のハッシュ値を形成する。航空機上のある数のソフトウェア部品に操作を行うか否かの判定に用いるために、ある数のハッシュ値をソフトウェア完全性データ構造にまとめる。
【００１２】
特徴、機能および利点は、本開示のさまざまな実施形態において独立して達成可能であり、または、以下の説明および図面を参照してさらなる詳細が理解可能であるさらに他の実施形態において組み合わせてもよい。
【００１３】
有利な実施形態の特性と信じられている新規な特徴は、添付の請求項に記載されている。しかしながら、有利な実施形態および好適な使用形態、使用のさらなる目的および利点は、添付の図面とともに解釈すると、以下に示す本開示の有利な実施形態の詳細な説明を参照することにより、もっともよく理解されるだろう。
【図面の簡単な説明】
【００１４】
【図１】図１は、有利な実施形態に係る地上および航空機上のソフトウェア部品を管理するためのソフトウェア部品管理環境のブロック図である。
【図２】図２は、有利な実施形態に係る航空機上のソフトウェア部品が適正か否かを判定するためのシステムのブロック図である。
【図３】図３は、有利な実施形態に係るソフトウェア完全性データ構造のブロック図である。
【図４】図４は、有利な実施形態に係るソフトウェア供給者から航空機へのソフトウェア部品の流れと、航空機上の使用のためのソフトウェア部品の検証用情報の流れとを示すブロック図である。
【図５】図５は、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図である。
【図６】図６は、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図である。
【図７】図７は、有利な実施形態に係る航空機の運航責任者から航空機へのソフトウェア部品の流れを示すブロック図である。
【図８】図８は、有利な実施形態に係るソフトウェア完全性データ構造を生成し、かつ、用いるためのプロセスのフローチャートである。
【図９】図９は、有利な実施形態に係る航空機上のソフトウェア部品を検証するためのプロセスのフローチャートである。
【図１０】図１０は、有利な実施形態に係るデータ処理システムを示している。
【発明を実施するための形態】
【００１５】
種々の有利な実施形態は、ある数の種々の問題点を認識かつ考慮している。項目に言及してここで用いられる「ある数の」は、１つまたはそれ以上の項目を意味する。例えば、「ある数の種々の問題点」は、１つまたはそれ以上の種々の問題点である。
【００１６】
種々の有利な実施形態は、航空機上に読み込まれたソフトウェアおよびその他のデータを検証するための現在の方法が、物理的媒体取り扱いプロセスおよび／またはデジタル署名に基づいているということを認識かつ考慮している。航空機ソフトウェア部品に対する物理的媒体取り扱いプロセスは、安全な出荷方法の使用、媒体内容の電子点検および航空機に搭載されている設備によるソフトウェア部品の周期的冗長検査の確認を含んでもよい。
【００１７】
種々の有利な実施形態はまた、航空機上に読み込まれたソフトウェア部品に対する検証を提供するために証明書による公開鍵基盤（ＰＫＩ）を用いたデジタル署名が現在用いられていることを認識かつ考慮している。デジタル署名の使用は、高価なセットアップおよび整備を要する公開鍵基盤構成要素に依存している。さらに、公開鍵基盤による安全性の解決法は、航空機用途における鍵および証明書の整備の難しさにより移動航空機隊に対する使用には向いていない。例えば、種々の有利な実施形態は、証明書による公開鍵基盤の解決法が、限定された寿命および適時取り消し状況を有する証明書を要するということを認識かつ考慮している。地上の証明機関への接続性が限定されている航空機は、適時に証明書登録状況を判定することができない可能性がある。
【００１８】
有利な実施形態はまた、現在、航空機が、航空機用途における安全性について評価されていない可能性がある商用の市販の公開鍵基盤ソフトウェアを使用していることがあるということを認識かつ考慮している。したがって、そのようなソフトウェアを使用している航空機システムの安全性の認証は、複雑である可能性がある。
【００１９】
有利な実施形態は、航空機電子システム上での使用のためにソフトウェアを検証する方法を改善する。とりわけ、有利な実施形態は、航空機上のソフトウェア部品の完全性を検証する手法を改善する。
【００２０】
有利な実施形態によると、ハッシュ値およびデジタル指紋は、航空機上に読み込まれるソフトウェア部品に対して生成される。ハッシュ値および指紋は、ソフトウェア完全性データ構造内に保存されてもよい。ソフトウェア完全性データ構造は、その他のソフトウェア部品とは別に航空機上に読み込まれる。ソフトウェア完全性データ構造は、その他のソフトウェア部品の検証に用いられる前に検証され、かつ、確保される。ソフトウェア完全性データ構造は、限定はされないが、安全なネットワーク、安全な記憶装置、ＰＫＩ、または、既知の適切な値（good value）に対するソフトウェア完全性データ構造のハッシュの検証といった業界で知られている方法を用いて検証され、かつ、確保されてもよい。次いで、ハッシュ値および指紋は、航空機電子システム内のソフトウェア部品に対して操作が行われる前に航空機上のソフトウェア部品の検証に用いられてもよい。ある実施形態において、ソフトウェア部品は、ソフトウェアを操作する航空機の電子システムにより検証されてもよい。別の有利な実施形態において、ソフトウェア部品は、ソフトウェア部品がライン交換可能ユニットへ転送される前にソフトウェア検証ツールにより検証されてもよい。
【００２１】
ここで図１に注目して、有利な実施形態に係る地上および航空機上のソフトウェア部品を管理するためのソフトウェア部品管理環境のブロック図を描写する。本実施例において、ソフトウェア部品管理環境１０１におけるある数のソフトウェア供給者１００は、ソフトウェア部品１０２を供給する。ある数のソフトウェア供給者１００は、ソフトウェア部品１０２を開発するか、そうでなければ供給するいかなる実体を含んでもよい。例えば限定はされないが、ある数のソフトウェア供給者１００は、航空機製造業者、航空会社や軍隊といった航空機の運航責任者、または、第三者ソフトウェア開発業者を含んでもよい。ソフトウェア部品１０２は、航空機１０４上で用いられるいかなるソフトウェアアプリケーションまたはデータを含んでもよい。
【００２２】
ソフトウェア部品管理環境１０１における航空機整備実体１０６は、航空機１０４上での使用のためにある数のソフトウェア供給者１００により提供されたソフトウェア部品１０２を航空機１０４に読み込む。航空機整備実体１０６は、航空機１０４上へのソフトウェア部品１０２の読み込みの責任を負ういかなる実体であってもよい。例えば、航空機整備実体１０６は、航空機製造業者１０８または航空機の運航責任者１１０を含んでもよい。航空機の運航責任者１１０は、限定はされないが、航空会社、軍隊、または、航空機１０４を運航させるその他のあらゆる民間または政府組織であってもよい。航空機整備実体１０６は、航空機１０４の所有者であっても、そうでなくてもよい。航空機整備実体１０６は、航空機１０４の所有者の代わりに行動して、航空機１０４上にソフトウェア部品１０２を読み込む実体を含んでもよい。いずれの場合も、航空機整備実体１０６は、航空機１０４上にソフトウェア部品１０２を読み込む権限を有すると想定される。航空機整備実体１０６は、航空機１０４上に現在読み込まれているすべてのソフトウェア部品１０２を含む航空機１０４の現在の構成が分かるように、航空機１０４上にソフトウェア部品１０２を読み込むための特定の手順にしたがってもよい。
【００２３】
航空機１０４は、民間もしくは私有の旅客機や貨物航空機または軍隊もしくはその他の政府航空機であってもよい。ソフトウェア部品１０２は、航空機整備実体１０６により航空機１０４へ分配されてもよい。例えば、ソフトウェア部品１０２は、航空機１０４上の電子システム１１２による使用のために航空機１０４上に読み込まれてもよい。例えば、電子システム１１２は、ライン交換可能ユニットを含んでもよい。
【００２４】
電子システム１１２によりソフトウェア部品１０２に対してまたはこれを用いて行われる操作１１４は、航空機１０４の性能または安全性に影響を与える可能性がある。したがって、航空機１０４上のソフトウェア部品１０２が適正か否かを判定することが望ましい。航空機１０４上で用いられるソフトウェア部品１０２が適正で、かつ、破損していないか否かを判定することは、ソフトウェア部品１０２を検証すると呼ばれてもよい。操作１１４は、ソフトウェア部品１０２の完全性が適正であると確認可能でなければ、電子システム１１２により航空機１０４上のソフトウェア部品１０２に対して行われるべきではない。
【００２５】
ソフトウェア部品１０２の完全性を検証することは、航空機１０４に現在読み込まれているソフトウェア部品１０２がある数のソフトウェア供給者１００により製造されたソフトウェア部品１０２と同じであるか否かを判定することを含んでもよい。航空機１０４上のソフトウェア部品１０２は、破損するか、そうでなければ変更されるかもしれない。例えば、ソフトウェア部品１０２は、ある数のソフトウェア供給者１００から航空機整備実体１０６を経て航空機１０４へのソフトウェア部品の分配プロセス中、および、このプロセス中のさまざまな位置におけるソフトウェア部品１０２の保存中に破損する可能性がある。ソフトウェア部品１０２に対するそのような変更は、偶発的または悪意のあるものかもしれない。
【００２６】
有利な実施形態にしたがって、航空機１０４に対してソフトウェア完全性検証機能１１６を行ってもよい。ソフトウェア完全性検証機能１１６は、操作１１４がソフトウェア部品１０２に対して行われる前に航空機１０４上のソフトウェア部品１０２が適正か否かを判定するために用いられてもよい。ソフトウェア完全性検証機能１１６は、航空機１０４上に読み込まれたソフトウェア部品１０２を定期的に検証するために用いられてもよい。
【００２７】
有利な実施形態にしたがって、ソフトウェア完全性検証機能１１６は、航空機１０４上のソフトウェア部品１０２を検証するために、ソフトウェア完全性データ構造１１８内に収集されたハッシュ値およびその他の属性を使用する。ソフトウェア完全性データ構造１１８はまた、ハッシュファイルまたはマスターハッシュファイルと呼んでもよい。ソフトウェア完全性データ構造１１８は、航空機整備実体１０６により生成されてもよく、かつ、航空機整備実体１０６により航空機１０４上に読み込まれてもよい。ソフトウェア完全性データ構造１１８を生成する航空機整備実体１０６は、航空機１０４上にソフトウェア部品１０２を読み込む航空機整備実体１０６と同じであっても、異なっていてもよい。
【００２８】
時間とともに、あるソフトウェア部品１０２を航空機１０４から取り除いてもよく、かつ、新たなソフトウェア部品１０２を航空機１０４上に読み込んでもよい。これらの行為により、航空機１０４の構成が変更される。航空機１０４上に読み込まれた新たなソフトウェア部品１０２は、航空機１０４上のソフトウェア部品１０２の検証に用いられるソフトウェア完全性データ構造１１８に対する変更を要することとなる。ソフトウェア完全性データ構造１１８に対する変更は、航空機１０４のモデル用のすべての既存のソフトウェア部品を反映する完全に新しいソフトウェア完全性データ構造１１８を生成することにより作成してもよい。
【００２９】
あるいは、既存のソフトウェア完全性データ構造１１８に対する更新として、新たなソフトウェア部品を反映するために必要なソフトウェア完全性データ構造１１８に対する変更を提供してもよい。ソフトウェア完全性データ構造１１８に対する更新は、航空機整備実体１０６により生成してもよい。ソフトウェア完全性データ構造１１８に対する更新は、ソフトウェア完全性データ構造１１８全体の再生成および再読み込みを要することなく、航空機１０４上のソフトウェア完全性データ構造１１８を更新するために航空機１０４上に読み込まれてもよい。
【００３０】
ここで図２に注目して、有利な実施形態に係る航空機上のソフトウェア部品が適正か否かを判定するためのシステムのブロック図を描写する。本実施例において、航空機２００は、図１における航空機１０４のある実施構成の一例である。航空機２００は、有利な実施形態を実施可能な輸送手段２０２の一例である。輸送手段２０２は、空気中、宇宙空間またはその両方を移動することができる宇宙機またはその他あらゆる輸送手段のような別の種類の航空宇宙輸送手段であってもよい。輸送手段２０２はまた、列車、水上艦または潜水艦のような地上輸送手段または水輸送手段であってもよい。輸送手段２０２は、有利な実施形態を実施可能なある種類の可動プラットフォーム２０４の一例である。
【００３１】
航空機２００は、航空機電子システム２０６を含んでもよい。航空機電子システム２０６は、あらゆる適切なネットワークアーキテクチャにおいてともに接続されているさまざまなハードウェア装置またはシステムを含んでもよい。航空機電子システム２０６は、ライン交換可能ユニット２１０を含んでもよい。例えば限定はされないが、航空機電子システム２０６は、ソフトウェア部品２１２の形態でソフトウェアを実行するプロセッサを有するシステムを含んでもよい。
【００３２】
ソフトウェア部品２１２は、ある数のソフトウェア供給者２１４により開発されるか、そうでなければ提供されてもよい。ある数のソフトウェア供給者２１４からのソフトウェア部品２１２は、航空機整備実体２１６により航空機２００上に読み込まれてもよい。本実施例において、ある数のソフトウェア供給者２１４は、図１におけるある数のソフトウェア供給者１００の一例であり、かつ、航空機整備実体２１６は、図１における航空機整備実体１０６の一例である。
【００３３】
航空機整備実体２１６はまた、ソフトウェア完全性データ構造２２０を生成し、航空機２００上に読み込んでもよい。有利な実施形態によると、ソフトウェア完全性データ構造２２０は、航空機２００上のその他のソフトウェア部品２１２を検証するために用いられる。したがって、ソフトウェア完全性データ構造２２０は、航空機２００上に読み込まれ、かつ、ソフトウェア完全性データ構造２２０の安全性を維持するような手法で航空機２００内に維持されてもよい。
【００３４】
例えば、ソフトウェア完全性データ構造２２０は、その他の航空機ソフトウェア部品２１２が航空機２００の適正な構造制御を維持するように航空機２００上に読み込まれてもよい。航空機２００上に読み込まれた際のソフトウェア完全性データ構造２２０に対する安全性を提供し、かつ、航空機２００上のソフトウェア完全性データ構造２２０の破損を防ぐために、デジタル署名またはその他の方法もしくはシステムを用いてもよい。
【００３５】
ソフトウェア完全性データ構造２２０は、航空機２００上のソフトウェア部品２１２に対するハッシュ値２２２およびその他の属性２２４を含む。ハッシュ値２２２およびその他の属性２２４は、ソフトウェア部品２１２が航空機２００上に読み込まれる前にソフトウェア部品２１２から航空機整備実体２１６またはその他何らかの実体により生成される。
【００３６】
ハッシュ値２２２は、あらゆる適切な暗号のハッシュ機能またはその他の適切なハッシュ機能を用いてソフトウェア部品２１２から生成されるデジタルまたはその他の数値を含んでもよい。例えば限定はされないが、ＳＨＡ−２５６ハッシュ機能または別のハッシュ機能を用いて、ソフトウェア部品２１２に対するハッシュ値２２２を生成してもよい。該ＳＨＡ−２５６ハッシュ機能は、結果として、あらゆる所与のソフトウェア部品に対する２５６ビットのハッシュ値となる。
【００３７】
その他の属性２２４は、ソフトウェア部品２１２を識別するさまざまなデジタル英数字またはその他の値を含んでもよい。その他の属性２２４は、対応するソフトウェア部品２１２に対する対応するハッシュ値２２２を有するソフトウェア完全性データ構造２２０において関連付けられてもよい。その他の属性２２４は、ソフトウェア部品２１２の各々に対する１つ以上の指紋を含んでもよい。これらの指紋は、指紋法アルゴリズムまたは指紋機能を用いてソフトウェア部品２１２から生成されてもよい。その他の属性２２４の生成に用いられるアルゴリズムまたは機能は、ハッシュ値２２２の生成に用いられるハッシュ機能とは異なることが好ましい。
【００３８】
ソフトウェア完全性データ構造２２０からのハッシュ値２２２およびその他の属性２２４は、航空機２００上のソフトウェア部品２１２を検証するためにソフトウェア検証ツール２２６により用いられてもよい。本実施例において、ソフトウェア検証ツール２２６は、図１におけるソフトウェア完全性検証機能１１６を行うための装置の一例である。ソフトウェア検証ツール２２６は、ここに説明するソフトウェア検証ツール２２６の機能を実行するために、ハードウェアまたはソフトウェアと組み合わせて動作するハードウェアを用いて航空機電子システム２０６において実施されてもよい。
【００３９】
ソフトウェア検証ツール２２６は、計算器２２８および比較器２３０を含んでもよい。計算器２２８は、航空機２００上のソフトウェア部品２１２に対するハッシュ値を決定するためにソフトウェア検証ツール２２６により用いられる。計算器２２８により決定されたハッシュ値は、第１ハッシュ値と呼んでもよい。航空機２００上のソフトウェア部品２１２に対するハッシュ値は、ソフトウェア完全性データ構造２２０におけるハッシュ値２２２の生成に用いられたものと同じハッシュ機能を用いて計算器２２８により決定される。ソフトウェア完全性データ構造２２０におけるハッシュ値２２２は、第２ハッシュ値と呼んでもよい。
【００４０】
計算器２２８はまた、航空機２００上のソフトウェア部品２１２に対するその他の属性を決定するためにソフトウェア検証ツール２２６により用いられてもよい。計算器２２８により決定されたその他の属性は、第１属性と呼んでもよい。航空機２００上のソフトウェア部品２１２に対するその他の属性は、ソフトウェア完全性データ構造２２０におけるその他の属性２２４の生成に用いられたものと同じアルゴリズムまたは機能を用いて計算器２２８により決定されてもよい。ソフトウェア完全性データ構造２２０におけるその他の属性２２４は、第２属性と呼ばれてもよい。
【００４１】
比較器２３０は、計算機２２８により生成されたハッシュ値と、対応するソフトウェア部品２１２に対するソフトウェア完全性データ構造２２０におけるハッシュ値２２２とを比較するためにソフトウェア検証ツール２２６により用いられる。比較器２３０はまた、計算機２２８により生成されたその他の属性と、対応するソフトウェア部品２１２に対するソフトウェア完全性データ構造２２０におけるその他の属性２２４とを比較するためにソフトウェア検証ツール２２６により用いられてもよい。
【００４２】
計算器２２８により決定された航空機２００上のソフトウェア部品２１２のうちの１つに対するハッシュ値が、ソフトウェア部品に対するソフトウェア完全性データ構造２２０からのハッシュ値と一致しない場合、該ソフトウェア部品は検証されない。同様に、計算器２２８により決定された航空機２００上のソフトウェア部品２１２のうちの１つに対するその他の属性が、ソフトウェア部品に対するソフトウェア完全性データ構造２２０からのその他の属性２２４と一致しない場合、該ソフトウェア部品は検証されない。いずれの場合も、ソフトウェア検証ツール２２６は、該ソフトウェア部品が検証されていないことの表示を航空機電子システム２０６に対して提供してもよい。この場合、航空機電子システム２０６は、該ソフトウェア部品に対して操作を行ってはならない。航空機２００の機内または機外の人間の運航責任者は、適切な措置が講じられるように、ソフトウェア部品が検証されていないとソフトウェア検証ツール２２６が判定した際に通知を受けてもよい。
【００４３】
計算器２２８により決定された航空機２００上のソフトウェア部品２１２のうちの１つに対するハッシュ値が、ソフトウェア部品に対するソフトウェア完全性データ構造２２０からのハッシュ値と一致し、かつ、計算器２２８により決定された航空機２００上のソフトウェア部品に対するその他の属性が、ソフトウェア部品に対するソフトウェア完全性データ構造２２０からのその他の属性２２４と一致すると比較器２３０が判定した場合、ソフトウェア部品は検証されている。この場合、ソフトウェア検証ツール２２６は、該ソフトウェア部品が検証されていることの表示を航空機電子システム２０６に対して提供してもよく、かつ、航空機電子システム２０６は、検証されたソフトウェア部品に対して所望の操作を行ってもよい。
【００４４】
航空機２００上のソフトウェア部品２１２とハッシュ値２２２およびその他の属性２２４の生成に用いられるソフトウェア部品とのあらゆる差異により、結果として、計算機２２８が、ソフトウェア完全性データ構造２２０におけるハッシュ値２２２およびその他の属性２２４とは異なるソフトウェア部品２１２に対するハッシュ値およびその他の属性を決定することとなる。これらの差異は、ソフトウェア部品２１２が、提供されるか、または、航空機２００上のソフトウェア部品２１２の認証されていないソースまたは損なわれた完全性から読み込まれている結果であってもよい。
【００４５】
いずれの場合も、比較器２３０は、適切な措置が講じられるようにこれらの差異を検出する。例えば、これらの措置は、限定はされないが、航空機２００上のそのようなソフトウェア部品２１２に操作を行わないこと、および、航空機２００の運航責任者に航空機２００上のそのようなソフトウェア部品２１２が適性でないことを通知することを含んでもよい。
【００４６】
ソフトウェア完全性データ構造２２０におけるハッシュ値２２２の生成に用いられるハッシュ機能のソフトウェア部品２１２の特定のビット画像を固有に識別する能力を次第に減少させることは可能である。ソフトウェア部品２１２が検証されるために計算器２２８により決定されたハッシュ値およびその他の属性の両方がソフトウェア完全性データ構造２２０におけるハッシュ値２２２およびその他の属性２２４と一致することを要することにより、検証の信頼度が向上し、かつ、ソフトウェア完全性データ構造２２０の耐用寿命が延びる。
【００４７】
図１および図２の図示は、種々の有利な実施形態を実施可能な手法に対する物理的またはアーキテクチャの限定を暗示するという意図はない。図示されている構成要素に加えて、かつ／または、これに代えてその他の構成要素を用いてもよい。いくつかの構成要素は、いくつかの有利な実施形態において不必要であってもよい。また、ブロックは、いくつかの機能的構成要素を説明するために提示されている。これらのブロックのうちの１つ以上は、種々の有利な実施形態において実施される際に、組み合わせ、かつ／または、異なるブロックに分割されてもよい。
【００４８】
例えば、航空機２００における同時動作のために、１つより多くのソフトウェア検証ツール２２６を実施してもよい。さらに、ソフトウェア検証ツール２２６により行われる機能は、航空機２００内の１つ以上の位置において実施されてもよい。ある実施例において、ソフトウェア検証ツール２２６は、ソフトウェア部品２１２を操作する１つ以上の航空機電子システム２０６において実施されてもよい。別の実施例として、ソフトウェア検証ツール２２６は、ある数の航空機電子システム２０６上での使用のためのソフトウェア部品２１２の検証に用いられる別個のソフトウェア完全性検証機能として実施されてもよい。この場合、ソフトウェア検証ツール２２６により行われる機能は、ソフトウェア部品２１２が航空機電子システム２０６内に読み込まれる前、または、航空機電子システム２０６によりソフトウェア部品２１２に対して操作が行われる前にソフトウェア部品２１２を検証するために行われてもよい。
【００４９】
別の実施例として、ソフトウェア検証ツール２２６により行われる機能は、航空機電子システム２０６内の種々の位置において行われてもよい。例えば、計算機２２８により行われる機能は、検証されるソフトウェア部品２１２が読み込まれる航空機電子システム２０６により行われてもよい。この場合、計算機２２８により決定されるハッシュ値およびその他の属性は、航空機２００の別の位置に位置している比較器２３０へ送られてもよい。次いで、比較器２３０は、航空機電子システム２０６に読み込まれたソフトウェア部品２１２のために比較器２３０により行われた比較の結果を示す表示を航空機電子システム２０６へ送り返してもよい。
【００５０】
ここで図３に注目して、有利な実施形態に係るソフトウェア完全性データ構造のブロック図を描写する。本実施例において、ソフトウェア完全性データ構造３００は、図１におけるソフトウェア完全性データ構造１１８および図２におけるソフトウェア完全性データ構造２２０のある実施構成の一例である。ソフトウェア完全性データ構造３００は、データ構造属性３０２およびある数のソフトウェア部品記録３０４を含んでもよい。
【００５１】
データ構造属性３０２は、ソフトウェア完全性データ構造３００自体を記述する属性を含んでもよい。例えば限定はされないが、データ構造属性３０２は、ファイルバージョン識別子３０６、スキーマバージョン識別子３０８、適用可能性情報３１０、ソース識別子３１２および作成日３１４を含んでもよい。
【００５２】
ファイルバージョン識別子３０６は、ソフトウェア完全性データ構造３００のある特定のバージョンを識別してもよい。スキーマバージョン識別子３０８は、ソフトウェア完全性データ構造３００の作成に用いられるスキーマのバージョンを識別してもよい。例えば、スキーマバージョン識別子３０８は、ソフトウェア完全性データ構造３００の作成に用いられるＸＭＬスキーマのバージョンを識別してもよい。適用可能性情報３１０は、ソフトウェア完全性データ構造３００を用いることができる航空機またはその他の輸送手段についての情報を含んでもよい。例えば、適用可能性情報３１０は、ソフトウェア完全性データ構造３００を用いることができる航空機モデルまたは航空機システムを識別する情報を含んでもよい。
【００５３】
ソース識別子３１２は、ソフトウェア完全性データ構造３００を作成した実体を識別してもよい。例えば、ソフトウェア完全性データ構造３００を作成した会社またはその他の実体の名称を含んでもよい。作成日３１４は、ソフトウェア完全性データ構造３００が作成された日付を特定してもよい。
【００５４】
ソフトウェア完全性データ構造３００を用いて検証されてもよい航空機における各ソフトウェア部品は、ソフトウェア完全性データ構造３００内のソフトウェア部品記録３０４のうちの対応する１つにより表されてもよい。ソフトウェア部品記録３０４の各１つは、ある数のソフトウェア部品属性３１６を含んでもよい。ソフトウェア部品属性３１６は、対応するソフトウェア部品記録３０４により表されているソフトウェア部品を説明するか、または、これから導き出される属性を含んでもよい。例えば限定はされないが、ソフトウェア部品属性３１６は、ソフトウェア部品番号３１８、ハッシュ値３２０、ファイル数３２２およびファイル指紋データ３２４を含んでもよい。
【００５５】
ソフトウェア部品番号３１８は、対応するソフトウェア部品記録により表されるソフトウェア部品を識別する番号を含んでもよい。ハッシュ値３２０は、ソフトウェア部品に対して決定されたハッシュ値を含んでもよい。例えば限定はされないが、ハッシュ値３２０は、ＳＨＡ−２５６または入力としてソフトウェア部品を用いて演算されるその他のハッシュ機能から得られるハッシュ値の１６進表現またはその他の表現を含んでもよい。ファイル数３２２は、ソフトウェア部品を構成するファイルの数を示してもよい。
【００５６】
ファイル指紋データ３２４は、ソフトウェア部品から導き出されるソフトウェア部品に対する指紋を含んでもよい。ファイル指紋データ３２４は、各々に対してソフトウェア部品内のファイル数とともに提供されてもよい。ファイル指紋データ３２４は、各ソフトウェア部品ファイルに対して用いられる１つ以上の指紋アルゴリズムまたは機能を用いてソフトウェア部品から導き出されてもよい。好ましくは、ファイル指紋データ３２４は、ハッシュ値３２０の決定に用いられるハッシュ機能のようなハッシュ機能を用いてソフトウェア部品からは決定されない。一実施例において、ファイル指紋データ３２４は、ファイル名の表現３２６、ファイル長の表現３２８およびファイル内のバイナリ１値の数３３０を含んでもよい。例えば、ファイル名の表現３２６は、ソフトウェア部品ファイル名のＡＳＣＩＩ文字表現またはその他の表現を含んでもよい。
【００５７】
ファイル長の表現３２８は、バイトによるソフトウェア部品ファイル長のＡＳＣＩＩ整数またはその他の表現を含んでもよい。ファイル内のバイナリ１値の数３３０は、ソフトウェア部品ファイルに含まれるバイナリ１値の数のＡＳＣＩＩ整数またはその他の表現を含んでもよい。
【００５８】
ファイル指紋データ３２４は、ファイル名の表現３２６、ファイル長の表現３２８およびファイル内のバイナリ１値の数３３０を、各項目がセミコロンまたはその他の文字により分離されている状態で連結することにより形成される文字列であってもよい。有利な実施形態によると、指紋は、ここでの実施例により説明されているファイル指紋データ３２４とは異なって決定またはフォーマットされてもよい。また、有利な実施形態によると、ソフトウェア完全性データ構造は、ここでの実施例により説明されているものより多い、少ないまたはこれとは異なるデータ構造属性またはソフトウェア部品属性を含んでもよい。
【００５９】
ここで図４に注目して、有利な実施形態に係るソフトウェア供給者から航空機へのソフトウェア部品の流れと、航空機上の使用のためのソフトウェア部品の検証用情報の流れとを示すブロック図を描写する。本実施例において、ソフトウェア供給者４００および航空機製造業者４０２は、図１におけるある数のソフトウェア供給者１００および図２におけるある数のソフトウェア供給者２１４の一例である。本実施例において、航空機の運航責任者４０４は、図１における航空機整備実体１０６および図２における航空機整備実体２１６の一例である。本実施例において、航空機４０６は、図１における航空機１０４および図２における航空機２００の一例である。
【００６０】
ソフトウェア供給者４００は、供給者ソフトウェア４０８を開発するか、そうでなければ航空機製造業者４０２へ提供する。ソフトウェア供給者４００は、供給者ソフトウェア４０８を航空機製造業者４０２へ提供するある数の第三者またはその他のソフトウェア供給者のうちの１つであってもよい。
【００６１】
航空機製造業者４０２は、自らの製造業者ソフトウェア４１０を開発してもよい。航空機製造業者４０２は、自らの製造業者ソフトウェア４１０をソフトウェア供給者４００からの供給者ソフトウェア４０８と組み合わせて、ソフトウェア部品４１２を航空機の運航責任者４０４へ提供してもよい。ソフトウェア部品４１２は、航空機製造業者４０２により製造中の航空機上に読み込まれてもよい。航空機製造業者４０２はまた、ソフトウェア部品４１２からソフトウェア完全性データ構造４１６を生成してもよい。航空機製造業者４０２は、ソフトウェア部品４１２およびソフトウェア完全性データ構造４１６を航空機の運航責任者４０４に提供してもよい。航空機の運航責任者４０４は、ソフトウェア完全性データ構造４１６を航空機４０６上に読み込んでもよく、かつ、必要に応じてソフトウェア部品４１２を航空機４０６上に読み込んだり、読み込み直したりしてもよい。
【００６２】
ソフトウェア部品４１２は、航空機４０６上のソフトウェア記憶装置４１８に保存してもよい。ソフトウェア完全性データ構造４１６は、航空機４０６上のソフトウェア完全性データ構造記憶装置４２０に保存してもよい。本実施例において、ソフトウェア部品の検証は、航空機４０６上の電子システム４２２により行われる。この場合、ソフトウェア部品は、ソフトウェア記憶装置４１８から電子システム４２２へ提供されてもよく、かつ、基準ハッシュ値およびその他の属性は、ソフトウェア完全性データ構造記憶装置４２０から電子システム４２２へ提供されてもよい。次いで、電子システム４２２は、ソフトウェア部品からハッシュ値およびその他の属性を決定し、決定したハッシュ値およびその他の属性をソフトウェア完全性データ構造４１６からの基準ハッシュ値およびその他の属性と比較して、上で説明したようにソフトウェア部品を検証してもよい。電子システム４２２は、ソフトウェア部品が電子システム４２２により検証されている場合に、ソフトウェア部品に対して操作を行ってもよい。
【００６３】
ここで図５に注目して、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図を描写する。本実施例において、航空機５００は、図４における航空機４０６の別の一例である。図５は、図４におけるソフトウェア部品を検証するためのプロセスの代替例の航空機上のソフトウェア部品を検証するためのプロセスに対する航空機５００上の情報の流れを示す。ソフトウェア部品５０２は、航空機５００上のソフトウェア記憶装置５０４に保存してもよい。ソフトウェア完全性データ構造５０６は、航空機５００上のソフトウェア完全性データ構造記憶装置５０８に保存してもよい。
【００６４】
本実施例において、ソフトウェア部品の検証は、ソフトウェア部品が用いられる電子システム５１２から分離したソフトウェア検証ツール５１０により行われる。この場合、ソフトウェア部品は、ソフトウェア記憶装置５０４からソフトウェア検証ツール５１０へと送られてもよく、かつ、基準ハッシュ値およびその他の属性は、ソフトウェア完全性データ構造記憶装置５０８からソフトウェア検証ツール５１０へと送られてもよい。次いで、ソフトウェア検証ツール５１０は、ソフトウェア部品からハッシュ値およびその他の属性を決定してもよい。
【００６５】
ソフトウェア検証ツール５１０はまた、決定したハッシュ値およびその他の属性をソフトウェア完全性データ構造５０６からの基準ハッシュ値およびその他の属性と比較してもよい。この比較は、上で説明したようにソフトウェア部品を検証するために行われる。ソフトウェア部品がソフトウェア検証ツール５１０により検証されれば、ソフトウェア部品は、航空機５００上の電子システム５１２に提供されてもよい。次いで、電子システム５１２により検証されたソフトウェア部品に操作を行ってもよい。
【００６６】
ここで図６に注目して、有利な実施形態に係る航空機上のソフトウェア部品の検証用情報の別の流れを示すブロック図を描写する。本実施例において、航空機６００は、図４における航空機４０６の別の一例である。図６は、図４および図５におけるソフトウェア部品を検証するためのプロセスの代替例の航空機上のソフトウェア部品を検証するためのプロセスに対する航空機６００上の情報の流れを示す。ソフトウェア部品６０２は、航空機６００上のソフトウェア記憶装置６０４に保存してもよい。ソフトウェア完全性データ構造６０６は、航空機６００上のソフトウェア完全性データ構造記憶装置６０８に保存してもよい。
【００６７】
本実施例において、ソフトウェア部品の検証は、ソフトウェア検証ツール６１０および電子システム６１２により行われる。この場合、ソフトウェア部品は、ソフトウェア記憶装置６０４からソフトウェア検証ツール６１０へと送られてもよく、かつ、基準ハッシュ値およびその他の属性は、ソフトウェア完全性データ構造記憶装置６０８からソフトウェア検証ツール６１０へと送られてもよい。次いで、ソフトウェア検証ツール６１０は、電子システム６１２上へソフトウェア部品を読み込んでもよい。電子システム６１２は、ソフトウェア部品からハッシュ値およびその他の属性を決定してもよい。
【００６８】
次いで、電子システム６１２により決定されたハッシュ値およびその他の属性は、ソフトウェア検証ツール６１０へと送り返されてもよい。次いで、ソフトウェア検証ツール６１０は、電子システム６１２により決定したハッシュ値およびその他の属性をソフトウェア完全性データ構造６０６からのハッシュ値およびその他の属性と比較して、上で説明したようにソフトウェア部品を検証してもよい。ソフトウェア検証ツール６１０は、ソフトウェア部品がソフトウェア検証ツール６１０により検証される際に、電子システム６１２へ表示を送ってもよい。次いで、電子システム６１２により検証されたソフトウェア部品に操作を行ってもよい。
【００６９】
ここで図７に注目して、有利な実施形態に係る航空機の運航責任者から航空機へのソフトウェア部品の流れを示すブロック図を描写する。本実施例において、航空機の運航責任者７００は、図４における航空機の運航責任者４０４の一例であり、かつ、航空機７０２は、図４における航空機４０６の一例である。
【００７０】
航空機の運航責任者７００は、航空機製造業者からソフトウェア部品７０４およびソフトウェア完全性データ構造７０６の提供を受ける。本実施例において、航空機の運航責任者７００はまた、自らの航空機運航責任者ソフトウェア７０８を開発するか、そうでなければ提供してもよい。航空機の運航責任者７００は、航空機７０２上に航空機運航責任者ソフトウェア７０８を含むソフトウェア部品７０４を読み込んでもよい。ソフトウェア部品７０４は、例示的な本実施例において航空機７０２上のソフトウェア記憶装置７１０に保存される。
【００７１】
描写されている本実施例において、航空機の運航責任者７００はまた、航空機運航責任者ソフトウェア７０８から自らの航空機運航責任者ソフトウェア完全性データ構造７１２を生成する。ソフトウェア完全性データ構造７０６および航空機運航責任者ソフトウェア完全性データ構造７１２は、航空機の運航責任者７００により航空機７０２上に読み込まれ、航空機７０２上のソフトウェア完全性データ構造記憶装置７１４に保存されてもよい。ソフトウェア記憶装置７１０に保存されているソフトウェア部品７０４ならびにソフトウェア完全性データ構造記憶装置７１４に保存されているハッシュ値およびその他の属性は、図４、図５または図６を参照して上で説明したソフトウェア部品検証のための手順のうちの１つを用いて航空機７０２上のソフトウェア検証機能７１６によりソフトウェア部品７０４を検証するために用いられてもよい。
【００７２】
ここで図８に注目して、有利な実施形態に係るソフトウェア完全性データ構造を生成し、かつ、用いるためのプロセスのフローチャートを描写する。図８に示すプロセスは、例えば、図１におけるソフトウェア部品管理環境１０１において実施可能である。
【００７３】
プロセスは、ソフトウェア部品を受領することにより開始する（動作８０２）。例えば、動作８０２は、ソフトウェア供給者から航空機ソフトウェア部品を受領することを含んでもよい。次いで、ソフトウェア部品からハッシュ値および指紋を決定する（動作８０４）。動作８０４は、適切なハッシュ機能またはその他のアルゴリズムを用いてソフトウェア部品からハッシュ値および指紋を決定することを含んでもよい。
【００７４】
次いで、複数のソフトウェア部品に対するハッシュ値および指紋をソフトウェア完全性データ構造へとまとめてもよい（動作８０６）。ソフトウェア完全性データ構造を検証し、航空機のような輸送手段上に読み込む（動作８０８）。ソフトウェア完全性データ構造は、その他のソフトウェア部品の検証に用いられる前に、それ自体が検証されることが望ましい。そうでなければ、ソフトウェア完全性データ構造は、その他のソフトウェア部品の検証には信頼できない。
【００７５】
ソフトウェア部品も輸送手段上に読み込んでもよい（動作８１０）。ソフトウェア完全性データ構造は、ソフトウェア部品が輸送手段上で用いられる前に、輸送手段上でソフトウェア部品の検証に用いられてもよく（動作８１２）、その後プロセスは終了する。
【００７６】
ここで図９に注目して、有利な実施形態に係る航空機上のソフトウェア部品を検証するためのプロセスのフローチャートを描写する。図９のプロセスは、例えば、図２におけるソフトウェア検証ツール２２６において実施可能である。図９のプロセスは、図８における動作８１２の実施に用いてもよいプロセスの一例である。
【００７７】
プロセスは、航空機上に保存されているソフトウェア部品に対する第１ハッシュ値および第１指紋を計算することにより開始してもよい（動作９０２）。ソフトウェア完全性データ構造においてソフトウェア部品に対する第２ハッシュ値および第２指紋を識別する（動作９０４）。
【００７８】
第１ハッシュ値が第２ハッシュ値と一致し、かつ、第１指紋が第２指紋と一致するか否かについて判定する（動作９０６）。両方のハッシュ値と指紋が一致すると判定された場合、航空機上でソフトウェア部品を用いてもよく（動作９０８）、その後プロセスは終了する。第１ハッシュ値が第２ハッシュ値と一致しないか、第１指紋が第２指紋と一致しないかのいずれかと判定された場合、航空機上でソフトウェア部品を用いてはならない（動作９１０）。ソフトウェア部品が検証されていない場合、航空機の運航責任者に通知してもよく（動作９１２）、その後プロセスは終了する。
【００７９】
描写された種々の実施形態におけるフローチャートおよびブロック図は、ある有利な実施形態における装置および方法のいくつかの可能な実施構成のアーキテクチャ、機能性および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、動作または工程のモジュール、区分、機能および／または一部を表していてもよい。例えば、ブロックの１つ以上は、プログラムコードとして、ハードウェア内で、または、プログラムコードとハードウェアとの組み合わせで実施されてもよい。ハードウェア内で実施されるとき、そのハードウェアは、例えば、フローチャートまたはブロック図における１つ以上の動作を行うよう製造または構成されている集積回路の形態を取ってもよい。
【００８０】
ある有利な実施形態のいくつかの代替の実施構成において、ブロック内で示されている１つまたは複数の機能は、図示されているのとは異なった順序で起こってもよい。例えば、いくつかの場合において、関連する機能性によっては、連続して示されている２つのブロックが実質的に同時に実行されてもよく、または、該ブロックが時として逆の順序で行われてもよい。また、フローチャートまたはブロック図に示されているブロックに加えて、その他のブロックが追加されてもよい。
【００８１】
有利な実施形態の１つ以上は、ソフトウェア供給者から航空機へ分配されるソフトウェアまたはその他のデータの完全性を検証する能力を提供する。有利な実施形態にしたがって、航空機から地上へのネットワーク接続により、または、これによらずに航空機上のソフトウェア検証を行ってもよい。有利な実施形態によるソフトウェア検証は、証明機関のような複雑な公開鍵基盤構成要素を要しない。有利な実施形態は、ソフトウェア検証用のハッシュ値を使用する。ハッシュ値は有効期限がない。したがって、有利な実施形態は、ソフトウェアの安全性のために公開鍵基盤構成要素に依存するシステムにおける証明書管理および証明書有効期限切れという制限を取り除く。
【００８２】
したがって、有利な実施形態は、ソフトウェア完全性データ構造のソースが信頼されるという条件で、航空機上のソフトウェアまたはその他のデータの完全性の検証を提供する。有利な実施形態はまた、公開鍵基盤ソフトウェアを用いる現在の方法よりリスクおよびコストが低く安全性を証明可能な手法で航空機上のソフトウェア部品の検証を提供する。
【００８３】
ここで図１０に注目して、有利な実施形態に係るデータ処理システムの図を描写する。本実施例において、データ処理システム１０００は、図２における航空機電子システム２０６の一例である。例えば、データ処理システム１０００は、図２におけるライン交換可能ユニット２１０のある実施構成の一例である。本説明例において、データ処理システム１０００は、通信機構１００２を含む。通信機構１００２は、プロセッサユニット１００４、メモリ１００６、固定記憶域１００８、通信ユニット１０１０、入出力（Ｉ／Ｏ）ユニット１０１２および表示部１０１４の間の通信を提供する。
【００８４】
プロセッサユニット１００４は、メモリ１００６内に読み込まれてもよいソフトウェア用の命令を実行する役割を果たす。プロセッサユニット１００４は、特定の実施構成によって、ある数のプロセッサ、マルチプロセッサコア、またはその他何らかの種類のプロセッサであってもよい。項目に言及してここで用いられる「ある数の」は、１つまたはそれ以上の項目を意味する。さらに、プロセッサユニット１００４は、単一のチップ上に主プロセッサが副プロセッサとともに存在するある数の異種プロセッサシステムを用いて実施可能である。別の説明例として、プロセッサユニット１００４は、同種の複数のプロセッサを含む対称型マルチプロセッサシステムであってもよい。
【００８５】
メモリ１００６および固定記憶域１００８は、記憶装置１０１６の一例である。記憶装置は、例えば限定はされないが、データ、機能的形態のプログラムコード、および／または、一時的かつ／または永久的いずれかのその他適切な情報といった情報を保存することができるあらゆるハードウェアである。記憶装置１０１６はまた、これらの実施例においてコンピュータ読み取り可能な記憶装置と呼ばれてもよい。これらの実施例において、メモリ１００６は、例えば、ランダムアクセスメモリまたはその他あらゆる適切な揮発性もしくは不揮発性記憶装置であってもよい。固定記憶域１００８は、特定の実施構成によって、さまざまな形態を取ってもよい。
【００８６】
例えば、固定記憶域１００８は、１つまたはそれ以上の構成要素または装置を含んでもよい。例えば、固定記憶域１００８は、ハードドライブ、フラッシュメモリ、書き換え可能な光学ディスク、書き換え可能な磁気テープ、または、上記の何らかの組み合わせであってもよい。固定記憶域１００８により用いられる媒体もまた、着脱可能であってもよい。例えば、固定記憶域１００８用に着脱可能なハードドライブを用いてもよい。
【００８７】
これらの実施例において、通信ユニット１０１０は、その他のデータ処理システムまたは装置との通信を提供する。これらの実施例において、通信ユニット１０１０は、ネットワークインタフェースカードである。通信ユニット１０１０は、物理的通信回線と無線通信回線とのいずれかまたは両方の使用により通信を提供してもよい。
【００８８】
入出力ユニット１０１２は、データ処理システム１０００と接続可能なその他の装置に対してデータを入力および出力可能とする。例えば、入出力ユニット１０１２は、キーボード、マウス、および／または、その他何らかの適切な入力装置を介するユーザ入力に対する接続を提供してもよい。さらに、入出力ユニット１０１２は、プリンタへの出力を送信してもよい。表示部１０１４は、ユーザに対する情報を表示する機構を提供する。
【００８９】
オペレーティングシステム、アプリケーションおよび／またはプログラムに対する命令は、記憶装置１０１６内に位置していてもよく、該記憶装置１０１６は、通信機構１００２を介してプロセッサユニット１００４と通信状態にある。これらの説明例において、命令は、固定記憶域１００８上で機能的形態にある。これらの命令は、メモリ１００６内に読み込まれて、プロセッサユニット１００４により実行されてもよい。種々の実施形態のプロセスは、メモリ１００６のようなメモリ内に位置していてもよいコンピュータにより実行される命令を用いてプロセッサユニット１００４により行われてもよい。
【００９０】
これらの命令は、プロセッサユニット１００４内のプロセッサにより読取りおよび実行可能なプログラム命令、プログラムコード、コンピュータ使用可能なプログラムコードまたはコンピュータ読取り可能なプログラムコードと呼ばれる。種々の実施形態におけるプログラムコードは、メモリ１００６または固定記憶域１００８といった種々の物理的またはコンピュータ読み取り可能な記憶媒体上で実現されてもよい。
【００９１】
プログラムコード１０１８は、選択的に着脱可能で、かつ、プロセッサユニット１００４による実行のためにデータ処理システム１０００上に読み込まれたり、これに転送されてもよいコンピュータ読み取り可能な媒体１０２０上で機能的な形態で位置している。プログラムコード１０１８およびコンピュータ読み取り可能な媒体１０２０は、これらの実施例においてコンピュータプログラム製品１０２２を形成する。一例において、コンピュータ読み取り可能な媒体１０２０は、コンピュータ読み取り可能な記憶媒体１０２４またはコンピュータ読み取り可能な信号媒体１０２６であってもよい。
【００９２】
コンピュータ読み取り可能な記憶媒体１０２４は、例えば、固定記憶域１００８の一部であるドライブまたはその他の装置内へ挿入または設置されて、固定記憶域１００８の一部であるハードドライブのような記憶装置上へ転送される光学または磁気ディスクを含んでもよい。コンピュータ読み取り可能な記憶媒体１０２４はまた、データ処理システム１０００と接続されているハードドライブ、サムドライブまたはフラッシュメモリといった固定記憶域の形態を取ってもよい。いくつかの場合において、コンピュータ読み取り可能な記憶媒体１０２４は、データ処理システム１０００から取り外しできないこともある。
【００９３】
これらの実施例において、コンピュータ読み取り可能な記憶媒体１０２４は、プログラムコード１０１８を伝搬または伝送する媒体というよりむしろ、プログラムコード１０１８を保存するために用いられる物理的または有形の記憶装置である。コンピュータ読み取り可能な記憶媒体１０２４は、コンピュータ読み取り可能な有形の記憶装置またはコンピュータ読み取り可能な物理的記憶装置とも呼ばれる。言い換えると、コンピュータ読み取り可能な記憶媒体１０２４は、人間が触れることのできる媒体である。
【００９４】
あるいは、プログラムコード１０１８は、コンピュータ読み取り可能な信号媒体１０２６を用いてデータ処理システム１０００へ転送されてもよい。コンピュータ読み取り可能な信号媒体１０２６は、例えば、プログラムコード１０１８を含む伝搬されたデータ信号であってもよい。例えば、コンピュータ読み取り可能な信号媒体１０２６は、電磁気信号、光信号および／またはその他あらゆる適切な種類の信号であってもよい。これらの信号は、無線通信回線、光ファイバーケーブル、同軸ケーブル、電線および／またはその他あらゆる適切な種類の通信回線といった通信回線により伝送されてもよい。言い換えると、通信回線および／または接続は、本説明例において、物理的なものであっても、無線であってもよい。
【００９５】
いくつかの有利な実施形態において、プログラムコード１０１８は、別の装置またはデータ処理システムからコンピュータ読み取り可能な信号媒体１０２６を介して固定記憶域１００８へのネットワークによりダウンロードされて、データ処理システム１０００内で用いられてもよい。例えば、サーバデータ処理システムにおけるコンピュータ読み取り可能な記憶媒体に保存されたプログラムコードは、サーバからデータ処理システム１０００へネットワークによりダウンロードされてもよい。プログラムコード１０１８を提供するデータ処理システムは、サーバコンピュータ、クライアントコンピュータまたはプログラムコード１０１８を保存および伝送可能なその他何らかの装置であってもよい。
【００９６】
データ処理システム１０００に対して例示された種々の構成要素は、種々の実施形態が実施可能な手法に対するアーキテクチャの限定を提供することを意図しているのではない。種々の有利な実施形態は、データ処理システム１０００に対して例示された構成要素に加えた、または、これに代えた構成要素を含むデータ処理システムにおいて実施されてもよい。図１０に示したその他の構成要素は、示されている例示的実施例から変形させることができる。種々の実施形態は、プログラムコードを実行可能ないかなるハードウェア装置またはシステムを用いて実施されてもよい。一例として、データ処理システムは、無機構成要素と一体化した有機構成要素を含んでもよく、かつ／または、人間以外の有機構成要素から全体が構成されていてもよい。例えば、記憶装置は、有機半導体から構成されていてもよい。
【００９７】
別の例示的実施例において、プロセッサユニット１００４は、ある特定の使用のために製造または構成されている回路を有するハードウェアユニットの形態を取っていてもよい。この種のハードウェアは、動作を行うよう構成されるためにプログラムコードが記憶装置からメモリ内へ読み込まれる必要なく該動作を行ってもよい。
【００９８】
例えば、プロセッサユニット１００４がハードウェアユニットの形態を撮るとき、プロセッサユニット１００４は、ある数の動作を行うよう構成されている回路システム、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能な論理装置またはその他何らかの適切な種類のハードウェアであってもよい。プログラム可能論理装置について、該装置は、ある数の動作を行うよう構成されている。該装置は、後に再構成されてもよく、または、該ある数の動作を行うよう永久に構成されてもよい。プログラム可能論理装置の例として、例えば、プログラム可能論理アレイ、プログラム可能アレイ論理、フィールドプログラム可能論理アレイ、フィールドプログラム可能ゲートアレイおよびその他の適切なハードウェア装置が含まれる。この種の実施構成により、種々の実施形態に対するプロセスがハードウェアユニットにおいて実施されるので、プログラムコード１０１８を省略してもよい。
【００９９】
さらに別の例示的実施例において、プロセッサユニット１００４は、コンピュータおよびハードウェアユニットにおいて見られるプロセッサの組み合わせを用いて実施されてもよい。プロセッサユニット１００４は、プログラムコード１０１８を実行するよう構成されているある数のハードウェアユニットおよびある数のプロセッサを有してもよい。この描写した実施例により、プロセスのうちのいくつかは、該ある数のハードウェアユニットにおいて実施されてもよい一方、その他のプロセスは、該ある数のプロセッサにおいて実施されてもよい。
【０１００】
別の実施例において、バスシステムは、通信機構１００２の実施に用いられてもよく、かつ、システムバスまたは入出力バスといった１つ以上のバスから構成されていてもよい。もちろん、バスシステムは、バスシステムに取り付けられている種々の構成要素または装置間のデータの転送を可能とするあらゆる適切な種類のアーキテクチャを用いて実施されてもよい。
【０１０１】
また、通信ユニット１０１０は、データを送信するか、データを受信するか、または、データを送受信するある数の装置を含んでもよい。通信ユニット１０１０は、例えば、モデムもしくはネットワークアダプタ、２つのネットワークアダプタ、または、これらの何らかの組み合わせであってもよい。さらに、メモリは、例えば、メモリ１００６、または、通信機構１００２内に存在してもよいインタフェースおよびメモリコントローラハブにおいて見られるようなキャッシュであってもよい。
【０１０２】
種々の有利な実施形態の説明は、例示および説明のために提示したものであり、網羅的であったり、開示されている形態の実施形態を限定することを意図しているのではない。数多くの修正および変形が当業者にとって明らかであろう。さらに、種々の有利な実施形態は、その他の有利な実施形態と比較して種々の利点を提供してもよい。選択された１つまたは複数の実施形態は、実施形態の原理や実際の用途を最もよく説明し、かつ、当該技術分野における通常の技術を有する他者が、検討されている特定の使用に適したようなさまざまな修正を有するさまざまな実施形態のための開示を理解可能とするために、選択および説明されている。
【０１０３】
その他の潜在的な実施形態は、以下を含む。
Ａ１．  航空機（１０４）用のソフトウェア部品（１０２）を検証するための方法であって、
ある数のソフトウェア部品（１０２）を受領することと、
ある数のソフトウェア部品（１０２）の各々に対するハッシュ値を決定して、ある数のハッシュ値を形成することと、
航空機（１０４）上のある数のソフトウェア部品（１０２）に操作を行うか否かの判定に用いるために、ある数のハッシュ値をソフトウェア完全性データ構造（１１８）にまとめることと、
を含む方法。
Ａ２．  ソフトウェア完全性データ構造（１１８）を航空機（１０４）上に読み込むことと、
ある数のソフトウェア部品（１０２）を航空機（１０４）上に読み込むことと、
航空機（１０４）上のある数のソフトウェア部品（１０２）に操作を行う前に、ソフトウェア完全性データ構造（１１８）からのある数のハッシュ値を用いて、航空機（１０４）上のある数のソフトウェア部品（１０２）を検証することと、
をさらに含む段落Ａ１に記載の方法。
Ａ３．  ある数のソフトウェア部品（１０２）の各々に対する指紋を決定して、ある数の指紋を形成することと、
ある数の指紋をソフトウェア完全性データ構造（１１８）にまとめることと、
をさらに含む段落Ａ１に記載の方法。
Ａ４．  ソフトウェア完全性データ構造（１１８）が、
ソフトウェア完全性データ構造（１１８）を記述する属性と、
各々が、航空機（１０４）により用いられるソフトウェア部品と対応し、かつ、対応するソフトウェア部品に対するハッシュ値を含むある数の記録と、
を含む段落Ａ１に記載の方法。
Ａ５．  属性が、ソフトウェア完全性データ構造（１１８）に対するバージョン識別子、ソフトウェア完全性データ構造（１１８）の作成に用いられるスキーマに対するバージョン識別子、航空機（１０４）の適用可能性についての情報、ソフトウェア完全性データ構造（１１８）を作成した実体の名称、および、ソフトウェア完全性データ構造（１１８）が作成された日付からなる属性の群から選択される属性を含む段落Ａ４に記載の方法。
Ａ６．  ある数の記録の各々が、対応するソフトウェア部品に対する部品番号（３１８）、対応するソフトウェア部品を構成するファイル数（３２２）を示す数字、および、ソフトウェア部品に対する指紋からなる属性の群から選択される属性をさらに含む段落Ａ４に記載の方法。
【符号の説明】
【０１０４】
１００    ある数のソフトウェア供給者
１０１    ソフトウェア部品管理環境
１０２    ソフトウェア部品
１０４    航空機
１０６    航空機整備実体
１０８    航空機製造業者
１１０    航空機の運航責任者
１１２    電子システム
１１４    操作
１１６    ソフトウェア完全性検証機能
１１８    ソフトウェア完全性データ構造
２００    航空機
２０２    輸送手段
２０４    可動プラットフォーム
２０６    航空機電子システム
２１０    ライン交換可能ユニット
２１２    ソフトウェア部品
２１４    ある数のソフトウェア供給者
２１６    航空機整備実体
２２０    ソフトウェア完全性データ構造
２２２    ハッシュ値
２２４    その他の属性
２２６    ソフトウェア検証ツール
２２８    計算器
２３０    比較器
３００    ソフトウェア完全性データ構造
３０２    データ構造属性
３０４    ソフトウェア部品記録
３０６    ファイルバージョン識別子
３０８    スキーマバージョン識別子
３１０    適用可能性情報
３１２    ソース識別子
３１４    作成日
３１６    ソフトウェア部品属性
３１８    ソフトウェア部品番号
３２０    ハッシュ値
３２２    ファイル数
３２４    ファイル指紋データ
３２６    ファイル名の表現
３２８    ファイル長の表現
３３０    ファイル内のバイナリ１値の数
４００    ソフトウェア供給者
４０２    航空機製造業者
４０４    航空機の運航責任者
４０６    航空機
４０８    供給者ソフトウェア
４１０    製造業者ソフトウェア
４１２    ソフトウェア部品
４１６    ソフトウェア完全性データ構造
４１８    ソフトウェア記憶装置
４２０    ソフトウェア完全性データ構造記憶装置
４２２    電子システム
５００    航空機
５０２    ソフトウェア部品
５０４    ソフトウェア記憶装置
５０６    ソフトウェア完全性データ構造
５０８    ソフトウェア完全性データ構造記憶装置
５１０    ソフトウェア検証ツール
５１２    電子システム
６００    航空機
６０２    ソフトウェア部品
６０４    ソフトウェア記憶装置
６０６    ソフトウェア完全性データ構造
６０８    ソフトウェア完全性データ構造記憶装置
６１０    ソフトウェア検証ツール
６１２    電子システム
７００    航空機の運航責任者
７０２    航空機
７０４    ソフトウェア部品
７０６    ソフトウェア完全性データ構造
７０８    航空機運航責任者ソフトウェア
７１０    ソフトウェア記憶装置
７１２    航空機運航責任者ソフトウェア完全性データ構造
７１４    ソフトウェア完全性データ構造記憶装置
７１６    ソフトウェア検証機能
１０００    データ処理システム
１００２    通信機構
１００４    プロセッサユニット
１００６    メモリ
１００８    固定記憶域
１０１０    通信ユニット
１０１２    入出力ユニット
１０１４    表示部
１０１６    記憶装置
１０１８    プログラムコード
１０２０    コンピュータ読み取り可能な媒体
１０２２    コンピュータプログラム製品
１０２４    コンピュータ読み取り可能な記憶媒体
１０２６    コンピュータ読み取り可能な信号媒体
【図１】
2013035539.tif 000003
【図２】
2013035539.tif 000004
【図３】
2013035539.tif 000005
【図４】
2013035539.tif 000006
【図５】
2013035539.tif 000007
【図６】
2013035539.tif 000008
【図７】
2013035539.tif 000009
【図８】
2013035539.tif 000010
【図９】
2013035539.tif 000011
【図１０】
2013035539.tif 000012
【外国語明細書】
2013035539000001.pdf
2013035539000002.pdf
2013035539000003.pdf
2013035539000004.pdf