JP5380604B2 - 情報記録装置 - Google Patents

情報記録装置 Download PDF

Info

Publication number
JP5380604B2
JP5380604B2 JP2012506744A JP2012506744A JP5380604B2 JP 5380604 B2 JP5380604 B2 JP 5380604B2 JP 2012506744 A JP2012506744 A JP 2012506744A JP 2012506744 A JP2012506744 A JP 2012506744A JP 5380604 B2 JP5380604 B2 JP 5380604B2
Authority
JP
Japan
Prior art keywords
unit
program
shadow
password
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012506744A
Other languages
English (en)
Other versions
JPWO2011118034A1 (ja
Inventor
崎 宏 磯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of JPWO2011118034A1 publication Critical patent/JPWO2011118034A1/ja
Application granted granted Critical
Publication of JP5380604B2 publication Critical patent/JP5380604B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Description

本開示は、ネットワークサービスや著作権保護の必要なコンテンツ等を保存する情報記録装置に関する。
近年、HDD(ハードディスクドライブ)やSSD(Solid State Drive)などのストレージデバイスそのものに暗号化機能を持たせ、ストレージデバイスに蓄積するデータを暗号化して保存する手法や、PINコード(パスワード)をストレージデバイスに登録しておき、正しいPINコードを入力した場合のみストレージデバイスへのアクセスを許可する手法など、種々の提案がなされている(例えば、非特許文献1参照)。
一方、従来のPCシステムでは、コンテンツ配信用のアプリケーションをサービス事業者あるいはサービスごとにインストールし、そのアプリケーションの中に秘密情報を含ませておくか、あるいは秘密情報を格納するためのアルゴリズムを含ませて秘密情報は暗号化してファイルとして保存するといった手法が一般的である(例えば、特許文献1)。
TCG Storage Architecture Core Specification、http://www.trustedcomputinggroup.org/developers/storage/specifications
米国特許公報No.7559091
しかしながら、ソフトウェアはCPUで実行可能な形式でなければならないため、1ステップずつ命令を解析していけば秘密情報を取得できてしまう。
また、従来の種々の電子機器では、機器の性能上の制約から、サービス固有のアプリケーションをユーザが追加でインストールできるようにすることは一般的には難しい。そこで、電子機器の工場出荷後に、追加的にサービス事業者のサービスに対応した機器とするために、サービスプロバイダに依存せずに電子機器のプラットホームとしてサービス事業者の情報を適切に保護する仕組みを備えていることが望ましい。もちろんPCシステムにおいても、サービス事業者やサービスに関わらず、共通で適用可能なプラットホームを利用できれば、電子機器を安価に製造することができる。
本発明の一観点は、デジタル情報の不正利用を確実に防止し、ユーザの使い勝手を損なわずに、デジタル情報の著作権保護を図りつつデジタル情報を有効利用可能な情報記録装置を提供することにある。
本発明の一態様では、デジタルコンテンツを含むデジタル情報を記録するドライブ部と、
前記ドライブ部に対するデジタル情報の記録および読み出しを制御するホスト部と、を備え、
前記ホスト部は、
サーバとの通信を行うネットワーク処理部と、
ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
前記シャドウ・ブートプログラムを実行するシャドウ実行部と、
前記シャドウ・ブートプログラムの処理手順に従って、前記サーバとの認証を行うサーバ認証部と、
前記サーバとの認証に成功した場合に、前記ドライブ部に前記ドライブ部のアンロックに使用するパスワードを送信するパスワード送信部と、を備え、
前記ドライブ部は、
前記シャドウ・ブートプログラムを格納するシャドウ・ブートプログラム格納部と、
前期ブートプログラムを格納するブートプログラム格納部と、
任意のデジタルデータを含むユーザデータを格納するユーザデータ格納部と、
前記ホスト部から送信されたパスワードが予め登録されたパスワードと一致するか否かを判定するパスワード照合部と、
前記パスワード照合部にて一致すると判定されると、前記ユーザデータ格納部のロックを解除してアクセスを許可するロック制御部と、を備えることを特徴とする情報記録装置が提供される。
本発明の一観点によれば、デジタル情報の不正利用を確実に防止でき、ユーザの使い勝手も損なうことなく、デジタル情報の著作権保護を図りつつ、デジタル情報の有効活用を図ることができる。
本発明に係る情報処理システムの第1の実施形態の全体構成を示すブロック図。 図1のデータ記録装置3の内部構成の一例を示すブロック図。 MBR Shadow格納部35に格納されるプログラムの処理手順を示すフローチャート。 第2の実施形態によるデータ記録装置3の内部構成の一例を示すブロック図。 秘密情報格納部15の内部構成の一例を示すブロック図。 公開鍵方式を使う場合の秘密情報格納部15aの内部構成の一例を示す図。 Shadowプログラムが行うパスワード設定フェーズの処理手順の一例を示すフローチャート。 Shadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャート。 サーバ1からパスワードを入手する場合におけるShadowプログラムの処理手順の一例を示すフローチャート。 Shadowプログラムが行うパスワード設定フェーズの処理手順の一例を示すフローチャート。 Shadowプログラムが行うパスワード設定フェーズの処理手順の他の一例を示すフローチャート。 サーバ1から取得した値を状態管理部45のレジスタに記憶した場合に対応するアンロックフェーズの処理手順の一例を示すフローチャート。 第3の実施形態におけるデータ記録装置3の概略構成を示すブロック図。 Shadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャート。 図14の処理に、初期インストール用格納部35aに格納されたプログラムが確実に実行されたか否かを確認する処理を追加した一例を示すフローチャート。 第4の実施形態におけるデータ記録装置3の概略構成を示すブロック図。 特殊命令Xを実行可能なプロセッサ26aの内部構成の一例を示すブロック図。 第4の実施形態に係る秘密情報格納部15bの概略構成の一例を示すブロック図。 (a)は公開鍵方式を採用する場合の認証用秘密鍵の設定フェーズの処理手順の一例を示すフローチャート、(b)は共通鍵方式を採用する場合の認証用秘密鍵の設定フェーズの処理手順の一例を示すフローチャート。 第4の実施形態におけるShadowプログラムの処理手順の一例を示すフローチャート。 アンロック制御用のパスワードを保護可能な第4の実施形態におけるデータ記録装置3の概略構成の一例を示すブロック図。 第4の実施形態におけるShadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャート。 第5の実施形態におけるShadowプログラムの構造の一例を示す図。 第5の実施形態におけるShadowプログラムが行う復号処理手順の一例を示すフローチャート。 次世代電力網の概略構成の一例を示すブロック図。
以下、図面を参照しながら、本発明の実施形態について詳細に説明する。
(第1の実施形態)
以下、図面を参照しながら、本発明による情報記録装置の一実施形態を説明する。
図1は本発明に係る情報処理システムの第1の実施形態の全体構成を示すブロック図である。図1の情報処理システムは、サーバ1(例えばサービス提供サーバA,B)からインターネット2を介してデジタル情報の受信および蓄積が可能なデータ記録装置3を備えている。なお、図1において、インターネット2に接続されたデータ記録装置3およびサーバ1は、不図示のルータ機器等に接続されていてもよい。
データ記録装置3とサーバ1は、物理レイヤおよびリンクレイヤとして、IEEE802.11に準拠した無線LAN、イーサネット(登録商標)などの種々の形態を採用可能である。ネットワークレイヤとして、インターネット2プロトコル(IP)を使用する場合は、IPv4でもよいし、IPv6でもよい。
ここで、デジタル情報とは、例えばMPEG2やMPEG4のような動画データや、MP3のような音声データ、またはテキストデータや画像データ等のデジタル化されたコンテンツを指し、ユーザの所有するクレジットカードの番号などの個人情報を含んでもよい。
本実施の形態によるデータ記録装置3は、主としてドライブ部4とホスト部5を備える。ドライブ部4はハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)のようなデジタル情報を記録する装置を想定しており、その内部にはデータ記録部6とアクセス制御部7が設けられる。一方、ホスト部5は、不図示のCPUやメモリ、通信インターフェースなどデータを処理する機能と、サービス提供サーバ1と通信する機能を持つ。なお、ホスト部5はIDEやSCSI、USBなどのバスインターフェースによってドライブ部4と接続されている。
データ記録部6は、OSや、動画データなどのAVデータ、ユーザの生成したデータ、サービス提供サーバ1から受信したデータなどのデジタル情報を格納する処理を行う。ホスト部5、より正確にはホスト部5で処理されるOSはそれらのデータとそのデータが格納されたアドレスを管理する。
ホスト部5がデータ記録部6からデータを読み込む際にはデータ記録部6のアドレス(Logical Block Address)を指定し、データ記録部6は指定されたアドレス(LBA)の領域に格納されたデータをホスト部5に送信する。データ記録部6はホスト部5から複数の独立した領域(パーティション)として見えるように論理的に分割されていてもよい。
図1の例では、データ記録部6は、MBR格納部8、OS格納部9、ユーザデータ格納部10に分割して構成されている。MBR格納部8はMBR(Master Boot Record)とよばれる起動時に実行されるプログラム(ブートプログラム)が格納される領域である。OS格納部9とはOSを格納する処理部である。ユーザデータ格納部10とは、AVデータやユーザの生成したデータ、サービス提供サーバ1から受信したデータなど(ユーザデータ)を格納し、管理する処理部である。ユーザデータとは、ユーザが所有するデータであればどのようなデジタルデータであってもよく、たとえば、テキストファイルや動画データ・画像データなどを指す。ユーザデータは、ユーザによってキーボードやマイクを使って入力されたデータでも良く、ユーザによってデジタルカメラやカムコーダーで撮影(作成)されたプライベートなデータであっても良く、コンテンツプロバイダ等が作成してユーザが(有償・無償に関わらず)購入したような商用データであっても良く、友人や家族から受領したようなデータであっても良い。OS格納部9とユーザデータ格納部10はこの実施形態では別領域として設定しているが、一つの領域にまとめてもよい。
ホスト部5は、プログラム処理部11と起動処理部12を備える。プログラム処理部11は起動処理やOSの処理などを処理する。起動処理部12は起動時にMBRをロードするために実行されるプログラムを格納しており、このプログラムの格納には、BIOSや機器に内蔵されたフラッシュメモリなどの汎用の記憶装置を用いることができる。
データ記録装置3が起動する際、まずプロセッサは、起動処理部12に格納されたプログラムを実行する。このプログラムではシステムの初期化処理などを行い、次にMBR格納部8に格納されているブートプログラムを読み込んで実行する。言いかえると、データ記録部6に記録されているプログラムのうち最初に実行されるものがブートプログラムである。ブートプログラムはデータ記録部6の領域がどのように設定されているかなどをチェックした後、OS格納部9に格納されているOSがホスト部5に読み込まれて実行される。OSはサービス提供サーバ1と通信するためのアプリケーションなどを実行する。
ここで、ドライブ部4のアクセス制御部7は、ホスト部5からデータ記録部6にアクセスしてよいかどうか判定処理を行う。ホスト部5からデータ読み込み要求があった場合に拒絶するリードロック、データ書き込み要求があった場合に拒絶するライトロック、またはその両方を判定する機能を持つ。リードは許可するがライトは不許可といったようにリードロックとライトロックはそれぞれ独立して設定可能である。またリードロックとライトロックの設定と制御はパーティションごとに行えるようにしてもよい。リードロックとライトロックの設定手法およびロックの解除手法については後述する。
図2は図1のデータ記録装置3の内部構成の一例を示すブロック図である。以下、図2を用いて、ホスト部5の詳細構成を説明する。ホスト部5は、上述したプログラム処理部11と起動処理部12の他に、ドライブ部4と通信を行うための通信処理部13を有する。起動処理部12は、ブートプログラムをロードするために実行されるプログラムを格納する起動プログラム格納部21を有する。
プログラム処理部11は、ネットワーク処理部22と、サーバ認証処理部23と、MBR Shadow書き込み部24と、データ管理部25とを有する。ネットワーク処理部22は、サービス提供サーバ1と通信を行うための物理レイヤ処理、データリンクレイヤ処理、ネットワークレイヤ処理、トランスポートレイヤ処理を行う。サーバ認証処理はサービス提供サーバ1との認証処理を行う。
MBR Shadow書き込み部24はドライブ部4のMBR Shadow格納部に後述するShadowプログラム(シャドウ・ブートプログラム)を書き込む処理を行う。データ管理部25はOS格納部9やユーザデータ格納部10に対するデータの読み込みや書き込み処理を行う。通信処理部13はドライブ部4との通信処理を行う。具体的には、通信処理部13は、ドライブ部4の内部の通信処理部14と各種情報の送受を行う。
次にドライブ部4の詳細構成を説明する。ドライブ部4のアクセス制御部7は、要求データ範囲確認部31と、ホスト認証部32と、ロック制御部33と、MBR Shadow設定部34とを有する。MBR Shadow設定部34には、MBR Shadow格納部35が接続されている。
ホスト部5からアドレス指定にてドライブ部4に対してデータの読み込みや書き込み要求があった場合、要求データ範囲確認部31はそのアドレスに対応する部分がリードロックされているか、あるいはライトロックされているかを判定し、もしロックがかかっている状態であればエラーを返してデータ記録部6へのアクセスを行わない。アンロックの状態(ロックされていない状態)であれば、ホスト部5がそのアドレスに対応したデータにアクセスすることを許可する。ホスト認証部32は通信処理部13を介してホストと認証処理を行う。ロック制御部33は、データ記録部6に対するロックの設定を制御する。すなわち、ホスト認証処理部の認証結果を確認し、認証に成功している場合に限りロックを解除したりロックを設定したりする。MBR Shadow設定部34はMBR Shadow格納部35にプログラム(シャドウ・プログラム)を設定したり、MBR Shadow機能が有効かどうかを管理したりする処理を行う。処理手順としては、ホスト認証処理部の認証結果を確認し、認証に成功している場合に限りMBR Shadow設定部34に対してMBR Shadowにプログラムを書き込んだり、MBR Shadow機能の有効・無効を設定したりする。
なお、MBR Shadow格納部35に予めプログラムを書き込んで出荷したり、MBR Shadow機能を常に有効あるいは無効の設定で出荷したりする場合はMBR Shadow設定部34は必ずしも必要ではない。
次に、MBR Shadow設定部34でオン・オフを設定するMBR Shadow機能について説明する。前述のとおりデータ記録装置3が起動する際、起動処理部12に格納されたプログラムは、機器をブートさせるためのプログラムを読み込み実行しようとする。MBR Shadow設定部34にMBR Shadow機能のオフが設定されている場合、前述のとおりデータ記録部6のMBR格納部8に格納されたプログラムが読み出される。一方、MBR Shadow設定部34にMBR Shadow機能のオンが設定されている場合、ドライブ部4はかりにMBR格納部8の範囲にあるアドレスを指定したとしても、MBR格納部8に記録されたデータ(ブートプログラム)ではなく、MBR Shadow格納部35に格納されたデータ(Shadowプログラム)をホスト部5に送信する。すなわち、MBR Shadow機能がオンの場合、MBR Shadow格納部35に格納されたプログラム(Shadowプログラム)が起動処理部12に格納されたプログラムの次に実行されることになる。
本実施形態のデータ記録装置3は、ホスト部5がデータ記録部6をロックする機能を備え、MBR Shadow格納部35に格納されたプログラムをOSないしOS上で動作するアプリケーションに先立ち実行し、そのプログラム上でサービス提供サーバ1と認証処理を行い、その認証結果によってデータ記録部6のロック解除の制御を行う点に特徴がある。
次にMBR Shadow格納部35に格納されるプログラムの処理手順について述べる。図3はMBR Shadow格納部35に格納されるShadowプログラムの処理手順を示すフローチャートである。まず、プロセッサは、起動処理部12に格納された起動プログラムの実行を開始する(ステップS1)。
プロセッサは起動プログラムに従って、ドライブ部4の所定の領域(例えばLBA0番地、すなわちMBRに格納されたプログラムが格納されているアドレス)にアクセスして、データを読み出す(ステップS2)。このとき、LBA0番地の読み出し命令を受信したドライブ部はMBR Shadow設定部の設定を確認し、MBR Shadow機能が有効かどうかを判定する(ステップS3)。このステップはシャドウ判定部に対応する。MBR Shadow機能が有効な場合は、データ記録部6のMBR格納部8に格納されているブートプログラム(MBR)ではなく、MBR Shadow格納部35に格納されているプログラム(以後、Shadowプログラムと呼ぶ)が読み出されてホスト部5に送信されて、起動処理部12に格納される(ステップS4)。このステップS4はシャドウ読み込み部に対応する。
ここで、ドライブ部4内のOS格納部9とユーザデータ格納部10に対する読み出しと書き込みはロックされているものとする。すなわち、ホスト認証部32はホスト部5との認証が未完了の状態にあり、ロック制御部33の設定によりOS格納部9とユーザデータ格納部10はロックされているものとする。
次に、ホスト部5はShadowプログラムを実行し、サーバ認証処理部23にてサービス提供サーバ1と認証を行う(ステップS5)。このステップS5はシャドウ実行部に対応する。
ここで、ステップS5の認証(サーバ認証)処理とは、(1)サービス提供サーバ1が期待する通信相手であるかどうかをデータ記録装置3が認証する手法、(2)データ記録装置3が期待する通信相手であるかどうかをサービス提供サーバ1が認証する手法、(3)相互に認証する手法の3通りがある。認証の手法にはISO/IEC 9798-3やISO/IEC 9798-2のようなよく知られた手法を用いればよい。また、公開鍵方式の認証手法を用いる場合、(1)のケースではデータ記録装置3はサービス提供サーバ1の公開鍵、または公開鍵を含んだ証明書を保持しておく必要がある。(2)のケースではデータ記録装置3は秘密鍵を保持しておく必要がある。(3)のケースではデータ記録装置3はサービス提供サーバ1の公開鍵、または公開鍵を含んだ証明書と秘密鍵の両方を保持しておく必要がある。これら認証に必要なデータも予めMBR Shadow格納部35に格納しておく。
次に、サービス提供サーバ1との認証に成功したか否かを判定し(ステップS6)、認証に失敗するとエラー処理を行う(ステップS7)。認証に成功すると、ホスト認証処理を行う(ステップS8〜S15)。
ホスト認証処理では、まずOS格納部9はロックされているか否かを判定し(ステップS8)、OSがロックされている場合にはホスト部5からドライブ部4にパスワードを送信する(ステップS9)。ここで、パスワードとは、ドライブ部のロック、アンロックに使うデータである。パスワードはドライブ部4のホスト認証部32に予め登録しておく。このホスト認証部32への登録の方法として、製造時に埋め込んでおく方法、ホスト部5のプロセッサ上で動作するプログラムを使ってユーザが任意の値を設定する方法、ホスト部5のプロセッサ上で動作するプログラムを使ってネットワーク経由でサーバから配信した値を設定する方法などがある。ホスト部5がドライブ部4を解除するために使うパスワードは、例えばShadowプログラムに予め含めておいてもよいし、ホスト部5の任意の領域(たとえばフラッシュメモリ)に保存しておきShadowプログラムがその領域から読みだしてもよい。
次に、ホスト部5から送信されたパスワードがホスト認証部32に予め登録されているパスワードと一致するか否かを判定する(ステップS10)。一致しない場合はエラー処理を行い(ステップS7)、一致する場合はロック制御部33にロック解除命令を送信する。これにより、OS格納部9はアンロックされる(ステップS11)。
次に、ユーザデータ格納部10はロックされているか否かを判定し(ステップS12)、ロックされている場合にはホスト部5からドライブ部4にパスワードを送信する(ステップS13)。
次に、ホスト部5から送信されたパスワードがホスト認証部32に予め登録されているパスワードと一致するか否かを判定する(ステップS14)。一致しない場合はエラー処理を行い(ステップS7)、一致する場合はロック制御部33にロック解除命令を送信する。これにより、ユーザデータ格納部10はアンロックされる(ステップS15)。
上述したステップS9とS13はパスワード送信部に対応し、ステップS10とS14はパスワード照合部に対応する。
ここで、OS格納部9をアンロックするか否かを判断するためのパスワードと、ユーザデータ格納部10をアンロックするか否かを判断するためのパスワードは、それぞれ別個にホスト部5に登録されている。これらのパスワードをまとめて登録してから、ステップS8〜S15の処理を続けて行ってもよいし、OS格納部9用のパスワード登録とアンロック制御を行った後に、ユーザデータ格納部10用のパスワード登録とアンロック制御を行ってもよい。
上記ステップS12でユーザデータ格納部10はロックされていないと判定された場合、あるいはステップS15の処理が終了した場合は、プロセッサはOS格納部9からOSを読み込んで(ステップS16)、OSを起動する(ステップS17)。これにより、起動処理は完了する。
なお、ホスト部5からドライブ部4に送信されるパスワードは、前述のShadowプログラムの中に埋め込む方法以外にも、サービス提供サーバ1との認証に成功した場合に限りサービス提供サーバ1から配信されているようになっていてもよい。サービス提供サーバ1から配信される場合は、サービス提供サーバ1とデータ記録装置3との間でパスワードが漏えいしないように暗号化等の手段を用いて保護して送信することが望ましい。
また、ドライブ部4が複数のOS格納部9を備えている場合にはロックする領域ごとに異なるパスワードを設定し、サービス提供サーバ1によってアンロックするOSを切り替えてもよい。具体的には、第1のOS格納部9と第2のOS格納部9をそれぞれ別の領域として設定しておき、起動時にはロック状態に設定しておく。そして、ロックを解除するための認証にはそれぞれ別々のパスワードが必要となるように設定しておく。第1のサービス提供サーバ1との認証に成功した場合には、第1のOS格納部9のパスワードを使って第1のOS格納部9のロックを解除し、第2のOS格納部9のロックは解除しない。これにより、第1のサービス提供サーバ1用のOSを実行させることができる。
このように、データ記録装置3の起動前にはドライブ部4の各領域にはロックがかかっており、サービス提供側がデータ記録装置3との認証に成功しなければデータ記録装置3に記録したデータは外部に公開されないため、サービス提供サーバ1は安全にデータを格納する領域を外部に確保できる。
図3のフローチャートでは、OS格納部9のアンロック制御を行った後にユーザデータ格納部10のアンロック制御を行っているが、その順番は特に問わない。また、OS格納部9のロック/アンロック制御は省略してもよい。すなわち、OS格納部9にはロックをかけずに、ユーザデータ格納部10のみをロックしておき、サーバ1との認証やパスワード照合などの所定の条件を満たしたときにユーザデータ格納部10をアンロックしてもよい。
なお、サービス提供サーバ1との認証時に、Shadowプログラムはプラットホームが予め想定した状態と一致するかチェックを行ってもよい。ここで、プラットホームとは、例えば、MACアドレスやCPU ID、OSのシリアルIDなどであり、これらの情報が期待された値であるかのチェックを行ってもよい。これにより、仮にドライブ部4が物理的に他のデータ記録装置3から取り外されて他のデータ記録装置3に取り付けられたとしても、データ記録装置3のMACアドレスやCPU ID、OSのシリアルIDは異なるため、ドライブ部4が取り外されたことを検出できる。すなわち、サービス提供サーバ1にとってみれば、特定のデータ記録装置3でしか起動しないシステムを構築できる。
また、ドライブ部4のユーザデータ格納部10が複数のユーザにそれぞれ異なるパーティションを割り当てていれば、サービス提供サーバ1によって、またはサービス提供サーバ1との認証の結果によってShadowプログラムがアンロックするユーザデータ格納部10内の領域を切り替えることで、ユーザデータ格納部10に格納されたOSやアプリケーションが使うライブラリを変更できる。
例えば、サービス提供サーバ1との認証に成功した場合にはライブラリAが格納された領域をアンロックし、失敗した場合にはライブラリBが格納された領域をアンロックするように設定してもよい。OSはそのアンロックされた領域を利用する。これはサービス提供者がデータ記録装置3で実行されるプログラムを秘匿したいという要望がある際に特に有用である。典型的な例は映画や動画コンテンツの保護に利用される著作権保護ソフトウェア(DRMソフトウェア)に用いられるライブラリである。著作権保護ソフトウェアは一般的に暗号化されたコンテンツを復号するための鍵やアルゴリズムをソフトウェア内部に隠ぺいしておく必要がある。ところが、それら秘匿すべき情報をソフトウェアライブラリ内部に隠ぺいしておく手法は解析に対して脆弱である。本実施形態では、サービス提供サーバ1との認証に成功しない限り、ライブラリが格納された領域はPINコード等のパスワードによってロック状態が維持されるため、ロックされた領域に格納されたライブラリを取り出すことはできない。
また、本実施形態では、サービス提供サーバ1との認証時にプラットホームのチェックも行えるため、不正なプラットホームであると判断した場合にはアンロック処理を中断することも可能である。
このように、本実施形態によれば、ライブラリをソフトウェアで実装したとしても、不正なプラットホームではロックを解除できないため、ライブラリの不正取得と不正な解析を防止できる。
また、ユーザの観点からは、正当なサービス事業者に限りデータを公開するという要求がある場合にも有用である。例えば写真などのプライベートなデータをユーザデータ格納部10に記録しておき、正当なサービス事業者に限りそのサービス(サービス事業者が運営するサーバ
)からユーザデータ格納部10にアクセスできるように公開するといったケースを考える。この時も、サービス提供サーバ1と認証に成功しない限り、プライベートデータが格納されたユーザデータ格納部10はPINコードでロックされたままであり、アンロックされないため、ロックされた領域に格納されたプライベートデータを取り出すことはできない。
非特許文献1に記載されているような従来の方式ではユーザが直接キーボードからパスワードを入力することによりデータ記録部6全体ないし一部を解除する。一方、本実施形態では、サーバ1と認証を行うことによりユーザが直接パスワードを入力するのではなく、サーバ1との認証成功後にMBR Shadow格納部35に含まれたパスワードまたはネットワーク処理部22によりサービス提供サーバ1から与えられたパスワードを利用する点が異なる。また、サービス提供サーバ1との認証に成功した場合に限り、どの領域のロックを解除するかを動的に選択することができる。
本実施形態では、MBR格納部8のプログラムやOSの処理に先んじて、MBR Shadow格納部35に格納されたShadowプログラムを利用してサーバ1との認証処理やデータ記録部6のアンロック処理を起動時に行うことが第一の特徴である。一般的にOSが起動してから不正なプログラムを挿入したりメモリに不正な処理を挿入したりすることでOSの処理を改変したり、アプリケーションの挙動を変更したりするアプリケーションレベルでの攻撃については様々な手法が存在するが、本実施形態では、MBRやOSの起動前に、サーバ1との認証処理やデータ記録部6のロック制御を行うため、データ記録部6に格納された情報をより安全に保護することができる。
また、MBR Shadow格納部35に格納されたShadowプログラムを改変するには、ドライブ部4に内蔵されたフラッシュメモリ等に格納されたデータにアクセスする必要があり、攻撃者にとって難易度が高くなるため、Shadowプログラムが改変されるリスクは低い。これによりセキュリティの安全レベルを向上させることができる。
また、データ記録装置3のドライブ部4とホスト部5は別々のベンダーから供給されるのが一般的である。従来のドライブ部4はMBR Shadow格納部35やアクセス制御部7を備えていなかったため、MBR Shadow格納部35に相当する機能をホスト部5に設けるしかなかった。このような場合に、仮にドライブ部4だけを取り出して、別のデータ記録装置3に入れて起動することを考えると、差し替えた先のデータ記録装置3のホスト部5がMBR Shadow格納部35に相当する機能を持っていない限り、上述したセキュリティ保護は行えない。また、この別のデータ記録装置3のホスト部5がMBR Shadow格納部35に相当する機能を持っていた場合でも、Shadowプログラムをホスト部5にインストールする必要があり、作業が繁雑で使い勝手が悪くなる。
本実施形態では、MBR Shadow格納部35をホスト部5とは独立したドライブ部4に備えている。これにより、ドライブ部4を別のデータ記録装置3に差し替えたとしても、Shadowプログラムはドライブ部4に備わっているため、ホスト部5がMBR Shadow格納部35に相当する機能を備えている必要もなく、元のデータ記録装置3と同じShadowプログラムを別のデータ記録装置3でも継続して利用できるようにすることを比較的容易に実現できる。
また、本実施形態のデータ記録装置3は、データ記録装置3を組み込んだ機器(例えばPC)を製造および販売するセットメーカ側にとって以下の利点がある。PCのセットメーカは、ドライブ部4(例えばHDD)を他社から購入してPCに組み込んで販売する。データ記録部6のロック/アンロック方式は標準化されていないため、MBR Shadowの機能がないと、組み込むHDDの種類により、データ記録部6のロック/アンロックを制御するプログラムをホスト部5にインストールする必要がある。
一方、MBR Shadow機能があると、データ記録部6をロック/アンロックするプログラムはMBR Shadow格納部35にインストールされるため、HDDのメーカ側で適切なShadowプログラムをMBR Shadow格納部35にインストールして販売すれば、PCメーカ側はそれを利用するだけであるため、HDDのメーカに依存せずにPCに組み込むことができ、機器の製造コストを削減できる。
また、本実施形態のデータ記録装置3は、ユーザ側にとっても以下の利点がある。例えば、データ記録装置3が組み込まれた機器(例えばPCやレコーダ)からドライブ部4を抜き出して、別の機器に入れた場合でも、ドライブ部4にMBR Shadowの機能があるため、ホスト部5を改変せずに、データ記録部6のロック/アンロック制御を行うことができる。
このように、第1の実施形態では、MBRやOSの起動に先立って、MBRのshadowプログラムを起動させ、このshadowプログラムの中で、サーバ認証を行い、サーバ認証に成功した場合には、Shadowプログラムに登録されたパスワードとホスト認証部32に予め登録されたパスワードとの照合を行って、照合に成功すると、そのパスワードを使ってOS格納部9とユーザデータ格納部10のアンロックを行うため、データ記録部6内の情報をより安全に保護できる。
(第2の実施形態)
第1の実施形態では、データ記録部6のロックを解除するためのパスワードをMBR Shadow格納部35に格納されたプログラム(Shadowプログラム)に保存しておいた。これに対して、第2の実施形態のホスト部5は、秘密情報格納部に保存しておくものである。
図4は第2の実施形態によるデータ記録装置3の内部構成の一例を示すブロック図である。図4では、ホスト部5に秘密情報格納部15を備える点が図2と異なる。また、図2では省略していたが、ホスト部5には、プロセッサ26と主メモリ27が設けられる。
図5は秘密情報格納部15の内部構成の一例を示すブロック図である。図5の秘密情報格納部15は、ID管理部41と、鍵管理部42と、暗号処理部43と、復号処理部44と、状態管理部45と、コマンド処理部46とを有する。
ID管理部41は秘密情報格納部15に固有のIDを格納する。IDは工場出荷時に決めた値、ないしは最初に生成した値から変更できないように保護して保存しておくのが望ましい。
鍵管理部42は、ホスト部5からのコマンドに基づいて秘密情報格納部15の内部で鍵を生成する機能と、生成した鍵を保存しておく機能を備える。なお、秘密情報格納部15は、秘密鍵の値を外部に出力するインターフェースを持たないため、秘密鍵の値が秘密情報格納部15の外に漏えいするおそれはない。
状態管理部45はデータを記憶するレジスタ(不図示)を内部に備えている。レジスタは起動時(電源をONした時)にのみリセットすることができ、リセット時の初期値は固定の一定の値(例えば0)とする。状態管理部45は、入力データ"Input"が与えられると、次の(1)式にしたがってレジスタの値を更新する。
NewValue = hash (Input || OriginalValue) …(1)
ここで、||はデータを結合する記号を表す。またhashはSHAファミリー(SHA1, SHA256など)やMD5のようなハッシュ関数を示す。(1)式は、もともとレジスタに記憶されていたデータ(OriginalValue)と入力データ(Input)を結合してハッシュ関数の入力とし、ハッシュ関数の出力値(NewValue)をレジスタの新しい値として記憶する。このレジスタは、外部から任意の値をセットするインターフェースを持たない。つまり、
NewValue = Input
というように入力値をそのままレジスタの値に設定するようなインターフェースは持たない。
状態管理部45は内部に複数のレジスタを備えていてもよい。その場合、以下の(2)式のように、hash関数の引数にどのレジスタの値を更新させるかを示すレジスタ番号(Register#)を設ければよい。
NewValue = hash (Register#, Input || OriginalValue) …(2)
状態管理部はRegister #に対応するレジスタの値を使い、(1)式に従ってRegister#に対応するレジスタの値を更新する。
また、暗号処理部43は暗号化対象の入力値(Input)とレジスタの値(RegisterValue)を入力とし、入力値を鍵管理部42が持つ秘密鍵で暗号化した値を出力する。具体的には以下の(3)式にしたがって入力されたデータを暗号化する。
Output = Encrypt (Input, RegisterValue, Key) …(3)
ここで、EncryptはAESやDESのようなよく知られた共通鍵方式の暗号化関数であり、第2引数(RegisterValue)と第3引数(Key)を鍵として第1引数の値を暗号化し、その暗号化結果が出力(Output)である。第2引数と第3引数を鍵とする手法とは、第2引数と第3引数を結合する手法や、第3引数によって第2引数をAESなどの関数により暗号化した値を鍵とする手法などの手法を用いればよい。
暗号処理部43を使ってデータを暗号化する際、ホスト部5は秘密情報格納部15のコマンド処理部46にInputとRegister#の二つの引数を与える。もしもレジスタが一つしかない場合はRegister #は不要である。
(3)式のInputは暗号化対象となる平文のデータであり、Register#は状態管理部45のレジスタ番号である。つまりRegisterValueはRegister#で指定されたレジスタ番号に対応するレジスタの現在の値である。つまり暗号処理部43は、鍵管理部42が持つ秘密鍵と状態管理部45のレジスタの二つの値を使って入力データを暗号化することにより、入力データは鍵管理部42と状態管理部45のレジスタの両方にバインドされることになる。ここで、入力データとは、後述するように、Shadowプログラムで生成されるパスワードであり、暗号処理部43は(3)式に基づいて暗号化パスワードを生成する。
復号処理部44は復号対象の入力値とレジスタの値(RegisterValue)を入力とし、入力値(Input)を鍵管理部42が持つ秘密鍵の値(Key)で復号した値を出力する。具体的には、以下の(4)式にしたがって入力値を復号する。
Output = Decrypt (Input, RegisterValue, Key) …(4)
ここで、Decryptは暗号化に用いた暗号化関数に対応する復号関数であり、第2および第3引数を鍵として第1引数の値を復号し、その復号結果が出力(Output)である。復号処理部44の入力値は、暗号化パスワードであり、(4)式にて暗号化前のパスワードが復元される。
この復号処理部44を使ってデータ(暗号化パスワード)を復号する場合、ホスト部5は秘密情報格納部15のコマンド処理部46に対して暗号化処理と同様にInputとRegister#の二つの引数を与える。もしもレジスタが一つしかない場合はRegister #は不要である。
上述したように、(4)式のInputは復号対象の暗号化パスワードであり、またRegister#は状態管理部45が備えるレジスタの番号である。RegisterValueはRegister#で指定されたレジスタ番号に対応するレジスタの現在の値である。つまり鍵管理部42の秘密鍵と状態管理部45のレジスタの二つの値を使って暗号化パスワードを復号する。
以上は暗号処理部43に共通鍵暗号を用いた場合の例であるが、共通鍵方式の代わりに公開鍵方式を用いてもよい。図6は公開鍵方式を使う場合の秘密情報格納部15aの内部構成の一例を示す図である。公開鍵管理部47を備える点と、鍵管理部42の代わりに秘密鍵管理部48を備える点が図5と異なる。
公開鍵管理部47は、公開鍵ペアを備えており、ホスト部5からのコマンドに基づいて公開鍵管理部47に格納された秘密鍵を使ってデータ(暗号化パスワード)を復号したり、データに対する署名を生成したりする機能を持つ。公開鍵暗号方式としてはRSAのようなよく知られた方式を用いればよい。
秘密鍵管理部48は、ホスト部5からのコマンドに基づいて秘密情報格納部15aの内部で秘密鍵と共通鍵を生成する機能と、生成した秘密鍵を保存しておく機能を備える。
公開鍵方式を採用する場合の秘密情報格納部15aは、公開鍵を外部に出力するためのインターフェースを備えており、Shadowプログラムやデータ記録装置3で実行されるその他のプログラムから公開鍵情報を参照できるようにしてもよい。
なお、公開鍵には秘密情報格納部15aを製造したベンダー、データ記録装置3を実装した製造、あるいは業界で秘密情報管理部を管理するような組織の秘密鍵によって署名が施されていてもよい。
また、公開鍵を用いて入力値(Input)を暗号化する場合は上述の暗号化関数EncryptのKeyの部分を鍵管理部42が持つ公開鍵と置き換えればよい。なお、入力値を暗号化する際、公開鍵を用いるため、暗号化の処理は必ずしも秘密情報格納部15aで実行する必要はなく、秘密情報格納部15aが暗号処理部43を備えている必要は必ずしもない。秘密情報格納部15aで入力値の暗号化処理を行わない場合は、Shadowプログラムなどホスト部5で動作するプログラムで暗号化計算を行うようにすればよい。同様に復号する場合は復号関数DecryptのKeyの部分を鍵管理部42が持つ秘密鍵と置き換えればよい。
以下では特に記載のない限り共通鍵方式を用いた例について説明する。
状態管理部45に入力されるデータ(ハッシュ関数のInput)を、暗号処理もしくは復号処理のコマンドを発行するプログラムしか知らない秘密の値とすることで、Inputデータを保護することができる。この秘密の値はコマンドを送信するプログラムしか知り得ない鍵の値でもよいし、メモリ上の任意のデータでもよい。
プロセッサ26がプログラムを実行する際には、そのプログラムが主メモリ27上に展開されるため、例えば、プログラムが特定の命令を実行するときの主メモリ27の特定位置A(あるいは特定範囲A)の値(例えばステップXを実行した時の主メモリ27に存在するデータA)をInputの値とすることで、特定のプログラムがある特定の状態にある時のみデータを暗号化/復号することを実現できる。他にもこれを応用することにより、特定のプログラムがステップA、ステップBの順序で実行したときの主メモリ27に存在するデータをInputの値とすることによって、悪意のある第三者がプログラムを改変した場合には正しいInputの値をDecrypt関数に入力できなくなり、セキュリティ性能が向上する。
あるいは、特定のプログラムがステップCを実行した時の主メモリ27に存在するデータと、ステップDを実行したときの主メモリ27に存在するデータとをつなぎ合わせたデータを状態管理部45のレジスタに記憶してもよい。この場合、ステップCをスキップした場合や、ステップDからステップCの順番で実行した場合には、状態管理部45のレジスタに記憶される値が異なった値になるため、正しい暗号化および復号化が行えなくなり、不正なプログラムの改変を防止できる。
上述したように、第2の実施形態は、ドライブ部4と認証を行うためのパスワードを格納する際、秘密情報格納部15(または15a)を利用する点が第1の実施形態と異なる。
第2の実施形態の処理手順の技術的特徴は、パスワードを秘密情報格納部15に保護して格納するパスワード設定フェーズと、設定したパスワードを使ってドライブ部4をアンロックするアンロックフェーズの二つを備えることである。
図7はShadowプログラムが行うパスワード設定フェーズの処理手順の一例を示すフローチャートである。なお、以降では、特に断りがない限り、MBR Shadow機能が有効であるとする。
図7のパスワード設定フェーズでは、まずプロセッサ26は起動プログラムを実行し(ステップS31)、このプログラムの中でShadowプログラムを読み込む(ステップS32)。
状態管理部45のレジスタの値は電源ON時にリセットされ、ShadowプログラムはOS起動前に実行されるので、状態管理部45のレジスタの値は初期値であることが保証される。Shadowプログラムは不図示の乱数生成器(Shadowプログラム内部でソフトウェアとして乱数を生成してもよいし、秘密情報格納部15に乱数生成器を備えている場合はその乱数生成器を使ってもよい)を使ってパスワードを生成する(ステップS33)。このステップS33はパスワード生成部に対応する。
Shadowプログラムは、ステップS33で生成されたパスワードを、ドライブ部4をアンロックするか否かのパスワード照合に使用するべく、ドライブ部4のホスト認証部32に送信する(ステップS34)。ホスト認証部32は、送信されてきたパスワードを登録する(ステップS35)。
次に、プロセッサ26は、Shadowプログラムの特定命令を実行するたびに(ステップS36)、Shadowプログラムを展開した主メモリ27の特定位置または特定範囲の値を状態管理部45のレジスタに登録する(ステップS37)。これにより状態管理部45のレジスタの値は更新される(ステップS38)。
Shadowプログラムは、状態管理部45のレジスタの値を1回以上更新した後に、まだ暗号化されていない平文パスワードを秘密情報格納部15に送信し(ステップS39)、秘密情報格納部15の鍵管理部42に格納されている秘密鍵と上述した状態管理部45のレジスタの値を用いて暗号処理部43により暗号化する(ステップS40)。ここでは、例えば上述した(3)式に従って暗号化を行う。
公開鍵暗号を使う場合は鍵管理部42に格納されている秘密鍵に対応する公開鍵を用いて暗号処理部43ないしはShadowプログラムが暗号化する。暗号化したパスワードはホスト部5の不揮発性主メモリ27ないしはドライブ部4のロックがかかっていないデータ記録部6に保存すればよい。
次に、Shadowプログラムは、ドライブ部4にロック命令を送信する(ステップS41)。ロック命令を受けたロック制御部33は、データ記録部6をロックする(ステップS42)。以後、データ記録部6は登録されたパスワードが送信されない限りはアンロック状態となる。
なお、図7のパスワード設定フェーズは、実際には、OS格納部9用のパスワード設定フェーズと、ユーザデータ格納部10用のパスワード設定フェーズの二つに分けて行われる。二つのパスワード設定フェーズを連続して行って二種類の暗号化パスワードを生成した後に、OS格納部9とユーザデータ格納部10をともにロックしてもよいし、いずれか一方(例えばOS格納部9)のパスワード設定フェーズを行ってOS格納部9をロックした後に、他方(例えばユーザデータ格納部10)のパスワード設定フェーズを行ってユーザデータ格納部10をロックしてもよい。
次に、アンロックフェーズについて説明する。このアンロックフェーズも、OS格納部9のアンロックフェーズとユーザデータ格納部10のアンロックフェーズが別個に行われる。以下では、どちらか一方のアンロックフェーズについて説明する。
図8はShadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャートである。起動プログラムがShadowプログラムを読み込む手順までは第1の実施形態と同じである(ステップS51,S52)。
アンロックフェーズではShadowプログラムがサーバ認証を行う(ステップS53)。そして、サーバ認証に成功したか否かを判定し(ステップS54)、サーバ認証に失敗した場合はエラー処理を行う(ステップS55)。
サーバ認証に成功した場合はパスワード設定フェーズで設定した状態管理部45の値と同じ値になるような処理(図7のステップS36〜S37と同様の処理)を実行し(ステップS56、S57)、状態管理部45の値を更新する(ステップS58)。このとき、正規のShadowプログラムであれば、パスワードを暗号化したときの状態管理部45のレジスタの値と、現在のレジスタの値は一致するはずである。したがって、秘密情報格納部15に暗号化パスワードを送信して(ステップS59)、秘密情報格納部15内の復号処理部44で暗号化パスワードを復号することができる(ステップS60)。復号されたパスワードは、正規のShadowプログラムであれば、図7で暗号化パスワードを生成する元のパスワードと同じはずである。
Shadowプログラムは、復号されたパスワードをドライブ部4に送信する(ステップS61)。ドライブ部4のホスト認証部33は、送信したパスワードと予め登録されているパスワードとを照合し、照合に成功すれば、ロック制御部33はデータ記録部6をアンロックする(ステップS62)。
なお、上述した処理フローの例ではShadowプログラムがアンロック用のパスワードを生成する手法について示したが、Shadowプログラムがインターネット2上のサーバ1と通信を行い、サーバ1からネットワーク経由でパスワードを入手してもよい。この場合、サーバ1から送信されるパスワードがサーバ1とデータ記録装置3間の通信経路上で第三者に盗み見られないようにパスワードを保護して伝送する必要がある。これを実現する手法としては、データ記録装置3の公開鍵による公開鍵暗号を用いればよい。
上述のように鍵管理部42が公開鍵方式を採用する場合、鍵管理部42は公開鍵ペアを備えており、ホスト部5からのコマンドに基づいて鍵管理部42に格納された秘密鍵を使ってデータを復号したり、データに対する署名を生成したりする。
図9はサーバ1からパスワードを入手する場合におけるShadowプログラムの処理手順の一例を示すフローチャートである。起動プログラムがShadowプログラムを読み込むまでの処理(ステップS71,S72)は図7と同様であるが、その後に、サーバ認証を実行する(ステップS73)。この認証処理は、公開鍵管理部47の証明書を用いて、サーバ1がデータ記録装置3を認証するクライアント認証処理である。証明書の署名を検証することによって認証に成功したか否かを判断し(ステップS74)、データ記録装置3が正しい証明書を持たないとサーバ1が判断した場合は認証に失敗したとみなしてエラー処理を行う(ステップS75)。
一方、データ記録装置3が正しい証明書を持っているとサーバ1が判断できれば、認証に成功したとみなして、証明書に含まれる公開鍵の値を用いてパスワードを暗号化して送信する。一方、サーバ1との認証に失敗した場合にはパスワードは送信しない。
Shadowプログラムは、サーバ1からの暗号化パスワードを受信すると(ステップS76)、そのパスワードを復号してドライブ部4のホスト認証部32に送信する(ステップS77)。その後、ステップS36〜S42と同様の処理が行われ、パスワードによってデータ記録部6がロックされる(ステップS79〜S85)。
図9の処理手順によりロックしたドライブのアンロック処理は、図8と同様のアンロックフェーズにて行われる。
一般に、パスワードの値はデータ記録装置3ごとに異なる方が望ましい。なぜならば、一台のデータ記録装置3のパスワードが漏えいした場合、ほかの同一のパスワードを設定しているデータ記録装置3もアンロック可能となってしまうからである。したがって、もしShadowプログラムにパスワードの値を含める場合にはShadowプログラムにデータ記録装置3ごとに異なるパスワードを設定する必要がある。
これに対して、ドライブ部4をアンロックするのに用いるパスワードをサーバ1が発行して管理する場合は、Shadowプログラムにパスワードの値を含ませる必要がなくなる。
Shadowプログラムにデータ記録装置3ごとに異なるパスワードを設定する場合は、異なるパスワードを含む複数のShadowプログラムを生成し、それぞれ別のデータ記録装置3にインストールする必要があるが、パスワードをサーバ1が発行する場合には同じ内容のShadowプログラムをすべてのデータ記録装置3にインストールできるため、データ記録装置3へのインストール作業が容易になり、製造コスト削減が図れる。また、Shadowプログラムを更新する際にも同じプログラムを配布できるため、メンテナンスコストも下げることができる。また、パスワードはサーバ1が管理しているため、MBR Shadow格納部35が故障してShadowプログラムが破損してしまった場合や、Shadowプログラムが何らかの原因でクラッシュした場合でも、サーバ1が管理するパスワードをデータ記録装置3に送信することにより、簡易にパスワードを回復でき、Shadowプログラムの復旧も容易であるという利点もある。
なお、図7と図9のフローチャートでは、状態管理部45のレジスタに特定命令の実行後の主メモリ27の状態を記憶させてパスワードの暗号化の鍵の一部としていたが、この他にも、いくつかのバリエーションが考えられる。
例えば、図10および図11はそれぞれ、Shadowプログラムが行うパスワード設定フェーズの処理手順の一例を示すフローチャートである。図10は、サーバ1が管理するパスワードを取得するのと同様の手順で、サーバ1から別の値を取得し、この値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する処理手順を示している。また、図11は、図7の手順でパスワードを生成するが、サーバ1から取得した値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する処理手順を示している。
図10の処理では、サーバ1からパスワードを取得してホスト認証部32に登録した後(ステップS97)、サーバ1から別の値を取得し(ステップS99)、この取得した値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する(ステップS101)。
図11の処理では、Shadowプログラムを用いてパスワードを生成してホスト認証部32に登録した後(ステップS115)、サーバ1から値を取得し(ステップS116)、この取得した値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する(ステップS118)。
図12はサーバ1から取得した値を状態管理部45のレジスタに記憶した場合に対応するアンロックフェーズの処理手順の一例を示すフローチャートである。この処理手順は、図10および図11のパスワード設定フェーズに対応するアンロックフェーズの処理手順を示している。
図12の処理では、Shadowプログラムを起動処理部12に格納して実行した後(ステップS131,S132)、サーバ認証を実行する(ステップS133)。サーバ認証に成功すると、サーバ1から値を取得し(ステップS136)、この取得した値を秘密情報格納部15に送信する(ステップS137)。この値は、秘密情報格納部15の状態管理部45のレジスタに記憶され、状態管理部45のレジスタが更新される(ステップS138)。
その後は、図8のステップS59〜S62と同様の処理が行われる(ステップS139〜S142)。これにより、復号されたパスワードを用いてドライブをアンロックする(ステップS109)。
第1および第2の実施形態では、MBR Shadow格納部35に格納されるShadowプログラムにパスワードが含まれる例を説明した。Shadowプログラムはもともと最初に実行されるプログラムであり、ホスト部5の起動処理部12にロードされた後に実行されるため、起動処理部12が改変されない限り、Shadowプログラムの内容を取得することは困難である。しかし、何らかの手法でプログラムの解析が成功するとドライブ部4をアンロックするパスワードの値も解析される危険性がある。
一方、この実施形態では、パスワードの値がサーバ1から送られてくる値と、秘密情報格納部15の秘密鍵によって暗号化して格納される例も説明した。Shadowプログラムを解析しただけではパスワードを取得することができず、サーバ1から送信される暗号化されたパスワードを復号するためには、正規の証明書と秘密情報格納部15の秘密鍵を使ってサーバ1と認証を行い、サーバ1から送られてくる値を復号して入手する必要があるが、秘密情報格納部15は秘密鍵を秘密情報格納部15の外に出力するインターフェースを持たないため、不正に秘密鍵を取得することは非常に困難であり、よってパスワードを不正に取得することも非常に困難である。
このように、第2の実施形態では、ホスト部5の秘密情報格納部15にてアンロック用のパスワードを生成するようにしたため、パスワードを不正に取得されるおそれが少なくなり、より安全にデータ記録部6のアンロック制御を行える。
(第3の実施形態)
第1および第2の実施形態では、MBR Shadow格納部35に格納するプログラム(Shadowプログラム)は、機器製造メーカが機器出荷時に予め埋め込んでおくことを前提としていた。これに対して、以下に説明する第3の実施形態では、Shadowプログラムを機器製造時に組み込まれる部分と、サーバ1からダウンロードしてくる部分とに分けることを特徴とする。
図13は第3の実施形態におけるデータ記録装置3の概略構成を示すブロック図である。図13に示すように、MBR Shadow格納部35が初期インストール用格納部35aとダウンロード用格納部35bを有することと、データ記録部6のユーザデータ格納部10が複数のデータ領域10aに分けられていることとが図4と異なる。初期インストール用格納部35aは、機器製造メーカが機器出荷時に予め埋め込んでおくプログラムを格納しておく処理部である。ダウンロード用格納部35bは、サーバ1からダウンロードしてくるプログラムを格納しておく処理部である。
第1の実施形態で説明したように、ユーザデータ格納部10はロックする領域ごとに異なるパスワードを設定することができる。例えば、データ記録装置3内部に留めておきたいようなプライバシーに関するユーザデータなどはデータ領域1に、第1のサービス提供サーバ1との認証が完了するまでは第1のサービス提供サーバ1に対するアクセスを拒否しておきたいようなサービスに関する設定データや管理データはデータ領域2に、第2のサービス提供サーバ1との認証が完了するまでは第2のサービス提供サーバ1に対するアクセスを拒否しておきたいようなサービスに関する設定データや管理データはデータ領域3にそれぞれ保存しておくものとする。
まずパスワード設定フェーズについて説明する。初期インストール用格納部35aに格納したプログラムでデータ領域1に格納したユーザデータをどのような条件の時に公開するかを設定する。この条件としては、例えば秘密情報格納部15のID管理部41に格納されたIDの値と一致することとしてもよいし、サーバ1との認証に成功することとしてもよい。ID管理部41のIDと一致するかどうかを確認する手段としては、ID管理部41のIDの値を状態管理部45のレジスタにセットしておき、その状態で暗号処理部43を用いてパスワードを暗号化しておく。初期インストール用格納部35aに格納したプログラムを実行する際、同プログラムの中でID管理部41のIDの値をレジスタにセットし、暗号化したパスワードを入力として復号処理部44で復号させて、レジスタにセットした値と一致するかどうかを照合する。このように、予めパスワードを暗号化して保存しておけば、初期インストール用格納部35aに格納したプログラムを実行する際、暗号化に用いたID管理部41のIDの値と同じ値でなければパスワードを正しく復号できないため、データ領域1のアンロックを禁止できる。
このような仕組みにより、仮にドライブ部4を別のデータ記録装置3に差し替えて起動させたとしても、その別のデータ記録装置3に備わっているID管理部41のIDの値は、もともとドライブ部4がインストールされていたデータ記録装置3に備わっているID管理部41のIDの値は異なるため、初期インストール用格納部35aに格納したプログラムを実行しても状態管理部45のレジスタにセットするIDは別の値であり、その状態で復号処理部44で暗号化パスワードを復号しても正しい値を得ることはできない。このように、ドライブ部4とデータ記録装置3を関連づけることができる。
同様に、ダウンロード用格納部35bに格納したプログラム(以下、ダウンロードプログラム)で、データ領域2に格納したサーバ1の扱うデータをどのような条件の時に公開するかを設定する。なお、この設定はユーザが条件を指定してもよいし、予めダウンロードプログラムに条件を記述しておき、サーバ1がこのプログラムを配布することによりユーザが条件を指定できなくしてもよい。サーバ1からダウンロードプログラムをダウンロードする指示方法としては、初期インストール用格納部35aに格納されたプログラムの命令によりダウンロードを指示してもよいし、OS起動後にアプリケーションがダウンロードプログラムをダウンロードし、それをダウンロード用格納部35bに格納してもよい。
次にアンロックフェーズについて説明する。図14はShadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャートである。図14の処理では、起動プログラムがShadowプログラムを読み込む処理までは図8と同じである(ステップS151,S152)。次に、Shadowプログラムのうち、初期インストール用格納部35aに格納されたプログラムが実行される(ステップS153)。このプログラムの中で、データ領域1をアンロックしてもよいかどうかの条件検査がなされる(ステップS154)。
条件に合致しているか否かを判定し(ステップS155)、もしも条件に合致しなければエラー処理を行い(ステップS156)、データ領域1はアンロックされない。条件に合致すれば、まずはOS格納部9がアンロックされ(ステップS157)、引き続いてデータ領域1がアンロックされる(ステップS158)。
次に、Shadowプログラムに含まれるダウンロード用格納部35bのプログラムが実行される(ステップS159)。ダウンロード用格納部35bのプログラムはサーバ1と認証処理を行う(ステップS160)。
次に、サーバ認証に成功したか否かを判定し(ステップS161)、サーバ認証に失敗した場合はエラー処理を行う(ステップS156)。サーバ認証に成功した場合はデータ領域2をアンロックする(ステップS162)。
初期インストール用格納部35aに格納されたプログラムが最後の命令を実行する際、主メモリ27上の値を使って状態管理部45のレジスタに記憶する処理を実行すれば、ダウンロード用格納部35bのプログラムはこのときの状態管理部45のレジスタの値を確認することにより、初期インストール用格納部35aに格納されたプログラムが確実に実行されたか否かを確認できる。この確認処理を追加した処理手順は図15に示している。
図15において、データ領域1をアンロックするまでの処理(ステップS171〜S178)は図14と同様である。初期インストール用格納部35aに格納されたプログラムは特定のステップを実行するごとに状態管理部45に特定の主メモリ27上の値を入力として与える。これにより状態管理部45のレジスタの値は更新される(ステップS179,S180)。
初期インストール用格納部35aに格納されたプログラムの実行が終了すると、次にダウンロード用格納部35bのプログラムを実行する(ステップS181)。ダウンロード用格納部35bに格納されたプログラムは、現在の状態管理部45の値を確認する(ステップS182)。
現在の状態管理部45の値が期待値と一致するか否かを判定し(ステップS183)、一致しなければエラー処理を行う(ステップS176)。一致した場合は、ダウンロード用格納部35bに格納されたプログラムはサーバ認証処理を行って、認証に成功したらデータ領域2をアンロックする(ステップS184〜S186)。
もし仮にデータを不正に復号することを目的として初期インストール用格納部35aに格納したプログラムを改変した場合、状態管理部45のレジスタには期待する値が記憶されない。したがってダウンロード用格納部35bに格納されたプログラムは状態管理部45のレジスタの値を確認することで、不正なプログラムがそうでないかを確認することができる。
なお、状態管理部45の値が期待値と一致しているか否かを確認する手段として、状態管理部45の値を直接比較する手法の他に、秘密情報格納部15の暗号処理部43と復号処理部44を使う手法もある。初期インストール用格納部35aに格納されたプログラムとダウンロード用格納部35bに格納されたプログラムが予め同じ値を合意しておき、初期インストール用格納部35aに格納されたプログラムは秘密情報格納部15の暗号処理部43によりその値を暗号化しておく。もし状態管理部45の値が期待された値と一致していれば、ダウンロード用格納部35bに格納されたプログラムが秘密情報格納部15の復号処理部44により暗号化した値を復号すれば、予め合意した値を得ることができる。そうでなければ状態管理部45のレジスタの値が異なるため、合意した値を得ることはできない。
このように、第3の実施形態では、Shadowプログラムを機器製造時に組み込んでおく部分とサーバ1からダウンロードしてくる部分とに分け、かつユーザデータ格納部10の領域を分割することにより、ローカルで使うデータとサーバ1が使うデータについてそれぞれ異なるロック/アンロック制御を行うことができる。また、初期インストール用格納部35aに格納されたプログラムを実行させた段階で、プログラムの改変を行ったか否かを確認できるため、不正の疑いがあれば、ダウンロード用格納部35bに格納されたプログラムの実行を禁止でき、その後のOSの起動やユーザデータ格納部10のアンロックも阻止できる。
(第4の実施形態)
上述した第2および第3の実施形態では、MBR Shadow格納部35に格納されたShadowプログラム自身が状態管理部45に主メモリ27上の特定の値を設定して現在の値を確認することで、その時点までプログラムが正しく実行されたことを確認し、かつ状態管理部45の値を使って保護対象のパスワードを復号していた。これに対して、以下に説明する第4の実施形態では、Shadowプログラムを実行するプロセッサ26が状態管理部45に主メモリ27上の特定の値を設定する機能を持つ点が第2および第3の実施形態と異なる。
図16は第4の実施形態におけるデータ記録装置3の概略構成を示すブロック図である。図16のプログラム処理部11のプロセッサ26aは特殊命令Xを実行可能で、かつ不図示の暗号化データ蓄積部を備えている点に特徴がある。なお、第4の実施形態におけるデータ記録装置3では、必ずしもデータ記録部6にユーザデータ格納部10を設ける必要はないため、図示を省略している。同様にMBRを介してOSを起動するのではなく、起動処理部12が直接OSを読み込んで起動する構成でもよいため、図16ではMBR格納部8も省略している。これに伴い、アクセス制御部7の要求データ範囲確認部31、ホスト認証部32、ロック制御部33もそれぞれ省略している。なお、省略した各部は、省略せずに設けても構わない。
図17は特殊命令Xを実行可能なプロセッサ26aの内部構成の一例を示すブロック図である。第1、第2および第3の実施形態でもプロセッサ26を備えていたが、汎用の命令セットを備えていればよかった。これに対して、本実施形態のプロセッサ26aは、特殊命令Xを実行可能であり、特殊命令Xに必要なレジスタを備えている。より具体的には、図17のプロセッサ26aは、汎用コマンド処理部51と、特殊命令処理部52と、主メモリ27範囲指定レジスタ53と、実行開始アドレス指定レジスタ54と、ハッシュ計算処理部55とを有する。
汎用コマンド処理部51は汎用の命令を処理する処理部である。主メモリ27範囲指定レジスタ53は、特殊命令Xが発行された場合に主メモリ27上のどこからどこまでのハッシュ値を計算すべきか、その位置を指定するためのレジスタである。
ハッシュ計算処理部55は、特殊命令Xが発行された場合に主メモリ27範囲指定レジスタ53によって指定された主メモリ27範囲のデータのハッシュ値を計算する処理を行う。
実行開始アドレス指定レジスタ54は特殊命令Xが発行された最後の処理として、汎用コマンド処理部51に対してどの命令から実行すべきかを指示する。
特殊命令処理部52は、主メモリ27範囲指定レジスタ53で指定された範囲の主メモリ27のハッシュ値を計算してプロセッサ状態管理部49に設定し、実行開始アドレス指定レジスタ54で指定されたアドレスに格納された命令を汎用コマンド処理部51で実行する機能を備える。すなわち、プロセッサ26aが特殊命令Xを実行した後は実行開始アドレス指定レジスタ54で指定されたアドレスに格納された命令から処理が継続されることになる。
図18は第4の実施形態に係る秘密情報格納部15bの概略構成の一例を示すブロック図である。図18の秘密情報格納部15bは、図5の秘密情報格納部15にプロセッサ状態管理部49と判定部50を追加した構成になっている。
プロセッサ状態管理部49は、不図示のレジスタを有し、指定された値をこのレジスタに設定する機能を備える。
判定部50はプロセッサ26aからの指示に基づいてのみ、プロセッサ状態管理部49のレジスタに指定された値を設定する制御を行う。図5や図6に示した状態管理部45が、プログラムから特殊命令Xを介さずに指定された値を状態管理部45のレジスタに設定することができたのに対し、プロセッサ状態管理部49はプログラムから特殊命令Xを介さずに設定命令を受けた場合にはエラーを返す点が異なる。
この他、暗号化されたデータを蓄積しておく暗号化データ蓄積部を設けてもよいが、必須ではないため、図18では省略している。
第4の実施形態では、サーバ1と認証を行う処理に先立ち、サーバ1と認証を行うための秘密鍵をデータ記録装置3にインストールする処理を行う。秘密鍵を生成する際に、公開鍵方式を採用する場合と共有鍵を採用する場合がある。
図19(a)は公開鍵方式を採用する場合の認証用秘密鍵の設定フェーズの処理手順の一例を示すフローチャート、図19(b)は共通鍵方式を採用する場合の認証用秘密鍵の設定フェーズの処理手順の一例を示すフローチャートである。
図19(a)の処理では、データ記録装置3の製造側またはサーバ1側で、まずShadowプログラムと認証用の秘密鍵を生成する(ステップS191)。そして、Shadowプログラムのハッシュ値(HashValue)を計算し(ステップS192)、データ記録装置3の公開鍵を取得する(ステップS193)。次に、以下の(5)式にしたがって認証用の秘密鍵鍵(ServerKey)を暗号化して(ステップS194)、データ記録装置3の暗号化データ蓄積部(不図示)に保存しておく(ステップS195)。データ記録装置3が暗号化データ蓄積部を備えていない場合は、Shadowプログラムと共にMBR Shadow格納部35に保存してもよい。
Output = Encrypt (ServerKey, HashValue, Key) …(5)
ここで、Encryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を暗号化し、その暗号化結果が出力(Output)となる。Key(鍵)には秘密情報格納部15の鍵管理部42に格納された鍵の値を用いる。
暗号化方式に公開鍵方式を用いる場合、秘密情報格納部15の鍵管理部42の秘密鍵に対応する公開鍵によって認証用の秘密鍵を暗号化することになるが、サーバ1が公開鍵をデータ記録装置3からネットワーク経由で取得して認証用の秘密鍵を暗号化してもよいし、データ記録装置3の製造時に暗号化してもよいし、認証用の秘密鍵はサーバ1からネットワーク上に配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42の公開鍵で暗号化して暗号化認証鍵を保存するようにしてもよい。
図19(b)の処理は、ステップS203の処理だけが図19(a)と異なる。ステップS203では、データ記録装置3の秘密鍵を取得する。ステップS204では、秘密鍵を暗号化する。
暗号化に共通鍵方式を用いる場合、秘密情報格納部15の鍵管理部42に格納された値をサーバ1側でも管理している場合は、上述の認証用秘密鍵の暗号化処理をサーバ1側で行ってもよいし、データ記録装置3の製造時に行ってもよいし、認証用の秘密鍵はサーバ1からネットワーク上で配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42の秘密鍵で暗号化して暗号化認証鍵を保存するようにしてもよい。
次に、Shadowプログラムと認証用秘密鍵を使ってサーバ1と認証を行う処理について説明する。
図20は第4の実施形態におけるShadowプログラムの処理手順の一例を示すフローチャートである。
一般に、プログラムが実行される際、プログラムを主メモリ27上に展開し、プロセッサ26aはその主メモリ27上のプログラムを実行する。Shadowプログラムも同様に主メモリ27上に展開されてプロセッサ26aにより実行される(ステップS211)。主メモリ27上に展開するまでの処理は起動プログラム格納部21に格納された起動プログラムが行えばよい。この起動プログラムがShadowプログラムを読み込んで実行する。
Shadowプログラムは、プロセッサ26aの特殊命令Xが発行された場合に、主メモリ27上に展開されたプログラム情報のどこからどこまでのハッシュ値を計算すべきかを指示するために、主メモリ27のアドレスと範囲をプロセッサ26aの主メモリ27範囲指定レジスタ53に設定する(ステップS212)。このときにShadowプログラムが設定する範囲は、主メモリ27上に展開されたShadowプログラムのプログラム部分、もしくはプログラム部分とデータ部分となるように設定する。さらに、プログラム開始アドレスはハッシュ値計算に用いたアドレス範囲に含まれる位置とするように設定する。また、プロセッサ26aが特殊命令Xの実行後に実行するプログラムのアドレスを指定するために実行開始アドレス指定レジスタ54にアドレスを設定する。
その後、Shadowプログラムはプロセッサ26aに対して特殊命令Xを発行する(ステップS213)。プロセッサ26aは特殊命令Xを実行するが、この時に特定のレジスタに設定された値を参照し、その値が指し示す主メモリ27アドレスの範囲のハッシュ値を計算し(ステップS214)、計算されたハッシュ値を秘密情報格納部15のプロセッサ状態管理部49に格納することを指示するコマンドを発行する(ステップS215)。このハッシュ値の計算とコマンドの発行の処理はプログラムではなく、プロセッサ26a自身が行う。
秘密情報格納部15は、受信したコマンドがプロセッサ26aからか、あるいはプロセッサ26aで実行されたプログラムからかを判別し(ステップS216)、プロセッサ26aからの場合のみ受け付け、プロセッサ26aで実行されたプログラムからであれば拒否してエラーを返す(ステップS217)。
受信したコマンドがプロセッサ26aであれば、プロセッサ状態管理部49にハッシュ値が設定される(ステップS218)。
その後、プロセッサ26aは実行開始アドレス指定レジスタ54で指定されたアドレスに存在する命令を汎用コマンド処理部51で処理する。このアドレスにはShadowプログラムのコード部分が指定されており、Shadowプログラムの処理が継続する。
Shadowプログラムは秘密情報格納部15に対して、サーバ認証用暗号化秘密鍵に蓄積されているデータを復号するようコマンドを送信する(ステップS219)。秘密情報格納部15はこのコマンドを受信すると、以下の(6)式にしたがって暗号化秘密鍵を復号する(ステップS220)。
Output = Decrypt (Input, RegisterValue, Key) …(6)
ここで、Decryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を復号し、その復号結果が出力(Output)である。ここで、Inputは暗号化サーバ認証用秘密鍵であり、RegisterValueにはプロセッサ状態管理部49の値が入力値となる。出力値(Output)が平文サーバ認証用秘密鍵の値となる。
次に、この平文サーバ認証用秘密鍵の値を使ってサーバ1と認証処理を行うが(ステップS221)、その処理手順については、上述した第1〜第3実施形態で述べた手順に従えばよい。
なお、特殊命令Xを送信してから平文サーバ認証用秘密鍵を取得するまでの処理については、割り込み処理が発生して他のプログラムが動作することや、デバッグモードに遷移することのないようプロセッサ26aを制御することが望ましい。
なお、Shadowプログラムを終了する前に、主メモリ27上で平文サーバ認証用秘密鍵を配置した部分を別の値で上書きするなどして消去しておくことが望ましい。
このように、第4の実施形態では、RegisterValueはプロセッサ状態管理部49の値、すなわちプロセッサ26aしか設定できない値である点がポイントである。一般にプロセッサ26aは、ハードウェアで実現される。ハードウェアの改変は非常に困難であるため、プロセッサ状態管理部49にShadowプログラムのハッシュ値以外の値を格納するよう攻撃することも困難である。また、秘密情報格納部15に格納されたShadowプログラムのハッシュ値が正当な値でないと平文サーバ1用認証秘密鍵を取得することができない。これにより、Shadowプログラムしか平文サーバ1用認証秘密鍵を復号できないことが保証できるため、安全にパスワードを保護することができる。また平文サーバ認証用秘密鍵はShadowプログラムとは独立して配布することができるため、サーバ認証用秘密鍵を更新する場合でも、Shadowプログラムを更新する必要がない。
なお、これまでは説明を簡略化するためにドライブ部4がデータ記録部6を備えていない構成を説明した。ドライブ部4にデータ記録部6があり、サーバ認証用秘密鍵を保護する代わりに、データ記録部6のアンロック制御に用いるパスワードを保護する場合にも、本実施形態を適用可能である。
図21はアンロック制御用のパスワードを保護可能な第4の実施形態におけるデータ記録装置3の概略構成の一例を示すブロック図である。図21のデータ記録装置3は、図16のアクセス制御部7とデータ記録部6の内部構成を図4と同様にしたものであり、ブロック構成として比較すると、図4のプロセッサ26とは別個のプロセッサ26aを設けたことのみが異なる。
図20の処理でShadowプログラムとサーバ認証用暗号化秘密鍵をデータ記録装置3にインストールした手順と同様の手順で、Shadowプログラムとデータ記録部6のアンロック制御用の暗号化パスワードをインストールすればよい。暗号化パスワードを復号したパスワードは、データ記録部6をアンロックするために用いられ、このパスワードは、アクセス制御部7のホスト認証部32に格納されたパスワードの値と一致するようにしておく。
暗号化パスワードのインストール処理は、データ記録装置3の製造時に行ってもよいし、データ記録装置3の製造時にデータ記録装置3のShadowプログラムの中に暗号化パスワードを含めてMBR Shadow設定部34にインストールしておいてもよいし、インターネット2のサーバ1側でパスワードを生成し、インターネット2経由でパスワードをデータ記録装置3に送信し、データ記録装置3のShadowプログラムが上述の式にしたがってパスワードを暗号化して暗号化データ蓄積部(不図示)に保存してもよいし、暗号化パスワードを含んだShadowプログラムを生成してインターネット2経由でShadowプログラムをデータ記録装置3に送信し、データ記録装置3がMBR Shadow設定部34にインストールしてもよい。
次に、Shadowプログラムとパスワードを使ってデータ記録部6をアンロックする処理について説明する。
図22は第4の実施形態におけるShadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャートである。図20ではサーバ認証用秘密鍵を保護対象として、プロセッサ状態管理部49の値を使って復号したのに対し、図22ではデータ記録部6をアンロックするためのパスワードを保護対象とする点が異なるが、全体的な処理の流れは図20と同様である。
なお、ステップS240で暗号化パスワードを復号して平文パスワードを生成する。その後、サーバ1との認証を行い(ステップS241)、サーバ1との認証に成功すると、平文パスワードの値をドライブ部4に送信して、ロック制御部33によりデータ記録部6をアンロックする(ステップS242)。ステップS242の処理については、上述した第1〜第3実施形態で説明した手順に従えばよい。これにより、特定のShadowプログラムでしか平文パスワードを取得できなくなり、安全にパスワードを保護することができる
このように、第4の実施形態では、プロセッサ26aが特殊命令Xを実行することにより、サーバ認証用秘密鍵やデータ記録部6のアンロック制御用の暗号化パスワードを生成するため、Shadowプログラム自体で秘密鍵やパスワードを暗号化する場合よりも、より安全に暗号化処理を行え、不正に暗号化の仕組みを解読されるおそれが少なくなる。
(第5の実施形態)
第4の実施形態では、Shadowプログラムが暗号化されていない平文の状態か、暗号化されていてもShadowプログラムを復号するための鍵はShadowプログラムに内包されていた。第5の実施形態では、Shadowプログラムを機器にインストールする前に、Shadowプログラムそのものを事前に暗号化しておき、かつ暗号化Shadowプログラムと、暗号化Shadowプログラムを復号する鍵を別々に配布することに特徴がある。
第5の実施形態によるデータ記録装置3の概略構成は図16と同一である。第5の実施形態では、Shadowプログラムとパスワードを使ってデータ記録部6をアンロックする処理に先立ち、暗号化プログラム鍵とShadowプログラムをデータ記録装置3にインストールする処理を行う。このインストール処理を行うために、まずShadowプログラムと平文パスワードを生成する。
図23は第5の実施形態におけるShadowプログラムの構造の一例を示す図である。Shadowプログラムは平文コード部分71、暗号化コード部分72、それにデータ部分73から構成される。
平文コード部分71は少なくともShadowプログラムの最初に実行される部分(エントリーポイント74)を含む。
暗号化コード部分72は平文コード部分71の次に実行される部分である。この部分は後述するプログラム鍵によって暗号化されている。
データ部分73はShadowプログラムの保有するデータが格納されている部分である。
プログラム鍵は暗号化コード部分72を暗号化する鍵であり、Shadowプログラムとは別に用意しておく。このプログラム鍵(ProgramKey)は少なくとも暗号化コード部分72を含むプログラムのハッシュ値(HashValue)を使って以下の(7)式にしたがって暗号化する。
Output = Encrypt (Program Key, HashValue, Key) …(7)
ここで、Encryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を暗号化し、その暗号化結果が出力(Output)となる。Key(鍵)には秘密情報格納部15の鍵管理部42に格納された鍵の値を用いる。
暗号化方式に公開鍵方式を用いる場合、秘密情報格納部15の鍵管理部42の秘密鍵に対応する公開鍵によってプログラム鍵を暗号化することになるが、サーバ1が公開鍵をデータ記録装置3からネットワーク経由で取得してプログラム鍵を暗号化してもよいし、データ記録装置3の製造時に暗号化してもよいし、プログラム鍵はサーバ1からネットワーク上で配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42の公開鍵で暗号化して暗号化プログラム鍵を保存してもよい。
暗号化に共通鍵方式を用いる場合、秘密情報格納部15の鍵管理部42に格納された値をサーバ1側でも管理している場合は、上述のプログラム鍵の暗号化処理をサーバ1側で行ってもよいし、データ記録装置3の製造時に行ってもよいし、プログラム鍵はサーバ1からネットワーク上で配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42のプログラム鍵で暗号化して暗号化プログラム鍵を保存するようにしてもよい。
次に、Shadowプログラムを復号する処理について説明する。図24は第5の実施形態におけるShadowプログラムが行う復号処理手順の一例を示すフローチャートである。
まず、プロセッサ26aは、起動プログラム格納部21に格納された起動プログラムを実行し、この起動プログラムからShadowプログラムを読み込む。Shadowプログラム中の最初に実行される部分は平文コードのエントリーポイント74(通常は平文コードの最初のアドレス)である(ステップS251)。
次に、Shadowプログラムは、プロセッサ26aの特殊命令Xが発行された場合にどこからどこまでのハッシュ値を計算すべきかを指示するために、アドレスと範囲をプロセッサ26aの主メモリ27範囲指定レジスタ53に設定する(ステップS252)。この主メモリ27範囲は少なくとも暗号化コード部分72を含み、主メモリ27の内容は上述したプログラム鍵を暗号化する時に用いた内容と一致していなければならない。
その後、Shadowプログラムはプロセッサ26aに対して特殊命令Xを発行する。プロセッサ26aは第4の実施形態で示したのと同じ手法で特殊命令Xを実行する(ステップS253)。その後、図22のステップS194〜S198と同様の手順で、ハッシュ値をプロセッサ状態管理部49に蓄積する(ステップS254〜S258)。
次に、Shadowプログラムは秘密情報格納部15に対して、暗号化プログラム鍵を復号するようコマンドを送信する(ステップS259)。暗号化プログラム鍵は、予めホスト部5の不図示の暗号化データ蓄積部に保存されているか、あるいはShadowプログラムに含まれているか、あるいはサーバから取得するものとする。秘密情報格納部15はこのコマンドを受信すると、以下の(8)式にしたがってデータを復号する(ステップS260)。
Output = Decrypt (Input, RegisterValue, Key) …(8)
ここで、Decryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を復号し、その復号結果が出力(Output)である。ここで、Inputは暗号化プログラム鍵であり、RegisterValueにはプロセッサ状態管理部49の値が入力値となる。出力値(Output)が平文プログラム鍵の値となる。
Shadowプログラムは平文プログラム鍵を使い、暗号コード部分を復号する(ステップs261)。そして平文の暗号コード部分に含まれた命令を実行する。
この後、暗号コード部分のShadowプログラムの中で、サーバ認証を行ったり、ドライブ部4のデータ記録部6がロックされている場合はアンロック処理を行ったりする。Shadowプログラムの中でサーバ認証用の秘密鍵やデータ記録部6をアンロックするパスワードなどの秘密データを取得する手法として、(1)予め暗号コードの中に秘密データを埋め込んでおく手法、(2)暗号コードの中には秘密データを復号する鍵を埋め込んでおき、秘密データはデータ部分73に暗号化して埋め込んでおく。暗号化コード部分72に埋め込んでおいた鍵を使ってデータ部分73の秘密データを復号する手法などがある。
なお、暗号コードの中に予め暗号コード部分のハッシュ値を埋め込んでおき、そのハッシュ値と秘密情報管理部のプロセッサ状態管理部49の値が一致するか確認処理を行い、値が一致しない場合は以降の処理は行わずにエラー処理を行うようにしてもよい。
このように、第5の実施形態では、Shadowプログラムと、Shadowプログラムの復号に用いるプログラム鍵を別々に暗号化しておき蓄積しておく。MBR Shadow格納部35に格納されている間、Shadowプログラムは暗号化されている。したがって、仮に攻撃者がファイルやイメージデータとしてShadowプログラムを入手したとしても、暗号化されているため解析は困難である。また暗号化されたShadowプログラムを復号するためのプログラム鍵はShadowプログラムの実行時にのみ平文になり、プログラム鍵の復号も容易ではない。また、Shadowプログラムの中に秘密のデータを含めても解読されるおそれがないため、サーバ認証用の秘密データや、データ記録部6をアンロックするパスワードなど別のデータをShadowプログラムに安全に含めることができる。
さらに、Shadowプログラムとプログラム鍵は暗号化された状態でMBR Shadow格納部35に格納されるため、サーバ1で予め暗号化したShadowプログラムとプログラム鍵を生成すれば、サーバ1とデータ記録装置3の間の通信経路での漏洩を気にする必要はない。このため、サーバ1側でShadowプログラムとプログラム鍵を更新して配布する作業を安全かつ簡易に行うことができる。
最後に、本明細書に出てくる種々の鍵あるいはパスワードの役割をまとめて説明する。プログラム鍵とは、プログラムを復号するために使用する鍵である。パスワードとは、ドライブ部4をアンロックするために使用する値である。サーバ認証用の秘密鍵とは、サーバとの認証を行うために使用する鍵である。鍵管理部42の秘密鍵とは鍵管理部42に格納されており、秘密情報格納部15bが入力データを暗号化・復号するために使用する値である。これら鍵およびパスワードは、以下の順序で使用される。
1)暗号化プログラム鍵を秘密情報格納部で復号する。この時の鍵は鍵管理部の秘密鍵を用いる暗号化プログラム鍵は、暗号化データ蓄積部に保存されているか、Shadowプログラムに含まれているか、サーバから受信する。
2)プログラム鍵を使ってプログラムを復号する。
3)暗号化パスワードと暗号化サーバ認証用秘密鍵を復号し、それぞれパスワードとサーバ認証用の秘密鍵を取得する。暗号化パスワードと暗号化サーバ認証用秘密鍵は、Shadowプログラムに含まれている。
4)復号したサーバ認証用秘密鍵を使用してサーバ認証を行う。
5)復号したパスワードを使用してドライブ部4をアンロックする。
なお、昨今では原子力や火力など従来の発電に加えて、太陽光や風力などの再生可能エネルギーを併用する際、電力品質の安定化を図るために次世代電力網(スマートグリッド)が構築されている。
図25は次世代電力網の概略構成の一例を示すブロック図である。図25に示すように、次世代電力網では、電力使用量を集計するスマートメーター(SM)61と、家電機器を管理するホームサーバ(Home Energy Management System, HEMS)62が各家庭に設置される。また、商業ビルを対象として、ビル内の電気機器を管理するサーバ(Building Energy Management System, BEMS)63がビル毎に設置される。SM61は、コンセントレータ64とよばれる中継器によって数台ごとにまとめられ、通信網を介してメーターデータ管理システム(Meter Data Management System, MDMS)65と通信する。MDMS65は、各家庭のSMから一定の間隔で電力使用量を受信して、記憶する。エネルギー管理システム(Energy Management System, EMS)66は、MDMS65に集まった複数の家庭の電力使用量あるいは、電力系統に設置されたセンサからの情報に基づいて、各家庭のSM61やホームサーバ62に対して電力使用を抑制するよう要求するなどの電力制御を行う。また、EMS66は遠隔端末ユニット(Remote Terminal Unit, RTU)67に接続された太陽光発電や風力発電などの分散電源68、同じくRTU67に接続された蓄電装置69、またRTU67に接続された発電側との間を制御する送配電制御装置70を制御し、グリッド全体の電圧および周波数を安定化するための制御を行う。
このように、MDMS65とコンセントレータ64、BEMS63とEMS66、EMS66とHEMS62はネットワーク71で接続されており、かつ、スマートメーター61で動作するプログラムはプライバシー情報などの秘密情報を格納する可能性がある。
上述した各実施形態で示した構成において、データ記録装置3をスマートメーター61内に設置し、サービス提供サーバ1をMDMS65内に設けることにより、上記各実施形態に係る情報提供システムは次世代電力網にも応用することが可能である。
さらに、上述した第3の実施形態を応用すれば、サーバ1を介してShadowプログラムを容易に配布できるため、スマートメーター61で動作するプログラムの一部をShadowプログラムとして構成することにより、プログラムの改変等を確実に防止して、プログラムの更新を安全に行うことができる。
上述した実施形態で説明した情報記録装置は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、情報処理装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の携帯可能なものに限定されず、ハードディスク装置や主メモリ27などの固定型の記録媒体でもよい。
また、情報記録装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれない。したがって、本発明の態様は、上述した個々の実施形態には限定されない。特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
1 サーバ
3 データ記録装置
4 ドライブ部
5 ホスト部
6 データ記録部
7 アクセス制御部
8 MBR格納部
9 OS格納部
10 ユーザデータ格納部
11 プログラム処理部
12 起動処理部
15 秘密情報格納部
26 プロセッサ
27 主メモリ
32 ホスト認証部
33 ロック制御部
34 MBR Shadow設定部
35 MBR Shadow格納部
42 鍵管理部
43 暗号処理部
44 復号処理部
45 状態管理部
52 特殊命令処理部
55 ハッシュ計算処理部
61 スマートメーター

