(57)【特許請求の範囲】
【請求項１】
信頼できるカーネル起動方法であって、
セキュリティブートモジュールであるブートローダを起動するステップと、
前記ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するステップと、
前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、カーネルコードをメモリに読み込み、前記ブートローダを呼び出して、第1の完全アルゴリズムおよび前記PCRパーティションに予め記憶されたカーネルコード標準評価値に従って、前記カーネルコードが信頼できるかどうかを評価するステップと、
前記カーネルコードが信頼できる場合、前記カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、前記ブートローダが信頼できるかどうかを評価するステップと、
前記ブートローダが信頼できる場合、前記カーネルを起動するステップと
を含む、信頼できるカーネル起動方法。
【請求項２】
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するステップ
をさらに含み、
前記ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する前記ステップが、
前記ブートローダを呼び出して、前記第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しいかどうか比較することによって、前記PCRパーティションが信頼できるかどうかを評価するステップであって、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しい場合、前記PCRパーティションは信頼できる、ステップ
を含む、請求項1に記載の信頼できるカーネル起動方法。
【請求項３】
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得する前記ステップが、
ユーザによって入力されたPINに基づいてルートキーを生成するステップと、
前記ルートキーを用いて前記ENVパーティションを復号し、前記ENVパーティションに予め記憶された前記PCRパーティション標準評価値を取得するステップと
を含む、請求項2に記載の信頼できるカーネル起動方法。
【請求項４】
前記PCRパーティションに予め記憶された前記カーネルコード標準評価値を取得するステップ
をさらに含み、
前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、カーネルコードをメモリに読み込み、前記ブートローダを呼び出して、第1の完全アルゴリズムおよび前記PCRパーティションに予め記憶されたカーネルコード標準評価値に従って、前記カーネルコードが信頼できるかどうかを評価する前記ステップが、
前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、前記カーネルコードを前記メモリに読み込み、前記ブートローダを呼び出して、前記第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しいかどうか比較することによって、前記カーネルコードが信頼できるかどうかを評価するステップであって、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しい場合、前記カーネルコードは信頼できる、ステップ
を含む、請求項1から3のいずれか一項に記載の信頼できるカーネル起動方法。
【請求項５】
前記PCRパーティションに予め記憶されたブートローダ標準評価値を取得するステップ
をさらに含み、
前記カーネルコードが信頼できる場合、前記カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、前記ブートローダが信頼できるかどうかを評価する前記ステップが、
前記カーネルコードが信頼できる場合、前記カーネルコードを初期化して、前記初期化されたカーネルを始動し、前記第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しいかどうか比較することによって、前記ブートローダが信頼できるかどうかを評価するステップであって、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しい場合、前記ブートローダは信頼できる、ステップ
を含む、請求項1から4のいずれか一項に記載の信頼できるカーネル起動方法。
【請求項６】
前記カーネルを起動する前記ステップの後に、
前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップと、
前記カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するステップと
をさらに含む、請求項1から5のいずれか一項に記載の信頼できるカーネル起動方法。
【請求項７】
前記PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するステップ
をさらに含み、
前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価する前記ステップが、
前記カーネルを呼び出して、前記第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、前記カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップであって、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、前記カーネルセキュリティ管理拡張モジュールは信頼できる、ステップ
を含む、請求項6に記載の信頼できるカーネル起動方法。
【請求項８】
オペレーティングシステムを起動する前記ステップの後に、
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するステップと、
前記アプリケーションプログラムが信頼できる場合、前記アプリケーションプログラムを起動するステップと
をさらに含む、請求項6または7に記載の信頼できるカーネル起動方法。
【請求項９】
前記PCRパーティションに予め記憶された、前記アプリケーションプログラムの標準評価値を取得するステップ
をさらに含み、
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価する前記ステップが、
前記カーネルセキュリティ管理拡張モジュールを呼び出して、前記第4の完全アルゴリズムに従って、前記アプリケーションプログラムの実評価値を計算し、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しいかどうか比較することによって、前記アプリケーションプログラムが信頼できるかどうかを評価するステップであって、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しい場合、前記アプリケーションプログラムは信頼できる、ステップ
を含む、請求項8に記載の信頼できるカーネル起動方法。
【請求項１０】
信頼できるカーネル起動方法であって、
セキュリティブートモジュールであるブートローダを起動するステップと、
前記ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するステップと、
前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、カーネルコードをメモリに読み込み、前記ブートローダを呼び出して、第1の完全アルゴリズムおよび前記PCRパーティションに予め記憶されたカーネルコード標準評価値に従って、前記カーネルコードが信頼できるかどうかを評価するステップと、
前記カーネルコードが信頼できる場合、前記カーネルコードを実行して、カーネルを起動するステップと
を含む、信頼できるカーネル起動方法。
【請求項１１】
前記カーネルコードを実行して、前記カーネルを起動する前記ステップの後に、
前記カーネルを呼び出して、第2の完全アルゴリズムに従って、前記ブートローダが信頼できるかどうかを評価するステップと、
前記ブートローダが信頼できる場合、前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップと、
前記カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するステップと
をさらに含む、請求項10に記載の信頼できるカーネル起動方法。
【請求項１２】
前記PCRパーティションに予め記憶されたブートローダ標準評価値を取得するステップ
をさらに含み、
前記カーネルを呼び出して、第2の完全アルゴリズムに従って、前記ブートローダが信頼できるかどうかを評価する前記ステップが、
前記カーネルを呼び出して、前記第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しいかどうか比較することによって、前記ブートローダが信頼できるかどうかを評価するステップであって、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しい場合、前記ブートローダは信頼できる、ステップ
を含む、請求項11に記載の信頼できるカーネル起動方法。
【請求項１３】
前記PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するステップ
をさらに含み、
前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価する前記ステップが、
前記カーネルを呼び出して、前記第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、前記カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップであって、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、前記カーネルセキュリティ管理拡張モジュールは信頼できる、ステップ
を含む、請求項11または12に記載の信頼できるカーネル起動方法。
【請求項１４】
オペレーティングシステムを起動する前記ステップの後に、
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するステップと、
前記アプリケーションプログラムが信頼できる場合、前記アプリケーションプログラムを起動するステップと
をさらに含む、請求項11から13のいずれか一項に記載の信頼できるカーネル起動方法。
【請求項１５】
前記PCRパーティションに予め記憶された、前記アプリケーションプログラムの標準評価値を取得するステップ
をさらに含み、
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価する前記ステップが、
前記カーネルセキュリティ管理拡張モジュールを呼び出して、前記第4の完全アルゴリズムに従って、前記アプリケーションプログラムの実評価値を計算し、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しいかどうか比較することによって、前記アプリケーションプログラムが信頼できるかどうかを評価するステップであって、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しい場合、前記アプリケーションプログラムは信頼できる、ステップ
を含む、請求項14に記載の信頼できるカーネル起動方法。
【請求項１６】
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するステップ
をさらに含み、
前記ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する前記ステップが、
前記ブートローダを呼び出して、前記予め記憶された第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しいかどうか比較することによって、前記PCRパーティションが信頼できるかどうかを評価するステップであって、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しい場合、前記PCRパーティションは信頼できる、ステップ
を含む、請求項10から15のいずれか一項に記載の信頼できるカーネル起動方法。
【請求項１７】
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得する前記ステップが、
ユーザによって入力されたPINに基づいてルートキーを生成するステップと、
前記ルートキーを用いて前記ENVパーティションを復号し、前記ENVパーティションに予め記憶された前記PCRパーティション標準評価値を取得するステップと
を含む、請求項16に記載の信頼できるカーネル起動方法。
【請求項１８】
前記PCRパーティションに予め記憶された前記カーネルコード標準評価値を取得するステップ
をさらに含み、
前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、カーネルコードをメモリに読み込み、前記ブートローダを呼び出して、第1の完全アルゴリズムおよび前記PCRパーティションに予め記憶されたカーネルコード標準評価値に従って、前記カーネルコードが信頼できるかどうかを評価する前記ステップが、
前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、前記カーネルコードを前記メモリに読み込み、前記ブートローダを呼び出して、前記第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しいかどうか比較することによって、前記カーネルコードが信頼できるかどうかを評価するステップであって、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しい場合、前記カーネルコードは信頼できる、ステップ
を含む、請求項10から17のいずれか一項に記載の信頼できるカーネル起動方法。
【請求項１９】
信頼できるカーネル起動装置であって、
セキュリティブートモジュールであるブートローダを起動するように構成されたブート起動モジュールと、
前記ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するように構成された第1の評価モジュールであって、前記第1の評価モジュールが、前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、カーネルコードをメモリに読み込み、前記ブートローダを呼び出して、第1の完全アルゴリズムおよび前記PCRパーティションに予め記憶されたカーネルコード標準評価値に従って、前記カーネルコードが信頼できるかどうかを評価するようにさらに構成される、第1の評価モジュールと、
前記カーネルコードが信頼できる場合、前記カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、前記ブートローダが信頼できるかどうかを評価するように構成された第2の評価モジュールと、
前記ブートローダが信頼できる場合、前記カーネルを起動するように構成されたカーネル起動モジュールと
を備える、信頼できるカーネル起動装置。
【請求項２０】
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するように構成された取得モジュール
をさらに備え、
前記第1の評価モジュールが、前記ブートローダを呼び出して、前記第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しいかどうか比較することによって、前記PCRパーティションが信頼できるかどうかを評価するようにさらに構成され、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しい場合、前記PCRパーティションは信頼できると判定される、請求項19に記載の信頼できるカーネル起動装置。
【請求項２１】
前記取得モジュールが、ユーザによって入力されたPINに基づいてルートキーを生成し、前記ルートキーを用いて前記ENVパーティションを復号し、前記ENVパーティションに予め記憶された前記PCRパーティション標準評価値を取得するようにさらに構成される、請求項20に記載の信頼できるカーネル起動装置。
【請求項２２】
前記取得モジュールが、前記PCRパーティションに予め記憶された前記カーネルコード標準評価値を取得するようにさらに構成され、
前記第1の評価モジュールが、前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、前記カーネルコードを前記メモリに読み込み、前記ブートローダを呼び出して、前記第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しいかどうか比較することによって、前記カーネルコードが信頼できるかどうかを評価するようにさらに構成され、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しい場合、前記カーネルコードは信頼できる、請求項20または21に記載の信頼できるカーネル起動装置。
【請求項２３】
前記取得モジュールが、前記PCRパーティションに予め記憶されたブートローダ標準評価値を取得するようにさらに構成され、
前記第2の評価モジュールが、前記カーネルコードが信頼できる場合、前記カーネルコードを初期化して、前記初期化されたカーネルを始動し、前記第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しいかどうか比較することによって、前記ブートローダが信頼できるかどうかを評価するようにさらに構成され、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しい場合、前記ブートローダは信頼できる、請求項20から22のいずれか一項に記載の信頼できるカーネル起動装置。
【請求項２４】
システム起動モジュール
をさらに備え、
前記第2の評価モジュールが、前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成され、
前記システム起動モジュールが、前記カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成される、請求項19に記載の信頼できるカーネル起動装置。
【請求項２５】
システム起動モジュール
をさらに備え、
前記第2の評価モジュールが、前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成され、
前記システム起動モジュールが、前記カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成される、請求項20から23のいずれか一項に記載の信頼できるカーネル起動装置。
【請求項２６】
前記取得モジュールが、前記PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するようにさらに構成され、
前記第2の評価モジュールが、前記カーネルを呼び出して、前記第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、前記カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成され、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、前記カーネルセキュリティ管理拡張モジュールは信頼できる、請求項25に記載の信頼できるカーネル起動装置。
【請求項２７】
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成された第3の評価モジュールと、
前記アプリケーションプログラムが信頼できる場合、前記アプリケーションプログラムを起動するように構成されたアプリケーションプログラム起動モジュールと
をさらに備える、請求項24に記載の信頼できるカーネル起動装置。
【請求項２８】
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成された第3の評価モジュールと、
前記アプリケーションプログラムが信頼できる場合、前記アプリケーションプログラムを起動するように構成されたアプリケーションプログラム起動モジュールと
をさらに備える、請求項25または26に記載の信頼できるカーネル起動装置。
【請求項２９】
前記取得モジュールが、前記PCRパーティションに予め記憶された、前記アプリケーションプログラムの標準評価値を取得するようにさらに構成され、
前記第3の評価モジュールが、前記カーネルセキュリティ管理拡張モジュールを呼び出して、前記第4の完全アルゴリズムに従って、前記アプリケーションプログラムの実評価値を計算し、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しいかどうか比較することによって、前記アプリケーションプログラムが信頼できるかどうかを評価するようにさらに構成され、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しい場合、前記アプリケーションプログラムは信頼できる、請求項28に記載の信頼できるカーネル起動装置。
【請求項３０】
信頼できるカーネル起動装置であって、
セキュリティブートモジュールであるブートローダを起動するように構成されたブート起動ユニットと、
前記ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するように構成された第1の評価ユニットであって、前記第1の評価ユニットが、前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、カーネルコードをメモリに読み込み、前記ブートローダを呼び出して、第1の完全アルゴリズムおよび前記PCRパーティションに予め記憶されたカーネルコード標準評価値に従って、前記カーネルコードが信頼できるかどうかを評価するようにさらに構成される、第1の評価ユニットと、
前記カーネルコードが信頼できる場合、前記カーネルコードを実行して、カーネルを起動するように構成されたカーネル起動ユニットと
を備える、信頼できるカーネル起動装置。
【請求項３１】
前記カーネルを呼び出して、第2の完全アルゴリズムに従って、前記ブートローダが信頼できるかどうかを評価するように構成された第2の評価ユニットであって、前記第2の評価ユニットが、前記ブートローダが信頼できる場合、前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成される、第2の評価ユニットと、
前記カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成されたシステム起動ユニットと
をさらに備える、請求項30に記載の信頼できるカーネル起動装置。
【請求項３２】
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するように構成された取得ユニット
をさらに備え、
前記第1の評価ユニットが、前記ブートローダを呼び出して、前記予め記憶された第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しいかどうか比較することによって、前記PCRパーティションが信頼できるかどうかを評価するようにさらに構成され、前記PCRパーティション実評価値が前記PCRパーティション標準評価値に等しい場合、前記PCRパーティションは信頼できる、請求項30に記載の信頼できるカーネル起動装置。
【請求項３３】
前記取得ユニットが、ユーザによって入力されたPINに基づいてルートキーを生成し、前記ルートキーを用いて前記ENVパーティションを復号し、前記ENVパーティションに予め記憶された前記PCRパーティション標準評価値を取得するようにさらに構成される、請求項32に記載の信頼できるカーネル起動装置。
【請求項３４】
前記取得ユニットが、前記PCRパーティションに予め記憶された前記カーネルコード標準評価値を取得するようにさらに構成され、
前記第1の評価ユニットが、前記PCRパーティションが信頼できる場合、前記ブートローダを呼び出して、前記カーネルコードを前記メモリに読み込み、前記ブートローダを呼び出して、前記第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しいかどうか比較することによって、前記カーネルコードが信頼できるかどうかを評価するようにさらに構成され、前記カーネルコード実評価値が前記カーネルコード標準評価値に等しい場合、前記カーネルコードは信頼できる、請求項32または33に記載の信頼できるカーネル起動装置。
【請求項３５】
前記カーネルを呼び出して、第2の完全アルゴリズムに従って、前記ブートローダが信頼できるかどうかを評価するように構成された第2の評価ユニットであって、前記第2の評価ユニットが、前記ブートローダが信頼できる場合、前記カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成される、第2の評価ユニットと、
前記カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成されたシステム起動ユニットと
をさらに備える、請求項32から34のいずれか一項に記載の信頼できるカーネル起動装置。
【請求項３６】
前記取得ユニットが、前記PCRパーティションに予め記憶されたブートローダ標準評価値を取得するようにさらに構成され、
前記第2の評価ユニットが、前記カーネルを呼び出して、前記第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しいかどうか比較することによって、前記ブートローダが信頼できるかどうかを評価するようにさらに構成され、前記ブートローダ実評価値が前記ブートローダ標準評価値に等しい場合、前記ブートローダは信頼できる、請求項35に記載の信頼できるカーネル起動装置。
【請求項３７】
前記取得ユニットが、前記PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するようにさらに構成され、
前記第2の評価ユニットが、前記カーネルを呼び出して、前記第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、前記カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成され、前記カーネルセキュリティ管理拡張モジュール実評価値が前記カーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、前記カーネルセキュリティ管理拡張モジュールは信頼できる、請求項35または36に記載の信頼できるカーネル起動装置。
【請求項３８】
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成された第3の評価ユニットと、
前記アプリケーションプログラムが信頼できる場合、前記アプリケーションプログラムを起動するように構成されたアプリケーションプログラム起動ユニットと
をさらに備える、請求項31に記載の信頼できるカーネル起動装置。
【請求項３９】
前記カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成された第3の評価ユニットと、
前記アプリケーションプログラムが信頼できる場合、前記アプリケーションプログラムを起動するように構成されたアプリケーションプログラム起動ユニットと
をさらに備える、請求項35から37のいずれか一項に記載の信頼できるカーネル起動装置。
【請求項４０】
前記取得ユニットが、前記PCRパーティションに予め記憶された、前記アプリケーションプログラムの標準評価値を取得するようにさらに構成され、
前記第3の評価ユニットが、前記カーネルセキュリティ管理拡張モジュールを呼び出して、前記第4の完全アルゴリズムに従って、前記アプリケーションプログラムの実評価値を計算し、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しいかどうか比較することによって、前記アプリケーションプログラムが信頼できるかどうかを評価するようにさらに構成され、前記アプリケーションプログラムの前記実評価値が前記アプリケーションプログラムの前記標準評価値に等しい場合、前記アプリケーションプログラムは信頼できる、請求項39に記載の信頼できるカーネル起動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信頼できるコンピューティング技術の分野に関し、詳細には、信頼できるカーネル起動方法および装置に関する。
【背景技術】
【０００２】
近年、第3世代移動通信（3rd Generation、3G）ネットワークの普及により、スマートフォンは、最も急速に成長している情報産業（Information Technology、IT）製品となってきた。
【０００３】
急成長するスマートモバイルデバイスによって、情報時代が新しい発展の最高潮に至った。しかしながら、スマートモバイルデバイスのアプリケーション性能の改良に対して過度の要求がなされる中でセキュリティ性能の開発がおろそかにされた結果、モバイルデバイスのセキュリティ性能の開発が後れを取り、携帯電話の潜在的なセキュリティ上の問題が徐々に露呈してきた。先行技術では、スマートモバイルデバイスの安全な起動のために、外部セキュリティユニットから起動を実行する方法、すなわち、外部セキュリティユニットを通信インターフェースを用いて組み込みデバイスに接続して、組み込みデバイスにセキュリティ機能を提供する。デバイスを起動する場合、まず、組み込みデバイスは、不正な起動がトラストチェーンの外部ルート・オブ・トラストをすり抜けるのを阻止するために、外部セキュリティユニットの存在を判定する必要があり、次いで、システムブートプログラムがロードされ、ブートプログラムが、セキュリティユニットを呼び出して、オペレーティングシステムのカーネルに対して完全性評価を行い、そして、検証が成功した後、カーネルが起動される。
【発明の概要】
【０００４】
しかしながら、先行技術で用いられた方法には、以下の欠点、すなわち、外部セキュリティユニットは、外部インターフェースを用いてスマートモバイルデバイスと通信する必要があるが、一般的なモバイル通信端末には、そのような外部インターフェースが備わっておらず、したがって、先行技術において用いられる方法の応用範囲は限られている、という欠点があった。また、起動に関する解決策によれば、起動を行う前に外部セキュリティユニットの存在が確認されさえすれば、カーネルを起動させることができてしまう。したがって、この解決策では、不正な起動がセキュリティユニットをすり抜ける可能性が比較的高く、カーネル起動セキュリティが比較的低い。
【課題を解決するための手段】
【０００５】
本発明は、カーネル起動セキュリティを改善するために使用される、信頼できるカーネル起動方法および装置を提供する。
【０００６】
第1の態様によれば、本発明の一実施形態は、信頼できるカーネル起動方法を提供し、本方法は、
セキュリティブートモジュールであるブートローダを起動するステップと、
ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するステップと、
PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価するステップと、
カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するステップと、
ブートローダが信頼できる場合、カーネルを起動するステップとを含む。
【０００７】
第1の態様に関連して、第1の態様の第1の可能な実施態様において、本方法は、
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するステップをさらに含み、
ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するステップが、
ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、PCRパーティション実評価値がPCRパーティション標準評価値に等しいかどうか比較することによって、PCRパーティションが信頼できるかどうかを評価するステップであって、PCRパーティション実評価値がPCRパーティション標準評価値に等しい場合、PCRパーティションは信頼できる、ステップを含む。
【０００８】
第1の態様の第1の可能な実施態様に関連して、第1の態様の第2の可能な実施態様において、環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するステップが、
ユーザによって入力されたPINに基づいてルートキーを生成するステップと、
ルートキーを用いてENVパーティションを復号し、ENVパーティションに予め記憶された、PCRパーティション標準評価値を取得するステップとを含む。
【０００９】
第1の態様または第1の態様の第1または第2の可能な実施態様に関連して、第1の態様の第3の可能な実施態様において、本方法は、
PCRパーティションに予め記憶されたカーネルコード標準評価値を取得するステップをさらに含み、
PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価するステップが、
PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、カーネルコード実評価値がカーネルコード標準評価値に等しいかどうか比較することによって、カーネルコードが信頼できるかどうかを評価するステップであって、カーネルコード実評価値がカーネルコード標準評価値に等しい場合、カーネルコードは信頼できる、ステップを含む。
【００１０】
第1の態様または第1の態様の第1から第3の可能な実施態様のうちのいずれか1つに関連して、第1の態様の第4の可能な実施態様において、本方法は、
PCRパーティションに予め記憶されたブートローダ標準評価値を取得するステップをさらに含み、
カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するステップが、
カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、ブートローダ実評価値がブートローダ標準評価値に等しいかどうか比較することによって、ブートローダが信頼できるかどうかを評価するステップであって、ブートローダ実評価値がブートローダ標準評価値に等しい場合、ブートローダは信頼できる、ステップを含む。
【００１１】
第1の態様または第1の態様の第1から第4の可能な実施態様のうちのいずれか1つに関連して、第1の態様の第5の可能な実施態様において、カーネルを起動するステップの後に、本方法は、
カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップと、
カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するステップとをさらに含む。
【００１２】
第1の態様の第5の可能な実施態様に関連して、第1の態様の第6の可能な実施態様において、本方法は、
PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するステップをさらに含み、
カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップが、
カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップであって、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、カーネルセキュリティ管理拡張モジュールは信頼できる、ステップを含む。
【００１３】
第1の態様の第5または第6の可能な実施態様に関連して、第1の態様の第7の可能な実施態様において、オペレーティングシステムを起動するステップの後に、本方法は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するステップと、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するステップとをさらに含む。
【００１４】
第1の態様の第7の可能な実施態様に関連して、第1の態様の第8の可能な実施態様において、本方法は、
PCRパーティションに予め記憶された、アプリケーションプログラムの標準評価値を取得するステップをさらに含み、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するステップが、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、アプリケーションプログラムの実評価値を計算し、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しいかどうか比較することによって、アプリケーションプログラムが信頼できるかどうかを評価するステップであって、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しい場合、アプリケーションプログラムは信頼できる、ステップを含む。
【００１５】
第2の態様によれば、本発明の一実施形態は、別の信頼できるカーネル起動方法を提供し、本方法は、
セキュリティブートモジュールであるブートローダを起動するステップと、
ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するステップと、
PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価するステップと、
カーネルコードが信頼できる場合、カーネルコードを実行して、カーネルを起動するステップとを含む。
【００１６】
第2の態様に関連して、第2の態様の第1の可能な実施形態において、カーネルコードを実行して、カーネルを起動するステップの後に、本方法は、
カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するステップと、
ブートローダが信頼できる場合、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップと、
カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するステップとをさらに含む。
【００１７】
第2の態様または第2の態様の第1の可能な実施態様に関連して、第2の態様の第2の可能な実施態様において、本方法は、
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するステップをさらに含み、
ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するステップが、
ブートローダを呼び出して、予め記憶された第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、PCRパーティション実評価値がPCRパーティション標準評価値に等しいかどうか比較することによって、PCRパーティションが信頼できるかどうかを評価するステップであって、PCRパーティション実評価値がPCRパーティション標準評価値に等しい場合、PCRパーティションは信頼できる、ステップを含む。
【００１８】
第2の態様の第2の可能な実施態様に関連して、第2の態様の第3の可能な実施態様において、環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するステップが、
ユーザによって入力されたPINに基づいてルートキーを生成するステップと、
ルートキーを用いてENVパーティションを復号し、ENVパーティションに予め記憶されたPCRパーティション標準評価値を取得するステップとを含む。
【００１９】
第2の態様または第2の態様の第1から第3の可能な実施態様のうちのいずれか1つに関連して、第2の態様の第4の可能な実施態様において、本方法は、
PCRパーティションに予め記憶されたカーネルコード標準評価値を取得するステップをさらに含み、
PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価するステップが、
PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、カーネルコード実評価値がカーネルコード標準評価値に等しいかどうか比較することによって、カーネルコードが信頼できるかどうかを評価するステップであって、カーネルコード実評価値がカーネルコード標準評価値に等しい場合、カーネルコードは信頼できる、ステップを含む。
【００２０】
第2の態様の第1から第4の可能な実施態様のいずれか1つに関連して、第2の態様の第5の可能な実施態様において、本方法は、
PCRパーティションに予め記憶されたブートローダ標準評価値を取得するステップをさらに含み、
カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するステップが、
カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、ブートローダ実評価値がブートローダ標準評価値に等しいかどうか比較することによって、ブートローダが信頼できるかどうかを評価するステップであって、ブートローダ実評価値がブートローダ標準評価値に等しい場合、ブートローダは信頼できる、ステップを含む。
【００２１】
第2の態様の第1から第5の可能な実施態様のうちのいずれか1つに関連して、第2の態様の第6の可能な実施態様において、本方法は、
PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するステップをさらに含み、
カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップが、
カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するステップであって、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、カーネルセキュリティ管理拡張モジュールは信頼できる、ステップを含む。
【００２２】
第2の態様の第1から第6の可能な実施態様のうちのいずれか1つに関連して、第2の態様の第7の可能な実施態様において、オペレーティングシステムを起動するステップの後に、本方法は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するステップと、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するステップとをさらに含む。
【００２３】
第2の態様の第7の可能な実施態様に関連して、第2の態様の第8の可能な実施態様において、本方法は、
PCRパーティションに予め記憶された、アプリケーションプログラムの標準評価値を取得するステップをさらに含み、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するステップが、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、アプリケーションプログラムの実評価値を計算し、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しいかどうか比較することによって、アプリケーションプログラムが信頼できるかどうかを評価するステップであって、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しい場合、アプリケーションプログラムは信頼できる、ステップを含む。
【００２４】
第3の態様によれば、本発明の一実施形態は、信頼できるカーネル起動装置を提供し、本装置は、
セキュリティブートモジュールであるブートローダを起動するように構成されたブート起動モジュールと、
ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するように構成された第1の評価モジュールであって、第1の評価モジュールが、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価するようにさらに構成される、第1の評価モジュールと、
カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するように構成された第2の評価モジュールと、
ブートローダが信頼できる場合、カーネルを起動するように構成されたカーネル起動モジュールとを備える。
【００２５】
第3の態様に関連して、第3の態様の第1の可能な実施態様において、本装置は、
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するように構成された取得モジュールをさらに備え、
第1の評価モジュールが、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、PCRパーティション実評価値がPCRパーティション標準評価値に等しいかどうか比較することによって、PCRパーティションが信頼できるかどうかを評価するように特に構成され、ここで、PCRパーティション実評価値がPCRパーティション標準評価値に等しい場合、PCRパーティションは信頼できると判定される。
【００２６】
第3の態様の第1の可能な実施態様に関連して、第3の態様の第2の可能な実施態様において、取得モジュールが、ユーザによって入力されたPINに基づいてルートキーを生成し、ルートキーを用いてENVパーティションを復号し、ENVパーティションに予め記憶されたPCRパーティション標準評価値を取得するように特に構成される。
【００２７】
第3の態様または第3の態様の第1または第2の可能な実施態様に関連して、第3の態様の第3の可能な実施態様において、
取得モジュールが、PCRパーティションに予め記憶されたカーネルコード標準評価値を取得するようにさらに構成され、
第1の評価モジュールが、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、カーネルコード実評価値がカーネルコード標準評価値に等しいかどうか比較することによって、カーネルコードが信頼できるかどうかを評価するように特に構成され、ここで、カーネルコード実評価値がカーネルコード標準評価値に等しい場合、カーネルコードは信頼できる。
【００２８】
第3の態様または第3の態様の第1から第3の可能な実施態様のうちのいずれか1つに関連して、第3の態様の第4の可能な実施態様において、
取得モジュールが、PCRパーティションに予め記憶されたブートローダ標準評価値を取得するようにさらに構成され、
第2の評価モジュールが、カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動し、第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、ブートローダ実評価値がブートローダ標準評価値に等しいかどうか比較することによって、ブートローダが信頼できるかどうかを評価するように特に構成され、ここで、ブートローダ実評価値がブートローダ標準評価値に等しい場合、ブートローダは信頼できる。
【００２９】
第3の態様または第3の態様の第1から第4の可能な実施態様のうちのいずれか1つに関連して、第3の態様の第5の可能な実施態様において、本装置は、システム起動モジュールをさらに備え、
第2の評価モジュールが、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成され、
システム起動モジュールが、カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成される。
【００３０】
第3の態様の第5の可能な実施態様に関連して、第3の態様の第6の可能な実施態様において、
取得モジュールが、PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するようにさらに構成され、
第2の評価モジュールが、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するように特に構成され、ここで、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、カーネルセキュリティ管理拡張モジュールは信頼できる。
【００３１】
第3の態様の第5または第6の可能な実施態様に関連して、第3の態様の第7の可能な実施態様において、本装置は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成された第3の評価モジュールと、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するように構成されたアプリケーションプログラム起動モジュールとをさらに備える。
【００３２】
第3の態様の第7の可能な実施態様に関連して、第3の態様の第8の可能な実施態様において、
取得モジュールが、PCRパーティションに予め記憶された、アプリケーションプログラムの標準評価値を取得するようにさらに構成され、
第3の評価モジュールが、カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、アプリケーションプログラムの実評価値を計算し、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しいかどうか比較することによって、アプリケーションプログラムが信頼できるかどうかを評価するように特に構成され、ここで、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しい場合、アプリケーションプログラムは信頼できる。
【００３３】
第4の態様によれば、本発明の一実施形態は、別の信頼できるカーネル起動装置を提供し、本装置は、
セキュリティブートモジュールであるブートローダを起動するように構成されたブート起動ユニットと、
ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するように構成された第1の評価ユニットであって、第1の評価ユニットが、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価するようにさらに構成される、第1の評価ユニットと、
カーネルコードが信頼できる場合、カーネルコードを実行して、カーネルを起動するように構成されたカーネル起動ユニットとを備える。
【００３４】
第4の態様に関連して、第4の態様の第1の可能な実施態様において、本装置は、
カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するように構成された第2の評価ユニットであって、第2の評価ユニットが、ブートローダが信頼できる場合、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成される、第2の評価ユニットと、
カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成されたシステム起動ユニットとをさらに備える。
【００３５】
第4の態様または第4の態様の第1の可能な実施態様に関連して、第4の態様の第2の可能な実施態様において、本装置は、
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得するように構成された取得ユニットをさらに備え、
第1の評価ユニットが、ブートローダを呼び出して、予め記憶された第1のセキュリティアルゴリズムに従って、PCRパーティション実評価値を計算し、PCRパーティション実評価値がPCRパーティション標準評価値に等しいかどうか比較することによって、PCRパーティションが信頼できるかどうかを評価するように特に構成され、ここで、PCRパーティション実評価値がPCRパーティション標準評価値に等しい場合、PCRパーティションは信頼できる。
【００３６】
第4の態様の第2の可能な実施態様に関連して、第4の態様の第3の可能な実施態様において、
取得ユニットが、ユーザによって入力されたPINに基づいてルートキーを生成し、ルートキーを用いてENVパーティションを復号し、ENVパーティションに予め記憶されたPCRパーティション標準評価値を取得するように特に構成される。
【００３７】
第4の態様または第4の態様の第1から第3の可能な実施態様のうちのいずれか1つに関連して、第4の態様の第4の可能な実施態様において、
取得ユニットが、PCRパーティションに予め記憶されたカーネルコード標準評価値を取得するようにさらに構成され、
第1の評価ユニットが、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、カーネルコード実評価値がカーネルコード標準評価値に等しいかどうか比較することによって、カーネルコードが信頼できるかどうかを評価するように特に構成され、ここで、カーネルコード実評価値がカーネルコード標準評価値に等しい場合、カーネルコードは信頼できる。
【００３８】
第4の態様の第1から第4の可能な実施態様のうちのいずれか1つに関連して、第4の態様の第5の可能な実施態様において、
取得ユニットが、PCRパーティションに予め記憶されたブートローダ標準評価値を取得するようにさらに構成され、
第2の評価ユニットが、カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、ブートローダ実評価値がブートローダ標準評価値に等しいかどうか比較することによって、ブートローダが信頼できるかどうかを評価するように特に構成され、ここで、ブートローダ実評価値がブートローダ標準評価値に等しい場合、ブートローダは信頼できる。
【００３９】
第4の態様の第1から第5の可能な実施態様のうちのいずれか1つに関連して、第4の態様の第6の可能な実施態様において、
取得ユニットが、PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するようにさらに構成され、
第2の評価ユニットが、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュール実評価値を計算し、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しいかどうか比較することによって、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するように特に構成され、ここで、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、カーネルセキュリティ管理拡張モジュールは信頼できる。
【００４０】
第4の態様の第1から第6の可能な実施態様に関連して、第4の態様の第7の可能な実施態様において、本装置は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成された第3の評価ユニットと、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するように構成されたアプリケーションプログラム起動ユニットとをさらに備える。
【００４１】
第4の態様の第7の可能な実施態様に関連して、第4の態様の第8の可能な実施態様において、
第3の評価ユニットが、カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、アプリケーションプログラムの実評価値を計算し、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しいかどうか比較することによって、アプリケーションプログラムが信頼できるかどうかを評価するように特に構成され、ここで、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しい場合、アプリケーションプログラムは信頼できる。
【００４２】
本発明の実施形態において提供される信頼できるカーネル起動方法および装置によれば、まず、セキュリティブートモジュールであるブートローダが呼び出されて、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価し、PCRパーティションが信頼できると判定された後、ブートローダが呼び出されて、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコードの標準評価値に従って、カーネルコードが信頼できるかどうかを評価し、カーネルコードが信頼できると判定された後、次いで、カーネルコードが初期化されて、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価し、ブートローダが信頼できると判定された後、カーネルが起動される、ということがわかる。つまり、本発明において提供される技術的解決策によれば、セキュリティブートモジュールであるブートローダと、プラットフォーム構成レジスタ（PCR）パーティションと、カーネルコードとのすべてが信頼できる場合に限り、カーネルを安全に起動でき、カーネルコードの信頼性は、PCRパーティションに予め記憶されたカーネルコード標準評価値に従って、ブートローダによって評価され、カーネルコードを初期化してカーネルを始動し、ブートローダの信頼性を評価する。したがって、本発明の実施形態において提供される技術的解決策は、カーネル起動セキュリティをある程度改善できる。
【００４３】
本発明の実施形態における、または先行技術における技術的解決策をより明確に説明するために、以下で、各実施形態または先行技術を説明するのに必要とされる添付の図面について簡単に記述する。当然ながら、以下の説明の添付の図面は本発明のいくつかの実施形態を示すにすぎず、当業者はこれら添付の図面から難なく他の図面をさらに導出することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明によるシステムを起動するための流れ図である。
【図２ａ】本発明による信頼できるカーネル起動方法の一実施形態の流れ図である。
【図２ｂ】本発明による信頼できるカーネル起動方法の別の実施形態の流れ図である。
【図２ｃ】本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。
【図２ｄ】本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。
【図３ａ】本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。
【図３ｂ】本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。
【図３ｃ】本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。
【図３ｄ】本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。
【図４ａ】本発明による信頼できるカーネル起動装置の一実施形態の概略構造図である。
【図４ｂ】本発明による信頼できるカーネル起動装置の別の実施形態の概略構造図である。
【図４ｃ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図４ｄ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図４ｅ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図４ｆ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図５ａ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図５ｂ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図５ｃ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図５ｄ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図５ｅ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【図５ｆ】本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。
【発明を実施するための形態】
【００４５】
以下で、本発明の実施形態における添付の図面を参照して、本発明の実施形態における技術的解決策を明確かつ十分に説明する。当然ながら、説明される実施形態は、本発明の実施形態の全部ではなく、一部であるにすぎない。本発明の実施形態に基づいて当業者によって難なく得られる他のすべての実施形態は、本発明の保護範囲内に含まれるものとする。
【００４６】
図1は、本発明の一実施形態によるシステムを起動するための流れ図である。本発明で示される実施形態において提供される信頼できるカーネル起動方法に関連して、比較すると、本実施形態に示されている構造図と先行技術における組み込みシステム手続きとの間の差は、信頼できるソフト・コンポーネント・プラットフォーム・モジュールが既存の組み込みシステムを起動する手続きに追加的に組み込まれていることにある。信頼できるソフト・コンポーネント・プラットフォーム・モジュールは、ブートローダがPCRパーティションおよびカーネルを評価するプロセスの実行と、カーネルによるブートローダおよびカーネルセキュリティ管理拡張モジュールの評価と、カーネルセキュリティ管理拡張モジュールによるアプリケーションプログラムの評価とを制御でき、これらのプロセスは、図2に示す方法にある。
【００４７】
システム起動手続きは、次のように要約される：システムへの電源投入後、セキュリティブートプログラム、すなわち、ブートローダが起動され、信頼できるソフト・コンポーネント・プラットフォーム・モジュールは、ブートローダを呼び出して、プラットフォーム・ロケーション・レジスタPCRパーティションを評価する。現在のPCRパーティションが信頼できる場合、信頼できるソフト・コンポーネント・プラットフォーム・モジュールは、ブートローダを呼び出し続けて、カーネルを評価する。現在のカーネルが信頼できる場合、信頼できるソフト・コンポーネント・プラットフォーム・モジュールは、ブートローダに命令してカーネルをロードし、カーネルを初期化し、次いで、初期化されたカーネルを呼び出してブートローダをさらに評価する。このケースにおいてブートローダが信頼できる場合、信頼できるソフト・コンポーネント・プラットフォーム・モジュールは、起動するようにカーネルに命令し、カーネルセキュリティ管理拡張モジュールを評価する。評価されたカーネルセキュリティ管理拡張モジュールの評価が現在信頼できる場合、信頼できるソフト・コンポーネント・プラットフォーム・モジュールは、カーネルに命令してカーネルセキュリティ管理拡張モジュールをロードし、次いで、カーネルセキュリティ管理拡張モジュール用いて、起動しようとするアプリケーションプログラムを評価する。評価結果が信頼できる場合、アプリケーションプログラムは、正常に起動される。ブートローダは、第1の評価モジュールを用いて、第1のセキュリティアルゴリズムおよび第1の完全アルゴリズムに従って、PCRパーティションおよびカーネルをそれぞれ評価する。カーネルは、第2の評価モジュールを用いて、第2の完全アルゴリズムおよび第3の完全アルゴリズムに従って、ブートローダおよびカーネル管理拡張モジュールをそれぞれ評価する。カーネル管理拡張モジュールは、第3の評価モジュールを用いて、第4の完全アルゴリズムに従って、アプリケーションプログラムを評価する。信頼できる組み込みシステムの安全な起動は、このような、レベルごとに評価を行った後にレベルごとに起動を行う方法を用いて実現できる。
【００４８】
図2aは、本発明による信頼できるカーネル起動方法の一実施形態の流れ図である。図2aに示すように、信頼できるカーネル起動方法は、次を特に含む：
【００４９】
S201：セキュリティブートモジュールであるブートローダを起動する。
【００５０】
現在、PC、携帯電話、またはIpadなどの端末デバイスで使用される組み込みシステムは、以下の機能モジュール、すなわち、ブートプログラム（ブートローダ）と、カーネル（Kernel）と、カーネルセキュリティ管理モジュールとを主として含む。組み込みシステムの機能モジュールが正常に起動された後、ユーザは、様々なアプリケーションプログラムを呼び出して、対応する操作を行うことができる。
【００５１】
本実施形態では、端末デバイスへの電源投入後、機能モジュールを起動する順番は、次のとおりである：記憶装置に記憶されたセキュリティブートモジュール（ブートローダ）がデバイスの組み込みシステムにまずロードされて、ブートローダを起動する。具体的には、本実施形態では、ブートローダを起動する全プロセスは、BL0（Boot loader 0）のパート、BL1（Boot loader 1）のパート、およびBL2（Boot loader 2）の3つのパートに分割される。
【００５２】
BL0は、S5PV210のiROMに組み込まれた起動コードを指す。システムに電源投入したばかりの場合、システムの全体の状態は初期化されておらず、また内部クロックは設定されていない。このケースでは、iRAMのみが利用可能である。このケースにおいて電源が電力を正常に供給する場合、起動手続きは、iROMに組み込まれた起動コードから開始する。iROMに組み込まれた起動コードは、ハードウェアに関連するコードである。一般的に、起動コードは、対応するハードウェアデバイスにハードウェア的に組み込まれ、ユーザはこれを変更できない。起動コードは、システムのクロックの初期化、ウォッチドッグの設定、ヒープおよびスタックの初期化、ならびにBL1のロードを担当している。
【００５３】
BL1は、iRAMによって外部に拡張した記憶装置（NAND／SD／USB）から自動的にコピーされる、バイナリファイルuboot．binの最初の16K（最大が16K）のコードを指す。BL1の役割は、外部RAMの検出および初期化、Cacheのクローズ、スタックの設定、ならびにBL2のロードである。
【００５４】
BL2は、コードリダイレクションの後、メモリで実行される全ubootコードを指し、メインブートローダともいう。メインブートローダコードは、非常に重要であり、ファイルシステムの初期化、ネットワークサポート、増設メモリの初期化などを含み、オペレーティングシステム（OS）カーネル（以下、カーネルと略して呼ぶ）のロードを担当する。
【００５５】
ブートローダを起動する全プロセスは、次のように説明できる：起動後、BL0（iROMに組み込まれた起動コード）が、BL1（ブートローダの最初の16KBのコード）をiRAMにロードする。次いで、BL1が、iRAMにおいて実行され、BL2（残りのブートローダ）をメモリ（SDRAM）にロードし、BL2が、カーネルをロードし、OSがSDRAMにおいて実行され得るようにし、その結果、OSが、SDRAMにおいて最終的に実行される。
【００５６】
このステップにおけるセキュリティブートモジュールであるブートローダの起動は、システムが電源投入され、記憶装置にあるブートローダがロードされた後の、ブートローダのBL0パートおよびBL1パートの起動を指す。
【００５７】
S202：ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する。
【００５８】
本実施形態では、システムが、ブートローダのBL0パートおよびBL1パートを起動した後、かつシステムが、BL2パートを実行する、すなわち、カーネルをロードする前、システムは、ブートローダに命令して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する。システム起動プロセスにおいてノード（ブートローダ、カーネル、およびカーネルセキュリティ管理拡張モジュールなど）が必要とする、ノードの完全性またはセキュリティを評価するために使用される標準評価値などの関連パラメータは、PCRパーティションに予め記憶されている。これらの標準評価値は、システムを最初に起動するプロセスにおいて、ノードによってシステムにプロアクティブに報告されてもよく、システムは、システムの特定の記憶ユニットに標準評価値を記憶する。
【００５９】
具体的には、第1のセキュリティアルゴリズムは、システムの記憶ユニットにパッケージおよび記憶させてもよい。ブートローダがBL1プロセスの実行を完了した後、ブートローダは、現在のBL1プロセスが既に完了していることをシステムに通知するようにトリガしてもよい。トリガ信号の受信後、システムは、ブートローダを呼び出して、記憶ユニットに予め記憶された第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションの信頼性を評価する。
【００６０】
具体的には、第1のセキュリティアルゴリズムは、具体的には例えばセキュアハッシュアルゴリズム（SHA-1）または中国産SM3ハッシュアルゴリズムであってよく、第1のセキュリティアルゴリズムの評価原理は、次のように説明できる：前述の2つのアルゴリズムを用いて、評価しようとするオブジェクト、例えばイメージファイルに対して計算を行って、現在評価されたオブジェクトの評価値（すなわち、評価されたオブジェクトのダイジェスト値であり、ここで、SHA-1アルゴリズムに対応する、評価されたオブジェクトのダイジェスト値は、160ビットであり、SM3アルゴリズムに対応する、評価されたオブジェクトのダイジェスト値は、256ビットである）を取得するものであり、ここで、評価値は、対応するアルゴリズムを用いて計算により取得される、評価されたオブジェクトの一意の値である。評価されたオブジェクトの評価値が変わる場合、評価されたオブジェクトが変わった、または修正されたことが考えられる。同様に、ブートローダが、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価するプロセスは、次のように説明できる：ブートローダが、評価されたオブジェクトとして、PCRパーティションのイメージファイルをメモリに読み込み、第1のセキュリティアルゴリズムを用いてPCRパーティションの評価値を計算し、ここで、評価値が変わらなければ、PCRパーティションが変わっておらず、安全かつ信頼できるということである。反対に、評価値が変わった場合、PCRパーティションが悪意を持って人工的に修正および変更されたかもしれないということであり、このケースでは、PCRパーティションに記憶された関連データのセキュリティもまた疑わしい。全システムの実行環境のセキュリティを確実にするために、ブートローダは、PCRセキュリティ評価が不合格であることをシステムに通知し、システムに対して、システム起動プロセスを停止し、かつデバイスの電源を切るように促す。
【００６１】
PCRパーティションの信頼性を実際に評価するプロセスにおいて使用される第1のセキュリティアルゴリズムは、さらに、MTV5アルゴリズム、SHA-2アルゴリズム、SHA-256アルゴリズム、およびMDアルゴリズムのうちの任意のアルゴリズムであってもよい。第1のセキュリティアルゴリズムの信頼性を評価する方法および原理は、SHA-1およびSM3のものと同じであり、ただ、具体的なアルゴリズムの種類が異なれば具体的な計算プロセスが異なるだけである。当業者の理解度に応じて、同じ原理に基づいて、前述の方法を用いてPCRパーティションの信頼性は評価され、ここでは細部を繰り返し説明しない。
【００６２】
S203：PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価する。
【００６３】
具体的には、第1のセキュリティアルゴリズムを用いて、PCRパーティションの評価値が計算され、評価値に従ってPCRパーティションは信頼できると判定された後に、システムは、ブートローダを呼び出して、カーネルコードをメモリに読み込み、評価されたオブジェクトとしてカーネルコードを使用し、ブートローダを呼び出して、記憶ユニットに予め記憶された第1の完全アルゴリズムに従って、カーネルコード実評価値と、PCRパーティションに予め記憶されたカーネルコード標準評価値との間における値の関係を照合および計算することによって、カーネルコードが信頼できるかどうかを判定する。第1の完全アルゴリズムは、ステップ202において列挙した第1のセキュリティアルゴリズムのうちの1つであってもよく、第1の完全アルゴリズムに従って、ブートローダによってカーネルコードの信頼性を評価する方法および原理に関しては、ステップ202における、第1のセキュリティアルゴリズムに従って、PCRパーティションの信頼性を評価するプロセスの対応する内容を参照してもよく、ここでは細部を繰り返し説明しない。
【００６４】
S204：カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価する。
【００６５】
具体的には、第1の完全アルゴリズムを使用して、カーネルコードが安全かつ信頼できると評価した後、システムは、ブートローダを呼び出して、BL2プロセスを実行して、カーネルをロードする。カーネルをロードする初期段階において、ロードするためのカーネルコードをまず初期化する必要がある。先行技術とは異なり、本発明の本実施形態では、カーネルコードの初期化完了後、システムは、初期化されたカーネルをまず始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するものであり、第2の完全アルゴリズムもまた、第1の完全アルゴリズムと同様に、システムの記憶ユニットに予め記憶され、第2の完全アルゴリズムによって特に参照されるアルゴリズムの種類が、第1の完全アルゴリズムによって参照されるアルゴリズムの種類と同じであってもよいし、あるいは第2の完全アルゴリズムによって特に参照されるアルゴリズムの種類が、列挙した前述のアルゴリズムのうちのいずれか1つであってもよく、第2の完全アルゴリズムの具体的な評価プロセスもまた、第1の完全アルゴリズムを用いてカーネルコードの信頼性を評価する方法および原理と同じであり、本実施形態においてここでは細部を繰り返し説明しない。反対に、第1の完全アルゴリズムを使用して、カーネルコードが信頼できないと評価した場合、ブートローダは、システム・カーネル・セキュリティ評価が不合格であることをシステムに通知し、システムに対して、システム起動プロセスを停止し、デバイスの電源を切るように促す。
【００６６】
S205：ブートローダが信頼できる場合、カーネルを起動する。
【００６７】
具体的には、初期化されたカーネルが第2の完全アルゴリズムを使用して、ブートローダが信頼できるとを評価した後、システムは、カーネルコードを完全に起動し、OSがSDRAMにおいて実行され得るようにし、その結果、OSがSDRAMにおいて最終的に実行される。反対に、初期化されたカーネルが第2の完全アルゴリズムを使用して、ブートローダが信頼できないと評価した場合、カーネルは、ブートローダセキュリティ評価が不合格であることをシステムに通知し、システムに対して、システム起動プロセスを停止し、デバイスの電源を切るように促す。
【００６８】
本発明において提供される信頼できるカーネル起動方法によれば、セキュリティブートモジュールであるブートローダが起動され、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価し、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価し、カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価し、ブートローダが信頼できる場合、カーネルを起動する。この解決策では、カーネル起動セキュリティがある程度改善される。
【００６９】
図2bは、本発明による信頼できるカーネル起動方法の別の実施形態の流れ図である。本実施形態における信頼できるカーネル起動方法は、図2aに示す実施形態の具体的な実施態様である。図2bに示すように、信頼できるカーネル起動方法は、次を特に含む：
【００７０】
S211：セキュリティブートモジュールであるブートローダを起動する。このステップを実行する具体的なプロセスについては、ステップ201の対応する内容を参照できる。
【００７１】
S212：環境（ENV）パーティションに予め記憶された、PCRパーティションの標準評価値を取得する。
【００７２】
図2aに示す実施形態におけるステップ202の前に、システムは、環境（ENV）パーティションに予め記憶された、PCRパーティションの標準評価値をさらにまず取得してもよく、ここで、標準評価値は、システム起動時にPCRパーティションがノードごとに関連パラメータを初めて記憶する際に、第1のセキュリティアルゴリズムを用いて、現在のPCRパーティションに対応するイメージファイルを計算することによって、生成される評価値である。
【００７３】
具体的には、環境（ENV）パーティションに予め記憶された、PCRパーティションの標準評価値を取得する具体的なプロセスは、以下のとおりである。
【００７４】
1．ユーザよって入力されたPINに基づいてルートキーを生成する。
【００７５】
システムが最初に電源投入され実行される場合、システムは、システムのブートローダおよびカーネルなどの主要ノードによって送信され、主要ノードのセキュリティを評価するために使用される標準評価値をまず受信し、次いで、標準評価値は、評価を将来参照する時のために、記憶装置のPCRパーティションに記憶される。次いで、システムは、第1のセキュリティアルゴリズムを使用して、PCRパーティションに対応するイメージファイルの標準評価値P（20バイト）を計算し、ここで、標準評価値は、デバイスルートキーSRKを用いて暗号化されて、ENC｛P｝を生成し、ENC｛P｝は、ENVパーティションの最後の20バイトに記憶される。ルートキーは、ユーザによって管理され、システムを起動するたびに、ユーザは対応するルートキーシード、すなわち、PINを入力でき、その結果、システムは、ルートキーを生成する。
【００７６】
2．ルートキーを用いてENVパーティションを復号して、ENVパーティションに予め記憶された、PCRパーティションの標準評価値を取得する。
【００７７】
ブートローダがBL1プロセスを完了した後、システムは、ユーザによって入力されたPINを受け取り、PINに従ってSRKを生成し、その結果、ENVパーティションの最後の20バイトにおいて復号が行われる。
【００７８】
ユーザによって入力されたPINが正しければ、システムは、PINに従ってSRKを生成し、その結果、ENVパーティションのENC｛P｝の復号が成功し、値Pを取得することが実現できる。値Pは、PCRパーティションに対応する標準評価値である。PCRパーティションが信頼できるかどうかは、PとPCRパーティション実評価値とを比較することによって判定できる。このようにして、権限のないユーザが、PCRパーティションのいかなる情報を改ざんしたとしても、権限のないユーザは、対応するENC｛P｝までは改ざんできない。したがって、PCRパーティションがひとたび改ざんされたならば、このケースは発見でき、システムは、現在の起動プロセスを停止するようにさらに促される。
【００７９】
S213：ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する。このステップを実行する具体的なプロセスについては、ステップ202の対応する内容を参照できる。
【００８０】
具体的には、ブートローダが第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する具体的なプロセスは、以下のとおりであってもよい：まず、第1のセキュリティアルゴリズムを使用して、評価されたオブジェクト、すなわち、PCRパーティションのイメージファイルを計算して、現在のPCRパーティションの実評価値を取得する。ブートローダは、PCRパーティション実評価値がPCRパーティション標準評価値に等しいかどうか比較することによって、PCRパーティションが2回の評価の間で変わったかどうかを判定し、その結果、PCRパーティションが信頼できるかどうかを判定する。PCRパーティション実評価値がPCRパーティション標準評価値に等しい場合、PCRパーティションは変わっておらず、PCRパーティションの環境が安全かつ信頼できるということである。
【００８１】
S214：PCRパーティションに予め記憶されたカーネルコード標準評価値を取得する。
【００８２】
図2aに示す実施形態におけるステップ203の前に、システムは、PCRパーティションからカーネルコード標準評価値をさらにまず取得してもよく、ここで、標準評価値は、システムが最初に起動され、カーネルが、第1の完全アルゴリズムに従って、カーネルに対応する標準値を計算した後、カーネルによってシステムにプロアクティブに報告され、システムによってPCRパーティションに記憶される。
【００８３】
S215：PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価する。このステップを実行する具体的なプロセスについては、ステップ203の対応する内容を参照できる。
【００８４】
具体的には、PCRパーティションが信頼できる場合、システムは、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムに従って、カーネルコード実評価値を計算し、カーネルコード実評価値がPCRパーティションから取得される、カーネルコードの標準評価値に等しいかどうか比較することによって、カーネルコードが信頼できるかどうかを評価し、ここで、カーネルコード実評価値がカーネルコード標準評価値に等しい場合、カーネルコードは信頼できるということである。
【００８５】
S216：PCRパーティションに予め記憶されたブートローダ標準評価値を取得する。
【００８６】
図2aに示す実施形態におけるステップ204の前に、システムは、PCRパーティションからブートローダ標準評価値をさらにまず取得してもよく、ここで、標準評価値は、システムが最初に起動され、ブートローダが、第2の完全アルゴリズムに従って、ブートローダに対応する標準値を計算した後、ブートローダによってシステムにプロアクティブに報告され、システムによってPCRパーティションに記憶される。
【００８７】
S217：カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価する。このステップを実行する具体的なプロセスについては、ステップ204の対応する内容を参照できる。
【００８８】
具体的には、カーネルコードが信頼できる場合、システムは、カーネルコードをまず初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダ実評価値を計算し、ブートローダ実評価値がPCRパーティションから取得される、ブートローダの標準評価値に等しいかどうか比較することによって、ブートローダが信頼できるかどうかを評価し、ここで、ブートローダ実評価値がブートローダ標準評価値に等しい場合、ブートローダは信頼できるということである。
【００８９】
S218：ブートローダが信頼できる場合、カーネルを起動する。このステップを実行する具体的なプロセスについては、ステップ105の対応する内容を参照できる。
【００９０】
本発明において提供される信頼できるカーネル起動方法によれば、セキュリティブートモジュールであるブートローダが起動され、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価し、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価し、カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価し、ブートローダが信頼できる場合、カーネルを起動する。この解決策では、カーネル起動セキュリティがある程度改善される。
【００９１】
図2cは、本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。本実施形態における信頼できるカーネル起動方法は、図2aに示す実施形態の具体的な実施態様である。図2cに示すように、ステップ221から225の内容については、ステップ201から205の対応する内容を参照でき、ここでは細部を繰り返し説明しない。本実施形態では、図2aに示す方法に基づいて、ステップ205の後、信頼できるカーネル起動方法は、次をさらに含む：
【００９２】
S226：カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価する。
【００９３】
第3の完全アルゴリズムもまた、第1の完全アルゴリズムと同様に、システムの記憶ユニットに予め記憶され、第3の完全アルゴリズムによって特に参照されるアルゴリズムの種類が、第1の完全アルゴリズムによって参照されるアルゴリズムの種類と同じであってもよいし、あるいは第3の完全アルゴリズムによって特に参照されるアルゴリズムの種類が、列挙した前述のアルゴリズムのうちのいずれか1つであってもよく、第3の完全アルゴリズムの具体的な評価プロセスもまた、第1の完全アルゴリズムを用いてカーネルコードの信頼性を評価する方法および原理と同じであり、ここでは細部を繰り返し説明しない。
【００９４】
具体的には、カーネルの起動が完了した後、システムは、カーネルを呼び出し続けて、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価してもよい。
【００９５】
具体的な評価方法は、次のとおりである：システムが、PCRパーティションからカーネルセキュリティ管理拡張モジュール標準評価値をまず取得し、ここで、標準評価値が、システムが最初に起動され、カーネルセキュリティ管理拡張モジュールが、カーネルセキュリティ管理拡張モジュールに対応するイメージファイルを評価されたオブジェクトとして使用して第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールに対応する標準値を計算した後、カーネルセキュリティ管理拡張モジュールによってシステムにプロアクティブに報告され、システムによってPCRパーティションに記憶される。
【００９６】
加えて、システムは、カーネルを呼び出して、第3の完全アルゴリズムに従って、現在のカーネルセキュリティ管理拡張モジュール実評価値を計算し、カーネルセキュリティ管理拡張モジュール実評価値がPCRパーティションから取得されるカーネルセキュリティ管理拡張モジュールの標準評価値に等しいかどうか比較することによって、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価し、ここで、カーネルセキュリティ管理拡張モジュール実評価値がカーネルセキュリティ管理拡張モジュール標準評価値に等しい場合、カーネルセキュリティ管理拡張モジュールは信頼できるということである。
【００９７】
S227：カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動する。
【００９８】
カーネルセキュリティ管理拡張モジュールが信頼できる場合、カーネルは、カーネルセキュリティ管理拡張モジュールを動的にロードし、システムの通常の作業環境において実行する必要があるすべてのプログラムを含む、全システムを起動する。
【００９９】
また、図2dに示すように、ステップ227の後、すなわち、オペレーティングシステムが通常の起動を完了した後、かつオペレーティングシステムが各アプリケーションプログラムを起動する前に、オペレーティングシステムは、以下のステップ（S238およびS239）をさらに実行して、オペレーティングシステムのセキュリティをさらに確実にしてもよい。図2dに示すように、ステップ231から237の内容については、ステップ221から227の対応する内容を参照でき、本実施形態においてここでは細部を繰り返し説明しない。
【０１００】
S238：カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価する。
【０１０１】
第4の完全アルゴリズムもまた、第1の完全アルゴリズムと同様に、システムの記憶ユニットに予め記憶され、第4の完全アルゴリズムによって特に参照されるアルゴリズムの種類が、第1の完全アルゴリズムによって参照されるアルゴリズムの種類と同じであってもよいし、あるいは第4の完全アルゴリズムによって特に参照されるアルゴリズムの種類が、列挙した前述のアルゴリズムのうちのいずれか1つであってもよく、第4の完全アルゴリズムの具体的な評価プロセスもまた、第1の完全アルゴリズムを用いてカーネルコードの信頼性を評価する方法および原理と同じであり、ここでは細部を繰り返し説明しない。
【０１０２】
具体的な評価方法は、次のとおりである：システムが、PCRパーティションから、起動しようとするアプリケーションプログラムの標準評価値をまず取得し、ここで、標準評価値が、対応するアプリケーションプログラムが最初に起動され、システムが、カーネルセキュリティ管理拡張モジュールを呼び出して、アプリケーションプログラムに対応するイメージファイルを評価されたオブジェクトとして使用し、第4の完全アルゴリズムに従って、アプリケーションプログラムに対応する標準値を計算した後、システムにプロアクティブに報告され、システムによってPCRパーティションに記憶される。
【０１０３】
加えて、システムが、カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、アプリケーションプログラムの現在の実評価値を計算し、アプリケーションプログラムの実評価値がPCRパーティションから取得されるアプリケーションプログラムの標準評価値に等しいかどうか比較することによって、アプリケーションプログラムが信頼できるかどうかを評価し、ここで、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しい場合、アプリケーションプログラムは信頼できるということである。
【０１０４】
S239：アプリケーションプログラムが信頼できる場合、システムは、アプリケーションプログラムを起動する。反対に、アプリケーションプログラムの実評価値がアプリケーションプログラムの標準評価値に等しくない場合、アプリケーションプログラムが信頼できないということであり、このケースでは、カーネルセキュリティ管理拡張モジュールが、起動しようとする現在のアプリケーションプログラムが信頼できないことをシステムにプロアクティブに通知し、起動を続けて行うかどうかの命令を要求する。次いで、システムによって対応する情報ウィンドウをポップアップする方法で、ユーザは起動を続けて行うかどうかを決定する。
【０１０５】
図2bに示す実施形態におけるステップ218の後に、本実施形態におけるステップ236およびステップ237またはステップ236からステップ239を行うこともできることが理解でき、ここでは細部を繰り返し説明しない。
【０１０６】
本発明において提供される信頼できるカーネル起動方法によれば、セキュリティブートモジュールであるブートローダが起動され、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価し、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価し、カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価し、ブートローダが信頼できる場合、カーネルを起動し、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価し、カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動する。この解決策では、カーネル起動セキュリティおよびオペレーティングシステム起動セキュリティがある程度改善される。
【０１０７】
図3aは、本発明による信頼できるカーネル起動方法の別の実施形態の流れ図である。図3aに示すように、信頼できるカーネル起動方法は、次を特に含む：
【０１０８】
S301：セキュリティブートモジュールであるブートローダを起動する。このステップを実行する具体的なプロセスについては、ステップ201の対応する内容を参照できる。
【０１０９】
S302：ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する。このステップを実行する具体的なプロセスについては、ステップ202の対応する内容を参照できる。
【０１１０】
S303：PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価する。このステップを実行する具体的なプロセスについては、ステップ203の対応する内容を参照できる。
【０１１１】
S304：カーネルコードが信頼できる場合、カーネルコードを実行して、カーネルを起動する。
【０１１２】
具体的には、ブートローダが呼び出されて、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できると評価した場合、システムは、カーネルコードを完全に起動し、OSがSDRAMにおいて実行され得るようにし、その結果、OSがSDRAMにおいて最終的に実行される。反対に、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できないと評価した場合、ブートローダは、カーネルセキュリティ評価が不合格であることをシステムに通知し、システムに対して、システム起動プロセスを停止し、デバイスの電源を切るように促す。
【０１１３】
本実施形態に示す信頼できるカーネル起動方法では、図2aに示す実施形態と比較すると、起動プロセスにおいて、カーネルがブートローダをさらに評価することが除かれ、全カーネルが直接起動され、このことにより、カーネル手続きがある程度簡素化される。カーネルをロードする前に、PCRパーティションのセキュリティを評価することによって、カーネルを起動する際のセキュリティもまた改善される。
【０１１４】
図3bは、本発明による信頼できるカーネル起動方法の別の実施形態の流れ図である。本実施形態における信頼できるカーネル起動方法は、図3aに示す実施形態の具体的な実施態様である。図3bに示すように、信頼できるカーネル起動方法は、次を特に含む：
【０１１５】
S311：セキュリティブートモジュールであるブートローダを起動する。
【０１１６】
S312：環境（ENV）パーティションに予め記憶された、PCRパーティションの標準評価値を取得する。
【０１１７】
S313：ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する。
【０１１８】
S314：PCRパーティションに予め記憶されたカーネルコード標準評価値を取得する。
【０１１９】
S315：PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価する。
【０１２０】
S316：カーネルコードが信頼できる場合、カーネルコードを実行して、カーネルを起動する。
【０１２１】
ステップ311からステップ315を実行する具体的なプロセスについては、ステップ211からステップ215の対応する内容を参照でき、ステップ316を実行する具体的なプロセスについては、ステップ304の対応する内容を参照でき、ここでは繰り返し説明しない。
【０１２２】
本実施形態に示す信頼できるカーネル起動方法では、図2bに示す実施形態と比較すると、起動プロセスにおいて、カーネルがブートローダをさらに評価することが除かれ、全カーネルが直接起動され、このことにより、カーネル手続きがある程度簡素化される。カーネルをロードする前に、PCRパーティションのセキュリティを評価することによって、カーネルを起動する際のセキュリティもまた改善される。
【０１２３】
図3cは、本発明による信頼できるカーネル起動方法のさらに別の実施形態の流れ図である。本実施形態における信頼できるカーネル起動方法は、図3aに示す実施形態の具体的な実施態様である。図3cに示すように、図3aに示す方法に基づいて、ステップ304の後、信頼できるカーネル起動方法は、次をさらに含む：
【０１２４】
S325：カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価する。
【０１２５】
S326：ブートローダが信頼できる場合、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価する。
【０１２６】
S327：カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動する。
【０１２７】
図3cに示すように、ステップ321から324の内容については、ステップ301から304の対応する内容を参照でき、ここでは細部を繰り返し説明しない。
【０１２８】
また、図3dに示すように、本実施形態では、ステップ327の後、すなわち、オペレーティングシステムが通常の起動を完了した後、かつオペレーティングシステムが各アプリケーションプログラムを起動する前に、オペレーティングシステムは、以下のステップ（S338およびS339）をさらに実行して、オペレーティングシステムのセキュリティをさらに確実にしてもよい。
【０１２９】
S338：カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価する。
【０１３０】
S339：アプリケーションプログラムが信頼できる場合、システムは、アプリケーションプログラムを起動する。
【０１３１】
ステップ338およびステップ339を実行する具体的なプロセスについては、ステップ238およびステップ239の対応する内容を参照できる。
【０１３２】
図3bに示す本実施形態におけるステップ316の後に、本実施形態におけるステップ336およびステップ337またはステップ336から339を行うこともできることが理解でき、ここでは細部を繰り返し説明しない。
【０１３３】
また、ステップ335の前に、本方法は、PCRパーティションに予め分類された、ブートローダの標準評価値を取得するステップをさらに含むことができる。このステップを実行する具体的なプロセスについては、ステップ216の対応する内容を参照できる。
【０１３４】
また、ステップ335を実行する具体的なプロセスについては、ステップ217の対応する内容を参照できる。
【０１３５】
本実施形態に示す信頼できるカーネル起動方法では、図2cに示す実施形態と比較すると、起動プロセスにおいて、カーネルがブートローダをさらに評価することが除かれ、全カーネルが直接起動され、次いで、起動されたカーネルが呼び出されて、ブートローダに対するセキュア評価を実行し、このことにより、カーネル起動手続きがある程度簡素化され、オペレーティングシステム起動セキュリティが確実になる。
【０１３６】
当業者であれば、方法実施形態の各ステップの全部または一部を関連ハードウェアに命令するプログラムによって実現することができることを理解するはずである。プログラムはコンピュータ可読記憶媒体に記憶することができる。プログラムが走ると、方法実施形態の各ステップが行われる。前述の記憶媒体は、ROM、RAM、磁気ディスク、光ディスクといった、プログラムコードを記憶することのできる任意の媒体を含む。
【０１３７】
図4aは、本発明による信頼できるカーネル起動装置の一実施形態の概略構造図である。本装置は、組み込み起動システムまたはシステムに新しく加えられた固定機能モジュール、例えば、図1に示す信頼できるソフト・コンポーネント・プラットフォーム・モジュールであってもよい。信頼できるカーネル起動装置は、図2に示す信頼できるカーネル起動方法を実行できる。図4に示すように、信頼できるカーネル起動装置は、ブート起動モジュール401と、第1の評価モジュール402と、第2の評価モジュール403と、カーネル起動モジュール404とを特に含み、ここで、
ブート起動モジュール401が、セキュリティブートモジュールであるブートローダを起動するように構成され、
第1の評価モジュール402が、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する、ように構成され、
第1の評価モジュール402が、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価する、ようにさらに構成され、
第2の評価モジュール403が、カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価する、ように構成され、
カーネル起動モジュール404が、ブートローダが信頼できる場合、カーネルを起動するように構成される。
【０１３８】
また、図4bに示すように、411から414の具体的な機能は、図4aの401から404の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置は、取得モジュール415をさらに含み、ここで、取得モジュール415は、
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得し、PCRパーティションに予め記憶されたカーネルコード標準評価値を取得し、PCRパーティションに予め記憶されたブートローダ標準評価値を取得するように構成され、ここで、図4bに示す実施形態では、図2bに示す実施形態の方法ステップが、図4bに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１３９】
また、図4cに示すように、421から424の具体的な機能は、図4aの401から404の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置では、
第2の評価モジュール423は、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成され、
図4cに示すように、信頼できるカーネル起動装置は、カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成されるシステム起動モジュール426をさらに含んでもよい。
【０１４０】
図2cに示す実施形態の方法ステップは、図4cに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１４１】
また、図4dに示すように、431から434および436の具体的な機能は、図4cの421から424および426の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価する、ように構成される第3の評価モジュール437と、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するように構成されるアプリケーションプログラム起動モジュール438と、
をさらに含む。
【０１４２】
図2dに示す実施形態の方法ステップは、図4dに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１４３】
また、図4eに示すように、441から445の具体的な機能は、図4bの411から415の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置では、
第2の評価モジュール443は、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価する、ようにさらに構成され、
取得モジュール445が、PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するようにさらに構成され
図4eに示すように、信頼できるカーネル起動装置は、カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成されるシステム起動モジュール446をさらに含んでもよい。
【０１４４】
また、図4fに示すように、451から456の具体的な機能は、図4eの441から446の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置では、
取得モジュール455は、PCRパーティションに予め記憶された、アプリケーションプログラムの標準評価値を取得するようにさらに構成される。
【０１４５】
図4fに示すように、信頼できるカーネル起動装置は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価する、ように構成される第3の評価モジュール457と、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するように構成されるアプリケーションプログラム起動モジュール458と、
をさらに含んでもよい。
【０１４６】
図2aから図2dに示す実施形態の方法ステップは、図4fに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１４７】
本発明の本実施形態において提供される信頼できるカーネル起動装置は、セキュリティブートモジュールであるブートローダを起動し、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価し、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価し、カーネルコードが信頼できる場合、カーネルコードを初期化して、初期化されたカーネルを始動して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価し、ブートローダが信頼できる場合、カーネルを起動する。この解決策では、カーネル起動セキュリティがある程度改善される。
【０１４８】
図5aは、本発明による信頼できるカーネル起動装置のさらに別の実施形態の概略構造図である。本装置は、組み込み起動システムまたはシステムに新しく加えられた固定機能モジュール、例えば、図1に示す信頼できるソフト・コンポーネント・プラットフォーム・モジュールであってもよい。信頼できるカーネル起動装置は、図3aに示す信頼できるカーネル起動方法を実行できる。図5aに示すように、信頼できるカーネル起動装置は、ブート起動ユニット501と、第1の評価ユニット502と、カーネル起動ユニット503とを特に含み、ここで、
ブート起動ユニット501が、セキュリティブートモジュールであるブートローダを起動するように構成され、
第1の評価モジュール502が、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価する、ように構成され、
第1の評価モジュール502が、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価するようにさらに構成され、
カーネル起動ユニット503が、カーネルコードが信頼できる場合、カーネルコードを実行して、カーネルを起動するように構成される。
【０１４９】
また、図5bに示すように、511から513の具体的な機能は、図5aの501から503の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置は、取得ユニット514をさらに含んでもよく、ここで、取得ユニット514は、
環境（ENV）パーティションに予め記憶されたPCRパーティション標準評価値を取得し、PCRパーティションに予め記憶されたカーネルコード標準評価値を取得する
ように構成される。
【０１５０】
図3bに示す実施形態の方法ステップは、図5bに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１５１】
また、図5cに示すように、521から523の具体的な機能は、図5aの501から503の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置は、
カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するように構成される第2の評価ユニット525であって、
第2の評価ユニット525が、ブートローダが信頼できる場合、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成される、第2の評価ユニット525と、
カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成されるシステム起動ユニット526と、
をさらに含む。
【０１５２】
図3cに示す実施形態の方法ステップは、図5cに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１５３】
また、図5dに示すように、531から533、535および536の具体的な機能は、図5cの521から523、525および526の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成される第3の評価ユニット537と、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するように構成されるアプリケーションプログラム起動ユニット538と、
をさらに含む。
【０１５４】
図3dに示す実施形態の方法ステップは、図5dに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１５５】
また、図5eに示すように、541から544の具体的な機能は、図5bの511から514の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置は、
カーネルを呼び出して、第2の完全アルゴリズムに従って、ブートローダが信頼できるかどうかを評価するように構成される第2の評価ユニット545であって、
第2の評価ユニット545が、ブートローダが信頼できる場合、カーネルを呼び出して、第3の完全アルゴリズムに従って、カーネルセキュリティ管理拡張モジュールが信頼できるかどうかを評価するようにさらに構成される、第2の評価ユニット545と、
カーネルセキュリティ管理拡張モジュールが信頼できる場合、オペレーティングシステムを起動するように構成されるシステム起動ユニット546と、
をさらに含む。
【０１５６】
図5eに示す信頼できるカーネル起動装置では、取得ユニット544は、PCRパーティションに予め記憶されたブートローダ標準評価値を取得し、PCRパーティションに予め記憶されたカーネルセキュリティ管理拡張モジュール標準評価値を取得するようにさらに構成される。
【０１５７】
また、図5fに示すように、551から556の具体的な機能は、図5eの541から546の機能と対応して同じであり、ここでは細部を繰り返し説明しない。本実施形態において提供される信頼できるカーネル起動装置では、
取得ユニット554は、PCRパーティションに予め記憶された、アプリケーションプログラムの標準評価値を取得するようにさらに構成される。
【０１５８】
図5fに示すように、信頼できるカーネル起動装置は、
カーネルセキュリティ管理拡張モジュールを呼び出して、第4の完全アルゴリズムに従って、起動しようとするアプリケーションプログラムが信頼できるかどうかを評価するように構成される第3の評価モジュール557と、
アプリケーションプログラムが信頼できる場合、アプリケーションプログラムを起動するように構成されるアプリケーションプログラム起動モジュール558と、
をさらに含む。
【０１５９】
図3aから図3dに示す実施形態の方法ステップは、図5fに示す信頼できるカーネル起動装置によって実行されてもよい。
【０１６０】
本実施形態に示す信頼できるカーネル起動装置は、セキュリティブートモジュールであるブートローダを起動し、ブートローダを呼び出して、第1のセキュリティアルゴリズムに従って、プラットフォーム構成レジスタ（PCR）パーティションが信頼できるかどうかを評価し、PCRパーティションが信頼できる場合、ブートローダを呼び出して、カーネルコードをメモリに読み込み、ブートローダを呼び出して、第1の完全アルゴリズムおよびPCRパーティションに予め記憶されたカーネルコード標準評価値に従って、カーネルコードが信頼できるかどうかを評価し、カーネルコードが信頼できる場合、カーネルコードを実行して、カーネルを起動する。図4aに示す実施形態と比較すると、起動プロセスにおいて、カーネルがブートローダをさらに評価することが除かれ、全カーネルが直接起動され、このことにより、カーネル起動手続きがある程度簡素化される。カーネルをロードする前に、PCRパーティションのセキュリティを評価することによって、カーネルを起動する際のセキュリティもまた改善される。
【０１６１】
説明を簡便にする目的で前述の機能モジュールの分割が説明のための例として挙げられていることが、当業者にははっきりと理解することができる。実際の適用においては、前述の各機能を、異なる機能モジュールに割り振り、要件に従って実装することができる、すなわち、装置の内部構造が上述の各機能の全部または一部を実装するための異なる機能モジュールに分割される。前述のシステム、装置およびユニットの詳細な動作プロセスについては、前述の方法実施形態における対応するプロセスを参照でき、ここでは細部を繰り返し説明しない。
【０１６２】
本出願において提供されるいくつかの実施形態においては、開示のシステム、装置、および方法を他のやり方で実装することもできることを理解すべきである。例えば、説明された装置実施形態は単なる例示にすぎない。例えば、モジュールまたはユニットの分割は単なる論理的機能分割にすぎず、実際の実装に際しては他の分割も可能である。例えば、複数のユニットまたはコンポーネントが組み合わされ、または統合されて別のシステムになる場合もあり、いくつかの特徴が無視され、または実行されない場合もある。加えて、表示された、または論じられた相互結合または直接結合または通信接続を、いくつかのインターフェースを使用して実現することもできる。装置間またはユニット間の間接結合または通信接続は、電子的形態、機械的形態、または他の形態として実現することができる。
【０１６３】
別々の部品として記述されたユニットは物理的に分離している場合もそうでない場合もあり、ユニットとして表示された部品は、物理的ユニットである場合もそうでない場合もあり、1箇所に位置する場合もあり、複数のネットワークユニット上に分散される場合もある。ユニットの一部または全部を、各実施形態の解決策の目的を達成するための実際の必要に従って選択することもできる。
【０１６４】
加えて、本出願の実施形態における機能ユニットが1つの処理ユニットへ統合される場合もあり、ユニットの各々が物理的に独立して存在する場合もあり、または2つ以上のユニットが1つのユニットへ統合される場合もある。統合ユニットはハードウェアの形態で実現することもでき、ソフトウェア機能ユニットの形態で実現することもできる。
【０１６５】
前述の統合ユニットがソフトウェア機能ユニットの形態で実現され、独立した製品として販売され、または使用される場合に、その統合ユニットはコンピュータ可読記憶媒体に記憶することができる。そうした理解に基づき、本出願の技術解決策を本質的に、または先行技術に寄与する部分を、または技術解決策の全部または一部を、ソフトウェア製品の形態で実現することができる。ソフトウェア製品は記憶媒体に記憶されており、（パーソナルコンピュータ、サーバ、もしくはネットワークデバイスとすることができる）コンピュータデバイスまたはプロセッサ（processor）に、本出願の各実施形態で記述されている方法のステップの全部または一部を実行するよう命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読取り専用メモリ（ROM、Read-Only Memory）、ランダム・アクセス・メモリ（RAM、Random Access Memory）、磁気ディスク、光ディスクといった、プログラムコードを記憶することができる任意の媒体を含む。
【０１６６】
前述の実施形態は、本出願を限定するためのものではなく、単に本出願の技術的解決策を説明するためのものにすぎない。本出願は前述の実施形態に関連して詳細に説明されているが、当業者は、本出願の実施形態の技術的解決策の趣旨および範囲を逸脱することなく、さらに、前述の実施形態に記述されている技術的解決策に改変を加え、あるいは、前述の実施形態の一部の技術的特徴に対する等価の置換を行うことができる、ということが理解されよう。
【符号の説明】
【０１６７】
401  ブート起動モジュール
402  第1の評価モジュール
403  第2の評価モジュール
404  カーネル起動モジュール
411  ブート起動モジュール
412  第1の評価モジュール
413  第2の評価モジュール
414  カーネル起動モジュール
415  取得モジュール
421  ブート起動モジュール
422  第1の評価モジュール
423  第2の評価モジュール
424  カーネル起動モジュール
426  システム起動モジュール
431  ブート起動モジュール
432  第1の評価モジュール
433  第2の評価モジュール
434  カーネル起動モジュール
436  システム起動モジュール
437  第3の評価モジュール
438  アプリケーションプログラム起動モジュール
441  ブート起動モジュール
442  第1の評価モジュール
443  第2の評価モジュール
444  カーネル起動モジュール
445  取得モジュール
446  システム起動モジュール
451  ブート起動モジュール
452  第1の評価モジュール
453  第2の評価モジュール
454  カーネル起動モジュール
455  取得モジュール
456  システム起動モジュール
457  第3の評価モジュール
458  アプリケーションプログラム起動モジュール
501  ブート起動ユニット
502  第1の評価ユニット
503  カーネル起動ユニット
511  ブート起動ユニット
512  第1の評価ユニット
513  カーネル起動ユニット
514  取得ユニット
521  ブート起動ユニット
522  第1の評価ユニット
523  カーネル起動ユニット
525  第2の評価ユニット
526  システム起動ユニット
531  ブート起動ユニット
532  第1の評価ユニット
533  カーネル起動ユニット
535  第2の評価ユニット
536  システム起動ユニット
537  第3の評価ユニット
538  アプリケーションプログラム起動ユニット
541  ブート起動ユニット
542  第1の評価ユニット
543  カーネル起動ユニット
544  取得ユニット
545  第2の評価ユニット
546  システム起動ユニット
551  ブート起動ユニット
552  第1の評価ユニット
553  カーネル起動ユニット
554  取得ユニット
555  第2の評価ユニット
546  システム起動ユニット
557  第3の評価ユニット
558  アプリケーションプログラム起動モジュール
【図１】
0006319609.tif 000002
【図２ａ】
0006319609.tif 000003
【図２ｂ】
0006319609.tif 000004
【図２ｃ】
0006319609.tif 000005
【図２ｄ】
0006319609.tif 000006
【図３ａ】
0006319609.tif 000007
【図３ｂ】
0006319609.tif 000008
【図３ｃ】
0006319609.tif 000009
【図３ｄ】
0006319609.tif 000010
【図４ａ】
0006319609.tif 000011
【図４ｂ】
0006319609.tif 000012
【図４ｃ】
0006319609.tif 000013
【図４ｄ】
0006319609.tif 000014
【図４ｅ】
0006319609.tif 000015
【図４ｆ】
0006319609.tif 000016
【図５ａ】
0006319609.tif 000017
【図５ｂ】
0006319609.tif 000018
【図５ｃ】
0006319609.tif 000019
【図５ｄ】
0006319609.tif 000020
【図５ｅ】
0006319609.tif 000021
【図５ｆ】
0006319609.tif 000022