JP6298268B2 - セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム - Google Patents

セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム Download PDF

Info

Publication number
JP6298268B2
JP6298268B2 JP2013218234A JP2013218234A JP6298268B2 JP 6298268 B2 JP6298268 B2 JP 6298268B2 JP 2013218234 A JP2013218234 A JP 2013218234A JP 2013218234 A JP2013218234 A JP 2013218234A JP 6298268 B2 JP6298268 B2 JP 6298268B2
Authority
JP
Japan
Prior art keywords
data
security
sector
host controller
controller interface
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
JP2013218234A
Other languages
English (en)
Other versions
JP2014086089A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014086089A publication Critical patent/JP2014086089A/ja
Application granted granted Critical
Publication of JP6298268B2 publication Critical patent/JP6298268B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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/44Program or device 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/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Description

本発明は、ホストコントローラインターフェース(Host Controller Interface)に係り、より詳しくはストレージ(storage)装置の領域に応じてセキュリティポリシーを管理することができるセキュリティ管理ユニット(Security Management Unit)、該セキュリティ管理ユニットを含むホストコントローラインターフェース及びその動作方法と、該ホストコントローラインターフェースを含むコンピュータシステムに関する。
データセキュリティは、近年コンピュータシステムでストレージ装置の動作及び設計に対する重要な考慮対象となっている。効果的なデータアクセスセキュリティは、保存されたデータに対して許可されていないアクセスが、保存されたデータを、リード(read)、操作、変更、変造、偽造または抽出しようとした場合、保存されたデータに対する許可されていないアクセス(access)を必ず遮断しなければならない。また、効果的なデータアクセスセキュリティは、合法的なユーザによって保存されたデータに対するアクセスを阻むように外部の侵入者を遮断しなければならない。
ホストコントローラインターフェースとストレージ装置との間に存在するデータバスまたはデータバスによって伝送されるデータ信号は、データを保存する間に度々不正アクセスの標的になる。その結果、従来の多くのシステムは、ホストコントローラとストレージ装置との間で伝送されるデータを暗号化していた。
多様な暗号化方法と暗号化モジュールが、このような目的のためにホストコントローラインターフェースと結合して利用される。従来のアクセス方法は、データセキュリティポリシーが、あらゆるストレージ装置の領域を通じて保存されたあらゆるデータに供給される間に、かなり長期間に亘ってよく作動してきた。
これは、いわゆるセキュアプロセッサと呼ばれ、ストレージ装置のために特別なデータセキュリティポリシーの管理に利用される。データプロセッシング(data processing)が、非セキュアプロセッサ(non−secure processor)によって行われる場合、膨大なオーバーヘッド(overhead)に直面することもある。したがって、それぞれ異なるデータセキュリティポリシーを有するデータ間のプロセッサスイッチングは、構築されたコンピュータシステムの性能を全般的に低下させる。
本発明は、上記問題点に鑑みてなされたものであって、本発明の目的とするところは、ストレージ装置の特定の領域に応じてセキュリティポリシーを変えて管理することができるセキュリティポリシーテーブルを含むセキュリティ管理ユニットを提供することにある。このようなセキュリティ管理ユニットの使用は、セキュリティポリシーの変更のために発生する従来のコンピュータシステム内で計算オーバーヘッド(computational overhead)を最小化する必要がある。
また、本発明の目的は、セキュリティ管理ユニットを含むホストコントローラインターフェースを提供することにある。 また、本発明の目的は、セキュリティ管理ユニットを含むホストコントローラインターフェースの動作方法と、該ホストコントローラインターフェースを含むコンピュータシステムを提供することにある。
上記目的を達成するためになされた本発明の一態様によるホストコントローラインターフェースの動作方法は、メインメモリからセクター情報を含むバッファデスクリプタを受信する段階と、前記バッファデスクリプタに含まれるソースアドレスを用いてデータをフェッチする段階と、前記セクター情報を用いてセキュリティポリシーテーブルからエントリー(entry)を選択する段階と、前記選択されたエントリーによって定義されるセキュリティポリシーを用いて、前記フェッチされたデータを暗号化するか否かを決定する段階と、を有することを特徴とする。
前記バッファデスクリプタは、前記セクター情報によって指示されるストレージ装置の領域にアクセスするアプリケーションによって生成されることが好ましい。
前記ホストコントローラインターフェースの動作方法は、比較結果を生成するために、前記選択されたエントリーに対するセキュリティレベル情報と前記アプリケーションに対するセキュリティレベル情報とを比較する段階と、前記セキュリティレベル情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことが好ましい。
また、前記ホストコントローラインターフェースの動作方法は、比較結果を生成するために、前記選択されたエントリーに対するアクセス動作情報と前記フェッチされたデータに対する入/出力動作情報とを比較する段階と、前記動作情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことが好ましい。
前記セキュリティポリシーテーブルは、前記メインメモリに保存されることが好ましい。
前記バッファデスクリプタは、ソースアドレス、宛先アドレス、及びデータ長を含むことが好ましい。
前記バッファデスクリプタは、セキュリティキーを含み、前記ホストコントローラインターフェースの動作方法は、前記セキュリティキーを用いて前記フェッチされたデータを暗号化する段階をさらに含むことが好ましい。
上記目的を達成するためになされた本発明の一態様によるセキュリティ管理ユニットは、ストレージ装置の第1領域に対する第1セキュリティポリシーを定義する第1エントリー及び前記ストレージ装置の第2領域に対する第2セキュリティポリシーを定義する第2エントリーを含み、メモリに保存されたセキュリティポリシーテーブルと、バッファデスクリプタに含まれるセクター情報に応答して、前記第1エントリー及び前記第2エントリーのうちの何れか1つを選択し、前記第1セキュリティポリシーまたは前記第2セキュリティポリシーによってデータを暗号化するか否かを指示する第1制御信号を提供するセクターアクセス制御ロジックと、を備えることを特徴とする。
前記セキュリティ管理ユニットは、セキュアCPUによって提供されたテーブルアップデート命令に応答して、前記第1セキュリティポリシー及び前記第2セキュリティポリシーのうちの何れか1つを変更するテーブルアクセス制御ロジックをさらに含むことが好ましい。
前記第1セキュリティポリシー及び前記第2セキュリティポリシーのうちの何れか1つは、セキュリティレベル情報及びアクセス動作情報とのうちの少なくとも1つを含むことが好ましい。
前記セクターアクセス制御ロジックは、メモリからセクター情報及びセキュリティレベル信号を受信し、前記選択された第1または第2エントリーに対するセキュリティレベル情報と実行中のアプリケーションに対するセキュリティレベル情報とを比較し、前記ストレージ装置の第1または第2領域に対するアクセスを許可する第2制御信号を出力することが好ましい。
前記セクターアクセス制御ロジックは、セクター情報及びアクセス動作信号を受信し、前記選択された第1又は第2エントリーに対するアクセス動作情報とデータアクセス動作情報とを比較し、前記ストレージ装置の第1又は第2領域に対するアクセスを許可する第2制御信号を出力するのが好ましい。
前記セキュリティ管理ユニットは、ホストコントローラインターフェースの内部に具現されることが好ましい。
上記目的を達成するためになされた本発明の一態様によるホストコントローラインターフェースは、バッファデスクリプタに含まれるソースアドレスを用いてメインメモリからデータをリードし、前記バッファデスクリプタに含まれるセクター情報に応答してセクターキーを出力するストレージコントローラと、前記セクターキーに応答してメモリに保存されたセキュリティポリシーテーブルからエントリーを選択し、該選択されたエントリーに対応するセキュリティポリシーを定義する第1制御信号を出力するセキュリティ管理ユニットと、前記第1制御信号に応答して、前記データに対して暗号化動作を行うか否かを決定するデータ保護器と、を備え、前記セキュリティポリシーテーブルは、それぞれがストレージ装置の複数の領域のうちの少なくとも1つに対して対応するセキュリティポリシーを定義する複数のエントリーを含むことを特徴とする。
前記データ保護器は、前記第1制御信号及び前記セクターキーに応答して、前記暗号化動作を実行するのが好ましい。
前記データ保護器は、前記第1制御信号と前記バッファデスクリプタに含まれるセキュリティキーとに応答して、前記暗号化動作を実行するのが好ましい。
前記ホストコントローラインターフェースは、前記バッファデスクリプタを生成するアプリケーションに対するセキュリティレベル情報を保存し、前記セキュリティレベル情報を表わすセキュリティレベル信号を前記セキュリティ管理ユニットに出力するトランザクションタイプレジスタをさらに含むことが好ましい。
前記セキュリティ管理ユニットは、
前記メインメモリから前記セクター情報及び前記セキュリティレベル信号を受信し、前記選択されたエントリーに含まれるセキュリティレベル情報と前記セキュリティレベル信号とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第2制御信号を出力することが好ましい。
前記セキュリティ管理ユニットは、
前記セクター情報と前記ストレージコントローラから出力されたアクセス動作信号とを受信し、前記選択されたエントリーに含まれるアクセス動作情報とデータアクセス動作情報とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第2制御信号を出力することが好ましい。
上記目的を達成するためになされた本発明の一態様によるコンピュータシステムは、複数の領域を含むストレージ装置と、前記複数の領域のうちの1つの領域をアクセスするアプリケーションが実行される間に、バッファデスクリプタを生成するCPUと、前記バッファデスクリプタ及びデータを保存するメインメモリと、前記バッファデスクリプタに含まれるソースアドレスを用いて前記メインメモリから前記データをリードし、セクター情報に応答して複数のエントリーのうちの何れか1つを選択し、該選択されたエントリーによって定義されたセキュリティポリシーに基づいて、前記データに対する暗号化動作を実行するか否かを決定するホストコントローラインターフェースと、を備え、前記複数のエントリーのそれぞれは、前記ストレージ装置で前記複数の領域のそれぞれに対して異なるセキュリティポリシーを管理することを特徴とする。
前記ホストコントローラインターフェースは、
前記ソースアドレスを用いて前記メインメモリから前記データをリードし、前記セクター情報に応答してセクターキーを出力するストレージコントローラと、
前記セクターキーに応答して、前記選択されたエントリーを選択し、前記選択されたエントリーに定義されたセキュリティポリシーに応答して第1制御信号を出力するセキュリティ管理ユニットと、
前記第1制御信号に基づいて、前記データに対する暗号化動作を実行するか否かを決定するデータ保護器と、を含むことが好ましい。
前記ストレージ装置は、
ハードディスクドライブ(HDD)、コンパクトディスク、ソリッドステートドライブ(SSD)、マルチメディアカード(MMC)、エンベデッドマルチメディアカード(eMMC)、及びユニバーサルフラッシュストレージ(UFS)のうちの何れか1つであることが好ましい。
前記ストレージ装置と前記ホストコントローラインターフェースとは、シリアルATAインターフェースを通じて通信することが好ましい。
本発明によれば、ホストコントローラインターフェースは、セキュリティポリシーテーブルを含むセキュリティ管理ユニットを使って、ストレージ装置の領域によって異なるセキュリティポリシーを効率的に管理することができる。
また、ホストコントローラインターフェースは、セキュリティポリシーが、ストレージ装置の特定の領域で変更された場合も、プロセッサ間のスイッチングによって引き起こされるシステムの性能低下なしに、セキュリティ管理ユニットを用いて動作を持続的に実行させることができる。
また、ホストコントローラインターフェースは、アプリケーションがデータを生成する時、セクター別にセキュリティキーを生成するので、ストレージ装置に既に保存され、前のアプリケーションに関連するデータをリードするものから、同じデータの暗号化及び/または復号化の権限を有する他のアプリケーションを遮断することができる。
本発明の一実施形態によるコンピュータシステムを示すブロック図である。 本発明の他の実施形態によるコンピュータシステムを示すブロック図である。 図1及び図2のコンピュータシステムで使われるバッファデスクリプタの一実施形態を示す概念図である。 図1のストレージ装置に対する部分的なメモリマップを示すブロック図である。 図1及び図2のコンピュータシステムで使われるホストコントローラインターフェースを示すブロック図である。 図5のセキュリティ管理ユニットで使われるセキュリポリシーティテーブルを示す概念図である。 図5のセキュリティ管理ユニットを示すブロック図である。 本発明の一実施形態による直接メモリアクセス動作に対する初期動作を示す動作図である。 本発明の一実施形態による直接メモリアクセス動作に対する動作方法を示すフローチャートである。 本発明の一実施形態による直接メモリアクセス動作に対する動作方法を示すフローチャートである。 図5のセキュリティ管理ユニットで使われる他のセキュリティポリシーテーブルを示す概念図である。 図10のセキュリティポリシーテーブルを修正する動作方法を示すものであって、図9の直接メモリアクセス動作の一部を示す部分フローチャートである。 eMMC(embedded MultiMedia Card)が、本発明の実施形態として使われる時、セキュリティポリシーテーブルに保存される複数の信号のリストを示す図面である。 図5のセキュリティ管理ユニットに含まれるセキュリティポリシーテーブルの他の概念図である。 図1及び図2のコンピュータシステムで使われるバッファデスクリプタの他の実施形態を示す概念図である。 図1及び図2のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。 図1及び図2のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。 図1及び図2のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。 本発明の他の実施形態によるコンピュータシステムを示すブロックである。
以下、図面を参照しながら本発明のセキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステムを実施するための形態の具体例を、詳細に説明する。
本明細書で使われる“コンピュータシステム”という用語は、データストレージ装置(data storage device)に保存されたデータ及び/またはデータストレージ装置から復旧されたデータに対するデータ処理の多様な形態を実行するデジタルプラットフォーム(digital platform)を幅広く意味する。コンピュータシステムは、プロセッサ及び周辺ロジック回路を含む。コンピュータシステムのプロセッサは、オペレーティングシステム(Operating System:OS)によって1つまたはそれ以上のアプリケーションを“実行”することができる。
プロセッサによるアプリケーションの実行に関連するデータ、例えば、リードデータまたはライトデータは、メインメモリ(main memory)に保存することができる。したがって、メインメモリに保存された“データ”は、アプリケーション及び/または命令に基づいてプロセッサによって生成されたかまたは作動する実データ(例えば、ユーザデータ、ペイロードデータ、または計算データなど)内で命令を定義するデータにプログラムされる。コンピュータシステムは、同時にまたは連続して1つまたはそれ以上のアプリケーションを実行させることができる。
図1は、本発明の一実施形態によるコンピュータシステムを示すブロック図である。図1を参照すると、コンピュータシステム1000は、中央処理装置(CPU)1100、メインメモリ1200、メインメモリコントローラ1300、ホストコントローラインターフェース1400、及びストレージ装置1500を含む。
コンピュータシステム1000は、携帯電話またはラップトップコンピュータのようなモバイル装置、パソコン(personal computer)、サーバコンピュータ、プログラム可能な家電製品、またはメインフレームコンピュータのような汎用または特殊目的のコンピュータシステムである。
CPU1100は、コンピュータシステム1000の全般的な動作を制御し、図1に示すセキュアCPU1110及び非セキュア(non−secure)CPU1120を含む。セキュアCPU1110は、コンピュータシステムブーティング(booting)動作と確実な1つまたはそれ以上の認証過程の実行に利用される。一方、非セキュアCPU1120は、セキュリティモジュールまたは暗号化されたデータ領域に保存されたデータにアクセスできない。
例えば、コンピュータシステム1000は、高いデータセキュリティレベルを要求するアプリケーション(例えば、銀行アプリケーションまたは証券アプリケーション)を実行させるモバイル装置と仮定する。
高セキュリティアプリケーションは、データ証明またはデータ認証を要求するものであり、必ずセキュアCPU1110によって実行されなければならない。一方、コンピュータシステム1000は、非セキュアCPU1120を用いて複数の低セキュリティアプリケーション、例えば、電子ブックまたはゲームアプリケーションを実行させることができる。
実行中のアプリケーション、すなわち、CPU1100によって現在実行中のアプリケーションがストレージ装置1500に保存されたデータにアクセスする時、CPU1100は、関連データ、例えば、リードデータまたはライトデータに対する保存位置を識別するバッファデスクリプタ(BD)を生成し、メインメモリ1200にデータと共にバッファデスクリプタ(BD)を保存する。ここで、生成されたバッファデスクリプタ(BD)は、メインメモリ1200の特別なバッファデスクリプタ(Buffer Descriptor:BD)領域1210に保存される。
このため、メインメモリ1200は、一時的にデータを保存するデータ記録媒体(例えば、システムメモリまたはキャッシュメモリ)として理解される。したがって、メインメモリ1200は、ファイルシステム形式に応じてデータの保存に使われるか、またはCPU1100によって生成された1つまたはそれ以上のバッファデスクリプタ(BD)をBD領域1210に保存することができる。
CPU1100と共にメインメモリコントローラ1300は、メインメモリ1200の制御に使われる。メインメモリコントローラ1300は、複数のバスインターフェースポートを支援するので、メインメモリコントローラ1300は、セキュアCPU1110、非セキュアCPU1120、及びホストコントローラインターフェース1400に接続される。
ホストコントローラインターフェース1400は、メインメモリ1200とストレージ装置1500との間でデータ(例えば、DATAとDATA’)を伝送するためのハードウェア基盤のインターフェースを提供する。ホストコントローラインターフェース1400は、直接メモリアクセス(Direct Memory Access:DMA)マスタ(master)機能を提供する。DMAマスタ機能を有するホストコントローラインターフェース1400は、セキュアCPU1110によって設定された“セキュリティレベル”または“セキュリティ定義”を有する“セキュアトランザクション”(secure transaction)の生成に使われる。
また、ホストコントローラインターフェース1400は、非セキュアCPU1120によって設定された特別ではないセキュリティレベル(相対的に低いセキュリティレベル)を有する“非セキュアトランザクション”(non−secure transaction)の生成に使われる。ホストコントローラインターフェース1400とストレージ装置1500は、シリアルATA(SATA)インターフェースを使って通信し、セクター(sector)は、アドレスユニット(address unit)として使われる。
ストレージ装置1500は、大容量データ(例えば、ソフトウェアまたはユーザデータなど)を長期的に、または不揮発性で保存することができるデータ記録媒体(data storage media)とみなすことができる。
図1に示すように、ストレージ装置1500は、セキュアな要求されたデータを保存するために提供される暗号化領域1510と、一般データまたは非セキュアな要求されたデータを保存するために提供される非暗号化領域1520と、を含む。暗号化領域1510からセキュアな要求されたデータにアクセスするかまたはデータを生成する1つまたはそれ以上の高いセキュリティアプリケーションのみが暗号化領域1510にアクセスすることができる。
図2は、本発明の他の実施形態によるコンピュータシステムを示すブロック図である。
図2を参照すると、コンピュータシステム2000は、CPU2100、メインメモリ2200、メインメモリコントローラ2300、ホストコントローラインターフェース2400、及びストレージ装置2500を含む。CPU2100、メインメモリ2200、メインメモリコントローラ2300、及びホストコントローラインターフェース2400は、システムバス2600を通じて通信する。
図1のコンピュータシステム1000と比較して、図2のコンピュータシステム2000のメモリコントローラ2300は、1つのバスインターフェースポート(single bus interfaceport)のみを支援する。したがって、CPU2100は、与えられた時間でシステムバス2600を通じてメモリコントローラ2300またはホストコントローラインターフェース2400と電気的に接続される。
CPU2100は、セキュアモード2110または非セキュアモード2120で動作する。セキュアモード2110と非セキュアモード2120のそれぞれは、CPU2100によって実行中のアプリケーションによって決定される。CPU2100が低セキュリティアプリケーションに応答して、非セキュアモード2120で作動する時、CPU2100は、セキュリティモジュールまたは暗号化されたメモリ領域を同時にアクセスできない。
図2のホストコントローラインターフェース2400の構造と動作は、図1のホストインターフェース1400の構造の動作と実質的に同じである。
図3は、図1及び図2のコンピュータシステムで使われるバッファデスクリプタの一実施形態を示す概念図である。図1〜図3を参照すると、バッファデスクリプタ10は、ソースアドレス11、宛先アドレス12、データ長13、及び次の宛先ポインター(pointer to NEXT destination)14を含む。
ソースアドレス11は、ソースデータ、すなわち、処理されるデータが保存された位置を指示する。宛先アドレス12は、結果データ、すなわち、処理後のデータが保存される位置を指示する。データ長13は、伝送されるデータのサイズを指示し、次の宛先ポインター14は、現在のメモリアクセス動作後の次のメモリアクセス位置を指示する。
リード動作中には、CPU(1100または2100)は、ストレージ装置(1500または2500)に保存されたリードデータDATA’に対応するバッファデスクリプタ10を生成する。この際、バッファデスクリプタ10のソースアドレス11は、ストレージ装置(1500または2500)のアドレスを含み、宛先アドレス12は、メインメモリ(1200または2200)のアドレスを含む。
ライト動作中に、CPU(1100または2100)は、メインメモリ(1200または2200)に一時的に保存され、ストレージ装置(1500または2500)に、プログラムされるライトデータDATAに対応するバッファデスクリプタ10を生成する。この際、バッファデスクリプタ10のソースアドレス11は、メインメモリ(1200または2200)のアドレスを含み、宛先アドレス12は、ストレージ装置(1500または2500)のアドレスを含む。
各ホストコントローラインターフェース(1400または2400)の構造と動作は、後述の図5、図15、図16、及び図17を参照して詳しく説明する。
図4は、図1のストレージ装置の部分的なメモリマップを示すブロック図である。ストレージ装置1500は、ハードディスクドライブ(HDD)のような磁気保存装置、コンパクトディスク(CD)のような光学保存ディスク、またはソリッドステートドライブ(SSD)、マルチメディアカード(MMC)、及びユニバーサルフラッシュストレージ(UFS)のようなフラッシュメモリなどで具現される
HDDが使われる場合、情報は、高速で回転する磁気ディスクに保存される。データは、1つまたはそれ以上のリードヘッドまたはライトヘッドを用いて、磁気ディスクに対してリード/ライトされる。HDDに比べると、従来のSSDは、相対的に高速リード動作を行うが、ライト動作は相対的に低速である。
MMCは、携帯電話、スマートフォン、モバイルインターネット装置(MID)、コンピュータ、またはデジタルカメラのような多様なデジタル機器でデータを保存し、移動することができる着脱可能な装置であって、データを保存する保存空間と演算及び制御を担当する部分で構成される。
UFSは、低消費電力を有するフラッシュ基盤のストレージ装置である。UFSは、SSDのような保存機能を有する一方、高速シリアルインターフェースを使い、ランダムアクセス機能を向上させるために、コマンドキューイング(command queuing)機能を内蔵し、シリアルインターフェースの節電機能を内蔵する。
一般的に、ストレージ装置1500は、CHS(シリンダー、ヘッド、セクター)アドレスユニットまたは論理ブロックアドレス(LBA)を有する。LBAは、ストレージ装置1500内でデータブロックの位置の指定に使われる。LBAは、アドレスまたはブロック(すなわち、インデックス)を指定する。セクターと論理ブロックは、512バイトまたは1024バイトのように512バイトの整数倍になる。
図4を参照すると、ストレージ装置1500Aは、それぞれが異なるセキュリティ定義またはセキュリティポリシーを有するデータを保存する複数の領域31〜38を含む。ストレージ装置の種類によって、複数の領域のそれぞれは、セグメントユニット、セクターユニット、またはパーティションユニットに区分される。
特別なセキュリティポリシーは、実行中のアプリケーションに対して規定されたセキュリティレベルによってDMA動作時に決定される。したがって、実行中のアプリケーションのセキュリティポリシーは、特定の領域に対するアクセス可能如何、特定の領域に保存されたデータが暗号化されているかの有無、またはライト動作の可能如何などによって決定される。
したがって、図4の第1領域31は、特別なセキュリティポリシーを有するセキュリティアプリケーションのみがアクセスすることができる。この際、第1領域31は、暗号化されたデータのみが保存され、第1領域31に保存された暗号化されたデータに対してリード動作のみが許可される。第3領域33は、第1領域31と同様に定義される。しかし、第2領域32は、非セキュリティアプリケーションによってアクセスされ、平文テキストデータまたは非暗号化されたデータが保存され、リード動作とライト動作とがいずれも許可される。
第4領域34は、非セキュリティアプリケーションによってアクセスされ、暗号化されたデータが保存され、リード動作のみが許可され、第8領域38は、第4領域34と同様に定義される。
図5は、図1及び図2のコンピュータシステムで使われるホストコントローラインターフェースを示すブロック図である。図1及び図5を参照すると、ホストコントローラインターフェース1400Aは、ストレージコントローラ310、セキュリティ管理ユニット320、データ保護器330、及びトランザクションタイプレジスタ340を含む。
ストレージコントローラ310は、ストレージ装置1500に保存されたデータに対するデータアクセス動作を制御する。ストレージ装置1500に保存されたデータがセクターによって定義される場合、それぞれのセクターにセクターキー(sector key)を割り当てる従来のXTS−AES方式は、ストレージ装置1500に保存されたデータの暗号化に対する1つのアプローチとして利用される。
図5に示すように、ストレージコントローラ310は、メインメモリ1200からバッファデスクリプタ(BD)を受信する。ストレージコントローラ310は、メインメモリ1200に保存された特定のデータDATAを識別するために、バッファデスクリプタ(BD)に含まれるソースアドレスを使う。
また、ストレージコントローラ310は、バッファデスクリプタ(BD)に含まれるセクター情報に基づいてセクターキーSECTOR_KEYをデータ保護器330に提供する。バッファデスクリプタ(BD)に含まれるセクター情報は、ストレージ装置1500に伝送される当該セクターアドレスSECTOR_ADDを生成する情報であって、ストレージコントローラ310によって使われる。この際、データプロセッシング動作中に、1つのセクターキーは、ストレージコントローラ310がセクター情報を如何に使うかに無関係にセクター情報から固有に生成される。
セキュリティ管理ユニット320は、それぞれがストレージ装置1500の特定領域に対するセキュリティポリシーを管理する複数のエントリー(entries)を含むセキュリティポリシーテーブルを備える。セキュリティポリシーテーブルの実施形態は、後述の図6を参照して詳しく説明する。
したがって、セキュリティ管理ユニット320は、ストレージコントローラ310によって提供されたセクターキーSECTOR_KEYに応答して、セキュリティポリシーテーブルに含まれる複数のエントリーのうちの何れか1つを選択する。セキュリティ管理ユニット320は、選択されたエントリーに含まれるセキュリティポリシーによってデータDATAの暗号化動作の要否を決定する暗号化/復号化指示信号EDをデータ保護器330に出力する。
また、セキュリティ管理ユニット320は、選択されたエントリーで指示されたセキュリティポリシーを用いてアクセス動作(例えば、リード動作またはライト動作)の有無を決定するアクセス指示信号IAEを出力する。すなわち、ストレージコントローラ310によって提供されたリード/ライト信号R/Wは、アクセス指示信号IAEに応答して、セキュリティ管理ユニット320によって遮断される。
セキュリティ管理ユニット320によって提供された暗号化/復号化指示信号EDに応答して、データ保護器330は、ホストコントローラインターフェース1400Aを通じて、ストレージ装置1500にライトされるライトデータDATAとストレージ装置1500から出力されたリードデータDATA’とに暗号化/復号化動作を行う。
データ保護器330は、暗号化/復号化指示信号EDに基づいて、リードデータまたはライトデータに対する暗号化動作、復号化動作またはバイパス(bypass)動作を行うか否かを決定する。
暗号化動作がライトデータDATAに対して行われる時、データ保護器330は、ストレージコントローラ310によって提供されたセクターキーSECTOR_KEYを利用した暗号化動作を行う。
トランザクションタイプレジスタ340は、受信したバッファデスクリプタ(BD)によって実行中のアプリケーションに対応するセキュリティレベル情報を保存する。すなわち、トランザクションタイプレジスタ340は、ホストコントローラインターフェース1400Aに対して行われる直接メモリアクセス動作が、所定のセキュリティレベルを有するセキュアトランザクションタイプ(secure transaction type)であるか、または非セキュアトランザクションタイプ(non secure transaction type)であるかを表わす状態情報を保存する。
それぞれのトランザクションタイプに応じた保安セキュリティレベル信号S/NSが、セキュリティ管理ユニット320に伝送される。この際、セキュリティ管理ユニット320の動作、データ保護器330の動作、及びトランザクションタイプレジスタ340に保存された情報は、セキュアCPU1110によってのみ変更される。
図6は、図5のセキュリティ管理ユニットで使われるセキュリティポリシーテーブルを示す概念図である。図6を参照すると、セキュリティポリシーテーブル322Aは、複数のエントリーを含み、それぞれのエントリーは、ストレージ装置1500の1つまたはそれ以上の領域(例えば、セクター)に対する特定のセキュリティポリシーを管理する。
図6のセキュリティポリシーテーブル322Aは、8つのエントリー41〜48を含む。複数のエントリー41〜48のそれぞれは、ストレージ装置1500に含まれる複数の領域のそれぞれの範囲を表現するために、ベースセクターアドレスレジスタに保存されたセクターアドレスを開始アドレスに設定し、各領域のサイズSIZEを設定する。この際、各エントリー41〜48に対応する各領域のサイズSIZEは、同様に設定されるか、または異なって設定される。
各エントリー41〜48は、セキュリティポリシーの観点で保存されたデータの有効VALIDまたは無効INVALIDを指示する情報を含む。セキュリティポリシーは、ストレージ装置1500の特定領域に対するリードREAD及び/またはライトWRITEアクセスを許可するか否かを指示する。セキュリティポリシーは、ストレージ装置1500の特定領域に対するセキュアSまたは非セキュアNSなアクセスを許可するか否かをさらに指示する。最後に、セキュリティポリシーは、特定領域に対するリードまたはライトデータに関連する暗号化Enc/NonEnc動作を指示する。
図6に示すように、各エントリー41〜44に関連する各領域(または、各セクター)に保存されたデータが有効VALIDであると仮定する。
第1領域は、第1ベースセクターアドレスレジスタ(Base sector address register1)に保存されたアドレス位置からAセクター(A sectors)のサイズを有する。リード動作Rのみが、第1領域に対して実行され、第1領域は、セキュアレベルSを有するアプリケーションによってのみアクセス可能であり、暗号化されたデータEncは、第1領域に保存される。
第2領域は、第2ベースセクターアドレスレジスタ(Base sector address register2)に保存されたアドレス位置からBセクター(B sectors)のサイズを有する。リード動作Rとライト動作R/Wが、第2領域に対していずれも実行され、第2領域は、セキュアレベルSを有するアプリケーションだけではなく、非セキュアレベルNSを有するアプリケーションによってもアクセス可能であり、非暗号化データNonEncは、第2領域に保存される。
第3領域は、第3ベースセクターアドレスレジスタ(Base sector address register3)に保存されたアドレス位置からCセクター(C sectors)のサイズを有する。リード動作Rとライト動作R/Wは、第3領域に対して実行され、第3領域は、保安レベルSを有するアプリケーションによってのみアクセス可能であり、暗号化されたデータEncは、第3領域に保存される。
第4領域は、第4ベースセクターアドレスレジスタ(Base sector address register4)に保存されたアドレス位置からDセクター(D sectors)のサイズを有する。リード動作Rのみが、第4領域に対して実行され、第4領域は、セキュアレベルSを有するアプリケーションだけではなく、非セキュアレベルNSを有するアプリケーションによってもアクセス可能であり、暗号化されたデータEncが、第4領域に保存される。
第8エントリー48に関連する第5領域に保存されたデータは、無効INVALIDである。
本発明の多様な実施形態に応じて、多様な制御方法が、特定のセキュリティポリシーまたはセキュリティポリシーテーブル322Aで該当するエントリーの設定に使われる。
図7は、図5のセキュリティ管理ユニット320を示すブロック図である。図1、図5、図6、及び図7を総合的に参照すると、セキュリティ管理ユニット320は、テーブルアクセス制御ロジック321、セクターアクセス制御テーブル322、及びセクターアクセス制御ロジック323を含む。図6に示したセキュリティポリシーテーブル322Aは、セクターアクセス制御テーブル322の一実施形態である。
テーブルアクセス制御ロジック321は、セキュアCPU1110から出力されたテーブルアップデート命令TU_CMDに応答して、セクターアクセス制御テーブル322に保存されたストレージ装置1500の各領域のセキュリティポリシーを変更する。テーブルアップデート命令TU_CMDが非セキュアCPU1120から入力される時、テーブルアクセス制御ロジック321は、セキュリティポリシー変更信号TUをセクターアクセス制御テーブル322に伝達せずに、エラー信号TUEを非セキュアCPU1120に伝送する。
テーブルアクセス制御ロジック321は、セキュアCPU1110から出力されたテーブルアップデート命令TU_CMDに応答して、セクターアクセス制御テーブル322の少なくとも1つのエントリーを変更するために、セキュリティポリシー変更信号TUを生成する。したがって、セキュリティポリシーテーブル322でも参照されるセクターアクセス制御テーブルは、複数のエントリーを含み、複数のエントリーのそれぞれは、ストレージ装置1500の1つまたはそれ以上の領域のそれぞれに対するセキュリティポリシーを管理する。
例えば、図7のセクターアクセス制御ロジック323は、ストレージコントローラ310からセクターキーSECTOR_KEYとアクセス動作信号R/Wとを受信し、トランザクションタイプレジスタ340からセキュアレベル信号S/NSを受信する。
セクターアクセス制御ロジック323は、セクターキーSECTOR_KEYに応答して、複数のベースセクターアドレスレジスタのうちの何れか1つを選択するためのエントリー選択情報SNIをセクターアクセス制御テーブル322、例えば、セキュリティポリシーテーブルに伝送する。セキュリティポリシーテーブル322は、エントリー選択情報SNIに応答して、選択されたベースセクターアドレスレジスタに該当する選択エントリーSNEをセクターアクセス制御ロジック323に伝送する。
すなわち、セクターアクセス制御ロジック323は、セクターキーSECTOR_KEYに基づいてセキュリティポリシーテーブル322のエントリーのうちの何れか1つを選択する。セクターアクセス制御ロジック323は、選択されたエントリーSNEに含まれるセキュリティポリシーによってデータDATAの暗号化如何を指示する暗号化/復号化指示信号EDをデータ保護器330に出力し、アクセス指示信号IAEをストレージコントローラ310に出力する。
ストレージコントローラ310は、アクセス指示信号IAEに応答して、セクターアドレスSECTOR_ADDと暗号化されたデータDATA’とをストレージ装置1500に出力する。ストレージ装置1500は、暗号化されたデータDATA’をセクターアドレスSECTOR_ADDに対応する領域に保存する。この場合、セクターアドレスSECTOR_ADDは、宛先アドレス12とデータ長13とのうちの少なくとも1つを含む。
図8は、本発明の一実施形態に係る直接メモリアクセス動作に対する初期動作を示す動作図である。図1、図5、及び図8を参照すると、セキュアCPU1110は、セキュリティ管理ユニット320とデータ保護器330とを初期化する(ステップS110)。
セキュアCPU1110は、トランザクションタイプレジスタ340を非セキュア状態に設定するので、その後、非セキュアCPU1120が実行する(ステップS120)。非セキュアCPU1120によってアプリケーションが動作すると、非セキュアCPU1120は、バッファデスクリプタ(BD)を生成し、該生成されたバッファデスクリプタ(BD)は、メインメモリコントローラ1300を通じてメインメモリ1200の保存領域1210に保存される(ステップS130)。
バッファデスクリプタ(BD)の開始アドレスが、ストレージコントローラ310に設定されると(ステップS140)、開始アドレスは、開始レジスタ311に保存される(ステップS150)。その後、ストレージコントローラ310の開始レジスタ311に保存された開始アドレスに基づいて、直接メモリアクセス(DMA)動作が始まる。
図9A及び図9Bは、本発明の一実施形態に係る直接メモリアクセス動作に対する動作方法を示すフローチャートである。図1、図5、図9A及び図9Bを参照すると、ストレージコントローラ310は、開始レジスタ311に保存された開始アドレスを用いてメインメモリ1200の保存領域1210からセクター情報を含むバッファデスクリプタ(BD)を読み取る(ステップS211)。この際、バッファデスクリプタ(BD)は、セクター情報に対応するストレージ装置1500の特定領域にアクセスするためのアプリケーションによって生成される。バッファデスクリプタ(BD)は、データ保護器330を通じてストレージコントローラ310に入力される。
ストレージコントローラ310は、バッファデスクリプタ(BD)に含まれるソースアドレス(例えば、図3の11)を用いてメインメモリ1200の、例えばソースアドレスに該当する保存領域に保存されたデータDATAをリードあるいはフェッチ(fetch)する(ステップS212)。
ストレージコントローラ310は、バッファデスクリプタ(BD)に含まれるセクター情報に基づいてセクターキーSECTOR_KEYを生成し、セクターキーSECTOR_KEYをセキュリティ管理ユニット320及びデータ保護器330に伝送する(ステップS213)。セキュリティ管理ユニット320は、ストレージコントローラ310から出力されたセクターキーSECTOR_KEYに応答して、セキュリティポリシーテーブル322に含まれる複数のエントリーのうちの何れか1つを選択する(ステップS214)。この際、セキュリティポリシーテーブル322は、それぞれがストレージ装置1500に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理するエントリーを含む。
セキュリティ管理ユニット320は、選択されたエントリーに含まれるセキュリティポリシーを用いて、フェッチされたデータを暗号化するか否かを決定する(ステップS215)。フェッチされたデータに対する暗号化動作が必要である場合、データ保護器330は、セクターキーSECTOR_KEYを用いてデータを暗号化する。一方、フェッチされたデータに対する暗号化動作が不要である場合、データ保護器330は、データをバイパスしてストレージコントローラ310に伝送する。
ストレージ装置1500の特定領域にデータをライトするか否かを判断するための第1判断段階として、セキュリティ管理ユニット320は、選択されたエントリーに含まれるセキュリティレベル情報とアプリケーションのセキュリティレベル情報とを比較する(ステップS216)。この際、アプリケーションのセキュリティレベル情報は、トランザクションタイプレジスタ340に保存されながら、セキュリティレベル信号S/NSとしてセキュリティ管理ユニット320に伝達される。
セキュリティ管理ユニット320は、セキュリティポリシーテーブル(例えば、図6の322A)に含まれるセキュリティレベル情報(例えば、図6のSまたはNS)とアプリケーションのセキュリティレベル情報とが同一である場合、ストレージ装置1500の当該領域(例えば、当該セクター領域)に対するアプリケーションのアクセスを許可する(ステップS217)。
一方、セキュリティ管理ユニット320は、セキュリティポリシーテーブルに含まれるセキュリティレベル情報とアプリケーションのセキュリティレベル情報とが同一ではない場合、ストレージ装置1500の当該領域(例えば、当該セクター領域)に対するアプリケーションのアクセスを許可しない(ステップS223)。
ストレージ装置1500の特定領域にデータをライトするか否かを判断するための第2判断段階として、セキュリティ管理ユニット320は、選択されたエントリーに含まれるアクセス動作情報とデータの入出力動作情報とを比較する(ステップS218)。この際、データの入出力動作情報は、ストレージコントローラ310からアクセス動作信号R/Wとしてセキュリティ管理ユニット320に伝送される。
セキュリティ管理ユニット320は、セキュリティポリシーテーブルに含まれるアクセス動作情報とデータの入出力動作情報とが同一である場合、ストレージ装置1500の当該領域(例えば、当該セクター領域)に対するアプリケーションのアクセスを許可する(ステップS219)。一方、セキュリティ管理ユニット320は、セキュリティポリシーテーブルに含まれるアクセス動作情報とデータの入出力動作情報とが同一ではない場合、ストレージ装置1500の当該領域(例えば、当該セクター領域)に対するアプリケーションのアクセスを許可しない(ステップS223)。
図9A及び図9Bでは、各決定段階(ステップS216とステップS218)が順次に進行する実施形態を示した。しかし、本発明の他の実施形態によれば、データ暗号化動作段階(ステップS215)、第1判断段階(ステップS216)、及び第2判断段階(ステップS218)は、独立して進行するか、少なくとも2つの段階が同時に進行しうる。
ストレージ装置1500の特定領域に対するデータアクセスが許可されると、直接メモリアクセス(DMA)動作が実行される。ストレージコントローラ310は、ストレージ装置1500の特定領域に対する直接メモリアクセス(DMA)動作が完了するまで待機する(ステップS220)。
直接メモリアクセス(DMA)動作が完了し、複数のバッファデスクリプタ(BD)が連続して具現される場合、ストレージコントローラ310は、次のバッファデスクリプタが有効であるか否かをチェックする(ステップS221)。次のバッファデスクリプタが有効であれば、ストレージコントローラ310は、メインメモリ1200から次のバッファデスクリプタを読み取る段階に戻る(ステップS211)。しかし、次のバッファデスクリプタが存在しないか、または有効ではない場合、ストレージコントローラ310は、直接メモリアクセス(DMA)動作を完了する(ステップS222)。
ストレージコントローラ310は、直接メモリアクセス(DMA)動作が正常に完了したか、当該セクター領域に対するアクセス失敗で直接メモリアクセス(DMA)動作が失敗したかに応じて、状態情報を生成し、非セキュアCPU1120は、ストレージコントローラ310から状態情報を受信する(ステップS225)。
図10は、図5のセキュリティ管理ユニットで使われる他のセキュリティポリシーテーブルを示す概念図である。ストレージ装置1500が、セキュリティ管理ユニット320の複数のエントリーに相応する複数の領域を含む場合、ハードウェア資源は、大きく消耗される。あらゆるエントリーを含むセキュリティポリシーテーブルがメインメモリ1200に保存され、セキュリティ管理ユニット320内のテーブルが変換索引バッファ(Translation Look−a−side Buffer:TLB)のように動作する時、ハードウェアまたはハードウェア資源の消耗は減少する。
セキュリティポリシーは、図5のセキュリティ管理ユニットに含まれる。図10を参照すると、セキュリティポリシーテーブル322Bは、それぞれがストレージ装置1500に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理する複数のエントリー51〜55を含む。
セキュリティポリシーテーブル322Bに含まれるエントリー数は、多様に設定され、各エントリーに該当するストレージ装置1500の領域のサイズは、同様に設定される。したがって、仮想アドレスは、セキュリティポリシーテーブル322Bに保存され、仮想アドレスは、物理アドレスと一致しないこともある。
各エントリー51〜55には、セキュリティポリシーテーブル322Bの各エントリー51〜55に保存された値が、有効VALIDであるか、または無効INVALIDであるかの情報と、セキュリティポリシーとが保存される。
セキュリティポリシーは、各エントリー51〜55に該当するストレージ装置1500の各領域に対するリード動作及びライト動作によるアクセス許可の可否指定READ/WRITE、各領域に対するセキュアレベルに応じたアクセス許可の可否指定SECURE/NON−SECURE、及び各領域に対する入出力データの暗号化動作の有無指定ENCRYPTION/NON−ENCRYPTIONのうち少なくとも1つを含む。
例えば、第1エントリー51に対する有効/無効指定が有効VALIDである場合、ストレージ装置1500の第1領域に該当する第1エントリー51に保存された1つまたはそれ以上の値は有効である。第1領域に対しては、リード動作Rのみ可能であり、第1領域は、セキュアレベルSを有するアプリケーションによってのみアクセス可能であり、第1領域には、暗号化されたデータEncが保存される。
第2エントリー52に対する有効/無効指定が有効VALIDである場合、ストレージ装置1500の第2領域に該当する第2エントリー52に保存された1つまたはそれ以上の値は有効である。第2領域に対しては、リード動作R及びライト動作Wがいずれも可能であり、第2領域は、セキュアレベルSを有するアプリケーションだけではなく、非セキュアレベルNSを有するアプリケーションによってもアクセス可能であり、第2領域には、暗号化されていないデータNonEncが保存される。
第3エントリー53に対する有効/無効指定が有効VALIDである場合、ストレージ装置1500の第3領域に該当する第3エントリー53に保存された1つまたはそれ以上の値は有効である。第3領域に対しては、リード動作R及びライト動作Wがいずれも可能であり、第3領域は、セキュアレベルSを有するアプリケーションによってのみアクセス可能であり、第3領域には、暗号化されたデータEncが保存される。
第4エントリー54に対する有効/無効指定が有効VALIDである場合、ストレージ装置1500の第4領域に該当する第4エントリー54に保存された値は有効である。第4領域に対しては、リード動作Rのみ可能であり、第4領域は、非セキュアレベルNSを有するアプリケーションによってもアクセス可能であり、第4領域には、暗号化されたデータEncが保存される。
最後のエントリー55に対する有効/無効指定が無効INVALIDである場合、ストレージ装置1500の最後の領域に該当する最後のエントリー55に保存された値は無効である。セキュリティポリシーテーブル322Bで領域を設定する方法と上述したセキュリティポリシーの種類は、実施形態によって多様に変更され得る。
図11は、図10のセキュリティポリシーテーブルを修正する動作方法を示したものであって、図9の直接メモリアクセス動作の一部を示す部分フローチャートである。図11の複数のステップは、図9Aで提示した2つのノードAとBの間のステップに代替される。
図1、図5、図9、図10、及び図11を参照すると、セキュリティ管理ユニット320は、ストレージコントローラ310から出力されたセクターキーSECTOR_KEYに応答して、セキュリティポリシーテーブル322Bに含まれる複数のエントリーのうちの何れか1つを選択または検索する(ステップS311)。この際、セキュリティポリシーテーブル322Bは、それぞれがストレージ装置1500に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理する複数のエントリーを含む。
セキュリティ管理ユニット320は、セクターキーSECTOR_KEYに該当するエントリーがセキュリティポリシーテーブル322Bに含まれているか否かを判断する(ステップS312)。
セキュリティポリシーテーブル322Bが選択されたエントリーを含まない場合(ステップS312)、ストレージコントローラ310は、メインメモリ1200に保存されたセキュリティポリシーテーブルをセキュリティ管理ユニット320にロード(load)し、セキュリティ管理ユニット320は、当該ロードされたセキュリティポリシーテーブルから該当するエントリーに対するセキュリティポリシーを読み取る(ステップS313)。
セキュリティポリシーテーブル322Bが選択されたエントリーを含んでいる場合、選択されたエントリーに含まれるセキュリティポリシーを用いて、フェッチされたデータに対する暗号化の要否が決定される(ステップS315)。
フェッチされたデータに対する暗号化動作が必要である場合、データ保護器330は、セクターキーを用いてデータを暗号化する。一方、データに対する暗号化動作が不要である場合、データ保護器330は、データをバイパスしてストレージコントローラ310に伝送する。
図12及び図13は、データ保存装置として使われるエンベデッドマルチメディアカード(embedded Multi−Media Card:eMMC)の特性を示す。
eMMCは、フラッシュ(flash)メモリのメモリカード標準であり、eMMCは、JEDECで標準として定めた内蔵型MMCに対する標準である。eMMCは、ハードディスクやコンパクトディスクが有する限界を超えて、多様な種類のデジタル(digital)機器で使用できるように、マルチメディアデータを保存する役割を果たす。
図12は、eMMCが、本発明の一実施形態として使われる場合の、セキュリティポリシーテーブルに保存される複数の信号のリストを示す。
図12を参照すると、BEGINは、パーティション(partion)が始まるセクターアドレスを指示し、ENDは、パーティションが終了するセクターアドレスを指示し、SRは、実行中のアプリケーションがセキュアレベルを有する場合に、リード動作が可能であることを意味し、SWは、実行中のアプリケーションがセキュアレベルを有する場合に、ライト動作が可能であることを意味し、NSRは、実行中のアプリケーションが非セキュアレベルを有する場合に、リード動作が可能であることを意味し、NSWは、実行中のアプリケーションが非セキュアレベルを有する場合に、ライト動作が可能であることを意味し、UFKは、暗号化時にヒューズキー(fuse key)を利用することを指示し、ECBは、ECB(Electronic CodeBook)モードであることを指示し、ENCは、暗号化動作を行うことを意味し、VALIDは、テーブルのエントリーに保存された値が有効であることを意味する。
図13は、図5のセキュリティ管理ユニットに含まれるセキュリティポリシーテーブルの他の概念図である。図12及び図13を参照すると、eMMCから提供されるメモリ空間は、それぞれが異なるセキュリティポリシーを有する複数のパーティション71、72、及び73に分けられる。セキュリティポリシーテーブル322Cは、それぞれがeMMC1500Cに含まれる複数のパーティション71、72、及び73のそれぞれに対するセキュリティポリシーを管理する複数のエントリーを含む。
各エントリーは、eMMC1500Cに含まれる複数のパーティション71、72、及び73の範囲を示すために、開始セクターアドレスBEGINと終了セクターアドレスENDを設定する。また、各エントリーは、セキュリティポリシーテーブルの各エントリーに保存された値が有効であるか、または無効であるかの情報と、セキュリティポリシーについての情報とを保存する。
セキュリティポリシーは、図12を参照して説明したように、各エントリーに該当するパーティションに対するセキュアレベルでリード動作SR、セキュアレベルでライト動作SW、非セキュアレベルでリード動作NSR、非セキュアレベルでライト動作NSW、暗号化モードECB、及び入出力データの暗号化動作ENCのうちの少なくとも1つを含む。
図13に示す例では、第1エントリー61の有効性VALIDの値が1なので、ストレージ装置1500Cの第1パーティション71に該当する第1エントリー61の複数の値は有効である。第1パーティション71の領域は、開始アドレスである00000000に対応する領域から終了アドレスである000FFFFFに対応する領域までの範囲を有する。
第1パーティション71には、ブートプログラムまたはブートイメージが保存され、第1パーティション71に対しては、非セキュアレベルでのリード動作のみが可能である。また、第1パーティション71に保存されるデータに対する暗号化動作は不要である。
第2エントリー62の有効性VALIDの値が1なので、ストレージ装置1500Cの第2パーティション72に該当する第2エントリー62の複数の値は有効である。第2パーティション72の領域は、開始アドレスである0010000に対応する領域から終了アドレスである00EFFFFFに対応する領域までの範囲を有する。第2パーティション72には、ユーザファイルシステムが保存され、第2パーティション72に対しては、非セキュアレベルでのリード動作とライト動作とがいずれも可能である。しかし、第2パーティション72に保存されるデータに対する暗号化動作は必要である。
第3エントリー63の有効性VALIDの値が1なので、ストレージ装置1500Cの第3パーティション73に該当する第3エントリー63の複数の値は有効である。第3パーティション73の領域は、開始アドレスである00F00000に対応する領域から終了アドレスである00FFFFFFに対応する領域までの範囲を有する。第3パーティション73には、セキュアOSファイルシステムが保存され、第3パーティション73に対しては、セキュアレベルでのリード動作とライト動作とがいずれも可能である。また、第3パーティション73に保存されるデータに対する暗号化動作は必要である。
図14は、図1及び図2のコンピュータシステムで使われるバッファデスクリプタの他の実施形態を示す概念図である。図15は、本発明の他の実施形態によるホストコントローラインターフェースのブロック図である。
図1及び図2を参照すると、互いに異なる第1アプリケーションと第2アプリケーションとがCPU1100によって同時に実行可能である。第1アプリケーションは、ストレージ装置1500の第1領域に第1データを暗号化して保存し、第2アプリケーションは、ストレージ装置1500の第2領域に第2データを暗号化して保存する。
この際、第1データは、第1領域に該当するセクターキーを用いて暗号化されて保存され、第2アプリケーションが、第1領域に該当するセクターキーを用いてデータに対する暗号化または復号化動作を実行する場合、第2アプリケーションは、第1アプリケーションによってアクセス可能なデータをリードすることができるプログラムを有する。
この問題点を克服するために、本発明の他の実施形態は、“共通”暗号化または“共通”デコーディングに対する許可を有する第1アプリケーションが、第2アプリケーションに関連するデータをリードすることを許可しないように、バッファデスクリプタにセキュリティキーを追加する。
図1、図3、及び図14を参照すると、バッファデスクリプタ20の構造は、図3で示したバッファデスクリプタ10と類似している。しかし、セキュリティキーフィールド25が、バッファデスクリプタ20のデータ構造に追加され、セキュリティキー25は、アプリケーションごとに異なって生成される。
図5のホストコントローラインターフェース1400Aは、データDATAの暗号化、及び前に暗号化されたデータDATA’の復号化のために、セクターキーSECTOR_KEYを使うが、本実施形態である図15のホストコントローラインターフェース1400Bは、データを暗号化するか、または復号化するために、セキュリティキーとしてPrivate_Keyを使用する。
図1及び図15を参照すると、ホストコントローラインターフェース1400Bは、ストレージコントローラ410、セキュリティ管理ユニット(SMU)420、データ保護器430、及びトランザクションタイプレジスタ440を含む。
ストレージコントローラ410は、ストレージ装置1500にアクセスされるデータを制御する。ストレージコントローラ410は、メインメモリ1200から出力されたバッファデスクリプタ(BD)に含まれるソースアドレスを用いてメインメモリ1210からデータをリードする。また、ストレージコントローラ410は、バッファデスクリプタ(BD)に含まれるセキュリティキーPrivate_Keyをデータ保護器430に出力する。
バッファデスクリプタ(BD)に含まれるセクター情報は、ストレージ装置1500に伝達されるセクターアドレスSECTRO_ADDと、セキュリティ管理ユニット420に伝達されるセクターキーSECTOR_KEYと、の生成に使われる。
セキュリティ管理ユニット420は、ストレージコントローラ410から提供されたセクターキーSECTOR_KEYに応答して、セキュリティポリシーテーブルの複数のエントリーのうちの何れか1つを選択し、該選択されたエントリーによって提示されたセキュリティポリシーに基づいてデータに対する暗号化動作の実行要否、または暗号化データに対する復号化動作の実行要否を決定する暗号化/復号化指示信号EDをデータ保護器430に出力する。
暗号化/復号化指示信号EDに応答して、データ保護器430は、ホストコントローラインターフェース1400Bを通じて、ストレージ装置1500に入出力されるデータに対する暗号化動作または復号化動作を実行する。
すなわち、データ保護器430は、セキュリテイ管理ユニット420から提供された暗号化/復号化指示信号EDに基づいて、暗号化動作、復号化動作、またはバイパス動作を行うか否かを決定する。
暗号化動作がライトデータに対して行われる時、データ保護器330は、ストレージコントローラ410から提供されたセキュリティキーPrivate_Keyを用いて暗号化動作を実行する。
この際、セキュリティキーPrivate_Keyは、アプリケーションごとに異なって設定または生成されるので、それぞれのアプリケーションは、他のアプリケーションのセキュリティキーPrivate_Keyが分からない。したがって、第1アプリケーションが暗号化されたストレージ領域1500に保存されたデータにアクセスしても、第2アプリケーションが暗号化されたストレージ領域1500にアクセスできる能力があっても、第2アプリケーションは、前記第1アプリケーションに関連したセキュリティキーPrivate_Keyが分からない。
このようなアクセス方法は、データストレージ資源を共通して使う場合にも、内部アプリケーションデータセキュリティを提供する。
図16及び図17は、図1及び図2のコンピュータシステムで使われるホストコントローラインターフェースの他の実施形態を示す個別的なブロック図である。
図5のセキュリティ管理ユニット320に対する記述と同一または類似した機能を実行する各セキュリティ管理ユニットは、各ホストコントローラインターフェース(1400Cまたは1400D)の内部に独立して具現可能である。他の例で、図5のセキュリティ管理ユニット320と同一または類似した機能を実行するセキュリティ管理ユニットは、ストレージコントローラまたはデータ保護器のうちの何れか1つの内部に具現することも可能である。
図1及び図16を参照すると、ホストコントローラインターフェース1400Cは、ストレージコントローラ510、データ保護器520、及びトランザクションタイプレジスタ530を含む。ストレージコントローラ510は、メインメモリ1200から出力されたバッファデスクリプタ(BD)に含まれるソースアドレスを用いてメインメモリ1200からデータをリードし、バッファデスクリプタ(BD)に含まれたセクター情報に応答して、セクターキーSECTOR_KEYをデータ保護器520に出力する。
ストレージコントローラ510は、ストレージ装置1500に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理するセキュリティ管理ユニット(SMU)511を含む。セキュリティ管理ユニット511は、バッファデスクリプタ(BD)に含まれるセクター情報に応答して、セキュリティポリシーテーブルの複数のエントリーのうちの何れか1つを選択する。セキュリティ管理ユニット511は、選択されたエントリーに含まれる保安政策セキュリティポリシーに基づいてデータに対する暗号化動作の要否を決定する暗号化/復号化指示信号EDをデータ保護器520に出力する。
図5のセキュリティ管理ユニット320の構造と機能は、図16のセキュリティ管理ユニット(SMU)511の構造と機能と実質的に同一である。
図5のトランザクションタイプレジスタ340と実質的に同じ機能を実行する図16のトランザクションタイプレジスタ530は、バッファデスクリプタ(BD)を生成するアプリケーションのセキュリティレベル情報を保存し、セキュリティレベル信号S/NSをストレージコントローラ510に伝送する。ストレージコントローラ510は、セキュリティレベル信号S/NSとセキュリティ管理ユニット(SMU)511とに含まれるセキュリティテーブルを参照して、ストレージ装置1500の特定領域に対するデータアクセスの有無を判断する。
図1及び図17を再び参照すると、ホストコントローラインターフェース1400Dは、ストレージコントローラ610とデータ保護器620とを含む。データ保護器620は、トランザクションタイプレジスタ621、セキュリティ管理ユニット(SMU)622、及びセキュリティエンジン(security engine)623を含む。
ストレージコントローラ610は、メインメモリ1200から出力されたバッファデスクリプタ(BD)に含まれるソースアドレスを用いて、メインメモリ1200からデータをリードし、バッファデスクリプタ(BD)に含まれるセクター情報に応答して、セクターキーSECTOR_KEYをデータ保護器620に出力する。ストレージコントローラ610は、リード動作またはライト動作を実行するためのアクセス動作信号R/Wをデータ保護器620に出力する。
データ保護器620は、ストレージ装置1500に含まれる複数の領域のそれぞれに対するセキュリティポリシーを管理するセキュリティ管理ユニット622(SMU)を含む。セキュリティ管理ユニット622は、セクターキーSECTOR_KEYに応答して、セキュリティポリシーテーブルの複数のエントリーのうちの何れか1つを選択し、該選択されたエントリーに含まれるセキュリティポリシーによってアクセス指示信号IAEをストレージコントローラ610に出力する。ストレージコントローラ610は、アクセス指示信号IAEに基づいてストレージ装置1500に対するデータのアクセスを制御する。
図18は、本発明の他の実施形態によるコンピュータシステムを示すブロック図である。図18を参照すると、コンピュータシステム3000は、携帯電話、スマートフォン、PDA、タブレットPC、モバイルインターネット装置(MID)、または無線通信装置として具現される。
コンピュータシステム3000は、バス3100に連結されたマイクロプロセッサ3200、キャッシュメモリ3210、ROM3300、メインメモリ3400、メインメモリコントローラ3410、ストレージ装置3500、ホストコントローラインターフェース3510、入出力コントローラ3610、入出力装置3600、ディスプレイ装置3700及びディスプレイコントローラ3710を含む。
マイクロプロセッサ3200は、コンピュータシステム3000の全体を制御する装置である。マイクロプロセッサ3200は、複数のコアを含むマルチコアプロセッサとして具現可能である。
キャッシュメモリ3210は、マイクロプロセッサ3200に近接して位置する。キャッシュメモリ3210は、相対的に速い動作速度を有するマイクロプロセッサ3200と相対的に遅い動作速度を有するメインメモリ3400との間で2つの装置3200と3400間のデータ処理速度をバッファリングするために使われる高速の記憶装置である。ROM3300は、読み取り専用記憶装置にブートコードなどを保存する。
メインメモリ(1200または2200)と実質的に同じ機能を行うメインメモリ3400は、DRAM、SRAM、またはモバイルDRAMなどとして具現される。メインメモリコントローラ(1300または2300)と実質的に同じ機能を行うメインメモリコントローラ3410は、メインメモリ3400を制御する。
ストレージ装置(1500または2500)と実質的に同じ機能を実行するストレージ装置3500は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、またはRAIDなどであり得る。
ストレージ装置3500は、不揮発性メモリ装置として具現され、不揮発性メモリ装置は、EPROM、EEPROM、フラッシュメモリ、PRAM、RRAM(登録商標)、NFGM(Nano Floating Gate Memory)、PoRAM(Polymer Random Access Memory)、MRAM、またはFeRAMなどを含む。
ホストコントローラインターフェース(1400または2400)と実質的に同じ機能を行うホストコントローラインターフェース3510は、ストレージ装置3500の領域別のセキュリティポリシーを管理する。セキュリティポリシーは、1つ以上のアプリケーションで使われるデータがセキュリティ上の敏感なデータである場合、マイクロプロセッサ3200で実行される他のアプリケーションによってアクセスできないように、1つ以上のアプリケーションで使われるデータを管理する。
ディスプレイコントローラ3710は、ディスプレイ装置3700の動作を制御する。入出力装置3700は、マイクロプロセッサ3200の動作を制御するための制御信号またはマイクロプロセッサ3200によって処理されたデータを入出力することができる装置であって、タッチパッドやコンピュータマウスのようなポインティング装置、キーパッド、またはキーボードとして具現可能である。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
10、20 バッファデスクリプタ
11、21 ソースアドレス
12、22 宛先アドレス
13、23 データ長
14、24 宛先ポインター
310、410、510、610 ストレージコントローラ
311 開始レジスタ
320、420、511、622 セキュリティ管理ユニット
321 テーブルアクセス制御ロジック
322 セクターアクセス制御テーブル
322A、322B、322C セキュリティポリシーテーブル
323 セクターアクセス制御ロジック
330、430、520、620 データ保護器
340、440、530、621 トランザクションタイプレジスタ
1000、2000、3000 コンピュータシステム
1100、2100 CPU
1110 セキュアCPU
1120 非セキュアCPU
1200、2200、3400 メインメモリ
1300、2300、3410 メインメモリコントローラ
1400、2400、1400A、1400B、1400C、1400D、3510 ホストコントローラインターフェース
1500、1500A、1500C、2500、3500 ストレージ装置
1510 暗号化領域
1520 非暗号化領域
2110 セキュアモード
2120 非セキュアモード
3100 バス
3200 マイクロプロセッサ
3210 キャッシュメモリ
3300 ROM
3600 入出力装置
3610 入出力コントローラ
3700 ディスプレイ装置
3710 ディスプレイコントローラ