Claims (11)

  1. デジタルコンテンツを含むデジタル情報を記録するドライブ部と、
    前記ドライブ部に対するデジタル情報の記録および読み出しを制御するホスト部と、を備え、
    前記ホスト部は、
    サーバとの通信を行うネットワーク処理部と、
    ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
    前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
    前記シャドウ・ブートプログラムを実行するシャドウ実行部と、
    前記シャドウ・ブートプログラムの処理手順に従って、前記サーバとの認証を行うサーバ認証部と、
    前記サーバとの認証に成功した場合に、前記ドライブ部に前記ドライブ部のアンロックに使用するパスワードを送信するパスワード送信部と、を備え、
    前記ドライブ部は、
    前記シャドウ・ブートプログラムを格納するシャドウ・ブートプログラム格納部と、
    前期ブートプログラムを格納するブートプログラム格納部と、
    任意のデジタルデータを含むユーザデータを格納するユーザデータ格納部と、
    前記ホスト部から送信されたパスワードが予め登録されたパスワードと一致するか否かを判定するパスワード照合部と、
    前記パスワード照合部にて一致すると判定されると、前記ユーザデータ格納部のロックを解除してアクセスを許可するロック制御部と、を備えることを特徴とする情報記録装置。
  2. 前記ホスト部は、
    前記パスワードを生成するパスワード生成部と、
    前記シャドウ・ブートプログラムの実行時に、コード情報およびデータが展開される主メモリと、
    前記シャドウ・ブートプログラムが特定命令を実行した場合における前記主メモリの特定位置または特定範囲の値、あるいは前記サーバ認証部による認証成功後に前記サーバから取得した値を用いて、前記パスワードを暗号化した暗号化パスワードを生成する暗号処理部と、を有し、
    前記ロック制御部は、前記パスワードを用いて前記ユーザデータ格納部をロックすることを特徴とする請求項1に記載の情報記録装置。
  3. 前記ホスト部は、
    前記サーバ認証部による認証成功後に前記サーバから前記パスワードを取得するパスワード取得部と、
    前記シャドウ・ブートプログラムの実行時に、コード情報およびデータが展開される主メモリと、
    前記シャドウ・ブートプログラムが特定命令を実行した場合における前記主メモリの特定位置または特定範囲の値、あるいは前記サーバ認証部による認証成功後に前記サーバから取得した値を用いて、前記パスワードを暗号化した暗号化パスワードを生成する暗号処理部と、を有し、
    前記ロック制御部は、前記パスワードを用いて前記ユーザデータ格納部をロックすることを特徴とする請求項1に記載の情報記録装置。
  4. 前記サーバ認証部による認証成功後に、前記シャドウ・ブートプログラムが前記特定命令を実行した場合における前記主メモリの特定位置または特定範囲の値、あるいは前記サーバ認証部による認証成功後に前記サーバから取得した値を用いて、前記前記暗号化パスワードを復号する復号処理部を備え、
    前記ロック制御部は、前記復号処理部で復号されたパスワードが前記パスワード照合部にて一致すると判定されると、前記ユーザデータ格納部のロックを解除してアクセスを許可することを特徴とする請求項2に記載の情報記録装置。
  5. 前記ユーザデータ格納部は、複数のデータ領域に分かれており、
    前記暗号処理部は、前記複数のデータ領域のそれぞれごとに、固有の前記暗号化パスワードを生成し、
    前記ロック制御部は、前記複数のデータ領域のそれぞれごとに、ロックおよびアンロックの制御を行うことを特徴とする請求項2に記載の情報記録装置。
  6. プログラムを記録するドライブ部と、
    プログラムを実行するホスト部と、を備え、
    前記ホスト部は、
    ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
    前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
    暗号化されたプログラム鍵を格納する暗号化データ蓄積部と、
    固有の鍵を格納する秘密情報格納部と、
    前記シャドウ・ブートプログラムは、暗号化されていない平文プログラムと、暗号化された暗号化プログラムとを含み、
    前記シャドウ・ブートプログラムの平文プログラムにて特定の命令が発行されると、前記シャドウ・ブートプログラムを展開した主メモリの特定位置または特定範囲のハッシュ値を計算し、前記秘密情報格納部に格納するハッシュ計算部と、
    前記秘密情報格納部に格納したハッシュ値と、前記秘密情報格納部に格納した前記固有の鍵を用いて前記暗号化データ蓄積部に格納された前記暗号化された秘密鍵を復号する復号処理部と、
    前期復号処理部で復号した復号した前記秘密鍵を使い、前記シャドウ・ブートプログラムの前記暗号化された暗号化プログラムを復号するプログラム復号部と、
    前記シャドウ・ブートプログラムを実行する演算処理部と、を有することを特徴とする情報記録装置。
  7. 前記シャドウ・ブートプログラム格納部は、
    前記ドライブ部に元からインストール済で最初に実行される初期プログラムを格納する初期プログラム格納部と、
    所定の条件を満たしたときに前記サーバからダウンロードされて前記初期プログラムに引き続いて実行されるダウンロードプログラムを格納するダウンロード格納部と、を有し、
    前記ユーザデータ格納部は、前記初期プログラムに対応したユーザデータを格納する第1のデータ領域と、前記ダウンロードプログラムに対応したユーザデータを格納する第2のデータ領域とを有し、
    前記ロック制御部は、前記シャドウ実行部が前記初期プログラムを実行した結果、前記所定の条件を満たす場合には前記第1のデータ領域のロックを解除し、その後に前記シャドウ実行部が前記ダウンロードプログラムを実行し、前記サーバとの認証に成功した場合には前記第2のデータ領域のロックを解除することを特徴とする請求項1に記載の情報記録装置。
  8. 前記ホスト部は、前記シャドウ・ブートプログラムの実行時に、コード情報およびデータが展開される主メモリを有し、
    前記ロック制御部は、前記シャドウ実行部が前記初期プログラムを実行した結果、前記所定の条件を満たす場合には前記第1のデータ領域のロックを解除し、その後に前記シャドウ実行部が前記ダウンロードプログラムを実行し、前記主メモリの特定位置または特定範囲の値が期待値と一致し、かつ前記サーバとの認証に成功した場合には前記第2のデータ領域のロックを解除することを特徴とする請求項7に記載の情報記録装置。
  9. 前記ドライブ部は、オペレーティング・システムのプログラムを格納するOS格納部を有し、
    前記ロック制御部は、前記シャドウ実行部が前記初期プログラムを実行した結果、前記所定の条件を満たす場合には、前記OS格納部および前記第1のデータ領域のロックを解除することを特徴とする請求項7に記載の情報記録装置。
  10. デジタル情報を記録するドライブ部と、
    前記ドライブ部に対するデジタル情報の記録および読み出しを制御するホスト部と、を備え、
    前記ホスト部は、
    サーバとの通信を行うネットワーク処理部と、
    ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
    前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
    前記シャドウ・ブートプログラムを実行する演算処理部と、
    暗号化された秘密鍵を格納する秘密鍵格納部と、
    前記演算処理部により生成された暗号情報を用いて前記秘密鍵を復号する秘密鍵復号部と、
    前記秘密鍵復号部で復号された前記秘密鍵を用いて、前記サーバとの認証を行うサーバ認証部と、を有し、
    前記演算処理部は、前記シャドウ・ブートプログラムにて特定の命令が発行されると、前記シャドウ・ブートプログラムを展開した主メモリの特定位置または特定範囲の値を用いて前記暗号情報を生成することを特徴とする情報記録装置。
  11. 前記ドライブ部は、前記シャドウ・ブートプログラムを格納するシャドウ・ブートプログラム格納部と
    前記ブートプログラムを格納するブートプログラム格納部とを有し、
    前記シャドウ・ブートプログラムは、暗号化されていない平文プログラムと、暗号化された暗号化プログラムとを含み、
    前記ホスト部は、前記暗号情報を用いて前記暗号化プログラムを復号するプログラム復号部を有することを特徴とする請求項10に記載の情報記録装置。
