(57)【要約】      （修正有）【課題】共用する暗号化ファイルを復号する暗号鍵を安全に転送する。【解決手段】フラッシュストレージデバイス（ＦＳＤ）２１３に格納される暗号化ファイルは、ＣＰＵ１０１とＣＰＵ２０１ａにより共用される。電源が起動されると１次専有デバイス群１００と２次専有デバイス群２００は、ほぼ同時にブートされる。それぞれにおいてＯＳがロードされる前にマイクロ・コンピュータ（ＥＣ）５７からシステムＢＩＯＳに相当するボード・サポート・パッケージ（ＢＳＰ）にサイド・バンド３３を通じて暗号化ファイルを復号する暗号鍵を転送する。暗号鍵はＯＳが動作する前に転送されるため、マルウェアから攻撃を受ける危険性を低減することができる。【選択図】図１
2014057283.tif 000002
【特許請求の範囲】
【請求項１】
それぞれプロセッサとソフトウェアを備える１次動作環境と２次動作環境を含み、前記１次動作環境と前記２次動作環境が共用する共用ディスク・ドライブを備えるコンピュータにおいて、前記１次動作環境から前記２次動作環境に暗号鍵を転送する方法であって、
１次動作環境が暗号鍵を保管するステップと、
前記１次動作環境が前記暗号鍵で共用ファイルを暗号化して生成した暗号化ファイルを前記共用ディスク・ドライブに格納するステップと、
ブート時にそれぞれのファームウェアを実行して前記１次動作環境と前記２次動作環境を構築するステップと、
それぞれのオペレーティング・システムがロードされる前に前記１次動作環境から前記２次動作環境に前記暗号鍵を転送するステップと
を有する方法。
【請求項２】
前記暗号鍵を転送する前に前記１次動作環境が前記２次動作環境の真正を証明する識別子を使って前記２次動作環境を認証するステップを有する請求項１に記載の方法。
【請求項３】
前記暗号鍵を転送する前に前記２次動作環境が前記１次動作環境の真正を証明する識別子を使って前記１次動作環境を認証するステップを有する請求項１または請求項２に記載の方法。
【請求項４】
前記暗号鍵を転送する前に前記１次動作環境が前記暗号鍵を転送する前記１次動作環境のファームウェアに対する改竄の有無を検証するステップを有する請求項１から請求項３のいずれかに記載の方法。
【請求項５】
前記転送する暗号鍵をワンタイム・パスワードで暗号化するステップを有する請求項１から請求項４のいずれかに記載の方法。
【請求項６】
前記２次動作環境が受け取った前記暗号鍵を電源が停止したときに消去するステップを有する請求項１から請求項５のいずれかに記載の方法。
【請求項７】
前記保管するステップが、前記暗号鍵を前記オペレーティング・システムに対するログイン・パスワードで復号できるように暗号化して前記１次動作環境に保管するステップを含む請求項１から請求項６のいずれかに記載の方法。
【請求項８】
前記暗号化ファイルを格納するステップが、
前記共用ファイルを暗号化する共通鍵を生成するステップと、
公開鍵で前記共通鍵を暗号化するステップを含み、
前記暗号鍵を転送するステップが、
前記公開鍵と、前記公開鍵とペアで生成された秘密鍵を転送するステップ
を有する請求項１から請求項７のいずれかに記載の方法。
【請求項９】
前記２次動作環境が前記秘密鍵で前記暗号化ファイルを復号して取得した前記共用ファイルを編集するステップと、
前記２次動作環境が前記編集した共用ファイルを前記公開鍵で暗号化して生成した暗号化ファイルを前記共用ディスク・ドライブに格納するステップと
を有する請求項８に記載の方法。
【請求項１０】
それぞれプロセッサとソフトウェアを備える１次動作環境と２次動作環境を含むコンピュータにおいて、前記第１次動作環境から前記２次動作環境に秘密情報を転送する方法であって、
前記１次動作環境が前記秘密情報を保管するステップと、
ブート時にそれぞれのファームウェアを実行して前記１次動作環境と前記２次動作環境を構築するステップと、
それぞれのオペレーティング・システムがメイン・メモリにロードされる前に前記１次動作環境から前記２次動作環境に前記秘密情報を転送するステップと
を有する方法。
【請求項１１】
前記秘密情報が無線基地局に対する認証情報である請求項１０に記載の方法。
【請求項１２】
第１のプロセッサと第１のオペレーティング・システムを含む第１のコンピュータ・システムと、
第２のプロセッサと第２のオペレーティング・システムを含む第２のコンピュータ・システムと、
前記第１のコンピュータ・システムと前記第２のコンピュータ・システムで共用が可能な暗号化ファイルを格納する共用ディスク・ドライブと、
前記暗号化ファイルを復号する暗号鍵とを有し、
前記第１のオペレーティング・システムと前記第２のオペレーティング・システムがそれぞれのメイン・メモリにロードされる前に利用可能なサイド・バントを通じて前記第１のコンピュータ・システムから前記第２のコンピュータ・システムに前記暗号鍵を転送するコンピュータ。
【請求項１３】
前記第１のコンピュータ・システムがセキュアに保存された前記第２のコンピュータ・システムの識別情報を有し、前記暗号鍵を転送する前に前記第１のコンピュータ・システムが前記第２のコンピュータ・システムから前記識別情報を受け取って前記第２のコンピュータ・システムを認証する請求項１２に記載のコンピュータ。
【請求項１４】
前記識別情報が、取り外されたときに前記第２のコンピュータ・システムを動作させないように機能するセキュリティ・チップの識別子である請求項１３に記載のコンピュータ。
【請求項１５】
前記第１のコンピュータ・システムが前記第１のプロセッサから独立して動作して前記暗号鍵を転送するマイクロプロセッサと電源起動時に前記第１のオペレーティング・システムがロードされる前に実行される第１のファームウェアを有し、前記暗号鍵を転送する前に前記第１のファームウェアは前記マイクロプロセッサが実行するファームウェアの一貫性を検査するように前記コンピュータを機能させる請求項１２から請求項１４のいずれかに記載のコンピュータ。
【請求項１６】
前記共用ディスク・ドライブが前記第２のコンピュータ・システムの起動ディスクである請求項１２から請求項１５のいずれかに記載の方法。
【請求項１７】
前記コンピュータがハイブリッド型の携帯式コンピュータである請求項１２から請求項１６のいずれかに記載のコンピュータ。
【請求項１８】
第１のプロセッサと第１のオペレーティング・システムを含む１次動作環境と、
第２のプロセッサと第２のオペレーティング・システムを含む２次動作環境と、
前記１次動作環境が保有する秘密情報と、
前記第１のオペレーティング・システムと前記第２のオペレーティング・システムがそれぞれのメイン・メモリにロードされる前に前記１次動作環境から前記２次動作環境に前記秘密情報を転送するコンピュータ。
【請求項１９】
それぞれプロセッサとソフトウェアを備える１次動作環境と２次動作環境を含み、前記１次動作環境と前記２次動作環境が共用する共用ディスク・ドライブを備えるコンピュータに、
前記１次動作環境が前記共用ディスク・ドライブに格納した暗号化ファイルを復号する暗号鍵を保有する機能と、
ブート時に前記１次動作環境と前記２次動作環境を構築する機能と、
それぞれのオペレーティング・システムが実行状態に移行する前に前記１次動作環境から前記第２動作環境に前記暗号鍵を転送する機能と
を実現させるためのコンピュータ・プログラム。
【請求項２０】
それぞれプロセッサとソフトウェアを備える１次動作環境と２次動作環境を含むコンピュータに、
前記１次動作環境が秘密情報を保有する機能と、
ブート時に前記１次動作環境と前記２次動作環境を構築する機能と、
それぞれのオペレーティング・システムが実行状態に移行する前に前記１次動作環境から前記２次動作環境に前記秘密情報を転送する機能と
を実現させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュータ・システムの間で安全に秘密情報を交換する技術に関する。
【背景技術】
【０００２】
携帯式コンピュータは盗難に遭いやすいため、近年個人情報を保護する観点から、磁気ディスク装置（ＨＤＤ）またはソリッド・ステート・ドライブ（ＳＳＤ）といったようなディスク・ドライブに記憶するデータの暗号化を義務づけるガイダンスを発行して今後の法制化を検討している国がある。また、社外に持ち出すことがある携帯式コンピュータに格納するデータの暗号化を義務付けている企業もある。Windows（登録商標）は、ディスク・ドライブに格納するファイルを、パーティションで区切られたボリューム単位で暗号化するBitLocker（登録商標）という機能や、個別のファイル単位で暗号化するＥＦＳ（Encrypting File System）という機能を提供する。
【０００３】
ボリューム単位または個別のファイル単位のいずれであっても、データを暗号化して保護できるようにする前提として、暗号鍵を安全に保管し暗号化したユーザだけが使用できるようにする必要がある。ところでコンピュータ・システムの中には、動作環境の異なる複数のシステムが１つのディスク・ドライブ（以下、共用ディスク・ドライブという。）を共用することがある。典型的なコンピュータ・システムとしては、携帯式コンピュータに機能と消費電力の異なる２つの動作環境を実現したハイブリッドＰＣがある。
【０００４】
共用ディスク・ドライブにおいて、一方の動作環境が暗号化したデータを他方の動作環境で使用するためには暗号鍵を正しい相手に安全に渡す必要がある。各動作環境において暗号鍵を安全に保管しておいたとしても、相手の動作環境に転送をすることで攻撃を受ける危険性が高まる。たとえば、盗んだハイブリッドＰＣの１次動作環境と２次動作環境の間に盗聴装置を組み込んだり、暗号鍵を受け取る動作環境を不正に改竄したりするような方法で暗号鍵が盗聴される危険性が高まる。
【０００５】
各動作環境同士がネットワークで接続されている場合は、外部の認証局（Certificate Authority）を利用したＰＫＩ（Public Key Infrastructure）方式で安全に暗号鍵を交換する方法がある。また動作環境間での転送をしないでユーザが暗号鍵を格納したトークンを利用する方法もある。特許文献１は、それぞれがプロセッサを備える２つのコンピュータ・システムで構成されたハイブリッド・コンピュータを開示する。一方のシステムは、高度な機能のハードウェアおよびソフトウェアを備えており消費電力が大きく、他方のシステムはその逆になるように構成されている。
【０００６】
特許文献２は、アイドル状態のコンピュータの消費電力を低減するハイブリッド・コンピュータを開示する。１次動作環境のＥＣと２次動作環境の組込システムが接続され、１次動作環境と２次動作環境はそれぞれ連携してブートすることが記載されている。特許文献３は、共用するデータを暗号化する技術について記載している。データ作成者のＲＭＳアプリケーションが業務データを暗号化し、暗号鍵をＲＭＳサーバに登録する。データ利用者はＲＭＳサーバにアクセスして認証されたときに暗号鍵を取得して暗号化されたデータを復号できるようになっている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２０１０／００８８５３１号明細書
【特許文献２】特開２０１２−１１８８９１号公報
【特許文献３】国際公開第ＷＯ２００８／１４６６３９号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
共用ディスク・ドライブに格納された暗号化ファイルを共用するための暗号鍵を転送する場合は、転送元は転送先が真正な共用者であることを認証する必要がある。また、転送先も不正な転送元から受け取った不正なコマンドで復号した暗号化フィアルを不正な転送元に読み取られないようにするために真正な共用者であることを認証する必要がある。ネットワーク経由で認証局を利用する方法では、ハイブリッド・コンピュータをネットワークへ接続できないときに暗号鍵の転送をすることができない。
【０００９】
また、認証局を利用するために余分な負担がかかる。さらに暗号鍵は安全に保管できるとしても、ネットワークへ接続している動作環境ではマルウェアが動作することもあるため盗聴の危険性が増大する。トークンを利用する方法ではトークンの管理および操作に煩雑さがある。ユーザに毎回暗号鍵の入力を求めることはユーザの負担が大きい。さらに、共用ディスク・ドライブが起動ディスクの場合は、ブート時に共用ディスク・ドライブから暗号化されたブート・ファイルのロードを開始する前に暗号鍵を受け取る必要がある。ハイブリッド・コンピュータのような異なる動作環境間で暗号鍵を交換するためにはこのようなさまざまな問題を解決する必要がある。
【００１０】
そこで本発明の目的は、ハイブリッド・コンピュータが搭載するような異なる動作環境の間で秘密情報を安全に交換する方法を提供することにある。さらに本発明の目的は、簡単な方法で秘密情報を交換する方法を提供することにある。さらに本発明の目的は、ネットワークに接続できない環境で秘密情報を交換する方法を提供することにある。さらに本発明の目的は、ユーザに新たにパスワードの入力を求めないで秘密情報を交換する方法を提供することにある。
【００１１】
さらに本発明の目的は、暗号化ファイルを復号する暗号鍵を安全に交換する方法を提供することにある。さらに本発明の目的は、起動ディスクに格納された暗号化ファイルを復号する暗号鍵を交換する方法を提供することにある。さらに本発明の目的はそのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一の態様では、それぞれプロセッサとソフトウェアを備える１次動作環境と２次動作環境を含み、１次動作環境と２次動作環境が共用する共用ディスク・ドライブを備えるコンピュータにおいて、１次動作環境から２次動作環境に暗号鍵を転送する方法を提供する。１次動作環境が暗号鍵を保管する。１次動作環境が暗号鍵を使って共用ファイルを暗号化して生成した暗号化ファイルを共用ディスク・ドライブに格納する。ブート時にそれぞれのファームウェアを実行して１次動作環境と２次動作環境を構築する。それぞれのオペレーティング・システムがロードされる前に１次動作環境から２次動作環境に暗号鍵を転送する。
【００１３】
暗号鍵は、オペレーティング・システムがロードされる前のファームウェアの実行環境において転送されるため、オペレーティング・システムを利用して動作するマルウェアからの攻撃に対する耐性を向上させることができる。また暗号鍵は、オペレーティング・システムがロードされる前に転送されるため、共用ディスク・ドライブが起動ディスクで、ブート・ファイルが暗号化されている場合やボリュームが暗号化されている場合にもオペレーティング・システムのブートを開始することができる。また、暗号鍵が無線通信に使用するような場合であっても、ブートが完了した時点で暗号鍵を使用することができる。
【００１４】
暗号鍵を転送する前に１次動作環境が２次動作環境の真正を証明する識別子を使って２次動作環境を認証するようにしてもよい。その結果、付け替えられた不正な２次動作環境に暗号鍵を転送することを防ぐことができる。さらに、認証局を利用できない環境でも真正な相手に暗号鍵を渡すことができる。認証に利用する識別子には２次動作環境の安全を確保するためのセキュリティ・チップの識別子を利用することができる。さらに暗号鍵を転送する前に２次動作環境が１次動作環境の真正を証明する識別子を使って１次動作環境を認証するようにしてもよい。
【００１５】
暗号鍵を転送する前に、１次動作環境が暗号鍵を転送するファームウェアに対する改竄の有無を検証するようにしてもよい。その結果、改竄されたファームウェアが１次動作環境でセキュアに保管されていた暗号鍵を取得する事態を防ぐことができる。暗号鍵を転送するファームウェアは、１次動作環境を構築するためのＢＩＯＳのようなファームウェアであってもよく、またマイクロプロセッサの専用のファームウェアであってもよい。転送する暗号鍵をワンタイム・パスワードで暗号化すれば、転送中の暗号鍵が盗聴される危険性を低減することができる。
【００１６】
２次動作環境が受け取った暗号鍵を電源が停止したときに消去するようにしておけば、２次動作環境を通じて暗号鍵が盗聴される危険性をなくすことができる。暗号鍵をオペレーティング・システムに対するログイン・パスワードで復号できるように暗号化して１次動作環境に保管しておけば、ユーザは追加的なパスワードを入力しないでも共用ファイルの暗号化をすることができる。
【００１７】
暗号化ファイルを格納するには、共用ファイルを暗号化する共通鍵を生成し、共通鍵を公開鍵で暗号化するようにしてもよい。そして転送する暗号鍵は、秘密／公開鍵ペアとすることができる。２次動作環境が秘密鍵で暗号化ファイルを復号して取得した共用ファイルを編集し、編集した共用ファイルを公開鍵で暗号化して生成した暗号化ファイルを共用ディスク・ドライブに格納することができる。その結果、２次動作環境が編集した暗号化ファイルに対して１次動作環境からもアクセスできるようになる。
【００１８】
本発明の他の態様は、それぞれプロセッサとソフトウェアを備える１次動作環境と２次動作環境を含むコンピュータにおいて、第１次動作環境から２次動作環境に秘密情報を転送する方法を提供する。１次動作環境が秘密情報を保管する。ブート時にそれぞれのファームウェアを実行して１次動作環境と２次動作環境を構築する。それぞれのオペレーティング・システムがロードされる前に１次動作環境から２次動作環境に秘密情報を転送する。秘密情報はファイルの暗号鍵や無線基地局との通信に使用する暗号鍵であってもよい。
【発明の効果】
【００１９】
本発明により、ハイブリッド・コンピュータが搭載するような異なる動作環境の間で秘密情報を安全に交換する方法を提供することができた。さらに本発明により、簡単な方法で秘密情報を交換する方法を提供することができた。さらに本発明により、ネットワークに接続できない環境で秘密情報を交換する方法を提供することができた。さらに本発明により、ユーザに新たにパスワードの入力を求めないで秘密情報を交換する方法を提供することができた。
【００２０】
さらに本発明により、暗号化ファイルを復号する暗号鍵を安全に交換する方法を提供することができた。さらに本発明により、起動ディスクに格納された暗号化ファイルを復号する暗号鍵を交換する方法を提供することができた。さらに本発明によりそのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【００２１】
【図１】ハイブリッドＰＣの主要なハードウェアの構成を示す機能ブロック図である。
【図２】ハイブリッドＰＣの主要なソフトウェアの構成を示す機能ブロック図である。
【図３】暗号鍵を転送する手順を示すフローチャートである。
【図４】ＥＦＳでファイルを暗号化する手順を説明する図である。
【図５】ファイルを暗号化する手順を説明する図である。
【発明を実施するための形態】
【００２２】
［ハイブリッドＰＣの構成］
図１は、ハイブリッド・システムを搭載したノートＰＣ（以下、ハイブリッドＰＣという。）１０の主要なハードウェアの構成を示す機能ブロック図である。ハイブリッド・システムは、１次動作環境と２次動作環境の２つの動作環境を実装する。ここに、動作環境は、連携動作をするハードウェアとソフトウェアで構成される概念で、プロセッサ、周辺デバイス、およびチップ・セットなどのハードウェアとオペレーティング・システム（ＯＳ）、アプリケーション・プログラム（アプリケーション）、デバイス・ドライバおよびＢＩＯＳのようなファームウェアなどのソフトウェアで構成されたまとまりのある処理をするコンピュータ・システムという概念で定義できる。なおハイブリッド・システムを構成する、ハードウェアおよびソフトウェアの各要素は、いずれか一方の動作環境にだけ帰属してもよいし、また両方に帰属してもよい。
【００２３】
１次動作環境と２次動作環境は、ブート時にＢＩＯＳなどのファーウェアがデバイスの初期化や検査をしている段階、その後ＯＳがメイン・メモリにロードされている段階およびブートが完了してアプリケーションが実行される段階を含む。ハイブリッドＰＣ１０は１次動作環境と２次動作環境のパワー・ステートを個別に制御することができ、いずれか一方の動作環境に含まれるＣＰＵだけがハイブリッド・システム全体の制御権を獲得する。
【００２４】
動作環境はコンピュータ自体の制御によりまたはユーザ・インターフェースを通じて双方向にダイナミックに切り換えることができるようになっている。１次動作環境は、ハイブリッドＰＣ１０の主たる動作環境でこの動作環境で動作するときに最大の機能を発揮することができる。２次動作環境は、１次動作環境に比べて機能が低いハードウェアとソフトウェアで構成することができる。
【００２５】
たとえば２次動作環境のハードウェアは１次動作環境のハードウェアに比べて、動作周波数を低くし、バスの帯域を狭くし、かつメモリの記憶容量が小さくなるように構成することができる。また、２次動作環境では１次動作環境で実行されるアプリケーションとほぼ同一の機能を備えながらより簡素に構成されたアプリケーションを実行することができる。あるいは、２次動作環境ではＷｅｂブラウザや音楽再生ソフトウェアなどのプロセッサの負担が少ない処理だけを実行することができる。したがって、ハイブリッドＰＣ１０が２次動作環境で動作するときは、１次動作環境で動作するときよりも消費電力を格段に少なくすることができる。
【００２６】
ハイブリッドＰＣ１０のデバイスは、１次専有デバイス群１００、２次専有デバイス群２００、共有デバイス群２０、および基本デバイス群５０で構成されている。ハイブリッドＰＣ１０のハードウェアの構成は周知であるため、本発明の理解に必要な範囲で説明する。１次専有デバイス群１００は、ＣＰＵ１０１、メイン・メモリ１０３、ビデオ・カード１０５、ＰＣＨ（Platform Controller Hub）１０７、ＴＰＭ（Trusted Platform Module）１０９、システムＢＩＯＳを記憶するＢＩＯＳ＿ＲＯＭ１１１、ＨＤＤ１１３、および無線通信のためのネットワーク・インターフェース・カード（ＮＩＣ）１１５で構成されており１次動作環境だけで動作する。
【００２７】
ＣＰＵ１０１は一例として、Ｘ８６プロセッサとすることができる。ＴＰＭ１０９の仕様はＴＣＧ（Trusted Computing Group）が規定している。ＴＰＭ１０９は、１次動作環境のマザーボードに取り付けられたセキュリティ・チップでプラットフォームの正当性を検証する機能および１次動作環境のプログラムの一貫性（インテグリティ）を検証する機能を備えている。ＴＰＭがマザーボードから取り外されると少なくとも１次動作環境は機能しなくなるため、ＴＰＭの存在により信頼のおける１次動作環境を証明することができる。
【００２８】
ＢＩＯＳ＿ＲＯＭ１１１は、起動時に最初に実行されてデバイスの初期化や設定などのＰＯＳＴを実行するコードやＡＣＰＩ規格に対応した処理をするコードなどで構成されたファームウェアであるシステムＢＩＯＳを格納する。システムＢＩＯＳは、１次動作環境のすべてのプログラムに対する改竄の有無を検査するＣＲＴＭ（Core. Root of Trust for Measurement）というコードを含む。ＣＲＴＭはＢＩＯＳ＿ＲＯＭの特別な権限がないと書き換えができない領域（ブート・ブロック）に格納されている。
【００２９】
システムＢＩＯＳは、１次専有デバイス群１００および共有デバイス群２０の初期化処理およびＨＤＤ１１３からメイン・メモリ１０３へのブート・ファイルのロードなどを行う。システムＢＩＯＳは、１次動作環境から２次動作環境に暗号鍵を送るための処理をするように構成してもよい。ＨＤＤ１１３は、１次動作環境を実現するためにメイン・メモリ１０３に読み出されてＣＰＵ１０１により実行されるブート・ファイルを格納する１次動作環境の起動ディスクである。
【００３０】
２次専有デバイス群２００は、ＳＯＣ（System on a chip）タイプの組込システム（Embedded System）２０１、メイン・メモリ２０３、および無線通信のためのＮＩＣ２１５で構成されており２次動作環境だけで動作する。組込システム２０１は、ＣＰＵ２０１ａの機能の他にチップ・セットの機能とシステムＢＩＯＳに相当する機能が１つの半導体デバイスに組み込まれている。チップ・セットの機能としては、ビデオ・コントローラ２０１ｂ、メモリ・コントローラ２０１ｃ、およびＰＣＨ１０７がサポートするすべてのまたは主要なインターフェース２０１ｄの機能を含む。ＣＰＵ２０１ａは、一例として英国のＡｃｏｒｎ社が開発したＡＲＭ（Advanced RISC Machine）プロセッサとすることができる。ＣＰＵ２０１ａは携帯電話やスマートフォンに使用するタイプであり、ＣＰＵ１０１に比べて消費電力は格段に小さい。
【００３１】
組込システム２０１はシステムＢＩＯＳに相当する、ＢＳＰ（Board Support Package）というファームウェアを格納するＢＳＰ＿ＲＯＭ２０１ｆを含む。ＢＳＰは、ＣＰＵ２０１ａがＯＳを実行するために必要なソフトウェア・ライブラリであり、２次動作環境で動作する２次専有デバイス群２００および共有デバイス群２０の初期化処理コード、メモリ・マッピング処理コード、およびデバイス・ドライバなどで構成されている。
【００３２】
ＢＳＰは、ＥＣ５７と協働して１次動作環境から２次動作環境にＦＳＤ２１３に格納する暗号化ファイルの暗号鍵を転送する処理をする。ＭＴＭ（Mobile Trusted Module）２０１ｆは、組込システム２０１の基板に取り付けられ信頼のおける２次動作環境を構築するためのＴＰＭ１０９に相当するセキュリティ・チップである。ＰＣＨ１０７と組込システム２０１は、ＵＳＢポートやその他のインターフェース同士をデータ／コマンド・ライン３１で接続して相互にデータ交換ができるように構成されている。ＣＰＵ１０１、２０１ａはそれぞれのＯＳがメイン・メモリ１０３、２０３にロードされた後にデータ／コマンド・ライン３１を利用することができる。
【００３３】
共有デバイス群２０は一例として、ＬＣＤ１１、ＵＳＢ端子２１、オーディオ・デバイス２３、入力デバイス２７およびフラッシュ・ストレージ・デバイス（ＦＳＤ）２１３を含む。スイッチ１３は、ＬＣＤ１１をビデオ・カード１０５またはビデオ・コントローラ２０１ｂのいずれか一方に接続する。スイッチ１５、１７は、ＵＳＢ端子２１、オーディオ・デバイス２３をＰＣＨ１０７または組込システム２０１の対応するインターフェース・ポートのいずれかに接続する。スイッチ１３〜１７の切換はエンベデッド・コントローラ（ＥＣ）５７が行う。共有デバイス群２０は、スイッチ１３、１５、１７の動作によっていずれか一方の動作環境に帰属する。
【００３４】
ＦＳＤ２１３は、１次動作環境および２次動作環境のいずれでも動作する共用ディスク・ドライブであるが他のデバイスのようにスイッチで動作環境を切り換えるようにしてもよい。１次動作環境はデータ／コマンド・ライン３１および組込システム２０１を経由してＦＳＤ２１３にアクセスする。ＦＳＤ２１３は、ＮＡＮＤ型のフラッシュ・デバイスを組込システム２０１に直接実装したり、ＳＤカードとして実装したりすることができる。本発明の適用においては、ＦＳＤ２１３の型式は特に限定する必要がなく、ＨＤＤのようなディスク・ドライブでもよい。ＦＳＤ２１３は、２次動作環境を実現するためにメイン・メモリ２０３に読み出されてＣＰＵ２０１ａにより実行されるブート・ファイルを格納する２次動作環境の起動ディスクである。
【００３５】
基本デバイス群５０は、ハイブリッドＰＣ１０の電源管理および温度管理などの基本的な動作に関連するデバイスで構成されいずれの動作環境でも動作する。基本デバイス群５０は、ＥＣ５７および電力源５９で構成されている。電力源５９は、ＡＣ／ＤＣアダプタ、充電器、電池パック、電源制御回路、ＤＣ／ＤＣコンバータおよび排熱ファンなどで構成される。ＥＣ５７は、ＣＰＵ、ＲＯＭ、ＥＥＰＲＯＭ、ＤＭＡコントローラ、割り込みコントローラ、およびタイマなどで構成されたマイクロ・コンピュータであり、ＳＭバス（System Management Bus）・ポート、ＳＰＩ（Serial Peripheral Interface）バス・ポート、およびＵＡＲＴ（Universal Asynchronous Receiver Transmitter）ポートなどを備えている。
【００３６】
ＥＣ５７はＣＰＵ１０１およびＣＰＵ２０１ａからは独立して動作し、ハイブリッドＰＣ１０に実装されるデバイスに供給する電力をパワー・ステートに応じて制御したり、システム筐体の内部の温度を管理したりする。ＥＣ５７は、１次動作環境と２次動作環境を切り換える処理をする。ＥＣ５７のＲＯＭには、ＥＣ５７のＣＰＵが実行するファームウェアが格納されている。
【００３７】
ＥＣ５７は、サイド・バンド３３を通じて組込システム２０１に接続されており、入力デバイス２７からの入力をＰＣＨ１０７または組込システム２０１のいずれかに送ることができる。サイド・バンド３３のインターフェースは、一例としてＵＡＲＴまたはＳＰＩを採用することができる。ＥＣ５７はサイド・バンド３３を通じて、組込システム２０１の存在を検出したり、電源の起動を組込システム２０１に通知したりする信号を転送する。
【００３８】
組込システム２０１はサイド・バンド３３を通じて、１次動作環境の存在を検出したりＥＣ５７にパワー・ステートの変更を要求したりする信号を転送する。システムＢＩＯＳまたはＥＣ５７とＢＳＰはブート時に、それぞれのＯＳがメイン・メモリ１０３、２０３にロードされる前にサイド・バンド３３を通じて、１次動作環境から２次動作環境にＦＳＤ２１３に記憶するファイルを復号するための暗号鍵を転送する。
【００３９】
なお、図１は本実施の形態を説明するために、本実施の形態に関連する主要なハードウェアの構成および接続関係を簡略化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、ハイブリッドＰＣ１０を構成するには多くのデバイスが使われる。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。図１で記載した複数のブロックを１個の集積回路もしくは装置としたり、逆に１個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００４０】
また、１次専有デバイス群１００または２次専有デバイス群２００と共有デバイス群２０の区分は、図１に例示したものに限定する必要はない。たとえば、ＨＤＤ１１３を共有デバイス群２０に組み込んで共用する暗号化ファイルを格納することもできる。また、各々のデバイスの間を接続するバスおよびインターフェースなどの種類は特に本発明を限定するものではなく、それら以外の接続であっても当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。ハイブリッドＰＣ１００は、共有デバイス群２０と基本デバイス群５０を物理的に一方の動作環境に含めて、１次動作環境と２次動作環境が分離できるようにしてもよい。
【００４１】
［ソフトウェアの構成］
図２は、ハイブリッドＰＣ１０の主要なソフトウェアの構成を示す機能ブロック図である。１次動作環境で実行されるソフトウェアは、文書アプリケーション１５１、同期アプリケーション１５３、ＯＳ１５５、デバイス・ドライバ１５７、１６１およびシステムＢＩＯＳ１５８を含む。２次動作環境で実行されるソフトウェアは、文書アプリケーション２５１、同期アプリケーション２５３、ＯＳ２５５、デバイス・ドライバ２５７、２６１およびＢＳＰ２５８を含む。文書アプリケーション１５１、２５１は、ＯＳ１５５、２５５のサービスを利用して動作するアプリケーション・プログラムの一例である。文書アプリケーション２５１は文書アプリケーション１５１よりも簡素に構成されており、実行するＣＰＵ２０１ａの負担は軽くなる。
【００４２】
同期アプリケーション１５３、２５３は、データ／コマンド・ライン３１を通じて相互にメッセージを交換しながら、１次動作環境と２次動作環境の切り換え処理を行う。ＯＳ１５５は一例としてWindows（登録商標）とし、ＯＳ２５５は一例としてAndroid（登録商標）またはLinux（登録商標）とすることができる。ただし、本発明はＯＳ１５５とＯＳ２５５が同一であってもまたここに例示した以外のものであっても適用することができる。ＯＳ１５５は、ＮＴＦＳが提供するＥＦＳという暗号化の機能を含む。ＥＦＳはカーネル・モード・コンポーネント、ローカル・セキュリティ認証サブシステム（ＬＳＡＳＳ）、および暗号化ＤＬＬと通信するユーザ・モードＤＬＬで構成されている。
【００４３】
暗号モジュール２５６は、ＥＦＳが使用した秘密鍵を使って共通鍵を復号し、さらにその共通鍵を使ってＦＳＤ２１３に格納された暗号化ファイルを復号する。暗号化モジュール２５６は、復号した暗号化ファイルを編集した後にランダムな数値である共通鍵を生成して、その共通鍵を使って編集後のファイルを暗号化する。さらに暗号化モジュール２５６は、共通鍵をＥＦＳが使用した公開鍵を使って暗号化する。
【００４４】
デバイス・ドライバ１５７は、１次専有デバイス群のコントローラ１５９の動作とデータ通信の制御をするためのプログラムで、デバイス・ドライバ２５７は、２次専有デバイス群のコントローラ２５９の動作とデータ通信の制御をするためのプログラムである。デバイス・ドライバ１６１、２６１は、共有デバイス群２０のコントローラ５１の動作とデータ通信の制御をするためのプログラムである。デバイス・ドライバ１６１、２６１はハイブリッドＰＣ１０の制御権をみずからの動作環境が獲得したときにその都度共有デバイス群５０のコントローラおよびそれに接続される入出力デバイスを設定する。
【００４５】
［暗号鍵の転送手順］
図３は、ＦＳＤ２１３にＣＰＵ１０１が格納した暗号化ファイルを復号するための暗号鍵を、組込システム２０１に転送する手順を示すフローチャートである。図４、図５はファイルを暗号化する手順を説明する図である。ブロック３０１でハイブリッドＰＣ１００は、１次動作環境で動作する文書アプリケーション１５１が作成したファイルを暗号化してＦＳＤ２１３に格納する。本発明は、ＦＳＤ２１３に格納するファイルをボリューム単位またはファイル単位のいずれで暗号化する場合にも適用できるが、ここでは一例として図４、図５を参照してファイル単位で暗号化する方法を例にして説明する。
【００４６】
最初に文書ファイル１５１が作成したファイルをWindowsが提供するインターフェースを利用してユーザが暗号化する操作をする。つぎにＥＦＳ１５６は暗号化をするユーザのアカウントに秘密／公開鍵ペア１８５、１８７を割り当てる。ＥＦＳ１５６は以後の暗号化において、最初に割り当てた秘密／公開鍵ペア１８５、１８７を同一のアカウントに対しては継続して利用する。
【００４７】
つぎにＥＦＳ１５６は、暗号化する共用ファイル１８１に対してランダムな数値を生成してファイル暗号化キー（ＦＥＫ）１８３を生成する。ＦＥＫ１８３は対称暗号方式で暗号化する際に使用する共通鍵である。つぎにＥＦＳ１５６はＦＥＫ１８３を利用して共用ファイル１８１を暗号化し暗号化ファイル１８４を生成する。つぎにＥＦＳ１５６は、ＦＥＫ１８３を公開鍵１８７で暗号化して暗号化ＦＥＫ１８９を生成する。
【００４８】
つぎにＥＦＳ１５６は、暗号化ファイル１８４に暗号化ＦＥＫ１８９を含むデータ復号化フィールド（ＤＤＦ）１９１を付加して暗号化ファイル構造体１９０を作成しＦＳＤ２１３に格納する。ＤＤＦ１９１には、公開鍵１８７で暗号化された暗号化ＦＥＫ１８９の他にユーザ・セキュリティＩＤ、およびＥＦＳハッシュ証明書などが格納される。
【００４９】
本実施の形態では、秘密鍵１８５および公開鍵１８７のいずれもＯＳ１５５がランダムな数値であるマスタ鍵で暗号化してＨＤＤ１１３に保管する。また、マスタ鍵はWindowsのログイン・パスワードで暗号化される。したがって、ログインしたユーザおよび当該ユーザから正当に受け取ったユーザ以外は秘密／公開鍵ペア１８５、１８７を取得することはできない。
【００５０】
ログイン・パスワードはWindowsにログインする際に要求されるため、暗号化ファイル１８４を共用するために追加的なパスワードを入力する必要がなくなる。なお、本発明では、ログイン・パスワードに代えて、ユーザが暗号化ファイル１８４を共用するための専用のパスワードを入力するようにしてもよい。この時点では２次動作環境のＯＳ２５５のファイル・システムはＯＳ１５５が生成した秘密鍵１８５を取得していないためＦＳＤ２１３の暗号化ファイル１８４にアクセスすることができない。
【００５１】
ブロック３０３で、パワー・ボタンが押下されるとＥＣ５７はスイッチ１３〜１７を１次動作環境側に切り換え１次専有デバイス群１００、共有デバイス群２０に電力を供給する。リセットされたＣＰＵ１０１は最初にシステムＢＩＯＳ１５８をメイン・メモリ１０３にロードしてＣＲＴＭを実行する。ＣＲＴＭはブロック３０５で、システムＢＩＯＳ１５８の一貫性を検証したあとにＥＣ５７のファームウェアの一貫性を検証する。ＣＲＴＭは、ＥＣ５７の真正なファームウェアのハッシュ値とそのハッシュ値を暗号化した秘密鍵に対応する公開鍵を格納している。ＣＲＴＭは、ＥＣ５７のファームウェアが秘密鍵で暗号化したハッシュ値を公開鍵で復号して、保管していたハッシュ値と比較することでファームウェアに対する改竄の有無を検証することができる。
【００５２】
一貫性の検証により、ＯＳ１５５が作成した秘密／公開鍵ペア１８５、１８７が不正に取り付けられたＥＣに渡ることを防ぐことができる。ブロック３０７でＥＣ５７は、サイド・バンド３３を通じてハイブリッドＰＣ１０に組込システム２０１が存在することを認識すると２次専有デバイス群２００に電力を供給する。ブロック４０１で２次専有デバイス群２００に電力が供給されると、組込システム２０１では、最初にＢＳＰ２５８が実行される。ＢＳＰ２５８の一貫性検証コードがＢＳＰ２５８の一貫性を計測する。
【００５３】
ＥＣ５７はサイド・バンド３３を通じて、ＢＳＰ２５８が改竄されていないことを示す通知を受け取ると、ブロック３０９で組込システム２０１の真正を検証する。ＴＰＭ１０９とＭＴＭ２０１ｆは改竄したり取り外したりすると、それぞれの動作環境が機能しないようになっているため、その存在を示すことで各動作環境の真正を証明することができる。ＴＰＭ１０９とＭＴＭ２０１ｆは工場を出荷する時点で相互に相手の識別情報をセキュアに保管している。ＥＣ５７は、ＣＰＵ２０１ａに対してＭＴＭ２０１ｆの識別情報を要求し組込システム２０１の認証を行う。
【００５４】
この認証によって、１次動作環境が不正な２次動作環境に秘密／公開鍵ペア１８５、１８７を渡さないようにすることができる。ブロック４０３でサイド・バンド３３を通じて認証が成功した通知を受け取ったＣＰＵ２０１ｅは、ＥＣ５７に対してＴＰＭ１０９の識別情報を要求して認証を行う。この認証により、不正な１次動作環境が、２次動作環境に暗号化ファイル１８４を復号して平文の共用ファイルとして格納するような不正なコマンドを送るような事態を防ぐことができる。なお相互認証に使用する識別情報は、ＴＰＭ１０９およびＭＴＭ２０１ｆの識別子に限定する必要はなく、工場出荷時にＢＩＯＳ＿ＲＯＭ１１１およびＢＳＰ＿ＲＯＭ２０１ｅのセキュアな記憶領域に格納して置いた識別情報を利用することでもよい。また、相互認証はシステムＢＩＯＳ１５８とＢＳＰ２５８が行うようにしてもよい。
【００５５】
相互認証が終了するとブロック３１１、４０５でサイド・バンド３３を通じて秘密／公開鍵ペアを転送する際の暗号化に使用するワンタイム・パスワード（共通鍵）を生成する。ワンタイム・パスワードは、相互に保有する同じアルゴリズムのトークンを利用して時刻同期方式で生成したり、相互に保有する同じ関数を利用してチャレンジ・レスポンス方式で生成したりすることができる。
【００５６】
ブロック３１３でＥＣ５７は、秘密／公開鍵ペア１８５、１８７をワンタイム・パスワードで暗号化してからサイド・バンド３３を通じてＣＰＵ２０１ａに転送する。この時点でＯＳ１５５、２５５はロードされていないため、マルウェアによる盗聴の危険性を軽減することができる。ＥＣ５７とＣＰＵ２０１ａは、一貫性が検証されたファームウェアを実行して秘密／公開鍵ペア１８５、１８７を転送するため、不正な転送を防ぐことができる。また、サイド・バンド３３に盗聴装置を挿入しても秘密／公開鍵ペアはワンタイム・パスワードで暗号化しているため盗聴の危険性を軽減できる。なお、サイド・バンド３３の通信は安全が確保されているためワンタイム・パスワードによる暗号化は省略することもできる。
【００５７】
ブロック４０７でＣＰＵ２０１ａは受け取った秘密／公開鍵ペアを、メイン・メモリ２０３またはその他の揮発性のメモリにだけ記憶し２次動作環境の不揮発性メモリには格納しない。秘密／公開鍵ペア１８５、１８７は２次動作環境の電源が停止したときに消失するので盗聴の危険性を低減することができる。ブロック３１５で、システムＢＩＯＳ１５８のＰＯＳＴが終了し、ＨＤＤ１１３の先頭セクタからメイン・メモリ１０３にブート・ローダが読み出される。その後順番にブート・ファイルがロードされてＯＳ１５５のブートが完了する。ブロック４０９では、ＢＳＰ２５８によるＰＯＳＴが終了するとＯＳ２５５がメイン・メモリ２０３にロードされてブートが完了する。
【００５８】
秘密／公開鍵ペア１８５、１８７は、ＯＳ２５５のロードを開始する前に２次動作環境に転送されるため、ＦＳＤ２１３に格納されたブート・ファイルが暗号化されていても暗号モジュール２５６は秘密鍵で暗号化ＦＥＫ１８９を復号し、ＦＥＫ１８３で暗号化ファイル１８４を復号してブート・ファイルをロードすることができる。ブロック３１７で文書アプリケーション１５１は新たなファイルを作成する。ＥＦＳ１５６は、新たなファイルに対して新たにＦＥＫを生成して暗号化ファイルを作成する。ＥＦＳ１５６は新たなＦＥＫを公開鍵１８７で暗号化して作成した新たな暗号化ファイル構造をＦＳＤ２１３に格納する。
【００５９】
ブロック４１１で、文書アプリケーション２５１はＦＳＤ２１３に格納された暗号化ファイル１８４にアクセスする際に、暗号化モジュール２５６を呼び出してブロック４０７で受け取った秘密鍵１８５でＤＤＲ１９１に格納されている暗号化ＦＥＫ１８９を復号し、復号したＦＥＫ１８３で暗号化ファイル１８４を復号する。文書アプリケーション２５１は、復号した共用ファイル１８１を編集してＦＳＤ２５１に格納する際に暗号化モジュール２５１を呼び出してランダムに生成したＦＥＫで暗号化し、新たなＦＥＫをブロック４０７で受け取った公開鍵１８７で暗号化して暗号化ファイル構造体を作成する。
【００６０】
上記の例では、先に１次動作環境が暗号化ファイル構造体１９０を生成して格納する例を説明したが、２次動作環境が１次動作環境から受け取った秘密／暗号鍵ペアを利用して先に暗号化ファイル構造体を生成して格納してもよい。またＦＳＤ２１３を共用ディスク・ドライブにする例を説明したが、１次動作環境のＨＤＤ１１３を共用ディスク・ドライブにしてもよく、ＦＳＤ２１３とＨＤＤ１１３をともに共用ディスク・ドライブにしてもよい。
【００６１】
１次動作環境および２次動作環境のＯＳがともにマルチユーザに対応する場合は秘密／公開鍵ペアをアカウントごとに作成してもよい。この場合、ユーザごとの認証情報をＢＩＯＳ＿ＲＯＭ１１１に格納しておき、システムＢＩＯＳ１５８によるブート段階で認証したユーザの認証情報と秘密／公開鍵ペアを２次動作環境に送ることで、認証されたユーザだけが暗号化ファイルを共用することができるようになる。また、暗号化ファイルを共用するために共通鍵とＰＫＩ方式を採用したＥＦＳを利用する例を説明したが、本発明は共通鍵またはＰＫＩだけを利用して共用ファイルを暗号化する方式に適用することもできる。
【００６２】
サイド・バンド３３を通じて転送する秘密情報としてファイルを共用するための秘密／公開鍵ペア１８５、１８７を例にして説明したが、秘密情報は１次動作環境のＮＩＣ１１５と２次動作環境のＮＩＣ２１５がアクセスする共通の無線基地局との間での通信に使用するＷＥＰやＷＰＡなどの暗号鍵であってもよい。この場合、ＯＳ２５５のブートが完了した時点で２次動作環境は暗号鍵を取得できるため、無線通信の開始が遅れるようなことがない。
【００６３】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００６４】
１０  ハイブリッドＰＣ
２０  共有デバイス群
５０  基本デバイス群
１００  １次専有デバイス群
２００  ２次専有デバイス群
２０１  組込システム
１９０  暗号化ファイル構造体
１９１  データ復号化フィールド（ＤＤＦ）
【図１】
2014057283.tif 000003
【図２】
2014057283.tif 000004
【図３】
2014057283.tif 000005
【図４】
2014057283.tif 000006
【図５】
2014057283.tif 000007