Claims (19)

  1. メインメモリからセクター情報を含むバッファデスクリプタを受信する段階と
    前記バッファデスクリプタに含まれるソースアドレスを用いてデータをフェッチする段階と、
    前記セクター情報を用いてセキュリティポリシーテーブルからエントリーを選択する段階と、
    前記選択されたエントリーによって定義されるセキュリティポリシーを用いて、前記フェッチされたデータを暗号化するか否かを決定する段階と、を有し、
    前記バッファデスクリプタは、ソースアドレス、宛先アドレス、データ長、及びセキュリティキーを含み、
    前記セキュリティキーを用いて前記フェッチされたデータを暗号化する段階をさらに含むことを特徴とするホストコントローラインターフェースの動作方法。
  2. 前記バッファデスクリプタは、前記セクター情報によって指示されるストレージ装置の領域にアクセスするアプリケーションによって生成されることを特徴とする請求項1に記載のホストコントローラインターフェースの動作方法。
  3. 比較結果を生成するために、前記選択されたエントリーに対するセキュリティレベル情報と前記アプリケーションに対するセキュリティレベル情報とを比較する段階と、
    前記セキュリティレベル情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことを特徴とする請求項2に記載のホストコントローラインターフェースの動作方法。
  4. 比較結果を生成するために、前記選択されたエントリーに対するアクセス動作情報と前記フェッチされたデータに対する入/出力動作情報とを比較する段階と、
    前記動作情報の比較結果に応答して、前記セクター情報によって指示されるストレージ装置の領域に前記データをライトするか否かを判断する段階と、をさらに含むことを特徴とする請求項2に記載のホストコントローラインターフェースの動作方法。
  5. 前記セキュリティポリシーテーブルは、前記メインメモリに保存されることを特徴とする請求項1に記載のホストコントローラインターフェースの動作方法。
  6. バッファデスクリプタに含まれるソースアドレスを用いてメインメモリからデータをリードし、前記バッファデスクリプタに含まれるセクター情報に応答してセクターキーを出力するストレージコントローラと、
    前記セクターキーに応答してセキュリティポリシーテーブルからエントリーを選択し、該選択されたエントリーに対応するセキュリティポリシーを定義する第1制御信号を出力するセキュリティ管理ユニットと、
    前記第1制御信号に応答して、前記データに対して暗号化動作を行うか否かを決定するデータ保護器と、を備え、
    前記セキュリティポリシーテーブルは、それぞれがストレージ装置の複数の領域のうちの少なくとも1つに対して対応するセキュリティポリシーを定義する複数のエントリーを含み、
    前記データ保護器は、前記第1制御信号と前記バッファデスクリプタに含まれるセキュリティキーとに応答して、前記暗号化動作を実行することを特徴とするホストコントローラインターフェース。
  7. 前記データ保護器は、前記第1制御信号及び前記セクターキーに応答して、前記暗号化動作を実行することを特徴とする請求項に記載のホストコントローラインターフェース。
  8. 前記バッファデスクリプタを生成するアプリケーションに対するセキュリティレベル情報を保存し、前記セキュリティレベル情報を表わすセキュリティレベル信号を前記セキュリティ管理ユニットに出力するトランザクションタイプレジスタをさらに含むことを特徴とする請求項に記載のホストコントローラインターフェース。
  9. 前記セキュリティ管理ユニットは、
    前記メインメモリから前記セクター情報及び前記セキュリティレベル信号を受信し、前記選択されたエントリーに含まれるセキュリティレベル情報と前記セキュリティレベル信号とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第2制御信号を出力することを特徴とする請求項に記載のホストコントローラインターフェース。
  10. 前記セキュリティ管理ユニットは、
    前記セクター情報と前記ストレージコントローラから出力されたアクセス動作信号とを受信し、前記選択されたエントリーに含まれるアクセス動作情報とデータアクセス動作情報とを比較し、該比較結果によって、前記ストレージ装置の特定領域に対するアクセスを許可するか否かを指示する第2制御信号を出力することを特徴とする請求項に記載のホストコントローラインターフェース。
  11. 前記セキュリティ管理ユニットは、
    前記ストレージ装置の第1領域に対する第1セキュリティポリシーを定義する第1エントリー及び前記ストレージ装置の第2領域に対する第2セキュリティポリシーを定義する第2エントリーが保存されたセキュリティポリシーテーブルと、
    前記バッファデスクリプタに含まれるセクター情報に応答して、前記第1エントリー及び前記第2エントリーのうちの何れか1つを選択し、前記第1セキュリティポリシーまたは前記第2セキュリティポリシーによってデータを暗号化するか否かを指示する前記第1制御信号を提供するセクターアクセス制御ロジックと、を備えることを特徴とする請求項6に記載のホストコントローラインターフェース。
  12. 前記セキュリティ管理ユニットは、
    セキュアCPUによって提供されたテーブルアップデート命令に応答して、前記第1セキュリティポリシー及び前記第2セキュリティポリシーのうちの何れか1つを変更するテーブルアクセス制御ロジックをさらに含むことを特徴とする請求項11に記載のホストコントローラインターフェース。
  13. 前記第1セキュリティポリシー及び前記第2セキュリティポリシーのうちの何れか1つは、セキュリティレベル情報及びアクセス動作情報のうちの少なくとも1つを含むことを特徴とする請求項11に記載のホストコントローラインターフェース。
  14. 前記セクターアクセス制御ロジックは、セクター情報及びセキュリティレベル情報を受信し、前記選択された第1又は第2エントリーに対するセキュリティレベル情報と実行中のアプリケーションに対するセキュリティレベル情報とを比較し、前記ストレージ装置の第1又は第2領域に対するアクセスを許可する第2制御信号を出力することを特徴とする請求項13に記載のホストコントローラインターフェース。
  15. 前記セクターアクセス制御ロジックは、セクター情報及びアクセス動作信号を受信し、前記選択された第1又は第2エントリーに対するアクセス動作情報とデータアクセス動作情報とを比較し、前記ストレージ装置の第1又は第2領域に対するアクセスを許可する第2制御信号を出力することを特徴とする請求項13に記載のホストコントローラインターフェース。
  16. 前記セキュリティ管理ユニットは、ホストコントローラインターフェースの内部に具現されることを特徴とする請求項11に記載のホストコントローラインターフェース。
  17. 複数の領域を含むストレージ装置と、
    前記複数の領域のうちの1つの領域をアクセスするアプリケーションが実行される間にバッファデスクリプタを生成するCPUと、
    前記バッファデスクリプタ及びデータを保存するメインメモリと、
    前記バッファデスクリプタに含まれるソースアドレスを用いて前記メインメモリから前記データをリードし、セクター情報に応答して複数のエントリーのうちの何れか1つを選択し、該選択されたエントリーによって定義されたセキュリティポリシーに基づいて、前記データに対する暗号化動作を実行するか否かを決定するホストコントローラインターフェースと、を備え、
    前記ホストコントローラインターフェースは、
    前記ソースアドレスを用いて前記メインメモリから前記データをリードし、前記セクター情報に応答してセクターキーを出力するストレージコントローラと、
    前記セクターキーに応答して、前記選択されたエントリーを選択し、前記選択されたエントリーに定義されたセキュリティポリシーに応答して第1制御信号を出力するセキュリティ管理ユニットと、
    前記第1制御信号に基づいて、前記データに対する暗号化動作を実行するか否かを決定するデータ保護器と、を含み、
    前記データ保護器は、前記第1制御信号と前記バッファデスクリプタに含まれるセキュリティキーとに応答して、前記暗号化動作を実行し、
    前記複数のエントリーのそれぞれは、前記ストレージ装置で前記複数の領域のそれぞれに対して異なるセキュリティポリシーを管理することを特徴とするコンピュータシステム。
  18. 前記ストレージ装置は、
    ハードディスクドライブ(HDD)、コンパクトディスク、ソリッドステートドライブ(SSD)、マルチメディアカード(MMC)、エンベデッドマルチメディアカード(eMMC)、及びユニバーサルフラッシュストレージ(UFS)のうちの何れか1つであることを特徴とする請求項17に記載のコンピュータシステム。
  19. 前記ストレージ装置と前記ホストコントローラインターフェースとは、シリアルATAインターフェースを通じて通信することを特徴とする請求項17に記載のコンピュータシステム。