JP2012506744A 2010-03-26 2010-03-26 情報記録装置 Active JP5380604B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/055426 WO2011118034A1 (ja) 2010-03-26 2010-03-26 情報記録装置

Publications (2)

Publication Number Publication Date
JPWO2011118034A1 JPWO2011118034A1 (ja) 2013-07-04
JP5380604B2 true JP5380604B2 (ja) 2014-01-08

Family

ID=44672623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012506744A Active JP5380604B2 (ja) 2010-03-26 2010-03-26 情報記録装置

Country Status (3)

Country Link
US (3) US20130024679A1 (ja)
JP (1) JP5380604B2 (ja)
WO (1) WO2011118034A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509735B2 (en) 2018-01-30 2019-12-17 Toshiba Memory Corporation Data storage apparatus, data processing system, and data processing method

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11297045B2 (en) * 2010-03-26 2022-04-05 Kioxia Corporation Information recording apparatus with shadow boot program for authentication with a server
JP6017336B2 (ja) * 2013-02-12 2016-10-26 株式会社東芝 データ管理装置および電力使用量計算システム
JP6010014B2 (ja) 2013-12-13 2016-10-19 株式会社東芝 通信制御装置
US10454676B2 (en) * 2015-02-13 2019-10-22 International Business Machines Corporation Automatic key management using enterprise user identity management
US10348727B2 (en) 2015-02-13 2019-07-09 International Business Machines Corporation Automatic key management using enterprise user identity management
US10382201B1 (en) * 2015-09-22 2019-08-13 Seagate Technology Llc Removable circuit for unlocking self-encrypting data storage devices
CN106557802B (zh) * 2015-09-30 2019-08-30 东芝存储器株式会社 存储装置以及信息处理系统
WO2017170255A1 (ja) 2016-03-29 2017-10-05 株式会社リコー サービス提供システム、サービス授受システム、サービス提供方法、及びプログラム
CN109074327B (zh) * 2016-03-29 2022-02-15 株式会社理光 服务提供系统、服务递送系统、服务提供方法和程序
WO2017170235A1 (ja) 2016-03-29 2017-10-05 株式会社リコー サービス提供システム、サービス授受システム、サービス提供方法、及びプログラム
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
CN106650476B (zh) * 2016-12-14 2020-07-14 惠州Tcl移动通信有限公司 一种移动终端个人信息的自动防护方法及系统
US10460110B1 (en) 2017-02-17 2019-10-29 Seagate Technology Llc Systems and methods for unlocking self-encrypting data storage devices
US10678953B1 (en) 2017-04-26 2020-06-09 Seagate Technology Llc Self-contained key management device
US10484371B2 (en) * 2017-05-22 2019-11-19 Seagate Technology Llc Device controller security system
US11120151B1 (en) 2017-08-02 2021-09-14 Seagate Technology Llc Systems and methods for unlocking self-encrypting data storage devices
US10855451B1 (en) 2017-08-02 2020-12-01 Seagate Technology Llc Removable circuit for unlocking self-encrypting data storage devices
CN108959903B (zh) * 2018-06-11 2022-03-04 超越科技股份有限公司 一种移动存储设备安全管控方法及系统
JP2021060721A (ja) 2019-10-04 2021-04-15 キオクシア株式会社 メモリシステム
JP6954340B2 (ja) * 2019-11-07 2021-10-27 日本電気株式会社 メモリデバイス管理システム、メモリデバイス管理方法およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215167A (ja) * 1999-01-26 2000-08-04 Toshiba Corp コンピュ―タシステム及びそのシステムのリモ―ト制御方法
JP2003196162A (ja) * 2001-10-30 2003-07-11 Hewlett Packard Co <Hp> コンピュータセキュリティシステム
JP2009246459A (ja) * 2008-03-28 2009-10-22 Konica Minolta Holdings Inc 通信制御方法、通信制御プログラムおよび情報処理装置
JP2010020753A (ja) * 2008-07-14 2010-01-28 Toshiba Corp 初期ブート画像のインストール方法、初期ブート画像の更新方法、及び記憶装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711688B1 (en) * 1999-11-30 2004-03-23 International Business Machines Corporation Pre-execution logon (PEL)
US20020178366A1 (en) * 2001-05-24 2002-11-28 Amiran Ofir Method for performing on behalf of a registered user an operation on data stored on a publicly accessible data access server
JP4087149B2 (ja) * 2002-05-20 2008-05-21 株式会社日立製作所 ディスク装置共有システム、及び計算機
TW588243B (en) * 2002-07-31 2004-05-21 Trek 2000 Int Ltd System and method for authentication
US8386797B1 (en) * 2002-08-07 2013-02-26 Nvidia Corporation System and method for transparent disk encryption
US7552337B2 (en) 2004-06-12 2009-06-23 Microsoft Corporation Service protection
US7664834B2 (en) * 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
JP2006344112A (ja) * 2005-06-10 2006-12-21 Matsushita Electric Ind Co Ltd 情報処理装置のセキュリティ装置およびセキュリティ方法
JP4793628B2 (ja) * 2005-09-01 2011-10-12 横河電機株式会社 Os起動方法及びこれを用いた装置
US7984283B2 (en) * 2006-05-22 2011-07-19 Hewlett-Packard Development Company, L.P. System and method for secure operating system boot
JP4956142B2 (ja) * 2006-10-31 2012-06-20 株式会社東芝 情報処理装置、および日時情報変更方法
US20080133905A1 (en) * 2006-11-30 2008-06-05 David Carroll Challener Apparatus, system, and method for remotely accessing a shared password
TW201009581A (en) * 2008-08-26 2010-03-01 Asustek Comp Inc Method and system for protecting data
US8001581B2 (en) * 2008-12-17 2011-08-16 Dell Products L.P. Methods and systems for embedded user authentication and/or providing computing services using an information handling system configured as a flexible computing node
JP4672778B2 (ja) * 2009-01-29 2011-04-20 東芝ストレージデバイス株式会社 データ記憶装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215167A (ja) * 1999-01-26 2000-08-04 Toshiba Corp コンピュ―タシステム及びそのシステムのリモ―ト制御方法
JP2003196162A (ja) * 2001-10-30 2003-07-11 Hewlett Packard Co <Hp> コンピュータセキュリティシステム
JP2009246459A (ja) * 2008-03-28 2009-10-22 Konica Minolta Holdings Inc 通信制御方法、通信制御プログラムおよび情報処理装置
JP2010020753A (ja) * 2008-07-14 2010-01-28 Toshiba Corp 初期ブート画像のインストール方法、初期ブート画像の更新方法、及び記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509735B2 (en) 2018-01-30 2019-12-17 Toshiba Memory Corporation Data storage apparatus, data processing system, and data processing method
US11232044B2 (en) 2018-01-30 2022-01-25 Toshiba Memory Corporation Data storage apparatus, data processing system, and data processing method

Also Published As

Publication number Publication date
US9756033B2 (en) 2017-09-05
JPWO2011118034A1 (ja) 2013-07-04
US20130024679A1 (en) 2013-01-24
US20170324720A1 (en) 2017-11-09
US10547604B2 (en) 2020-01-28
US20160182483A1 (en) 2016-06-23
WO2011118034A1 (ja) 2011-09-29

Similar Documents

Publication Publication Date Title
JP5380604B2 (ja) 情報記録装置
JP4906854B2 (ja) 情報処理装置、情報記録装置、情報処理システム、プログラムアップデート方法、プログラムおよび集積回路
US20200184042A1 (en) Modular software protection
US9571484B2 (en) Device certificate based appliance configuration
JP4064914B2 (ja) 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
JP4278327B2 (ja) コンピュータ・プラットフォームおよびその運用方法
JP5314016B2 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US8281135B2 (en) Enforcing use of chipset key management services for encrypted storage devices
JP6810334B2 (ja) プロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラム
CN109328352A (zh) 靶向安全软件部署
US20130007471A1 (en) Systems and methods for securing cryptographic data using timestamps
US20130007467A1 (en) Binding of cryptographic content using unique device characteristics with server heuristics
CN113545006A (zh) 远程授权访问锁定的数据存储设备
US9055041B2 (en) Device certificate based appliance configuration
WO2013107362A1 (zh) 一种保护数据的方法和系统
KR20040030454A (ko) 콘텐츠 이용권한 관리시스템, 콘텐츠 이용권한 관리방법및 정보처리장치와 컴퓨터 프로그램
TW201516733A (zh) 用以核對uefi認證變量變化之系統及方法
JPH10247905A (ja) アクセス資格認証装置および方法
US11838282B2 (en) Information recording apparatus with server-based user authentication for accessing a locked operating system storage
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
US10282549B2 (en) Modifying service operating system of baseboard management controller
JP5118700B2 (ja) 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置
JP2012058803A (ja) シンクライアントシステム、およびオペレーティングシステム更新方法
KR101975041B1 (ko) 외부 저장 장치에 저장되는 파일을 보안하는 보안 브로커 시스템 및 그 방법
KR101003242B1 (ko) 유에스비 메모리 장치에 저장된 소프트웨어 불법복제방지 시스템 및 유에스비 메모리 장치에 저장된 소프트웨어를 실행하는 방법

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130930

R151 Written notification of patent or utility model registration

Ref document number: 5380604

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350