JP2013218234A 2012-10-19 2013-10-21 セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム Active JP6298268B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120116890A KR102017828B1 (ko) 2012-10-19 2012-10-19 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들
KR10-2012-0116890 2012-10-19

Publications (2)

Publication Number Publication Date
JP2014086089A JP2014086089A (ja) 2014-05-12
JP6298268B2 true JP6298268B2 (ja) 2018-03-20

Family

ID=50437163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013218234A Active JP6298268B2 (ja) 2012-10-19 2013-10-21 セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム

Country Status (8)

Country Link
US (2) US9135459B2 (ja)
JP (1) JP6298268B2 (ja)
KR (1) KR102017828B1 (ja)
CN (1) CN103778075B (ja)
AU (1) AU2013242802B2 (ja)
DE (1) DE102013111339A1 (ja)
NL (1) NL2011611B1 (ja)
TW (1) TWI595379B (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355261B2 (en) 2013-03-14 2016-05-31 Appsense Limited Secure data management
US9215251B2 (en) * 2013-09-11 2015-12-15 Appsense Limited Apparatus, systems, and methods for managing data security
CN104063641B (zh) * 2014-06-23 2017-11-24 华为技术有限公司 硬盘安全访问控制方法和硬盘
CN105528306B (zh) * 2014-09-28 2019-01-25 宇龙计算机通信科技(深圳)有限公司 一种双系统终端的数据读写方法及双系统终端
CN105653467A (zh) * 2015-05-21 2016-06-08 宇龙计算机通信科技(深圳)有限公司 一种存储空间分配方法及装置
CN106533652A (zh) * 2015-09-15 2017-03-22 中兴通讯股份有限公司 一种基于xts-sm4的存储加解密方法及装置
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
KR102353058B1 (ko) * 2016-02-02 2022-01-20 삼성전자주식회사 시스템 온 칩 및 그것의 동작 방법
DE102016210788B4 (de) 2016-02-18 2023-06-07 Volkswagen Aktiengesellschaft Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
US10891396B2 (en) * 2016-05-27 2021-01-12 Samsung Electronics Co., Ltd. Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same
US10133505B1 (en) * 2016-09-29 2018-11-20 EMC IP Holding Company LLC Cooperative host and data storage system services for compression and encryption
JP2018088165A (ja) * 2016-11-29 2018-06-07 日本電産サンキョー株式会社 カードリーダ及びカードリーダの制御方法
US10936211B2 (en) * 2017-09-07 2021-03-02 Arm Ip Ltd Optimized storage protection
JP6762924B2 (ja) * 2017-12-01 2020-09-30 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US10936212B2 (en) * 2018-01-04 2021-03-02 Montage Technology Co., Ltd. Memory controller, method for performing access control to memory module
US10983711B2 (en) * 2018-01-04 2021-04-20 Montage Technology Co., Ltd. Memory controller, method for performing access control to memory module
CN110059028A (zh) * 2018-01-17 2019-07-26 瑞昱半导体股份有限公司 数据储存芯片及数据存取方法
EP3540618B1 (en) * 2018-03-15 2023-01-25 Rohde & Schwarz GmbH & Co. KG Portable storage apparatus
JP2021517409A (ja) * 2018-03-23 2021-07-15 マイクロン テクノロジー,インク. ストレージデバイスの認証修正
DE112019002587T5 (de) * 2018-05-23 2021-05-06 Microsemi Storage Solutions, Inc. Verfahren und vorrichtung für eine streu-/sammelverarbeitungsmaschine in einer speichersteuerung für zwischenspeicherungsanwendungen
US11288404B2 (en) 2019-06-14 2022-03-29 Infineon Technologies Ag Resource protection
JP7246032B2 (ja) * 2019-07-12 2023-03-27 パナソニックIpマネジメント株式会社 車載セキュアストレージシステム
TWI791138B (zh) * 2019-09-12 2023-02-01 新唐科技股份有限公司 序列周邊介面快閃記憶體之安全裝置
US11582607B2 (en) 2020-07-10 2023-02-14 Western Digital Technologies, Inc. Wireless security protocol
KR20220041586A (ko) 2020-09-25 2022-04-01 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 전자 시스템

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4713753A (en) * 1985-02-21 1987-12-15 Honeywell Inc. Secure data processing system architecture with format control
US5787169A (en) 1995-12-28 1998-07-28 International Business Machines Corp. Method and apparatus for controlling access to encrypted data files in a computer system
JPH1153263A (ja) 1997-07-31 1999-02-26 T I F:Kk メモリ管理方式
DE19805299A1 (de) * 1998-02-10 1999-08-12 Deutz Ag Elektronische Regeleinrichtung
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
KR20000026335A (ko) * 1998-10-20 2000-05-15 윤종용 실시간 제어가 가능한 다중 채널 직접 메모리 액세스 시스템
US6151664A (en) * 1999-06-09 2000-11-21 International Business Machines Corporation Programmable SRAM and DRAM cache interface with preset access priorities
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US20040064723A1 (en) * 2001-10-31 2004-04-01 Barnes Brian C. Method and apparatus for physical address-based security to determine target security
AU2003201838A1 (en) * 2002-04-01 2003-10-23 Sony Corporation Reproducing method, reproducing apparatus, and data accessing method
TWI225647B (en) * 2002-04-01 2004-12-21 Sony Corp Recording method and apparatus, and editing method apparatus
US6851056B2 (en) 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
CN1276363C (zh) * 2002-11-13 2006-09-20 深圳市朗科科技有限公司 借助半导体存储装置实现数据安全存储和算法存储的方法
US7152942B2 (en) * 2002-12-02 2006-12-26 Silverbrook Research Pty Ltd Fixative compensation
JP2005056305A (ja) 2003-08-07 2005-03-03 Matsushita Electric Ind Co Ltd メモリ領域に分割領域を持つ情報記憶装置
US7631181B2 (en) * 2003-09-22 2009-12-08 Canon Kabushiki Kaisha Communication apparatus and method, and program for applying security policy
US20060149918A1 (en) 2004-12-30 2006-07-06 Rudelic John C Memory with modifiable address map
US8161524B2 (en) 2005-01-13 2012-04-17 Samsung Electronics Co., Ltd. Method and portable storage device for allocating secure area in insecure area
JP4791741B2 (ja) * 2005-03-16 2011-10-12 株式会社リコー データ処理装置とデータ処理方法
US7716720B1 (en) * 2005-06-17 2010-05-11 Rockwell Collins, Inc. System for providing secure and trusted computing environments
US7734933B1 (en) * 2005-06-17 2010-06-08 Rockwell Collins, Inc. System for providing secure and trusted computing environments through a secure computing module
US8127145B2 (en) * 2006-03-23 2012-02-28 Harris Corporation Computer architecture for an electronic device providing a secure file system
US8352999B1 (en) * 2006-07-21 2013-01-08 Cadence Design Systems, Inc. Method for managing data in a shared computing environment
US20080072070A1 (en) * 2006-08-29 2008-03-20 General Dynamics C4 Systems, Inc. Secure virtual RAM
JP2008059245A (ja) 2006-08-31 2008-03-13 Yoshikawa Rf System Kk データキャリア及びデータキャリアシステム
JP2008077366A (ja) * 2006-09-21 2008-04-03 Hitachi Ltd 記憶制御装置及び記憶制御装置の暗号化機能制御方法
JP2008090519A (ja) 2006-09-29 2008-04-17 Toshiba Corp 記憶装置
JP2008129803A (ja) 2006-11-20 2008-06-05 Cnac Ltd ファイルサーバ、プログラム、記録媒体及び管理サーバ
JP4854483B2 (ja) * 2006-11-30 2012-01-18 キヤノン株式会社 データ入出力装置
JP2009110275A (ja) 2007-10-30 2009-05-21 Sharp Corp 表示入力装置及びその視差補正方法
KR101484110B1 (ko) 2008-02-29 2015-01-28 삼성전자주식회사 메모리 컨트롤러 및 그에 따른 메모리 장치
US20110035783A1 (en) * 2008-03-03 2011-02-10 Hiroshi Terasaki Confidential information leak prevention system and confidential information leak prevention method
KR100945181B1 (ko) 2008-03-26 2010-03-03 한양대학교 산학협력단 파일명을 이용하여 데이터를 보호하는 저장 시스템, 미들시스템 및 데이터 관리 방법
WO2009156402A1 (en) * 2008-06-24 2009-12-30 Nagravision S.A. Secure memory management system and method
US8272028B2 (en) * 2008-10-15 2012-09-18 Ricoh Company, Ltd. Approach for managing access to electronic documents on network devices using document retention policies and document security policies
US9104618B2 (en) 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
JP2010267240A (ja) 2009-04-16 2010-11-25 Toshiba Corp 記録装置
JP5465920B2 (ja) * 2009-05-14 2014-04-09 キヤノン電子株式会社 情報処理装置、制御方法、コンピュータプログラム及び記憶媒体
JP5592293B2 (ja) 2010-03-12 2014-09-17 パナソニック株式会社 不揮発性記憶装置、アクセス装置及び不揮発性記憶システム
WO2012141540A2 (ko) 2011-04-13 2012-10-18 씨제이제일제당 (주) 바이러스 감염 억제 활성을 갖는 신규 분리한 락토바실러스 퍼멘텀 균주

Also Published As

Publication number Publication date
NL2011611B1 (en) 2017-05-23
DE102013111339A1 (de) 2014-04-24
AU2013242802A1 (en) 2014-05-08
US9135459B2 (en) 2015-09-15
CN103778075A (zh) 2014-05-07
KR102017828B1 (ko) 2019-09-03
US20140115656A1 (en) 2014-04-24
CN103778075B (zh) 2017-01-18
TWI595379B (zh) 2017-08-11
JP2014086089A (ja) 2014-05-12
NL2011611A (en) 2014-04-23
AU2013242802B2 (en) 2018-05-31
US20150356308A1 (en) 2015-12-10
TW201428536A (zh) 2014-07-16
US9785784B2 (en) 2017-10-10
KR20140067180A (ko) 2014-06-05

Similar Documents

Publication Publication Date Title
JP6298268B2 (ja) セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム
KR102107711B1 (ko) 처리 시스템에서의 직접 메모리 액세스 인가
US9342466B2 (en) Multiple volume encryption of storage devices using self encrypting drive (SED)
KR101378639B1 (ko) 프로세서 메인 메모리의 메모리 콘텐츠를 위한 보안 보호
KR102176612B1 (ko) 보안 서브시스템
US10331457B2 (en) Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
US9152825B2 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
KR102208072B1 (ko) 데이터 처리 시스템
KR20180030246A (ko) 계산 메모리에서의 실행 파일의 암호화
KR102223819B1 (ko) 자기 암호화 드라이브를 위한 가상 밴드 집중
JP2022522595A (ja) ホストベースのフラッシュメモリメンテナンス技術
US11783055B2 (en) Secure application execution in a data processing system
Lee et al. FESSD: A fast encrypted ssd employing on-chip access-control memory
US11232210B2 (en) Secure firmware booting
JP2023039697A (ja) メモリシステム
US20240220667A1 (en) Storage device and computing device including the same
KR20230056920A (ko) 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법
KR20230064538A (ko) 메모리 컨트롤러 및 스토리지 장치
TWI424330B (zh) Limit the way files are accessed
TW202036349A (zh) 電腦系統及其虛擬硬碟的加解密方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171129

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: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180223

R150 Certificate of patent or registration of utility model

Ref document number: 6298268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250