JP6317461B2 - シングルデータブラックホール処理方法及び計算デバイス - Google Patents

シングルデータブラックホール処理方法及び計算デバイス Download PDF

Info

Publication number
JP6317461B2
JP6317461B2 JP2016550550A JP2016550550A JP6317461B2 JP 6317461 B2 JP6317461 B2 JP 6317461B2 JP 2016550550 A JP2016550550 A JP 2016550550A JP 2016550550 A JP2016550550 A JP 2016550550A JP 6317461 B2 JP6317461 B2 JP 6317461B2
Authority
JP
Japan
Prior art keywords
instruction
address
data
black hole
storage
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
JP2016550550A
Other languages
English (en)
Other versions
JP2017514195A (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.)
Antaios (beijing) Information Technology Co Ltd
Antaios Beijing Information Technology Co Ltd
Original Assignee
Antaios (beijing) Information Technology Co Ltd
Antaios Beijing Information Technology 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 Antaios (beijing) Information Technology Co Ltd, Antaios Beijing Information Technology Co Ltd filed Critical Antaios (beijing) Information Technology Co Ltd
Publication of JP2017514195A publication Critical patent/JP2017514195A/ja
Application granted granted Critical
Publication of JP6317461B2 publication Critical patent/JP6317461B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/602Providing cryptographic facilities or services
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明はコンピュータセキュリティ分野に繋がり、特にシングルデータブラックホール処理方法に関る。
電子情報セキュリティ分野はシステムセキュリティ、データセキュリティ、デバイスセキュリティを含む3種類サブ分野が有る。
データセキュリティ分野は、以下3種類の技術は利用しデータセキュリティを確保する:
(1)データ内容セキュリティは、データ暗号化復号化技術、ポイントツーポイントデータ暗号化技術を含む、ストレージと伝送過程にデータの不法読みを避けることを確保する;
(2)データセキュリティ移送技術は、不法コピー、プリント及び別の出力を防止することを含む、使用と移送過程中のデータセキュリティを確保する;
(3)ネット阻隔技術は、ネット物理阻隔とネットバリア技術を含む。
関連分析により、コンピュータに対する全て危害は極めて50%ぐらいまで有効に検出できる;検出技術はカーネルウイルス、トロイ木馬、OS抜け道、システムバックドア及び人工リークに対して能力不足だから、事実に任意計算デバイス(コンピュータ、ノートパソコン、ハンドヘルド通信デバイスなど)には悪意コードが存在可能である。
悪意コードはターミナルシステムに侵入すれば、前記の暗号化技術、コピー防止技術及びネット阻隔技術は無用になる。既存のハック技術はシステム抜け道又はシステムバックドアを利用して前記セキュリティ技術を透過し、システムに悪意コードをインプラントしてユーザデータを取得できる。前記技術は機密人員の主動とパッシブリークを全然防犯できない、例えば、内部人員は携帯ストレージデバイスを利用してイントラネット又はターミナルからダウンロードした資料をストレージする、デバイスを取り出して、内部リークとする;又は例えば、内部人員は直接に計算デバイスを取り出す。
以上のとおり、コピー防止技術は機密情報の不法ストレージされることを保証できない。ネットフィルタ技術は機密情報の失いを確保できない。機密人員は悪意コード又は悪意ツールを利用してリークする、そして、機密デバイス又はストレージメディアをコントロールできずにリークする可能がある。
本発明の目的はシングルデータブラックホール処理方法及び計算デバイスを提供し、データセキュリティを上げる。
本発明の一方機能はシングルデータブラックホール処理方法を提供する。以下の機能を含む:計算デバイスにデータブラックホールシステムを配置してデータブラックホールターミナルをなせる;データブラックホールシステムは計算デバイス実行中の中間データと実行結果を特定なストレージ位置に保存して計算デバイスの正常運行を確保する;データブラックホール空間をビルドすることは、計算デバイスにローカルデータストレージ区域を開き、当データ区域はデータブラックホールシステムだけがアクセスできる、OSとアプリケーションはアクセスできないことを含む;計算デバイスのユーザとデータブラックホールの空間又は一部空間に対応関係をビルドする;ユーザがデータブラックホールターミナルに対するデータライト操作はデータブラックホール空間に導く;データブラックホール空間外のストレージデバイスにデータをパーシスタンス操作を阻止する、ローカルポートでデータブラックホール空間外に向くデータ出力を阻止することで、データブラックホールターミナル或いは空間に進入するデータはデータブラックホール空間だけに存在することを保証する。
本発明のもう一方機能は、計算デバイスを提供する、下述の機能を含む:シングルデータセキュリティアクセスユニット、計算デバイスの相互独立のローカルストレージ空間とセキュリティストレージ空間、セキュリティストレージ空間はOS及びOS以上のアプリケーションが使用不可であり、シングルデータセキュリティアクセスユニットだけがアクセスできる;シングルデータセキュリティアクセスユニットはハードウエア命令の受信ユニットである;命令分析ユニットは、ハードウエア命令がストレージ又はリード命令か判断する;命令改修ユニットは、ハードウエア命令がストレージ命令と判断すれば、以上のストレージ命令中の宛先アドレスをセキュリティストレージ空間の対応ストレージアドレスに改修する;ハードウエア命令がリード命令であれば、マッピングビットマップにサーチして、マッピングビットマップによりリード命令のリードアドレスを改修する、ここで、マッピングビットマップはローカルストレージ空間のアドレスの対応データがセキュリティ空間に転送したかどうかを示す;送信ユニットは、改修後のリード又はストレージ命令をハードウエアに送信して実行することに適する。
前記方法とデバイスはデータセキュリティを上げる。具体的に、ブラックホール空間はユーザと対応する。ハッカーは抜け道、バックドア、木馬など悪意コードでデータ権限を取得してからデータのコピー、ストレージ、送信、インターセプトができる。然し、周辺デバイス、ポート、ユーザ、ターミナルに送信するデータをユーザが対応するデータブラックホールに導き、データブラックホール内に完成する。すべてのデータ盗み、インターセプト、出力など操作はデータブラックホール内に実行する。データアクセス権限がある機密人員はデータのプライベート保存、プライベートバックアップ、送信、出力を試すとき、データ処理操作は全てデータブラックホール空間内に完成し、悪意操作を利用するリークができない。
既存の計算デバイスのシステム階層見取り図である。 本発明の一つ実施例が提供するランタイム命令再構築方法のフローチャートである。 本発明の一つ実施例が提供する再構築命令セグメントの作成過程見取り図である。 本発明の他の実施例の図2が有るステップS102のフローチャートである。 本発明の他の実施例の実行命令再構築方法のフローチャートであり、アドレス対応テーブルにより再構築後の命令セグメントを保存する 本発明の他の実施例が提供するランタイム命令再構築方法のフローチャートであり、単独なストレージ位置を開いて第一プログラムの偏移命令宛先アドレスを保存する。 本発明の他の実施例が提供するランタイム命令再構築方法のフローチャートであり、非固定長の命令集合に対する逆アセンブルとアセンブル処理である。 本発明の他の実施例の実行命令再構築方法のフローチャートであり、プッシュ命令は第一プログラム偏移命令を置き換える又はレコードする。 本発明の他の実施例が提供するランタイム命令再構築方法のフローチャートであり、ランタイム命令再構築方法は前記マルチ実行例の特徴を総合する。 図9aの再構築方法の、X86系プロセッサでのランタイム操作過程の模式図である。 図9aの再構築方法の、X86系プロセッサでのランタイム操作過程の模式図である。 図9aの再構築方法の、X86系プロセッサでのランタイム操作過程の模式図である。 本発明の一つ実施例が提供するランタイム命令再構築装置結構見取り図である。 本発明の他の実施例が提供するランタイム命令再構築装置結構見取り図である。 本発明の他の実施例が提供する命令再構築ユニット結構見取り図である。 本発明の他の実施例が提供するランタイム命令再構築装置結構見取り図である。 本発明の他の実施例が提供するランタイム命令再構築装置結構見取り図である。 本発明の一つ実施例中の計算デバイスのシステム階層見取り図である。 本発明の一つ実施例中のデータセキュリティアクセス過程の初期化過程見取り図である。 本発明の一つ実施例中のビットマップ見取り図である。 本発明の一つ実施例が提供するデータセキュリティストレージ方法のフローチャートである。 本発明の一つ実施例が提供するデータセキュリティストレージ方法のフローチャートである。 本発明の一つ実施例が提供するデータセキュリティストレージ方法のフローチャートである。 本発明の一つ実施例が提供するデータセキュリティストレージ方法のフローチャートである。 本発明の一つ実施例中のネット環境見取り図である。 本発明の一つ実施例が提供するデータセキュリティストレージ装置結構見取り図である。 本発明の一つ実施例が提供するデータセキュリティリード装置結構見取り図である。 本発明の一つ実施例が提供するデータセキュリティストレージと読み装置結構見取り図である。 本発明の一つ実施例が提供するデータセキュリティストレージとリード装置結構見取り図である。 本発明の他の実施例が提供するデータブラックホール空間見取り図である。 本発明の一つ実施例が提供するデータブラックホール処理方法フローチャートである。 本発明の一つ実施例が提供する計算デバイスのアーキテクチャ見取り図であり、中にシングルデータセキュリティストレージとリードの方法を表示する。 本発明の一つ実施例が提供するシングルデータセキュリティストレージとリード装置結構見取り図である。 本発明の一つ実施例が提供するシングルデータブラックホール処理方法である。
本発明の目的、技術法案とメリットをもっとはっきりするために、図面を結合し、本発明を詳細に説明する。本文に描写する具体例は僅かに本発明の解釈に適用する、本発明に限定することではない、この状況を理解はずである。
分析
図1は既存の計算デバイスのシステム階層見取り図であり、上から下まで、計算デバイスは:
ユーザインタフェイスレイヤー101、アプリレイヤー102、OSカーネルレイヤー103、ハードウエアマッピングレイヤー104、及びハードウエアレイヤー105を含む。
ここで、ユーザインタフェイスレイヤー101はユーザとデバイスのインタフェイス、ユーザは当レイヤーを利用してデバイス(デバイスの他レイヤー、例えば、アプリレイヤー102)と交互する。アプリレイヤー102はアプリソフトウエアレイヤーである。
OSカーネルレイヤー103は一つのソフトウエアロジックレイヤーであり、通常にいえばソフトウエアデータとソフトウエアコードからなる、インタフェイスレイヤー101とアプリレイヤー102により、OSカーネルレイヤー103のコードは高い権限を持ち、コンピュータシステムの各種ハードウエアとソフトウエア資源を完全操作できる。
ハードウエアマッピングレイヤー104はソフトウエアによるロジックレイヤーであり、通常にOSカーネルレイヤーに実行し、カーネルレイヤーと同じ権限を持つ。ハードウエアマッピングレイヤーは主に各種類のハードウエアの操作モードを統一的に上層インタフェイスにマップする、各ハードウエアの特殊性を上層にシールドする。一般的には、ハードウエアマッピングレイヤーはOSカーネルレイヤー103に使用されて各種ハードウエアの操作を完成する。
ハードウエアレイヤー105はコンピュータシステムの全てハードウエア構成部件である。
データ保存操作を例として以上の計算デバイスのシステムレイヤーの作業過程を説明する。以下を含む:
(1)ユーザインタフェイスレイヤー101を利用してユーザは「保存」機能を実行する;
(2)アプリレイヤー102は対応コードをコールし、以上のユーザ操作をOSが提供するインタフェイス関数(例えば、Win32プラットフォームのアプリプログラムインタフェイス――Win32 API)に転換する、即ち「保存」操作をOSカーネル103が有るAPIコールに転換する。
(3)OSカーネルレイヤー103は全てOSインタフェイス関数をハードウエアマッピングレイヤー104のインタフェイス関数に転換する;即ち、「保存」操作をハードウエアマッピングレイヤー104のインタフェイス関数に転換する。
(4)ハードウエアマッピングレイヤー104は全てインタフェイス関数をハードウエア命令コールに転換する。
(5)ハードウエアレイヤー105(例えばCPU)は以上のハードウエア命令コールを受信してハードウエア命令を実行する。
悪意コードは当計算デバイスに侵入してから、計算デバイスに欲しいデータを取得できる、データ盗み後の動作は以下モードが有る:
(1)ストレージ動作:目標データ内容をあるストレージ位置に保存する;
(2)伝送動作:盗みデータをネットに指定の宛先アドレスに直接転送する。
別に、以上の計算デバイス又は情報デバイスを使用する人員の内部リーク動作は以下モードが有る:
(1)主動リーク:機密人員は主動コピー、悪意ツールでセキュリティシステムに透過し、木馬インプラントなど手段を利用して機密データを取得してから、リークする;
(2)パッシブリーク:機密人員が使用するパソコン又はストレージメディアが保管不善のために落とす又は不当使用(例えば、機密デバイスはインターネットと直接に接続する)するからリークする。
以上のマルチリーク方式により当計算デバイスのデータセキュリティを保障できない。
発明人の研究により、コンピュータの実行過程、ここで、一つのCPUアドレスレジスタは次に実行するマシン命令アドレスを保存する、例えばPC(プログラムカウンタ)である。当レジスタのデータを獲得し、該データが指すアドレスにより、後続一条又はマルチ実行可能の命令を読取り、ランタイムのマシン命令を獲得する目的が実現できる。
そして、述べた一つ又はマルチマシン命令からなるディスパッチ待ち命令セグメントを改修し(例えば、中に別のプログラム偏移命令を挿入する、本文は命令再構築と呼ぶ)、当命令セグメントが実行終了する前にCPU実行権限をやはり取得し、再度後続一条ディスパッチ待ち命令セグメントを捕獲する、ランタイムのマシン命令を連続捕獲する目的を実現できる。
そして、ディスパッチ待ち命令セグメントを獲得してから中のマシン命令を分析して処理することができる、ランタイム命令捕獲、再構築することだけでなく、予定の目標命令を管理できる。
命令再構築又は命令追跡
前記分析と発見により、本発明の一つ実施例の中があるランタイム命令再構築方法を提供する、当方法が実行する時に再構築プラットフォームと呼ぶ。図2のとおり、当方法S100は以下を含む:
S101、命令実行環境をキャッシュする;述べた命令実行環境はアドレスレジスタを含む。アドレスレジスタは次に実行するマシン命令アドレスを保存する、当アドレスは第一アドレスである;
S102、ディスパッチ待ち命令セグメントを獲得する;ここで、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令(例えば、第一ジャンプ命令)である;
S103、述べた第一プログラム偏移命令の前に第二プログラム偏移命令を挿入し、第二アドレスがある再構築命令セグメントを作成する;述べた第二プログラム偏移命令は命令再構築プラットフォームのエントリアドレスに指す、第二プログラム偏移命令が実行する後に、ステップS101を実行する;
S104、述べたアドレスレジスタ中の第一アドレスを第二アドレスに改修する;及び
S105、述べた命令実行環境に回復する。
ここで、ステップS101が述べた命令実行環境をキャッシュすることは:キャッシュスタックにCPUマシン命令実行関連のレジスタデータをプッシュする、ことを含める。
本発明の他の実施例の中に、命令実行環境をキャッシュ又は保存することは特定的、デフォルト的な別キャッシュデータストラクチャーとアドレスの中に進行できる。
ステップS101中に述べたアドレスレジスタはプログラムカウンタ(PC)である。
ステップS102中に、ディスパッチ待ちマシン命令セグメントの中に一つプログラム偏移命令だけがある、ディスパッチ待ちマシン命令セグメントは述べた第一プログラム偏移命令及びその前の全てディスパッチ待ちマシン命令を含む。
ステップS103中に、述べたディスパッチ待ちマシン命令セグメントの最後一条命令(即ち、第一プログラム偏移命令、JP1と呼ぶ)前に、第二プログラム偏移命令(JP2と呼ぶ)を挿入する、述べたJP2は命令再構築プラットフォームのエントリアドレスに指す、第二アドレス(A”と示す)を含む再構築命令セグメントを作成する。
第二プログラム偏移命令を挿入することは、CPUが述べたディスパッチ待ちマシン命令セグメントを実行する時、JP1に到着する前に、再度述べた命令再構築プラットフォーム実行を始める、それで、命令再構築プラットフォームは下一段のディスパッチ待ちマシン命令を分析続けて、本方法を重複することを利用して全てランタイム命令再構築を完成する。
ステップS105中に、述べた命令実行環境に回復することは以下を含める:
キャッシュスタックから命令実行と関連するのレジスタデータをポップする;アドレスレジスタの中に保存するプログラム偏移命令の宛先アドレスは、すでに第二アドレスA”に改修する、A”をエントリアドレスとする新マシン命令セグメントを作成する。
ステップS105が実行した後、述べた命令実行環境に回復し、命令再構築プラットフォームは一回に実行終了する、CPUは述べた再構築命令セグメントを実行し、即ち、CPUは第二アドレスA”がエントリアドレスとしてマシン命令セグメントの実行を予定する。再構築命令セグメントが第二プログラム偏移命令JP2を実行する時、述べた命令再構築プラットフォームが再びCPUコントロール権限を取得する(即ちステップS101を実行する)、この時、第一プログラム偏移命令の宛先アドレスがすでに取得する、当宛先アドレスが新しい第一アドレスとして、次に再度ステップS101〜ステップS105を実行する。
本実施例の中に、述べたランタイム命令再構築方法はX86アーキテクチャのCPUに実行する;本発明の他の実施例中に、述べたランタイム命令再構築方法はMIPSプロセッサまたはARMアーキテクチャのプロセッサに実行できる。本分野の普通技術者は、前記方法が計算デバイス中にある任意の別類型の命令プロセスユニットに実行できる、ことを理解できる。
図3を結合して命令再構築過程と再構築命令セグメントの作成過程をもっと詳細に説明する。
図3はディスパッチ待ちマシン命令集合401(例えば、すでにメモリにロードされたあるプログラムのマシン命令)を含み、ここで、命令4012は第一プログラム偏移命令である、もし命令4012の宛先アドレスは変数であれば、先に命令4012が命令4013に指すと仮定する;第一プログラム偏移命令4012以前(4012命令を含む)の全てディスパッチ待ちマシン命令はマシン命令セグメント4011(唯一なプログラム偏移命令を含む)を構成する。
命令再構築方法が実行する(命令再構築プラットフォームとなる)後、先ず命令実行環境をキャッシュする;次にマシン命令セグメント4011を獲得(例えばコピー)する;命令再構築プラットフォームは第一プログラム偏移命令4012の前に第二プログラム偏移命令4113を挿入する、第二プログラム偏移命令4113は再構築プラットフォームに指す、それで命令再構築セグメント4111を作成する、命令再構築セグメントのアドレスはA”である;キャッシュされた前記命令実行環境のアドレスレジスタの値AをアドレスA”に改修する;最後に前記命令実行環境に回復する。
命令再構築プラットフォーム411の実行が完了する後、CPUはA”アドレスが指した再構築命令セグメントを実行する、第二プログラム偏移命令4113の実行に到着する時、命令再構築プラットフォーム411が再度CPUコントロール権限を取得する。この時、第一プログラム偏移命令4012の宛先アドレス4013をすでに作成する、当宛先アドレスが新しい第一アドレスである、命令再構築プラットフォームは当宛先アドレスにより再度ステップS101〜S105の実行を開始する。ディスパッチ待ちマシン命令を分析続けて、ランタイム命令再構築方法を実現する。
本発明の他の実施例により、図4のように、ステップS102の中に、ディスパッチ待ちマシン命令セグメントの獲得は以下を含む:
S1021、アドレスレジスタ(例えばPC)からディスパッチ待ちマシン命令アドレスを取得する。
S1022, プログラム偏移命令(例えばジャンプ命令)を検索目的として、一番のプログラム偏移命令(第一プログラム偏移命令、例えば、第一ジャンプ命令)を発見するまでに、述べたマシン命令アドレスが指すマシン命令及び後続命令を検索する;述べたプログラム偏移命令はマシン命令順番実行フローを改変できるマシン命令指し、Jumpプログラム偏移命令、Call呼び出す命令、Return返還命令などを含む。
S1023、述べた第一プログラム偏移命令及びその前の全てディスパッチ待ちマシン命令をディスパッチ待ちマシン命令セグメントとして、当マシン命令セグメントを命令再構築プラットフォームに、又は、命令再構築プラットフォームが読み取りできる他のストレージ位置に保存する。
本発明の他の実施例の中に、非プログラム偏移命令(例えば、ライト命令、リード命令等)を検索目標としてディスパッチ待ちマシン命令セグメントを更にフラグメントしてディスパッチ待ちマシン命令セグメントを獲得する。こんな実施例の中に、ディスパッチプログラム偏移命令が実行する後、命令再構築プラットフォームは尚CPUコントロール又は実行権限を獲得することを保証するように、プログラム偏移命令が第二検索目標として、もっと細かいグラニュルのマシン命令セグメントを得ることが必要である。
本発明の他の実施例により、ステップS102とS103の間、述べたランタイム命令再構築方法が以下を含める:
命令集にディスパッチ待ちマシン命令セグメントをマッチすることを利用して目的マシン命令を得る;述べた命令集はX86、MIPSとARM命令集を含む;及び
予定方式により、述べた目標マシン命令を改修する。
ランタイム命令をモニターするだけでなく、別の処理過程もできる、後に関連実施例は詳細に紹介する。
更に、命令再構築方法の効率をアップするために、ステップS102の中には、固定アドレスプログラム偏移命令が指すディスパッチ待ちマシン命令を纏めて獲得できる。
本発明の他の実施例により、別のランタイム命令再構築方法を提供する、当方法S300は以下を含む:
S301、命令実行環境をキャッシュする;述べた命令実行環境はアドレスレジスタを含む、アドレスレジスタは次の実行マシン命令アドレスを保存する、当アドレスは第一アドレス;
S302、ディスパッチ待ちマシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である、当プログラム偏移命令はパラメタアドレスプログラム偏移命令となる;
S303、述べた第一プログラム偏移命令の前に、第二プログラム偏移命令を挿入して第二アドレスが有る再構築命令セグメントを作成する;述べた第二プログラム偏移命令が命令再構築プラットフォームのエントリアドレスとなる、即ち、第二プログラム偏移命令を実行する後、ステップS301を実行する;
S304、述べたアドレスレジスタ中の第一アドレスを第二アドレスに改修する;
S305、述べた命令実行環境に回復する。
前の実施例が提供する方法と比べてステップS302は区別がある:ディスパッチ待ちマシン命令セグメントはマルチプログラム偏移命令がある;そしてこのようなプログラム偏移命令がある一条プログラム偏移命令は第一プログラム偏移命令と呼ぶ。
説明する必要があるプログラム偏移命令は、パラメタアドレスプログラム偏移命令とコンスタントプログラム偏移命令の両種類である。コンスタントプログラム偏移命令のジャンプアドレスはコンスタント(イミディエイト)である、パラメタアドレスプログラム偏移命令のパラメタアドレスは通常にプログラム偏移命令前の一条マシン命令を計算してから得る。
類似に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;ディスパッチ待ちマシン命令セグメントは述べた第一プログラム偏移命令及び彼の前の全てディスパッチ待ちマシン命令を含む。
更に、プログラム実行中に作成したマシン命令の重複性が高いから、命令再構築方法の効率を上げて、計算デバイスのコンピューティング資源(例えばCPU資源)を省くために、少量のストレージ空間に再構築命令セグメントを保存することができる。
本発明の他の実施例により、ランタイム命令再構築方法が提供する。図5のように、当方法のS200は以下を含む:
S201、命令実行環境をキャッシュする;述べた命令実行環境はアドレスレジスタ(例えばPCレジスタ)を含む。アドレスレジスタは次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスと呼ぶ;一般的に言えば、命令実行環境はCPUの全てレジスタ(汎用レジスタ、ステイタスレジスタ、アドレスレジスタなど)を含む。
S202、第一アドレスによりアドレス対応テーブルにサーチする;述べたアドレス対応テーブルは第一アドレス(例えばAアドレス)が指すディスパッチ待ちマシン命令セグメントの中に保存された再構築命令セグメントがあるかどうかを示す。アドレス対応テーブルのデータはアドレスペア又は別形式にストレージした関連データができる;
S203、対応レコードがサーチすれば、述べた第一アドレスA(アドレスレジスタの値A)を保存した再構築命令セグメントのアドレス(例えばアドレスA‘)に改修する。
S204、対応レコードが見つからなければ、ディスパッチ待ちマシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令(例えば第一ジャンプ命令)である;
S205、述べた第一プログラム偏移命令に前に第二プログラム偏移命令を挿入して第二アドレスがある再構築命令セグメントを作成する;述べた第二プログラム偏移命令は命令再構築プラットフォームのエントリアドレスに指向する、即ち、第二プログラム偏移命令を実行する後、ステップS201を実行する;
S206、述べたアドレスレジスタ中の第一アドレスを第二アドレスに改修する;
S207、述べた命令実行環境に回復する。
更に、ステップS206はほかの内容を含む:第二アドレスA”と第一アドレスAによるアドレスペア(又は一条レコード)がアドレス対応テーブルにビルドする。アドレスA”がある再構築命令セグメントを再構築命令プラットフォームまたは再構築命令プラットフォームがアクセスできるメモリの中に保存して重複利用できる。
本方法はアドレス対応テーブルを利用して計算資源を省き、ランタイム命令再構築の効率を上げる。
前記再構築方法は、一般的にディスパッチ待ちマシン命令セグメント中に必要なプログラム偏移命令を挿入することを利用して完成する、本発明の他の実施例中に別方式を利用して再構築命令セグメントを作成することが完成できる。後に実施例を結合して詳細に紹介する。
本発明の他の実施例により、命令再構築方法が提供する、単独なストレージ位置を開き第一プログラム偏移命令の宛先アドレスを保存する。図6のように、当方法S110は以下を含む:
S111、命令実行環境をキャッシュする;
S112、第一ストレージ位置から宛先アドレスを読み取る、宛先アドレスによりディスパッチ待ち(即ち実行待ち)マシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令(例えば第一ジャンプ命令)である;
S113、第一ストレージ位置に第一プログラム偏移命令の宛先アドレスを保存する;
S114、第一プログラム偏移命令を第二プログラム偏移命令に変えて、第二アドレスがある再構築命令セグメントを作成する;述べた第二プログラム偏移命令は再構築命令プラットフォームが指す、即ち、第二プログラム偏移命令を実行した後、ステップS111を実行する;
S115、述べた命令実行環境に回復する、第二アドレスへジャンプして実行を続ける。
中に、ステップS112が獲得したディスパッチ待ちマシン命令セグメントは以下を含む:
S1121、プログラム偏移命令を検索目標として述べたマシン命令アドレスが指すマシン命令及び後続命令を最初のプログラム偏移命令(第一プログラム偏移命令と呼ぶ)が発見するまで検索する;
S1122、述べた第一プログラム偏移命令及び彼の前の全てディスパッチ待ちマシン命令をディスパッチ待ちマシン命令セグメントとして、命令再構築プラットフォームにまたは再構築命令プラットフォームがアクセスできる別のメモリ位置に保存する。
ステップS113の宛先アドレスはプログラム偏移命令の宛先アドレスパラメタとする、宛先アドレスはイミディエイト又は変数パラメタからなる、イミディエイトの場合値を保存する、変数パラメタの場合彼のアドレス/クォートを保存する。プロセッサがあるプログラム偏移命令を実行するとき、ジャンプ宛先アドレスを計算完了する。
本発明の他の実施例により、命令再構築方法が提供する、非固定長命令集をアセンブルと逆アセンブルする。図7のように、当方法は以下を含む:
S121、命令実行環境をキャッシュする;
S122、第一ストレージ位置から宛先アドレスを読み取る、宛先アドレスによりディスパッチ待ちのマシン命令セクションを獲得する、このマシン命令セクションを逆アセンブルする、逆アセンブル結果を字句アナライザに分析して中にプログラム偏移命令(例えばジャンプ命令)があるかどうかをマッチィングする、ない場合次セクションのディスパッチ待ちマシン命令を獲得する、プログラム偏移命令をマッチィングするまで前記操作を重複する、当プログラム偏移命令は第一プログラム偏移命令となる;ディスパッチ待ちマシン命令セグメントは第一プログラム偏移命令と彼の前の全て命令からなる。
第一ストレージ位置は次に実行するマシン命令アドレスを保存する;
S123、第一ストレージ位置に第一プログラム偏移命令の宛先アドレスを保存する。
S124、第一プログラム偏移命令を第二プログラム偏移命令に変えて第二アドレスの再構築命令セグメントを作成する、述べた第二プログラム偏移命令は再構築命令プラットフォームのエントリアドレスに指向する;本実施例中に、第一プログラム偏移命令と第二プログラム偏移命令はアセンブル命令である;
S125、作成した再構築アセンブルコードをアセンブラーで対応マシンコードを作成する;
S126、述べた命令実行環境に回復する、第二アドレスにジャンプして実行を続ける。
本発明の他の実施例により、命令再構築方法が提供する、第一プログラム偏移命令をプッシュ命令に置き換え、又は、第一プログラム偏移命令をレコードする。図8のように、当方法S130は以下を含む:
S131、命令実行環境をキャッシュする;
S132、ポップ操作でオペランドを獲得する、次に実行する命令アドレスを計算する、当アドレスは第一アドレスとする;プログラム偏移命令(例えばジャンプ命令)をスタックに保存する;
S133、第一アドレスによりディスパッチ待ち/実行マシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令とする;
S134、第一プログラム偏移命令をプッシュ命令に置き換え、プッシュ命令に第一プログラム偏移命令のアドレスとパラメタをレコードする;
S135、プッシュ命令の次に第二プログラム偏移命令を加える、第二プログラム偏移命令がある再構築命令セグメントを作成する;述べた第二プログラム偏移命令は命令再構築プラットフォームのエントリアドレスへ指向する;
S136、述べた命令実行環境に回復する、第二アドレスにジャンプして実行を続ける。
本分野の普通技術人員は理解できる、前記の各実施例が提供する功能又は特徴は実際の要求により同一の実施例に兼ね合せる、ここにその組合を一一に挙げない、次に一つ例を挙げて説明する。
本発明の他の実施例により、命令再構築方法が提供する、図9aのように、以下を含む:
(1)命令実行環境をキャッシュする;述べた命令実行環境は全てCPUレジスタを含む;ポップ操作でオペランドを獲得する、次に実行する命令のアドレス(第0アドレスと呼ぶ)を計算する、第一アドレスの値を第0アドレスに変える;中に、プログラム偏移命令のアドレスとパラメタをスタックに保存する;
(2)第一アドレスによりアドレス対応テーブル(アドレスルックアップテーブルと呼ぶ)にサーチする、サーチした場合、キャッシュした命令実行環境に回復する、検索した対応アドレス(例えばアドレス対応テーブルのアドレスペア)へジャンプして実行を続ける;
(3)見つからなければ、第一アドレスから実行待ちマシン命令セグメントを獲得する、命令セグメントの末はプログラム偏移命令(プログラム偏移命令があるアドレスは第三アドレス)とする。
(4)第一アドレスからマシンコードを逆アセンブルする、逆アセンブル結果を字句アナライザに分析して第三アドレスまでに再構築後のアセンブルコードを作成する;
(5)第三アドレスのコードを処理できるか、第三アドレスのプログラム偏移命令の宛先アドレスが既知数(例えばイミディエイト)とするか判断する、てきれば、第一アドレスの値を第三アドレスの宛先アドレスに設定する、ステップ(3)を再度実行する;
(6)できなければ、作成した再構築アセンブルコードの最後にプッシュ命令を加えて当前第三アドレスの元アドレス位置(第三アドレスの値)とオペランドをレコードする、プッシュ命令後に再構築プラットフォームの頭へジャンプする命令を増える、ステップ(1)はもう一度実行させる;
(7)アセンブラーで作成した再構築アセンブル命令が対応するマシンコードを作成して、再構築アドレス空間に配ったアドレス(第二アドレス)にストレージする、第二アドレスと第0アドレスをアドレスペアとしてアドレス対応テーブルにストレージする;
(8)環境に回復する、第二アドレスへジャンプして実行を続ける。
理解されやすいために、X86アーキテクチャプロセッサはこの実例を実行する方法を説明する、図9b−9dを参考して命令再構築の一つ例える過程は以下のとおり:
(1)再構築プラットフォームを開始した後、先に当前命令実行環境をキャッシュする;スタックが保存したプログラム偏移命令のアドレスとパラメタを獲得して次に実行する命令のアドレスを計算する、当アドレスは第0アドレス、第一アドレスの値は第0アドレスに設定する。
(2)第一アドレスによりアドレス対応テーブルにサーチする、ある場合、キャッシュした命令実行環境に回復する、検索した対応アドレスへジャンプして実行を続ける(図9b);ない場合、以下操作をする(図9c)。
(3)−(6)第一アドレスから、マシンコードを逆アセンブルして、逆アセンブル結果をを字句アナライザに分析して再構築命令を作成する;
アセンブルコードを検索してプログラム偏移命令があるかどうか確認する;
最初のプログラム偏移命令を分析する、ジャンプ宛先アドレスは既知数かどうか判断する、既知数の場合、最初のパラメタアドレスプログラム偏移命令までにサーチを継続する、当プログラム偏移命令は第一プログラム偏移命令と呼ぶ、当命令のアドレスは第三アドレスとする;
作成したアセンブルコード(第一アドレスから第三アドレスまでのマシン命令、第一プログラム偏移命令を含まない)の最後にプッシュ命令を増えて当前第三アドレスの第一ジャンプの元アドレス位置とオペランドをレコードする;
プッシュ命令の後に再構築プラットフォームエントリにジャンプ命令(第二プログラム偏移命令)を増える;
(7)作成したアセンブルコードから対応のマシンコードを作成する、再構築アドレス空間が配ったアドレス(第二アドレス)にストレージする;第二アドレスと第0アドレスをアドレスペアの形式でアドレス対応テーブルにストレージする。
(8)環境に回復する、第二アドレスへジャンプして実行を続ける;
(図9d)プロセッサは第二アドレス命令の実行を開始する、前の再構築待ち命令セグメント中のプログラム偏移命令をプッシュ命令と再構築プラットフォームへジャンプ命令に変える、プッシュ命令の目的は再構築プラットフォームに入力パラメタを提供する。(図9d)第二プログラム偏移命令を実行する時、再構築プラットフォームを再び実行して前記のステップ(1)を進行する、プッシュ命令中に保存したプログラム偏移命令のアドレスとパラメタをビューして次に実行する命令アドレスを計算する、当アドレスは第一アドレスとする。
これからの処理は前記過程を繰り返す。
更に、システムが起動する後にランタイム命令のモニターを実行して、計算デバイスの全てランタイム命令をモニターするために、本発明の他の実施例の中、コンピュータが起動する時のロード命令を改修して元ロード命令が実行する前に本発明が提供する命令再構築プラットフォームをコールして、前記ランタイム命令再構築方法を実行する、ロード命令のジャンプアドレスは既知固定アドレスとするから、命令再構築プラットフォームは事前にアドレス対応テーブルと第一条レコードをビルドできて、そして第一個再構築命令セグメントをビルドできる。
更に、本発明の他の実施例により、コンピュータが読めるメディアを提供する、ここで、述べた読めるメディアにコンピュータが実行できるプログラムコードをストレージする、述べたプログラムコードは前記実施例が提供するランタイム命令再構築方法のステップを実行する。
もっとに、本発明の他の実施例により、コンピュータプログラムを適用する、ここで、述べたコンピュータプログラムは前記実施例が提供するランタイム命令再構築方法のステップを含む。
データセキュリティに対する命令再構築
前記のランタイム命令再構築方法は更にアプリケーションに基礎を提供する。以下の実施例は各種のマシン命令を処理するランタイム命令再構築方法を提供する、ストレージ/読取命令、I/O命令及びネット転送命令を含む:
(1)ストレージ/読取命令はコンピュータシステムが周辺ストレージデバイス(ディスクストレージデバイス、フラッシュデバイス、光記憶デバイスを含むが、これらに限定されない)にストレージ/読取の命令と命令組合である。
(2)I/O命令はコンピュータシステムが周辺デバイスのアドレス空間を操作する全て命令とする、これらの命令は最終に周辺デバイス入力/出力ステイタス、データ、シグナルなどを影響する。周辺デバイスのアドレス空間はI/Oアドレス空間、メモリマップドI/Oデバイスのアドレス空間を含むが、これらに限定されない。
(3)ネットワーク伝送命令は最終的にネットワークデバイスに影響を与える全て命令である、これらの命令は最終的にネットワークデバイスの転送、状態、データ、信号など全て関連特性に影響を与える命令を指します。
中に、ストレージ/リード命令とI/O命令の交点が存在してもよい。
本発明の一つ実施例により、ストレージ/リード命令のランタイム命令再構築方法S400を提供する、以下を含む:
S401、命令実行環境をキャッシュする;述べた命令実行環境はアドレスレジスタを含む、アドレスレジスタは次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスとする;アドレスレジスタは例えばプログラムカウンタPCである;
S402、述べた第一アドレスを利用してアドレス対応テーブルにサーチする;
S403、対応レコードが見つかったら、述べた第一アドレスAを保存された再構築命令セグメントのアドレスA‘に改修する;
S404、見つからなければ、再構築命令セグメントの作成方法は以下を含む:
S4041、ディスパッチ待ちマシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;ステップS102と同じである;
S4042、述べたディスパッチ待ちマシン命令セグメントを逆アセンブルして、アセンブル命令セグメントを得る;
S4043、目標アセンブル命令を検索する(目標アセンブル命令を検索目標としてアセンブル命令セグメントに検索する)、述べた目標アセンブル命令はストレージ/リード命令とする;
S4044、検索して述べたセンブル命令セグメントのストレージ/リード命令を見つかったら、ストレージ/リードアドレスをセキュリティデバイス上のアドレスへ改修する;改修方式はローカルアドレス空間とセキュリティストレージデバイスアドレス空間の直接マッピングができる;
S4045、述べた第一プログラム偏移命令JP1の前に第二プログラム偏移命令JP2を挿入する、述べたJP2は命令再構築プラットフォーム(命令再構築方法が実行する時命令再構築プラットフォームと呼ぶ、又は、命令再構築方法が実行するルーチンは再構築プラットフォームと理解する)のエントリアドレスへ指す;
S4046、改修されたアセンブル命令セグメントをアセンブルしてアドレスA”がある再構築マシン命令セグメントを作成する;
S4047、再構築マシン命令セグメントのアドレスA”と第一アドレスAは述べたアドレス対応テーブル中に一条レコード(又はアドレスペア)をビルドする、アドレスA”がある再構築マシン命令セグメントを命令再構築プラットフォームに保存する;
S4048、第一アドレスAを第二アドレスA”へ改修する;
S405、述べた命令実行環境に回復する。
本実施例は逆アセンブルの後に命令処理をすること;他実施例中は逆アセンブルとアセンブルステップを省ける、直接マシン命令を処理する。
ステップS4044の中、ストレージ/リード命令に対して操作する、中の目的と元アドレスを改修してストレージリロケーション/リダイレクトを実現する、データセキュリティを確保する。更に具体的なセキュリティストレージ/リード方法は本発明の以下の実施例中に紹介する。
本発明の一つ実施例により、I/O命令のランタイム命令再構築方法S500を提供する、以下を含む:
S501、命令実行環境をキャッシュする;述べた命令実行環境はアドレスレジスタを含む、アドレスレジスタは次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスとする;
S502、述べた第一アドレスを利用してアドレス対応テーブルにサーチする;
S503、対応レコードが見つかったら、述べた第一アドレスAを保存された再構築命令セグメントのアドレスA`に改修する;
S504、見つからなければ、再構築命令セグメントの作成方法は以下を含む:
S5041、ディスパッチ待ちマシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;ステップS102と同じである;
S5042、述べたディスパッチ待ちマシン命令セグメントを逆アセンブルして、アセンブル命令セグメントを得る;
S5043、目標アセンブル命令を検索する(目標アセンブル命令を検索目標としてアセンブル命令セグメントに検索する)、述べた目標アセンブル命令はI/O命令である;
S5044、検索して述べたセンブル命令セグメントにI/O命令を見つかったら、述べたI/O命令中の全て入力命令を阻止する;
S5045、述べた第一プログラム偏移命令JP1の前に第二プログラム偏移命令JP2を挿入する、述べたJP2は命令再構築プラットフォームのエントリアドレスへ指す;
S5046、改修されたアセンブル命令セグメントをアセンブルしてアドレスA”がある再構築マシン命令セグメントを作成する;
S5047、再構築マシン命令セグメントのアドレスA”と第一アドレスAは述べたアドレス対応テーブル中に一条レコード(又はアドレスペア)をビルドする、アドレスA”がある再構築マシン命令セグメントを命令再構築プラットフォームに保存する;
S5048、第一アドレスAを第二アドレスA”へ改修する;
S505、述べた命令実行環境に回復する。
本実施例は逆アセンブルのステップ後に命令を処理する;他実施例中には逆アセンブルとアセンブルステップを省けて、直接にマシン命令を処理する。
ステップS5044中に、I/O命令に対して操作する、述べたI/O命令中の全て入力命令を阻止してローカルハードウエアのライト操作を徹底に阻止する;上の一個実施例のストレージ命令実現過程を結合してストレージ命令以外の入力命令を阻止することを実現できる、計算デバイス中のデータセキュリティが上がれる。
本発明の一つ実施例により、ネット伝送命令に対するランタイム命令再構築方法S600を提供する、以下を含む:
S601、命令実行環境をキャッシュする;述べた命令実行環境はアドレスレジスタを含む、アドレスレジスタは次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスである;
S602、述べた第一アドレスを利用してアドレス対応テーブルにサーチする;
S603、対応レコードが見つかったら、述べた第一アドレスAを保存された再構築命令セグメントのアドレスA’に改修する;
S604、見つからなければ、再構築命令セグメントの作成方法は以下を含む:
S6041、ディスパッチ待ちマシン命令セグメントを獲得する;そのなか、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令とする;ステップS102と同じする;
S6042、述べたディスパッチ待ちマシン命令セグメントを逆アセンブルして、アセンブル命令セグメントを得る;
S6043、目標アセンブル命令を検索する、述べた目標アセンブル命令はネット伝送命令とする;
S6044、検索して述べたセンブル命令セグメントにネット伝送命令を見つかったら、述べたネット伝送命令中の宛先アドレスはが対応する遠地計算デバイスがセキュリティデバイス(例えばホワイトリスト)かどうかを検査する、なければ、述べたネット伝送命令を阻止する;
S6045、述べた第一プログラム偏移命令JP1の前に第二プログラム偏移命令JP2を挿入する、述べたJP2は命令再構築プラットフォームのエントリアドレスへ指す;
S6046、改修されたアセンブル命令セグメントをアセンブルしてアドレスA”がある再構築マシン命令セグメントを作成する;
S6047、再構築マシン命令セグメントのアドレスA”と第一アドレスAにより述べたアドレス対応テーブル中に一条レコード(又はアドレスペア)をビルドする、アドレスA”がある再構築マシン命令セグメントを命令再構築プラットフォームに保存する;
S6048、第一アドレスAを第二アドレスA”へ改修する;
S605、述べた命令実行環境に回復する。
ステップS6044中に、ネット伝送を阻止/拒絶命令するは再構築コード中に一条又はマルチ命令を挿入して伝送命令を「当前操作を取消す命令」又は無効な命令に置き換える、ハードウエアにより決定する。
本実施例は逆アセンブルの後に命令処理をする;他実施例中には逆アセンブルとアセンブルステップを省けて、直接にマシン命令を処理する。
ステップS6044中に、ネット伝送命令に対して操作する、述べたネット伝送命令中の宛先アドレスは対応する遠地計算デバイスがセキュリティデバイスかどうかを検査する;なければ、述べたネット伝送命令を阻止してデータセキュリティ伝送を実現する。
前記マルチ実施例中のアドレス対応テーブルは命令再構築プラットフォームにビルドされてメインテナンスされる、固定長のアレイストラクチャ、又は、可変長のリンクリストストラクチャができる、更に、ほかの適当な他の二値データのストラクチャもできる。本発明の一つ実施例により、テーブル長さが調整でき、テーブルが占用する空間をリリースできる。アドレス対応テーブルをリリース操作はランダムにまたは周期にする。本発明の一つ実施例により、アドレス対応テーブルはレコード作成時間エレメントを含める、レコードを削除して空間をリリースする時、作成時間の長さによりレコードを削除できる。本発明の一つ実施例により、アドレス対応テーブルはレコード使用回数エレメントを含める、レコード削除で空間をリリースする時、作成時間の長さによりレコードを削除する。本発明の一つ実施例により、アドレス対応テーブルはレコード使用回数エレメントを含める、アドレス対応テーブルにサーチするステップ中に、見つかったら当エレメント値を改変する;述べたレコード使用回数エレメントは、レコード削除で空間をリリースする時、使用回数によりレコードを削除することに適用する。
別に、本分野の技術人員は、前記命令再構築方法(即ちランタイム命令再構築方法)はハードウエア又はソフトウエアで実現できる、ことを理解できる:
(1)ソフトウエアで実現すれば、前記方法が対応するステップはソフトウエアコードの形式でコンピュータが読めるメディアに記憶して、ソフトウエアプロダクトとなる。
(2)ハードウエアで実現すれば、前記方法が対応するステップはハードウエアコード(例えばVerilog)で記述する、ファームウエア化(物理設計/レイアウト/ファブフローシートなど過程を経過する)でチップ製品(例えばプロセッサ製品)を作成する。次に詳細に紹介する。
命令再構築装置
本発明の一つ実施例により、前記ランタイム命令再構築方法S100と対応するランタイム命令再構築装置を提供する。図10のように命令再構築装置500は以下を含む:
命令実行環境キャッシュと回復ユニット501は、命令実行環境をキャッシュと回復することに適用する;述べた命令実行環境は、アドレスレジスタを含む、当アドレスレジスタ(例えばプログラムカウンタPC)は次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスである;
命令フェッチユニット502は、ユニット501が命令実行環境をキャッシュした後、ディスパッチ待ちマシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令(例えば第一ジャンプ命令)である;
命令再構築ユニット503は、述べたディスパッチ待ちマシン命令セグメントを解析と改修することに適用する、第一プログラム偏移命令の前に第二プログラム偏移命令を挿入して、第二アドレスA”がある命令再構築セグメントを作成する;述べた第二プログラム偏移命令が装置500へ指す、即ち第二プログラム偏移命令を実行した後、装置500の命令実行環境キャッシュと回復ユニット501は次回処理を始める;及び
アドレス置換えユニット504は、述べたキャッシュされた命令実行環境のアドレスレジスタの値を再構築命令セグメントのアドレスに改修することに適用する。
述べた命令実行環境キャッシュと回復ユニット501は別々に命令フェッチユニット502及びアドレス置換えユニット504とカプリィング接合する、述べた命令フェッチユニット502、命令再構築ユニット503とアドレス置換えユニット504は順番にカプリィング接合する。
装置500の実行過程は以下の通り:
先ず、命令実行環境キャッシュと回復ユニット501は命令実行環境をキャッシュする、例えば、キャッシュスタックに命令実行関連するレジスタデータをプッシュする;
次に、述べた命令フェッチユニット502はCPUアドレスレジスタ511からディスパッチ待ちマシン命令アドレスを読み取る、述べたマシン命令アドレスからマシン命令セグメントをリードする、述べたマシン命令セグメントの最後一条命令はプログラム偏移命令である;
述べた命令フェッチユニット502は、CPUアドレスレジスタ511からディスパッチ待ちマシン命令アドレスを読み取る、述べたマシン命令アドレスからマシン命令セグメントをリードする、述べたマシン命令セグメントの最後一条命令はプログラム偏移命令とする;
例えば、命令フェッチユニット502は、CPUアドレスレジスタ511からディスパッチ待ちマシン命令アドレスを読み取る;プログラム偏移命令を検索目標として、第一個プログラム偏移命令(即ち、コントロール遷移命令であり、無条件偏移命令と条件偏移命令を含む)を発見するまでに、述べたマシン命令アドレスが対応するマシン命令を検索する;述べたプログラム偏移命令は例えるJump/JMP命令、Call命令、RET命令などを含む;述べた一番目のプログラム偏移命令及び前の全てマシン命令をディスパッチ待ちマシン命令セグメントとする;当マシン命令セグメントは、装置500に又は装置500が読み取るストレージ位置に保存する;
次に、命令再構築ユニット503は、獲得したマシン命令セグメントの最後一条命令前に第二プログラム偏移命令を挿入する、第二プログラム偏移命令は装置500のエントリアドレスに指す、アドレスA”が有る再構築命令セグメントを作成する;
次に、アドレス置換えユニット504は、キャッシュした命令実行環境中のアドレスレジスタの値AをアドレスA”に改修する;
最後、命令実行環境キャッシュと回復ユニット501は述べた命令実行環境に回復する、例えば、キャッシュスタックから命令が関連するレジスタデータをポップする。
前記ランタイム命令再構築方法S300と対応して、命令フェッチユニット502は、最初の非定数アドレスのプログラム偏移命令を第一プログラム偏移命令とする、再構築装置の実行効率を上げる。
前記ランタイム命令再構築方法S200と対応して、本発明の他の実施例により、ランタイム命令再構築装置を提供する、ランタイム命令重複性を十分に利用できて効率をあげ、計算資源を省く。
図11のように、命令再構築装置600は以下を含む:
命令実行環境キャッシュと回復ユニット601は、命令実行環境をキャッシュと回復することに適用する;述べた命令実行環境はアドレスレジスタを含む、当アドレスレジスタは次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスである;
命令フェッチユニット602は、ディスパッチ待ちマシン命令セグメントを獲得することに適用する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;
命令再構築ユニット603は、述べたディスパッチ待ちマシン命令セグメントを解析と改修することに適用する、以下を含む:第一プログラム偏移命令の前に第二プログラム偏移命令を挿入し、第二アドレスA”がある命令再構築セグメントを作成する;述べた第二プログラム偏移命令が装置600へ指す、即ち、第二プログラム偏移命令を実行した後、装置600の命令実行環境のキャッシュと回復ユニット601は次回処理を進行する;
アドレス置換えユニット604は、述べたキャッシュされた命令実行環境のアドレスレジスタの値を再構築命令セグメントのアドレスに改修することに適用する。
命令検索ユニット605は、述べた第一アドレスを利用してアドレス対応テーブルにサーチする;述べたアドレス対応テーブルは第一アドレスAが指すディスパッチ待ち命令セグメントが保存された再構築命令セグメントが有るかどうかを表す、例えば、アドレス対応テーブルのデータはアドレスペアである;
対応レコードが見つかったら、命令検索ユニット605はアドレス置換えユニット604をコールして、述べた第一アドレスA(アドレスレジスタ値A)を保存された再構築命令セグメントのアドレスA‘に改修することに適用する;見つからなければ、命令検索ユニットは、第二アドレスA”とアドレスAを利用してアドレス対応テーブルに一条レコードを作成することに適用する。
述べた命令実行環境キャッシュと回復ユニット601は別々に命令検索ユニット605及びアドレス置換えユニット604とカプリィング接合する、述べた命令検索ユニット605は別々に命令フェッチユニット602、命令再構築ユニット603及びアドレス置換えユニット604とカプリィング接合する、述べた命令フェッチユニット602、命令再構築ユニット603とアドレス置換えユニット604は順番にカプリィング接合する。
装置600の実行過程は以下のように:
最初に、命令実行環境キャッシュと回復ユニット601は、命令実行環境をキャッシュする、例えば例えば、キャッシュスタックに命令実行が関連するレジスタデータをプッシュする;
次に、命令検索ユニット605は、キャッシュされた命令実行環境中のアドレスレジスタ値Aを利用して、アドレス対応テーブルにサーチする;
対応レコードが見つかったら、命令検索ユニット605はアドレス置換えユニット604をコールする、置換えユニット604は述べた第一アドレスA(アドレスレジスタ値A)をアドレスA‘に改修する;アドレス置換えユニット604は命令実行環境キャッシュと回復ユニット601をコールして、述べた命令実行環境に回復する、即ち、キャッシュスタックに命令実行が関連するレジスタデータをポップする、今回の再構築操作が終了する;
対応レコードが見つからなければ、、述べた命令フェッチユニット602は、CPUアドレスレジスタにディスパッチ待ち命令アドレスを獲得して述べたマシン命令アドレスにマシン命令セグメントを読み取る、述べたマシン命令セグメントの最後一条命令はプログラム偏移命令である。具体的に、命令フェッチユニット602はCPUアドレスレジスタにディスパッチ待ち命令アドレスを読み取る;プログラム偏移命令を検索目標として、最初のプログラム偏移命令を発見するまでに、述べたマシン命令アドレスが対応するマシン命令を検索する;述べたプログラム偏移命令はJump命令とCall命令などを含む;述べた一番目のプログラム偏移命令と彼の前の全てマシン命令は一個ディスパッチ待ちマシン命令セグメントとする;当マシン命令セグメントは装置600に、又は装置600がアクセスできるストレージ位置に保存する;
次に、命令再構築ユニット603は、述べたマシン命令セグメントの最後一条命令の前に第二プログラム偏移命令を挿入する、述べた第二プログラム偏移命令は装置600のエントリアドレスへ指す、アドレスA”が有る再構築命令セグメントを作成する;
次に、命令再構築ユニット603は、命令検索ユニット605にアドレスA”を送信する、命令検索ユニット605はアドレスA”とアドレスAを利用して、後続命令重用のために、アドレス対応テーブルに一条レコードを作成する;
次に、ドレス置換えユニット604は、キャッシュされた命令実行環境中のアドレスレジスタ値AをアドレスA”に改修する;
最後、命令実行環境キャッシュと回復ユニット601は述べた命令実行環境に回復する、即ち、キャッシュスタックに命令実行が関連するレジスタデータをポップする。
図11を参照続けて、そのなか、命令再構築ユニット603は、別ユニットを含める:
命令解析ユニット6031は、命令集合を利用して述べたマシン命令セグメントをマッチィングすることに適用する、処理待ち目標マシン命令(目標命令を利用してディスパッチ待ちマシン命令セグメントを検索する)を得る;述べた命令集合はX86,MIPSとARM命令集合が有る;
命令改修ユニット6032は、予定の方式により述べた目標マシン命令を改修することに適用する。
例えば、述べた目標命令はストレージ/リード命令の場合、述べた命令解析ユニット6031は、ディスパッチ待ちマシン命令セグメントにストレージ/リード命令を獲得することを担当する、述べた命令改修ユニット6032は中のストレージ/リードアドレスをセキュリティストレージデバイスのアドレスに改修する。前記実施例400の作用と効果は同じだから、余計なことを述べない。
又は、例えば、述べた目標命令はI/O命令の場合、述べた命令解析ユニット6031は、ディスパッチ待ちマシン命令セグメントにI/O命令を獲得することを担当する、述べた命令改修ユニット6032は中にのI/O命令を全て阻止する。前記実施例500の作用と効果は同じだから、余計なことを述べない。
又は、例えば、述べた目標命令はネット伝送命令の場合、述べた命令解析ユニット6031は、ディスパッチ待ちマシン命令セグメントにネット伝送命令を獲得することを担当する、述べた命令改修ユニット6032は、述べたネット伝送命令中の宛先アドレスが対応する遠地計算デバイスにセキュリティアドレスが有るデバイスかどうかを検査する;なければ、述べた命令改修ユニットは、述べたネット伝送命令を阻止することに適用する。前記実施例600の作用と効果は同じだから、余計なことを述べない。
本発明の他の実施例により、前記命令再構築ユニットは、逆アセンブルユニットとアセンブルユニットを含むことができる。図12のように、命令再構築ユニット703は、順番にカプリィング接合する逆アセンブルユニット7031、命令解析ユニット7032、命令改修ユニット7033とアセンブルユニット7034を含む。
逆アセンブルユニット7031は、述べたディスパッチ待ちマシン命令セグメントを解析と改修する前に、述べたディスパッチ待ちマシン命令セグメントを逆アセンブルする、ディスパッチ待ちマシン命令セグメントを作成して命令解析ユニット7032へ送信することに適用する。
アセンブルユニット7034は、述べたディスパッチ待ちマシン命令セグメントを解析と改修する後に、再構築のアセンブル命令セグメントをアセンブルして、マシンコードが表示する再構築命令セグメントを得る、命令置換えユニットへ伝送することに適用する。
この実施例中に、述べた命令解析ユニット7032と命令改修ユニット7033はディスパッチ待ちマシン命令セグメントを操作するようである、操作方法は前記実施例と同じだから、余計なことを述べない。
前記ランタイム命令再構築方法S110と対応して、本発明の他の実施例のより、ランタイム命令再構築装置を提供する。図13のように、命令再構築装置800は以下を含む:
命令実行環境キャッシュと回復ユニット801は、命令実行環境をキャッシュと回復することに適用する;
命令フェッチユニット802と第一ストレージ位置803は、ここで、命令フェッチユニット802は、第一ストレージ位置803から宛先アドレスを読み取り、宛先アドレスによりディスパッチ/実行待ちマシン命令セグメントを獲得することに適用する;中に、ディスパッチ待ちマシン命令セグメントの最後な一条命令は第一プログラム偏移命令とする;及び
命令再構築ユニット804は、第一ストレージ位置803に第一プログラム偏移命令の宛先アドレスを保存する、第一プログラム偏移命令を第二プログラム偏移命令に置換え、第二アドレスが有る再構築命令セグメントを作成する、ことに適する;述べた第二プログラム偏移命令が装置800のエントリアドレスへ指す。
中に、命令実行環境キャッシュと回復ユニット801は、命令再構築ユニット804の置換え命令の後に、述べた命令実行環境に回復して第二アドレスへジャンプして実行を続けることに適用する。
装置800の実行過程は以下のとおり:
最初に、命令実行環境キャッシュと回復ユニット801は命令実行環境をキャッシュする;
次に、命令フェッチユニット802は第一ストレージ位置803に宛先アドレス(ディスパッチ待ち命令アドレス)を読み取る、宛先アドレスによりディスパッチ待ち命令セグメントを獲得する;そのなか、ディスパッチ待ち命令セグメントの最後一条命令は第一プログラム偏移命令である;
次に、命令再構築ユニット804は第一ストレージ位置803に第一プログラム偏移命令の宛先アドレスを保存する:(1)イミディエイトの場合、値を保存する、(2)変数パラメタ場合、アドレス/レファレンスを保存する、例えば、floatタイプ変数destination_addressのアドレス又はレファレンスを保存する;
次に、命令再構築ユニット804は第一プログラム偏移命令を第二プログラム偏移命令に置き換えて、第二アドレスが有る再構築命令セグメントを作成する;
最後に、命令実行環境キャッシュと回復ユニット801は命令実行環境に回復する、第二アドレスへジャンプして実行継続する。
本発明の他の実施例により、ランタイム命令再構築装置を提供する、前記方法S130と対応して、前記一部実施例が提供する装置の特徴を含む。図14のように、装置900は以下を含む:
命令実行環境キャッシュと回復ユニット901は、命令実行環境をキャッシュと回復することに適用する;
命令フェッチユニット902は、ポップ操作でオペランドを獲得する、オペランドを利用して次に実行する命令のアドレスを計算する、当アドレスは第一アドレスである、ことに適用する;
第一アドレスによりディスパッチ/実行待ち命令セグメントを獲得することに適用する、ここで、ディスパッチ待ち命令セグメントの最後一条命令は第一プログラム偏移命令である。
命令再構築ユニット903は、第一プログラム偏移命令をプッシュ命令に置換えて、プッシュ命令中に第一プログラム偏移命令のアドレスとオペランドをレコードする、ことに適用する;
プッシュ命令後に第二プログラム偏移命令を加える、第二アドレスが有る再構築命令セグメントを作成する、ことに適用する;述べた第二プログラム偏移命令が装置900のエントリアドレスへ指す;
再構築命令セグメントの第二アドレスと第一アドレスによりアドレス対応テーブルに一条レコードを作成することに適用する;
命令検索ユニット904は、述べた第一アドレスによりアドレス対応テーブルにサーチすることに適用する;述べたアドレス対応テーブルは、第一アドレスが指すディスパッチ待ち命令セグメントは保存された命令再構築セグメントが有るかに使用される。アドレス対応テーブルのデータはアドレスペアである;
対応レコードが見つかったら、命令検索ユニット904は命令実行環境キャッシュと回復ユニット901をコールして、キャッシュされた命令実行環境に回復する、探した対応アドレスへジャンプして実行を続ける(今回の再構築操作が終了)、ことに適用する;
対応レコードが見つからなければ、命令再構築ユニット903をコールして再構築操作をする。
中に、命令再構築ユニット903は、逆アセンブルユニット9031、命令解析ユニット9032、命令改修ユニット9033とアセンブルユニット9034を含める。
中に、再構築を終了する後、命令再構築ユニット903は、命令実行環境キャッシュと回復ユニット901をコールして、キャッシュされた命令実行環境に回復する、再構築命令セグメントアドレスへジャンプして実行を続ける(今回の再構築操作が終了)、ことに適用する。
本発明の他の実施例により、前記逆アセンブルユニット9031は、命令フェッチユニット902中に有る、ディスパッチ待ち命令セグメントを獲得する時、逆アセンブル操作をする。
本分野の技術人員は、前記装置実施例の図面中のデータフローアローは、前記実施例中の具体的な操作フローを解釈するために表示する、これらの各ユニット間のデータフローに限られない、ことを理解できる、装置中の各ユニットの間はカプリィング接合関係である。
上にいくつかの実施例を利用して詳細にランタイム命令再構築方法と装置を紹介した、既存技術と比べて以下の長所が有る:
命令再構築方法を利用して命令が実行状態の時、計算デバイスの命令をモニターできる;
アドレス対応テーブルを利用して命令再構築効率を上げて、計算資源を省く;
ストレージとリード命令に対する操作は、中の目標と元アドレスを改修して、ストレージリローケイション/リダイレクトを実現する、データセキュリティを確保する;
I/O命令に対する操作は、徹底にローカルハードウエアのライト操作を阻止するために、述べたI/O命令の入力命令を全て阻止する;ストレージ命令以外の入力命令を阻止することを実現できる、計算デバイス中のデータセキュリティを上げられる。
ネット伝送命令に対して操作する、述べたネット伝送命令中の宛先アドレスが対応する遠地計算デバイスにセキュリティアドレスが有るかどうかを検査する;なければ、データがセキュリティ伝送するために、述べたネット伝送命令を阻止する、
データセキュリティアクセス過程
図15は本発明の一つ実施例中の計算デバイスのシステム階層見取り図。
中に、計算デバイス(例えばコンピュータターミナルシステム)200は、ユーザインタフェイスレイヤー201、アプリレイヤー202、OSカーネルレイヤー203、ハードウエアマッピングレイヤー204、セキュリティレイヤー205、及びハードウエアレイヤー206を含む。
中に、ハードウエアレイヤー206は更にCPU2061、ハードディスク2062(ローカルストレージデバイス)及びネットカード2063を含む。
別に、計算デバイス200とストレージデバイス10(又はセキュリティストレージデバイスと呼ぶ)はカプリィング接合する。
本実施例中に、ストレージデバイス10は遠地ディスクアレーとする、ネットワークを利用してハードウエアレイヤー206のカード2063を接続して計算デバイス200とデータを交換する。本発明の他の実施例中に、ストレージデバイス10は他既知又は未知類型のストレージデバイスができる。
中に、ディスク2062は他類型のローカルストレージデバイス、例えばUディスクとオプチカッルディスクなどになれる、ここに例として説明するが、限定する目的を持たない。
前記階層結構を総合して、本実施例はデータセキュリティアクセス過程を提供する、以下を含む:
S1000、初期化;
S2000、データライト;及び
S2000、データリード。
図16を参照して、本発明の一つ実施例により、前記の初期化過程S1000は以下を含む:
S1010、コンピュータターミナルシステム200とセキュリティストレージデバイス10の通信をビルドする;
S1020、セキュリティストレージデバイス10から当前コンピュータターミナルシステム200に一一マッピングビットマップを同期する、例えばコンピュータターミナルシステム200のメモリに保存する;述べたマッピングビットマップはローカルストレージデバイスがセキュリティストレージデバイスにデータをダンプしたかどうかを表示する;
S1030、ステップS1020の同期が失敗する場合、セキュリティストレージデバイス10にビットマップをビルドして初期化する、そしてコンピュータターミナルシステム200に同期する。
中に、コンピュータターミナル200上のビットマップとストレージデバイス10のビットマップを区分するために、下文に特に説明がない場合、コンピュータターミナルシステム200上のビットマップは第一マッピングビットマップと呼ぶ、セキュリティストレージデバイス10上のビットマップは第二マッピングビットマップと呼ぶ(ステップS1030は、先に第二マッピングビットマップをビルドして初期化する、次にコンピュータターミナルシステム200に同期して第一マッピングビットマップとして保存する)。
中に、ステップS1020は、ストレージデバイス10からコンピュータターミナルシステム200に第二マッピングビットマップを同期する操作が失敗すれば、ストレージデバイス10とコンピュータターミナルシステム200の接続は最初の接続と認定する。
中に、ステップS1030は、コンピュータターミナルシステム200のローカルストレージ空間をストレージデバイス10へマッピングする、マッピング方法/関係は1セクター(又は他ストレージの基本単位)を単位に一一マッピングする、マッピングビットマップをビルドする、ことを含む。本発明の他の実施例中に、他基本ボリュームを単位としてローカルストレージ空間からストレージデバイス10までのビットマップをビルドする。次に図面を結合してビットマップに対する詳細説明をする。
図17は本発明の一つ実施例中のビットマップ見取り図である。ローカルストレージデバイス(例えば図15のディスク2062)上のストレージメディア3000、ネットワークでローカルストレージデバイスと接続したストレージデバイス10上のストレージメディア4000が、図面に有る。
(1)ビットマップをビルドする過程は以下のとおり:
ストレージメディア4000中にストレージメディア3000と同じサイズのストレージ空間4010を一一マッピング空間としてビルドする。ストレージ空間4010にビットマップ4020を保存する、ビットマップ4020は一つビットマップである、1ビットは1セクタを示す、1ビットデータ(0又は1)はストレージメディア3000に有るセクタがすでにストレージメディア4000のストレージ空間4010にダンプすることをマーク/指示する、それでビットマップもダンプテーブルと呼ぶ。ストレージデバイス10のビットマップ4020をビルド終了したらコンピュータターミナルシステム200に同期する。
(2)ビットマップを更新する過程は以下のとおり:
例えば、ビットマップ4020に、ダンプされたセクタに1をマークし、未ダンプのセクタがマークしない;他実施例中、ダンプセクトと非ダンプセクトが使用するマークが自由に選択できる。アプリ又はOSはデータ(例えばファイル)を保存する時、OS内部のファイルシステムは、ローカルストレージデバイスのストレージメディア3000に幾つかストレージ空間(例えばセクタ3040とセクタ3050)を開き、そして当ファイルに配って使用する、そして、ローカルファイル割付テーブルを改変する。ファイルをダンプする(セクタ3040とセクタ3050へ記入するデータはストレージデバイス10にダンプされる)時、ストレージメディア4000上の同位置にセクタ4040とセクタ4050を割付けて中にダンプデータを保存する、ビットマップ4020のセクタ3040とセクタ3050が対応するビットデータを1にする。
図15を結合して本発明の一つ実施例により、前記のデータライト過程S2000は更に以下を含む:
S2010、アプリレイヤー202はOSカーネルレイヤー203のファイルシステムを通過してファイルライト操作請求を送信する、又はOSカーネル203は直接にファイルライト操作請求を送信する;或いは
アプリレイヤー202は直接にハードウエアマッピングレイヤー204にデータライト操作請求を送信する、又はOSカーネルレイヤー203は直接にハードウエアマッピングレイヤー204にデータライト操作請求を送信する;
S2020、OSカーネルレイヤー203はファイルライト請求をハードウエアポート命令(ハードウエア命令)に解析してハードウエアマッピングレイヤー204に下がる、ポート命令はライト位置(例えばセクタ)を含む;
注意が払うことが有る、ステップ2010は直接にハードウエアマッピングレイヤー204にデータライト操作請求を送信すれば、当請求はすでにハードウエアポート命令となる;
S2030、セキュリティレイヤー205はハードウエアマッピングレイヤー204からハードウエアポート命令を受信する、ポート命令のライト位置(セクタ)をストレージデバイス10の対応ストレージアドレスへ改修する、そして第一マッピングビットマップを更新する、例えば、述べたセクタが対応するビットデータを1にして当セクタはダンプされたことを示す;セキュリティレイヤー205は改修後のポート命令をハードウエアレイヤーへ送信する。
ライト操作が終了する後、コンピュータターミナルシステム200にライトされたデータを保存しない、対応データはすでにセキュリティストレージデバイス10にリダイレクトされてダンプされる。
注意が払うことが有る、ローカルハードディスクにライト命令はネットディスクのライト命令と違えば、アドレスを改修することだけでなく、ストレージ命令を改修する必要である。
本発明の他の実施例によりライト操作S2000は以下を含める:
S2040、第一マッピングビットマップをストレージデバイス10に同期して第二マッピングビットマップとして保存する、コンピュータターミナルシステム200の第一マッピングビットマップとストレージデバイスの第二マッピングビットマップはリアルタイムで一致する。
本発明の他の実施例に、システム資源を省くためにS2040はローカルコンピュータターミナルシステム200をシャットダウンする前に統一的に一回に実行する。
図15を結合して本発明の一つ実施例により、前記のデータリード過程S3000は更に以下を含む:
S3010、ストレージデバイス10の第二マッピングビットマップをコンピュータターミナルシステム200に同期して第一マッピングビットマップとして保存する;
S3020、アプリレイヤー202はOSカーネルレイヤー203のファイルシステムを通過してファイルリード操作を送信する、又はOSカーネル203は直接にファイルリード操作請求を送信する;或いは
アプリレイヤー202は直接にハードウエアマッピングレイヤー204にデータリード操作請求を送信する、又はOSカーネルレイヤー203は直接にハードウエアマッピングレイヤー204にデータリード操作請求を送信する;
S3030、OSカーネルレイヤー203はファイルリード請求をハードウエアポート命令に解析してハードウエアマッピングレイヤー204に下がる、ポート命令はライトアドレス(例えばセクタ)を含む;
S3040、セキュリティレイヤー205はハードウエアマッピングレイヤー204からデータリード命令を受信する、第一マッピングビットマップにサーチしてリードアドレス(元アドレス)を獲得する、第一マッピングビットマップのビットデータはリードアドレスがダンプアドレス(データダンプされたアドレス)を表示する場合、セキュリティレイヤー205はポート命令のリードアドレスをストレージデバイス10の対応アドレスへ改修する;セキュリティレイヤー205は改修後のポート命令をハードウエアレイヤー206へ送信する。
本実施例の長所が、前記リード過程はユーザの既存操作モードを影響しない、セキュリティストレージデバイス(ストレージデバイス10)のダンプされたデータをリードする操作を実現する。
ステップS3010中、コンピュータターミナルシステム200が起動する後、ローカルデータとセキュリティストレージデバイスのデータの一致性を保持するために、ストレージデバイス10から第二マッピングビットマップをローカルへ同期する。
本分野の技術者は、前記データのライト、リード過程及び初期化過程には、実際の要求により対応ステップを実行できる、ことを理解できる。
データセキュリティアクセス方法
前記データのライト、リード過程により、次に本発明が提供するデータセキュリティストレージとリード方法を詳細に説明する。
本分野の技術者に対して、上に図15を結合してデータのストレージ、リード過程は理解されるために説明するが、これらに限定されない、本発明の他の実施例中に、計算デバイスの適当なレイヤーに以上説明した各ステップが実行できる。
本発明の一つ実施例により、データセキュリティストレージ方法を提供する;図18のとおり、当方法は以下ステップを含む:
S4010、ハードウエア命令を受信する;
S4020、当ハードウエア命令はストレージ命令かどうかを判断する;
S4030、ハードウエア命令はストレージ命令であれば、ストレージ命令の宛先アドレスをセキュリティストレージデバイスの対応ストレージアドレスに改修する;
S4040、改修後のストレージ命令をハードウエアレイヤーへ送信する。
本発明の一つ実施例により、ステップS4010に述べたハードウエア命令はハードウエアマッピングレイヤーから送信されたハードウエア命令である。ハードウエアマッピングレイヤーから受信するハードウエア命令は、CPU等プロセッサに送信する全てのハードウエア命令(ポート命令)を百パーセントにフィルタできる。
コンピュータはWindows OSを実行できる、Windows OS中のハードウエアアブストラクトレイヤーHALは図15のハードウエアマッピングレイヤー204である。他の実施例中に、コンピュータターミナルは別のOS、例えばLinux(登録商標)、Unix又はエムべデッドOSなどを実行できる、ハードウエアマッピングレイヤーはLinux(登録商標)、Unix又はエムべデッドOSの対応レイヤーである。
ステップS4010中に、前記ランタイム命令再構築方法を結合して、ハードウエア命令の受信過程は、ランタイム命令再構築方法(例えばS101-S105)を利用してハードウエア命令を獲得することを含む。別に言えば、ランタイム命令再構築方法でマシン命令を獲得する時、ストレージ命令を処理(類似な方法はS404,S405,S406など)する。ランタイム命令再構築方法で最終計算結果をセキュリティストレージデバイスへリローケイションしてストレージするだけでなく、計算されたメディエイトプロシージャー(OSが作成したメディエイトプロシージャーを含む)を全てセキュリティストレージデバイスへリローケイションしてストレージする;こんな方式でコンピュータターミナルは不完璧となる、さらにコンピュータターミナルの不完璧性を利用して情報リークを防ぐ目的を達成する。
別に、ステップS4010とS4020の中にハードウエアア命令はX86命令、ARM命令、MIPS命令などがある、ターミナル計算デバイスの内に分析機能を設定できて不同類型のCPU命令を処理できる。
本発明の他の実施例により、ステップS4030の後に、以下を含める:
S4050、第一マッピングビットマップを更新して、宛先アドレス(セクタ)が第一マッピングビットマップに対応するビットをダンプフラッグ(例えば「1」)に設定する;すでに更新されたマッピングビットマップを述べたセキュリティストレージデバイスへ同期して第二マッピングビットマップとして保存する。
本実施例中に、ダンプ操作は上層アプリ及びユーザに対して完全に透明となって、既存のコンピュータ操作とアプリシステムのワークフローに影響がない。
本実施例が提供する方法はコンピュータターミナルシステムに適用するだけでなく、アプリレイヤー、OSカーネルレイヤー、ハードウエアレイヤーを含む任意の計算デバイスとインテリジェントターミナルに適用する、リアルタイムで命令レベルのストレージリローケイション/リダイレクト(ハードウエアストレージ命令に基づくストレージリローケイション/リダイレクト)を実現できる。
本発明の一つ実施例により、データセキュリティリード方法を提供する;図19を参照して、当方法S5000は以下を含む:
S5010、ハードウエア命令を受信する;
S5020、当ハードウエア命令はリード命令がどうかを判断する;
S5030、ハードウエア命令がリード命令であれば、リード命令の元アドレス(リードアドレス)を獲得する、第一マッピングビットマップにより、リード命令のリードアドレスを改修して、ダンプデータと非ダンプデータのリードを実現する;及び
S5040、改修後のハードウエア命令をハードウエアレイヤーへ送信する。
本発明の他の実施例により、ステップS5010の前に、当方法は以下を含める:
ストレージデバイスの第二マッピングビットマップをコンピュータターミナルシステム200に同期して第一マッピングビットマップとして保存する。
本発明の他の実施例により、ステップS5010中に、述べたハードウエア命令はハードウエアマッピングレイヤーからとる。
本発明の他の実施例により、ステップS5010中に、ランタイム命令再構築方法を結合してハードウエア命令の受信過程は、ランタイム命令再構築方法(例えばS101-S105)でハードウエア命令を獲得することを含む。ちなみに、ランタイム命令再構築方法がマシン命令を取る時、リード命令を処理する。
本発明の他の実施例により、ステップS5020中に、ハードウエア命令がリード命令ではない場合、ハードウエア命令を直接にハードウエアレイヤーへ送信して実行する。
本発明の他の実施例により、ステップS5030は更に以下の処理に分ける:
S5031、リード命令であれば、リード命令の元アドレスを取って、述べた元アドレスはストレージデバイスのアドレスかどうかを判断する;
S5032、述べた元アドレスはストレージデバイスのアドレスではなければ、第一マッピングビットマップにサーチしてマッピングビットマップのデータによりリード命令のリードアドレスを改修する。
即ち、ステップS5031中に、当リード命令の元アドレスはストレージアドレスであれば、計算デバイス(例えば図15のセキュリティレイヤー205)は再度第一マッピングビットマップにサーチする必要がない、直接にハードウエア命令をハードウエアレイヤーへ送信して実行する。
本発明の他の実施例により、ネット資源を節約するために、本発明の一部実施例中に、セキュリティデバイス10はマルチターミナルシステムの共有資源として担当できる。
上に何回もデータセキュリティストレージとリード方法を命令再構築方と結合することを言及する、理解されるために実施例により詳細に紹介する。
本発明の一つ実施例により、データセキュリティアクセス方法を提供する;図20の通り、当方法S6000は以下を含む:
S6010、命令実行環境をキャッシュする;
S6011、第一ストレージアドレスから宛先アドレスをリードする、宛先アドレスにより、ディスパッチ/実行待ちマシン命令セグメントを獲得する;中に、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令(第一ジャンプ命令)である;
S6012、第一ストレージアドレスに第一プログラム偏移命令の宛先アドレスを保存する;
S6013、ディスパッチ待ちマシン命令を順番に分析してスアクセス命令を分析して判断する;
S6014、アクセス命令(ストレージ命令とリード命令)であれば:
ストレージ命令に対して、ストレージ命令の宛先アドレスを対応ストレージデバイス(セキュリティストレージデバイス)のストレージアドレスに改修する、そして第一マッピングビットマップを改修する;
リード命令に対して、リード命令の元アドレスを取って、第一マッピングビットマップにサーチする、マッピングビットマップのデータを利用してリード命令のリードアドレスを改修する;
ローカルディスクライト命令とネットディスクライト命令が違えば、またはローカルディスクリード命令とネットディスクリード命令が違えば、アドレスを改修するだけでなく、対応のストレージ命令とリード命令を改修する必要が有る;
S6015、第一プログラム偏移命令を第二プログラム偏移命令に改修して第二アドレスが有る再構築命令セグメントを作成する;述べた第二プログラム偏移命令が命令再構築プラットフォームのエントリアドレスへ指す;
S6016、述べた命令実行環境に回復する;第二アドレスへジャンプして実行を続ける。
本分野の技術者は、当実施例は説明するためにサンプルとするが、セキュリティリード方法、セキュリティストレージ方法、と命令再構築方法に限定されない、前記が紹介したキュリティリード方法、セキュリティストレージ方法、と命令再構築方法を需要により組合せて使用できる、ことを理解できる。
データセキュリティ伝送方法
ストレージとリードは一般的にローカルストレージデバイスに対するデータ交換である;伝送は一般的にネットデバイスを利用するデータ交換である。
図21のように、本発明の一つ実施例により、データセキュリティ伝送方法を提供する;以下を含む:
S7010、ハードウエア命令(例えば、ハードウエアマッピングレイヤーから来る)を受信する;
S7020、当ハードウエア命令を分析してネット伝送命令かどうかを判断する;
S7030、当ハードウエア命令は伝送命令であれば、宛先アドレスをリードする;
S7040、宛先アドレスはセキュリティアドレスかどうかを判断する;
S7050、セキュリティアドレスであれば、ハードウエア命令をハードウエアレイヤーへ送信する;なければ、当命令を拒絶する;
S7060、ハードウエアレイヤーは伝送命令とデータを宛先アドレスが対応するターミナルシステムへ送信する;
S7070、宛先アドレスが対応するターミナルシステムはデータを受信して、データセキュリティストレージ方法(上の実施例が説明した)でデータを保存する。
本発明の他の実施例により、ステップS7040の中に、宛先アドレスがセキュリティアドレスか判断する方法は以下の通り:
図22を参照して、セキュリティサーバー820はネットでターミナルシステム800、801と接続する、ターミナルシステム800、801は前記実施例が提供するデータセキュリティ伝送方法を配置する時、すでにセキュリティサーバー820にレジストレーション操作を完了する。セキュリティサーバー820は内部にセキュリティアドレステーブルをメインテナンスして、レジストレーションしたすべてターミナルをレコードする。
セキュリティアドレステーブルが改変する時、セキュリティサーバー820は更新されたセキュリティアドレスを各ターミナルへ自動送信する、ターミナルシステム800はアプリレイヤー801、OSカーネル802、セキュリティレイヤー803及びハードウエアレイヤー804を含む、セキュリティレイヤー803は当セキュリティアドレステーブルのメインテナンスを担当する。
セキュリティレイヤー803は、宛先アドレスはセキュリティアドレステーブルに有るか分析して宛先アドレスはセキュリティアドレスであるか判断する。即ち、ステップS7040中に、宛先アドレスはセキュリティアドレステーブルに在れば、宛先アドレスはセキュリティアドレスである。
前記セキュリティ伝送方法を実施することにより、木馬又は悪意ツールは機密情報を取得しても情報を伝送できない。
本発明の一部実施例中には、コンピュータターミナルシステムを本発明が提供する方法の実施主体とするが、然し、任意ハンドヘルドデバイス、インテリジェンスターミナルなどがファイル又はデータを編集、保存或いは伝送する電子デバイスは、本発明が提供するデータセキュリティアクセス及び伝送方法を応用するキャリアーと成れる。
データセキュリティアクセス装置(ストレージ、読取装置を含む)
前記のデータセキュリティアクセス方法と対応して、本発明の一つ実施例により、データセキュリティストレージ装置を提供する。
注意が払うことは、混乱を避けるために、本発明中に、(1)データセキュリティストレージ装置がハードウエアの形式でデータセキュリティストレージ方法を実現する装置にさす;(2)セキュリティストレージデバイスは、情報又はデータをダンプするストレージ実体(例えばディスクなど)を指す、ことである。
図23を参照して、本実施例が提供するデータセキュリティストレージ装置7100は、受信ユニット7110、命令分析ユニット7120、命令改修ユニット7130と送信ユニット7140を含む;述べた受信ユニット7110と命令分析ユニット7120はカプリィング接合する、命令分析ユニット7120は別々に命令改修ユニット7130と送信ユニット7140をカプリィング接合する、送信ユニット7140は命令改修ユニット7130とカプリィング接合する。
中に、受信ユニット7110はハードウエア命令を受信することに適用する、述べたハードウエア命令はハードウエアマッピングレイヤーに送信される;
命令分析ユニット7120は、ハードウエア命令を分析して述べたハードウエア命令はストレージ命令かどうかを判断することに適用する:ストレージ命令であれば、命令分析ユニット7120はそれを命令改修ユニット7130へ送信することに適用する、なければ、命令分析ユニット7120は送信ユニット7140へ送信することに適用する。
送信ユニット7140は、受信した命令をハードウエアレイヤー7200へ送信することに適用する。
更に、本発明の他の実施例により、当データセキュリティストレージ装置は以下を含める:
更新ユニット7150と同期ユニット7160である、更新ユニット7150は命令改修ユニット7130とカプリィング接合する、同期ユニット7160は更新ユニット7150とカプリィング接合する。
中に、更新ユニット7150は、命令改修ユニット7130が述べたストレージ命令を改修する後に、マッピングビットマップ中に宛先アドレスが対応するビットを改修することに適用する。本実施例中に、ストレージ命令の宛先アドレスが有るセクタが第一マッピングビットマップ中に対応ビットを「1」に設定して、ダンプ終了を示す。
中に、同期ユニット7160は、ターミナル計算デバイスシステム(ターミナル計算デバイス)と述べたセキュリティストレージデバイスの通信をビルドする、述べたターミナル計算デバイスシステムと述べたセキュリティストレージデバイスの間にマッピングビットマップを同期する、ことに適用する。
具体的に、ターミナル計算デバイスシステムが起動する時、同期ユニット7160は、ターミナル計算デバイスシステムと述べたセキュリティストレージデバイスの通信をビルドする、述べたセキュリティストレージデバイスの第二マッピングビットマップを述べたターミナル計算デバイスシステムに同期する、第一マッピングビットマップとして保存する。
述べたセキュリティストレージデバイスの第二マッピングビットマップを述べたターミナル計算デバイスシステムに同期することが失敗すれば、セキュリティストレージデバイスとターミナル計算デバイスシステムの最初の通信することが判る、同期ユニット7160は、ターミナル計算デバイスシステムのローカルストレージ空間を述べたセキュリティストレージデバイスにマッピングする、第一マッピングビットマップと第二マッピングビットマップをビルドする。たとえば、本実施例中に、先にセキュリティストレージデバイスに第二マッピングビットマップをビルドして、次にローカルに同期して、第一マッピングビットマップとして保存する。
更新ユニット7150は、第一マッピングビットマップの述べた宛先アドレスが対応するビットを更新した後に、同期ユニット7160は更新された第一マッピングビットマップをセキュリティストレージデバイスに送信する、セキュリティストレージデバイスの第二マッピングビットマップとして保存する。
述べたセキュリティストレージデバイスの位置が限定しなくて、遠地ストレージデバイス又はローカルストレージデバイスができる。述べた遠地ストレージデバイスは、一個計算デバイスだけにサーブする、またはマルチ計算デバイスに共有される、ことに適用する。
本発明の一つ実施例により、述べたハードウエア命令はハードウエアポートI/O命令とすることができる。
本発明の他の実施例により、前記のデータセキュリティリード方法に対応するデータセキュリティリード装置を提供する、図24を参照して、データセキュリティリード装置8100は以下を含む:
受信ユニット8110、命令分析ユニット8120、命令改修ユニット8130及び送信ユニット8140を含む;中に、受信ユニット8110と命令分析ユニット8120はカプリィング接合する、命令分析ユニット8120は別々に命令改修ユニット8130及び送信ユニット8140とカプリィング接合する、命令改修ユニット8130と送信ユニット8140はカプリィング接合する、送信ユニット8140とハードウエアレイヤー8200はカプリィング接合する。
述べた受信ユニット8110はハードウエア命令を受信することに適用する、本実施例中に、述べたハードウエア命令はハードウエアマッピングレイヤーから来る。
述べた命令分析ユニット8120は、述べたハードウエア命令を分析してリード命令かどうかを判断する、ことに適用する、リード命令であれば、リード命令の元アドレスを取って、述べた元アドレスはセキュリティストレージデバイス上のアドレスかどうかを判断する。
ハードウエア命令がリード命令でなければ、又は述べた元アドレスはセキュリティストレージデバイス上のアドレスであれば、命令分析ユニット8120は述べたハードウエア命令を送信ユニット8140に送信する。
述べた元アドレスはセキュリティストレージデバイス上のアドレスではなければ、命令改修ユニット8130はマッピングビットマップにサーチする、マッピングビットマップのデータにより述べたリード命令のリードアドレスを改修する。
前記実施例中のマッピングビットマップと同じで、本実施例中が述べたマッピングビットマップはローカルストレージアドレスのデータを述べたセキュリティストレージデバイスにダンプするかどうかを表示する、ここに余計なことを述べない。例えば、命令改修ユニット8130は、元アドレスが有るセクタが第一マッピングビットマップに対応するビットをサーチして、ビットデータが1と成るとき、すでにダンプされたことを示す、ビットデータが0または「NULL」となる時、ダンプされないことを表示する。ダンプがすれば、命令改修ユニット8130は、述べた元アドレス(リードアドレス)を対応ダンプアドレスへ改修する、改修後のハードウエア命令を送信ユニット8140に送信する。
更に、本発明の他の実施例により、述べたデータセキュリティストレージデバイスは同期ユニット8150を含める、同期ユニット8150は命令改修ユニット8130とカプリィング接合する。
同期ユニット8150は、ターミナル計算デバイスシステムと述べたセキュリティストレージデバイス間の通信をビルドして、ターミナル計算デバイスシステムと述べたセキュリティストレージデバイス間のマッピングビットマップを同期する、ことに適用する。具体的に、同期ユニット8150は、ターミナル計算デバイスシステムが起動する時、ターミナル計算デバイスシステムと述べたセキュリティストレージデバイスの通信をビルドする、そして述べたセキュリティストレージデバイス上の第二マッピングビットマップを述べたターミナル計算デバイスシステムに同期して、命令改修ユニット8130が使える第一マッピングビットマップとして保存する。
本実施例中に、述べたセキュリティストレージデバイスは遠地ストレージデバイスと成れる、述べた遠地ストレージデバイスはマルチターミナル計算デバイスシステムに共有される。本発明の他の実施例に述べたセキュリティストレージデバイスはローカルストレージデバイスと成れる。
本発明の他の実施例により、前記のデータセキュリティリード装置と前記のデータセキュリティストレージ装置は一つ装置に合弁できる、命令分析ユニットと命令改修ユニットは、ストレージ命令またはリード命令を処理できる、次に例を挙げて説明する。
本発明の他の実施例により、データセキュリティストレージとリード装置を提供する。図25のように、データセキュリティストレージとリード装置9100は以下を含む:
命令実行環境のキャッシュと回復ユニット9101は、命令実行環境をキャッシュと回復することに適用する;
命令フェッチユニット9102、次に実行する命令のアドレスを取る、ことに適用する、当アドレスは第一アドレスとなる;第一アドレスによりディスパッチ/実行待ちのマシン命令セグメントを獲得することに適用する;中に、ディスパッチ待ちのマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;ディスパッチ待ちのマシン命令セグメントを獲得する具体的な方式はすでに説明されたが、ここに余計なことを述べない;
命令検索ユニット9104は、述べた第一アドレスによりアドレス対応テーブルにサーチすることに適用する:
対応レコードが見つかったら、命令検索ユニット9104は、命令実行環境のキャッシュと回復ユニット9101を呼び出してキャッシュされた命令実行環境に回復する、探した対応アドレスへジャンプして実行を続ける(今回の再構築が完了する)、ことに適用する;
対応レコードが見つからなければ、命令再構築ユニット9103を呼び出して再構築操作をする。
中に、アドレス対応テーブルは、第一アドレスが指すディスパッチ待ち命令セグメントに保存された再構築命令セグメントが有るかどうかを示す、ことに適用する、アドレス対応テーブルのデータはアドレスペアと成る可能である。
中に、命令再構築ユニット9103は更に以下を含む:
命令解析ユニット9111は、前記命令分析ユニット7120と命令分析ユニット8120の有機結合となる、述べたハードウエア命令を分析して述べたディスパッチ/実行待ちマシン命令セグメント中に順番的にハードウエア命令毎にはストレージまたはリード命令かどうかを判断する、ことに適用する;
命令改修ユニット9112は、命令解析ユニット9111がストレージまたはリード命令を発見すれば、以下に適用する:
ストレージ命令に対して、述べたストレージ命令中の宛先アドレスをセキュリティストレージデバイスが対応するストレージアドレスへ改修する;
リード命令に対して、マッピングビットマップにサーチする、マッピングビットマップの指示データにより述べたリード命令のリードアドレスを改修する;
更新ユニット9113は、命令改修ユニット9112は述べたストレージ命令を改修するあとに、マッピングビットマップに有る宛先アドレスが対応するビットを改修することに適用する、リードデータはすでにダンプされたことを表示する;
同期ユニット9114は、ターミナル計算デバイスシステムと述べたセキュリティストレージデバイス間の通信をビルドする、ターミナル計算デバイスシステムと述べたセキュリティストレージデバイス間のマッピングビットマップを同期する、ことに適用する、。
命令解析ユニット9111、命令改修ユニット9112、更新ユニット9113、同期ユニット9114が実行終わる後、命令再構築ユニット9103は、第一プログラム偏移命令をプッシュ命令に置換える、プッシュ命令には第一プログラム偏移命令のアドレスとオペランドをレコードする、ことに適用する;プッシュ命令後に第二プログラム偏移命令を挿入して第二アドレスが有る再構築命令セグメントを作成することに適用する;述べた第二プログラム偏移命令は装置9100のエントリアドレスへ指す;再構築命令セグメントの第二アドレスと第一アドレスが対応するレコードをアドレス対応テーブルにビルドすることに適用する。
本発明の他の実施例により、図26のように、命令再構築ユニット9103は命令解析ユニット9111、命令改修ユニット9112、更新ユニット9113、同期ユニット9114と同じレベルの並列ユニットとして、彼の機能に余計なことを述べない。図25を参照続けて、命令再構築ユニット9103は、再構築命令セグメントを獲得した後に、命令実行環境のキャッシュと回復ユニット9101を呼び出してキャッシュされた命令実行環境に回復することに適用する、そして再構築命令セグメントのアドレスへジャンプして実行を続ける(再構築操作が終わる)。
本分野の技術者は、当実施例は説明するために挙がるが、データセキュリティリード装置、データセキュリティストレージ装置と命令再構築装置の合併方式に限定しない、前記紹介された各種データセキュリティリード装置、データセキュリティストレージ装置と命令再構築装置は任意の方式で合併できる、ことを理解できる。
別に、前記セキュリティストレージ方法と装置はクラウド技術と結合して、クラウド内部のデータセキュリティを確保して、クラウド計算の応用と普及を推進することができる。具体的な例は次に紹介する。
本分野の技術者は、セキュリティレイヤーに実現する前記方法はOSカーネルレイヤーからハードウエアレイヤーまでの各レイヤーに完成できる、ことを理解できる。具体的な機能の実現方法は本発明の精神と範囲を脱出しない。
前記実施例中に詳細に本発明が提供するセキュリティストレージ方法と装置を紹介した、既存技術と比較して以下長所が有る:
1、データセキュリティストレージ方法は命令レベルのデータダンプ(データセキュリティダンプ)を実現する、これを基礎として、ターミナル計算デバイスシステムの全て実行周期のデータセキュリティストレージ方法を実現する、一方、木馬又は悪意ツールが機密情報を取得してもその情報を保存できない、データはずっとコントロールできる範囲内に存在する,一方、ローカルに任意機密データを保存しないから、機密人員の主動リークとパッシブリークを防止できる;
2、ハードウエアマッピングレイヤーから来たハードウエア命令を受信することはすべて命令を百パーセントにフィルタできる、更にデータセキュリティを上げる。
前記実施例中には本発明が提供するセキュリティリード方法と装置を詳細に紹介する、既存技術と比べて、以下の長所が有る:
1、データセキュリティリード方法とデータセキュリティストレージ方法の結合はずっとコントロールできるセキュリティ範囲内にデータを保存させる、そしてデータをセキュリティ保存(ダンプ)する後に、ダンプされたデータを読み出せることが保証できる;ローカルには任意な機密データを保存しないから、機密人員の主動リールとパッシブリークを防止できる;
2、セキュリティストレージデバイスは遠地ストレージデバイスの場合、マルチターミナルに共有されてセキュリティストレージデバイス空間の使用効率を上げる。
データブラックホール処理方法
定義:
1、データブラックホールシステムは:計算デバイス実行過程中の中間データと実行結果を特定なストレージ位置に保存して計算デバイスは正常に実行することを確保できるシステムである;
2、データブラックホールターミナルは:データブラックホールシステムを配置する計算デバイスである(例えばコンピュータターミナル)、データブラックホールターミナルは、実行過程が作成する中間データと結果データをすべて特定なストレージ位置にダンプする。
3、リダイレクトは:コンピュータは実行過程中に、作成した中間データ又は結果をパーシスタンスする要求が有るとき、コンピュータの任意ロジックとコードを改修せずにパーシスタンスのポジションを特定なストレージポジションへ導く処理方法である。
4、データライト:データパーシスタンス操作である。
5、データブラックホール空間:下文に定義する。
6、ブラックホールストレージ空間:下文に定義する。
本発明の一つ実施例により、データセキュリティを挙げるプロシージャA10を提供する、以下を含む:
A11、ユーザに一つデータブラックホール空間をビルドする、両種モード(任意モードを選択できる)を含む:
A111、ローカル配置モード:データブラックホールターミナルはローカルデータストレージデバイスに一つデータストレージエリアを作る、当データストレージエリアはターミナルデータリダイレクトの目標区域、当データトレージ区域はブラックホールストレージエリアと呼ぶ;
当データストレージエリアは一個データストレージエリアはマルチローカルユーザと対応する、又はマルチストレージエリアはマルチローカルユーザと対応する;
当データストレージエリアはデータブラックホールシステムだけがアクセスできる、ターミナル計算デバイスのOS又はアプリレイヤー(例えばアプリソフトウエア)がアクセスできない;
A112ネット配置モード:ネットのストレージ位置に一つデータストレージエリアを作る、当データストレージエリアはターミナルデータがリダイレクトする目標区域である;
このデータストレージエリアとネットターミナル上のユーザの対応関係は、一一対応することができる;当ストレージエリアもローカルユーザと対応できる。
前記ローカル配置モード又はネット配置モードでユーザにデータブラックホール空間(ブラックホール空間と呼ぶ)をビルドする。
A12、ユーザとリダイレクトされたストレージ空間の対応関係をビルドする。
ターミナルユーザは最初にデータブラックホールターミナルを登録する時、データブラックホールターミナルはユーザ情報によりユーザに対応するデータブラックホールのデータストレージエリアをビルドする。
A13、ターミナル計算デバイスの全てデータパーシスタンス操作をリダイレクトする。
本発明の一つ実施例により、ユーザはデータブラックホールターミナルを登録する後、データブラックホールターミナルはデータブラックホールストレージエリアの存在を確認してユーザとブラックホールストレージエリアの対応関係をビルドする、当ユーザのローカルマシン(データブラックホールターミナル)上の全てデータライト操作はデータストレージエリアへリダイレクトされる。
前記過程A10を使用する後、ブラックホール空間はユーザと対応する、ハッカーは抜け道、バックドア、木馬など悪意コードでデータ権限を取得した後、データをコピー、ダンプ、送信、インターセプトができる。然し、周辺デイバス、ポート、ユーザ、ターミナルが送信するデータは全てデータブラックホール空間(ユーザが対応するブラックホール空間)へ導き、全て操作はデータブラックホール空間内に完成する。それで全てのデータ盗み、インターセプト、出力など作業はデータブラックホール空間内に実現する。機密(データ権限が有る)人員はデータをプライベート保留、バックアップ、送信、出力を試す時、全てデータ操作はデータブラックホール空間内に完成する、悪意操作がリークできない。
本発明の一つ実施例により、図27のように、前記過程A10を実行できる計算デバイスはデータブラックホールサーバーと呼ぶ、データブラックホールサーバーはネットで計算ターミナル1(図27のターミナル1)、計算ターミナル2(図27のターミナル1)、…、計算ターミナルN(図27のターミナルN)と接続/カプリィング接合する。データブラックホールサーバーは各ターミナルにデータブラックホールシステムを配置する、各ターミナルはデータブラックホールターミナル(図27のデータブラックホールターミナル1、ターミナル2、...、ターミナルN)を成らせる。
そして、ブラックホールストレージエリア(図27のマッピングブロック1、2、...、N)はデータブラックホールサーバーに有る。データブラックホール空間はデータブラックホールサーバーのブラックホールストレージエリアと各データブラックホールターミナルのメモリが有る、因みに、全てデータブラックホールターミナルの計算プロシージャと結果データを全てブラックホールストレージに保存する。データブラックホールシステムは計算デバイスの完璧性を破って、計算デバイスの不完璧性により悪意コード又は最高権限が有る機密人員がデータリークにできないデータセキュリティシステムを実現する。
本発明の一つ実施例により、前記過程10にデータブラックホール処理方法S90を提供する、図28のとおり、以下を含む:
S91、計算デバイス(コンピュータ、ハンドヘルドデバイス、インテリジェンスターミナルなど)にデータブラックホールシステムを配置してデータブラックホールターミナルと成る;
S92、データブラックホール空間をビルドする、以下を含む:
1)計算デバイスのローカルに一個データストレージエリア(データブラックホールエリアと呼ぶ)、及びローカルメモリを開く;及び/又は
2)ネットの一個ストレージ位置にデータブラックホール、及びローカルメモリを開く;
S93、計算デバイスのユーザとデータブラックホール空間又は一部空間に対応関係をビルドする、例えば、ユーザがデータブラックホールターミナルを登録する時、ターミナルユーザとデータブラックホール空間の一一対応関係をビルドする;
S94、データブラックホールターミナルはユーザ操作が有るデータライトを当ユーザが対応するデータブラックホール空間にリダイレクトする、例えば、当ユーザが対応するデータブラックホールストレージエリアにリダイレクトする;
S95、ローカルストレージデバイスへデータパーシスタンス操作を阻止する、ローカルポートで非データブラックホールターミナルへデータ出力操作を阻止する、それで、データブラックホールターミナル又はデータブラックホール空間に入力するデータはデータブラックホール空間だけに存在する。
本発明の他の実施例により、ステップS91とS92の内容――計算デバイスにブラックホールシステムを配置することとユーザにデータブラックホール空間をビルドすることを一つステップで完成できる。
本発明の他の実施例により、ステップS93はユーザが一回目にブラックホールターミナルを登録する時だけに進行できる、又はユーザが毎回ブラックホールターミナルを登録する時に進行できる。
本発明の他の実施例により、ステップS93とS94の内容は一つステップで完成できる。即ち:
ユーザが「データライト」を操作するとき、予定の対応方式で、当ユーザの「データライト」操作は全て当ユーザが対応するデータブラックホール空間に導く。
中に、予定の対応方式は固定対応ができる、例えば、ユーザ毎にブラックホール空間に一部容量のストレージ空間を配る。予定の対応方式は動態対応もできる、例えば、ユーザ毎にブラックホール空間に予定容量のストレージ空間を配る、ユーザのストレージデータは予定容量を超える場合、ユーザにもっと多いストレージ空間を配る。本分野の技術者は、ユーザとストレージ空間の対応方式と配分方式は需要により選択できる。
本発明の一つ実施例により、前記過程A10によりユーザがデータブラックホールターミナルを登録する後、データブラックホールターミナルはデータブラックホールストレージエリアの存在を確認してユーザとブラックホールストレージエリアの対応関係をビルドする、当ユーザはローカルマシン(データブラックホールターミナル)上の全てデータライトをデータストレージエリアへ導く。そして、全てデータリードはデータのバージョン又はユーザの選択によりストレージエリアのデータ又はローカルデータを読み取る。
前記実施例中が提供するデータセキュリティ読取方法(例えばS5000)と装置(データセキュリティ読取装置8100)により、ユーザ選択機能を提供するために適応性改修ができる。
本発明の一つ実施例により、データセキュリティ読取方法S80は以下を含む:
S81、ハードウエア命令を受信する;
S82、当命令を分析して読取命令か判断する;
S83、読取命令であれば、マッピングビットマップの指示データの値より、読取るデータがすでにダンプされたら、そして:ユーザに選択操作機会を提供する、ユーザはストレージエリアデータ又はローカルデータを読取ることを選択できる;
ユーザの選択により、ストレージエリアデータ又はローカルデータを読取る、ユーザがストレージエリアデータを読取ることを選択する場合;
S84、改修後のハードウエア命令をハードウエアレイヤーへ送信する。
前記データセキュリティ読取方法S80の別内容とステップをデータセキュリティ読取方法S5000を参照できる、ここに余計なことを述べない。
前記と同様に、本実施例のデータセキュリティ読取装置を適用性改修できる、たとえば、データセキュリティ読取装置8100の命令改修ユニット8130をS83の実行操作に適用するように改修する、別ユニットはデータセキュリティ読取装置8100を参考できる、ここに余計なことを述べない。
シングルデータブラックホール処理方法
前記ステップS92中に、データブラックホール空間をビルドするためにローカル計算デバイスにデータストレージエリアを開く、当計算デバイスが使用するデータブラックホール処理方法はシングルデータブラックホール処理方法である。
図29aの通り、計算デバイス70は、アプリレイヤー(又はアプリレイヤーが対応するユニット)71、OSカーネルレイヤー(又はOSカーネルが対応するユニット)72、ハードウエアマッピングレイヤー(又はハードウエアマッピングレイヤーが対応するユニット)73、セキュリティレイヤー(又はセキュリティレイヤーが対応するユニット)74、を含む、これらのレイヤー又はユニットは前の実施例の計算デバイス200が含むユーザインタフェイスレイヤー201、アプリレイヤー202、OSカーネルレイヤー203、ハードウエアマッピングレイヤー204、セキュリティレイヤー205及びセキュリティレイヤー206と対応する、余計なことを述べない。
モバイル計算デバイス70はハードウエアレイヤー75を含む。
ハードウエアレイヤー75はデバイス又はユニット(CPU、ネットカード及びディスク75a)を含む。
ディスク75aは普通ストレージ区域とセキュリティストレージ区域75a1を含む。
当セキュリティストレージ区域75a1は暗号化ティストレージ区域となれる、データアクセスの前後にデータを暗号化復号化することが必要です。
別に、前記データセキュリティリード方法(例えばS5000)とストレージ方法(例えばS4000)は独立な計算デバイスに応用する時、前記方法はシングルデータセキュリティアクセス方法となる;当独立な計算デバイス(例えばPC)は相互独立なローカルストレージ空間とセキュリティストレージ空間が有る。
例えば、シングルデータセキュリティストレージ方法は以下を含む:
ハードウエア命令を受信する;
述べたハードウエア命令はストレージ命令すれば、述べたストレージ命令の宛先アドレスを述べた計算デバイス上の対応セキュリティストレージ空間のアドレスへ改修する;及び
改修後のストレージ命令をハードウエアレイヤーへ送信して実行する。
例えば、シングルデータセキュリティリード方法は以下を含む:
ハードウエア命令を受信する;
述べたハードウエア命令はリード命令であれば、述べたリード命令の元アドレスを取得する、第一マッピングビットマップによりリード命令のリードアドレスを改修する;及び
改修後のストレージ命令をハードウエアレイヤーへ送信して実行する。
前述実施例中が提供するセキュリティストレージ装置とセキュリティリード装置(例えば、装置7100、装置8100、装置9100)は、需要により不要なユニットを削除して、シングルデータセキュリティアクセス装置となる。
本発明の一つ実施例により、図29bの通り、計算デバイスは相互独立なローカルストレージ空間87とセキュリティストレージ空間88、及びシングルデータセキュリティアクセス装置80を含む;中に、セキュリティストレージ空間はOSに対して使用不可(例えば、見えない又はアクセス不可)である、シングルデータセキュリティアクセス装置80だけはアクセスできる;
中に、述べたシングルデータセキュリティアクセス装置80は以下を含む:
受信ユニット81は、ハードウエア命令を受信することに適する;
命令分析ユニット82は、述べたハードウエア命令はストレージ命令又はリード命令を判断する、判断シグナルを作成する;
命令改修ユニット83は、述べたハードウエア命令はストレージ命令である時、述べたストレージ命令中の宛先アドレスをセキュリティストレージ空間が対応するストレージアドレスへ改修することに適する;述べたハードウエア命令はリード命令である時、マッピングビットマップにサーチしてリード命令のリードアドレスを改修する;述べたマッピングビットマップは、ローカルストレージ空間のアドレスが対応するデータがすでに述べたセキュリティストレージ空間にダンプされることを示す、マッピングビットマップは前述実施例中に詳細に説明するが、ここに余計なことを述べない;
送信ユニット84は、改修後のアクセス命令をハードウエアレイヤーへ送信して実行する。
前記計算デバイスは、更新ユニット85を含める、命令改修ユニット83が述べたストレージ命令を改修する後、ユニット85はマッピングビットマップに述べた宛先アドレスが対応するビットを更新する。
前記計算デバイスは、暗号化復号化ユニット86を含める、セキュリティストレージ空間88に進出するデータを暗号化復号化することに適する。
本発明の一つ実施例により、図29aを結合して、シングルデータブラックホール処理方法を提供する、図30のように、以下を含む:
Sa1、計算デバイス(例えばコンピュータ、ハンドヘルドデバイス、インテリジェンスターミナルなど)データブラックホールシステムを配置して、データブラックホールターミナルとなる;
Sa2、データブラックホール空間をビルドする、計算デバイスのローカル空間にデータストレージエリア(データブラックホールエリアと呼ぶ)及びローカルメモリを開く、ここで、データストレージエリアにはデータブラックホールシステムだけはにアクセスできる、ターミナル計算デバイスのOS又はアプリがアクセスできない;
Sa3、計算デバイスのユーザとデータブラックホール空間または一部空間に対応関係をビルドする、例えば、ユーザがデータブラックホールターミナルを登録する時、ターミナルユーザとデータブラックホール空間の一一対応関係をビルドする;
Sa4、データブラックホールターミナルはユーザのデータライト操作をユーザが対応するデータブラックホール空間へ導いて暗号化する、例えば、当ユーザが対応するブラックホールストレージへリダイレクトする;
Sa5、ローカルストレージデバイス(ブラックホールストレージ以外)のデータパーシスタンス操作を阻止する、及び、ローカルポートが非データブラックホールターミナルにデータを出力する操作を阻止する、それで、データブラックホールターミナル又はデータブラックホール空間に入ったデータはデータブラックホール空間だけに存在する。
中に、Sa1はステップ1を示す。
本分野の技術者は、前記のデータセキュリティストレージ方法、リード方法、及び伝送方法はソフトウエア又はハードウエアで実現できることが、理解できる:
(1)ソフトウエアで実現すれば、前記方法が対応するステップはソフトウエアコードでコンピュータが読めるメディアにストレージしてソフトウエアプロダクトと成る;
(2)ハードウエアで実現すれば、前記方法が対応するステップはハードコード(例えばVerilog)で描画する、ファームウエア化(物理設計/レイアウト/ファブフローシートなど処理)でチップ製品(例えばプロセッサ製品)を作成する。
具体的に、本分野の普通技術者は、本発明はシステム、方法又はコンピュータプログラム製品を具体に実現できる、ことを意識できる。因みに、本発明は完全ハードウエア実施例、完全ソフトウエア実施例(ファームウエア、駐在ソフト、マイクロコードなどを含む)の形式で、又はスフとウエアとハードウエアの結合実施例の形式で使用できる、彼らは「サーキット」、「モジュール」、又は「システム」と呼ばれる。
別に、本発明は、コンピュータが使えるプログラムコードを保存する任意の有形メディアに具体に実現できるコンピュータプログラム製品の形式で描画できる。
コンピュータが使える又は読めるメディアの任意組合を使用できる。コンピュータが使える又は読めるメディアは、例えば、電子、マグネチック、オプチカッル、電磁,インフラレッド又は半導体のスステム、装置、設備又は伝播メディアであるが、これらに限れない。コンピュータが読める具体的なメディアは、電線の電気連接、ハンドヘルドコンピュータのディスク、ハードディスク、RAM、ROM、EPROM又はフラッシュメモリ、ファイブリック、CD−ROM、オプチカッルストレージデバイス、インターネット又はイントラネットを支持する伝送メディア、又はマグネチックストレージデバイスを含む、これらに限れない。
注意が払うことは、コンピュータが使える又は読めるメディアは紙又はプログラムを印刷できる別の適当なメディアである、プログラムは紙又は別のメディア対するオプチカッルスカンで電気キャプチャされて、次に編集、翻訳又は適当な方式で処理できる、必要すれば、コンピュータメモリに保存できる。本文のコンテキストに有るコンピュータが使える又は読めるメディアは、ストレージ、通信、伝播又は伝送プログラム及び命令実行システム、装置、設備、彼らの組合が使用する任意メディアである。コンピュータが使えるメディアは、コンピュータが使えるプログラムコードを含む伝播データ信号、ベースバンドに有る又はキャリアの一部とする。コンピュータが使えるプログラムコードは適当な任意メディアで伝送できる、これらのメディアは限定されない無線、有線、Fabric、RFなどを含むが、これらに限定しない。
本発明の操作を実行するコンピュータプログラムコードはマルチプログラミング言語の任意組合でプログラミングされる、これらの言語は例えばるJava(登録商標)、Smalltalk、C++などのオブジェクトオリエンテッド言語と、例えば、「C」言語又は類似のプログラミング言語と似てる伝統プロシージャ言語を含む。プログラムコードは、全てがユーザコンピュータに、一部がユーザコンピュータに載ってシングルソフトウエアパッケージとして実行する、一部がユーザコンピュータに及び一部が遠地コンピュータに載って実行する、全てが遠地コンピュータ又はサーバーに載って実行する、ことができる。遠地で実行する場合、遠地コンピュータは任意種類のネット連接でユーザコンピュータと接続できる。これらのネットはローカルエリアネット(LAN)、ワイドエリアネット(WAN)、又は外部コンピュータに接続可能の連接(例えば、インターネットサーブプロバイダーが提供するインターネット)である。
後の特許請求の範囲が請求する本発明の精神と範囲を脱出しなくて、前記詳細に描画する本発明を改修と改進することができる、これに注意を払って理解してください。技術方案の請求範囲は任意の挙げた特定凡例と案例に限定を受けない。

Claims (18)

  1. シングルデータブラックホール処理方法であって、以下を含む:
    計算デバイスにはデータブラックホールシステムを配置して、データブラックホールターミナルとなせる;データブラックホールシステムは、計算デバイスが実行中の中間データと実行結果を特定なストレージ位置に保存して、計算デバイスの正常な実行を確保するシステムである;
    データブラックホール空間はビルドして、計算デバイスにローカルデータストレージ区域を開くことを含む、当データストレージ区域はデータブラックホールシステムだけにアクセスされる、OS又はアプリレイヤーのソフトウエアにアクセスされない;
    計算デバイスのユーザとデータブラックホール空間又は一部空間に対応関係をビルドする;
    ユーザがデータブラックホールターミナルを操作することで作成したデータライトを当ユーザが対応するデータブラックホール空間に導く;
    ブラックホールストレージエリア以外のローカルストレージデバイスに対するデータパーシスタンス操作を阻止する、ローカルポートで非データブラックホールターミナルに対するデータ出力を阻止する、データブラックホールターミナル又はブラックホール空間に入ったデータはデータブラックホール空間だけに存在することを保証する。
  2. 請求項1に記載されたシングルデータブラックホール処理方法であって、データブラックホールシステムを配置することはデータセキュリティストレージ方法を配置することを含む、ユーザがデータブラックホールターミナルを操作することで作成したデータライトを当ユーザが対応するデータブラックホール空間にリダイレクトして、データセキュリティストレージ方法で実現する、データセキュリティストレージ方法は、
    ハードウエア命令を受信する;
    当ハードウエア命令はストレージ命令であれば、ストレージ命令の宛先アドレスを当ユーザが対応するデータブラックホール空間のストレージアドレスに改修する;及び
    改修後のストレージ命令をハードウエアレイヤーへ送信して実行する;
    ことを含む、処理方法。
  3. 請求項2に記載されたシングルデータブラックホール処理方法であって、中に、データブラックホールシステムを配置することはデータセキュリティリード方法を配置することを含む、データセキュリティリード方法は、
    ハードウエア命令を受信する;
    当ハードウエア命令はリード命令であり、読み取り用のデータがデータブラックホール空間にすでにあれば、リード命令の元アドレスを当ユーザが対応するデータブラックホール空間のストレージアドレスに改修する;
    改修後のストレージ命令をハードウエアレイヤーへ送信して実行する;
    ことを含む、処理方法。
  4. 請求項2に記載されたシングルデータブラックホール処理方法であって、ここで、データブラックホールシステムを配置することはデータセキュリティリード方法を配置することを含む、データセキュリティリード方法は、
    ハードウエア命令を受信する;
    当ハードウエア命令はリード命令であり、読み取り用のデータがデータブラックホール空間にすでにあれば、ユーザに一つ選択を提供する:ローカルデータ又はデータブラックホール空間データをリードする、ユーザの選択によりローカルデータ又はデータブラックホール空間データをリードする;
    改修後のストレージ命令をハードウエアレイヤーへ送信して実行する;
    ことを含む、処理方法。
  5. 請求項4に記載されたシングルデータブラックホール処理方法であって、データブラックホール空間データを読み取ることは、
    リード命令の元アドレスを当ユーザが対応するデータブラックホール空間のストレージアドレスに更新する、ことを含む、処理方法。
  6. 請求項3または4に記載されたシングルデータブラックホール処理方法であって、ハードウエア命令を受信することは、
    ハードウエアアブストラクトレイヤーのハードウエア命令を受信する、ことを含む、処理方法。
  7. 請求項1に記載されたシングルデータブラックホール処理方法であって、ここで、データブラックホールシステムを配置することはデータセキュリティストレージ方法を配置することを含む、ユーザがデータブラックホールターミナルを操作することで作成したデータライトをユーザが対応するデータブラックホール空間にリダイレクトしてデータセキュリティストレージ方法で実現する、データセキュリティストレージ方法は、
    命令実行環境(アドレスレジスタを含む)をキャッシュする、アドレスレジスタは次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスとする;
    ディスパッチ待ちマシン命令セグメントを獲得する、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;
    ディスパッチ待ちマシン命令セグメントの全て命令を分析する、ストレージ命令であれば、述べたストレージ命令中の宛先アドレスを対応するデータブラックホールのストレージアドレスに改修する;
    述べた第一プログラム偏移命令の前に、第二プログラム偏移命令を挿入する、第二アドレスが有る再構築命令セグメントを作成する、第二プログラム偏移命令は命令再構築プラットフォームのエントリアドレスに指す;
    述べたアドレスレジスタ中の第一アドレスを第二アドレスへ改修する;及び
    述べた命令実行環境に回復する;
    ことを含む、処理方法。
  8. 請求項1に記載されたシングルデータブラックホール処理方法であって、ここで、データブラックホールシステムを配置することはデータセキュリティストレージ方法を配置することを含む、ユーザがデータブラックホールターミナルを操作することで作成したデータライトをユーザが対応するデータブラックホール空間にリダイレクトしてデータセキュリティストレージ方法で実現する、データセキュリティストレージ方法は、
    命令実行環境をキャッシュする;
    第一ストレージ位置に宛先アドレスを読み取る、宛先アドレスによりディスパッチ待ちマシン命令セグメントを獲得する;ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;
    第一ストレージ位置に第一プログラム偏移命令の宛先アドレスを保存する;
    ディスパッチ待ちマシン命令セグメントの全て命令を分析する、ストレージ命令であれば、述べたストレージ命令中の宛先アドレスを対応するデータブラックホールのストレージアドレスに改修する;
    第一プログラム偏移命令を第二プログラム偏移命令に置換える、第二アドレスが有る再構築命令セグメントを作成する;述べた第二プログラム偏移命令が命令再構築プラットフォームのエントリアドレスへ指す;及び
    述べた命令実行環境に回復して、第二アドレスへジャンプして実行を続ける;
    ことを含む、処理方法。
  9. 請求項1に記載されたシングルデータブラックホール処理方法であって、データブラックホールシステムを配置することはデータセキュリティストレージ方法を配置することを含む、ユーザがデータブラックホールターミナルを操作することで作成したデータライトをユーザが対応するデータブラックホール空間にリダイレクトしてデータセキュリティストレージ方法で実現する、データセキュリティストレージ方法は、
    命令実行環境をキャッシュする;
    スタックに保存するプログラム偏移命令のアドレスとパラメタを獲得する、次に実行する命令のアドレスを計算する、当アドレスは第一アドレスである;
    第一アドレスによりディスパッチ待ちマシン命令セグメントを獲得する;ここで、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;
    ディスパッチ待ちマシン命令セグメントの全て命令を分析する、ストレージ命令であれば、述べたストレージ命令中の宛先アドレスを対応するデータブラックホールのストレージアドレスに改修する;
    第一プログラム偏移命令をプッシュ命令に置換える、プッシュ命令中に第一プログラム偏移命令のアドレスとオペランドをレコードする;
    プッシュ命令後に第二プログラム偏移命令を加える、第二アドレスが有る再構築命令セグメントを作成する;述べた第二プログラム偏移命令が命令再構築プラットフォームのエントリアドレスへ指す;及び
    述べた命令実行環境に回復して、第二アドレスへジャンプして実行を続ける;
    ことを含む、処理方法。
  10. 請求項7に記載されたシングルデータブラックホール処理方法であって、データブラックホールシステムを配置することはデータセキュリティリード方法を配置することを含む、データセキュリティリード方法は、
    命令実行環境(アドレスレジスタを含む)をキャッシュする、アドレスレジスタは次に実行するマシン命令のアドレスを保存する、当アドレスは第一アドレスとする;
    ディスパッチ待ちマシン命令セグメントを獲得する、ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;
    ディスパッチ待ちマシン命令セグメントの全て命令を分析する、リード命令であり、読み取り用のデータがすでにデータブラックホールに保存されていれば、リード命令中の元アドレスを対応するデータブラックホールのストレージアドレスに改修する;
    述べた第一プログラム偏移命令の前に、第二プログラム偏移命令を挿入する、第二アドレスが有る再構築命令セグメントを作成する、第二プログラム偏移命令は命令再構築プラットフォームのエントリアドレスに指す;
    述べたアドレスレジスタ中の第一アドレスを第二アドレスへ改修する;及び
    述べた命令実行環境に回復する;
    ことを含む、処理方法。
  11. 請求項8に記載されたシングルデータブラックホール処理方法であって、データブラックホールシステムを配置することはデータセキュリティリード方法を配置することを含む、データセキュリティリード方法は、
    命令実行環境をキャッシュする;
    第一ストレージ位置に宛先アドレスを読み取る、宛先アドレスによりディスパッチ待ちマシン命令セグメントを獲得する;ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;
    第一ストレージ位置に第一プログラム偏移命令の宛先アドレスを保存する;
    ディスパッチ待ちマシン命令セグメントの全て命令を分析する、リード命令であり、読み取り用のデータがすでにデータブラックホールに保存されていれば、リード命令中の元アドレスを対応するデータブラックホールのストレージアドレスに改修する;
    第一プログラム偏移命令を第二プログラム偏移命令に置換える、第二アドレスが有る再構築命令セグメントを作成する;述べた第二プログラム偏移命令が命令再構築プラットフォームのエントリアドレスへ指す;及び
    述べた命令実行環境に回復して、第二アドレスへジャンプして実行を続ける;
    ことを含む、処理方法。
  12. 請求項9に記載されたシングルデータブラックホール処理方法であって、データブラックホールシステムを配置することはデータセキュリティスリード方法を配置することを含む、データセキュリティリード方法は、
    命令実行環境をキャッシュする;
    スタックに保存するプログラム偏移命令のアドレスとパラメタを獲得する、次に実行する命令のアドレスを計算する、当アドレスは第一アドレスである;
    第一アドレスによりディスパッチ待ちマシン命令セグメントを獲得する;ディスパッチ待ちマシン命令セグメントの最後一条命令は第一プログラム偏移命令である;
    ディスパッチ待ちマシン命令セグメントの全て命令を分析する、リード命令であり、読み取り用のデータがすでにデータブラックホールに保存されていれば、リード命令中の元アドレスを対応するデータブラックホールのストレージアドレスに改修する;
    第一プログラム偏移命令をプッシュ命令に置換える、プッシュ命令中に第一プログラム偏移命令のアドレスとオペランドをレコードする;
    プッシュ命令後に第二プログラム偏移命令を増える、第二アドレスが有る再構築命令セグメントを作成する;述べた第二プログラム偏移命令が命令再構築プラットフォームのエントリアドレスへ指す;及び
    述べた命令実行環境に回復して、第二アドレスへジャンプして実行を続ける;
    ことを含む、処理方法。
  13. 請求項1に記載されたシングルデータブラックホール処理方法であって、データパーシスタンス操作はデータライトを含む。
  14. 請求項7〜12のいずれか一項に記載されたシングルデータブラックホール処理方法であって、ここで、ディスパッチ待ちマシン命令セグメントを獲得することは、
    アドレスレジスタからディスパッチ待ちマシン命令アドレスをリードする;
    プログラム偏移命令を検索目標として、最初のプログラム偏移命令を探すまでに、述べたマシン命令アドレスが指すマシン命令及び後続命令を検索する、最初偏移命令は第一プログラム偏移命令と呼ぶ;述べたプログラム偏移命令は、マシン命令の実行順番を変えさせるマシン命令を指す;
    述べた第一プログラム偏移命令及びその前の全てのディスパッチ待ちマシン命令を一つディスパッチ待ちマシン命令セグメントとする;
    ことを含む、処理方法。
  15. 請求項7〜12のいずれか一項に記載されたシングルデータブラックホール処理方法であって、ここで、ディスパッチ待ちマシン命令セグメントを獲得する方法は、
    アドレスレジスタからディスパッチ待ちマシン命令アドレスをリードする;
    プログラム偏移命令を検索目標として、パラメタアドレスが有る最初のプログラム偏移命令を探すまでに、述べたマシン命令アドレスが指すマシン命令及び後続命令を検索する、最初偏移命令は第一プログラム偏移命令と呼ぶ;述べたプログラム偏移命令は、マシン命令の実行順番を変えさせるマシン命令を指す;
    述べた第一プログラム偏移命令及びその前の全てのディスパッチ待ちマシン命令を一つディスパッチ待ちマシン命令セグメントとする;
    ことを含む、処理方法。
  16. シングルデータセキュリティアクセスユニット、及び、計算デバイス中の相互独立なローカルストレージ空間とセキュリティストレージ空間を含む計算デバイスであって、セキュリティストレージ空間はOS及びOSにより上層なソフトウエアに使えられない、シングルデータセキュリティアクセスユニットだけがアクセスできる;
    シングルデータセキュリティアクセスユニットは、
    受信ユニット、ハードウエア命令を受信することに適する;
    命令分析ユニット、述べたハードウエア命令がストレージ命令又はリード命令かどうかを判断して判断信号を作成することに適する、
    命令改修ユニット、判断信号により、述べたハードウエア命令はストレージ命令であれば、述べたストレージ命令中の宛先アドレスをセキュリティストレージ空間に対応するストレージアドレスに改修する;述べたハードウエア命令はリード命令であれば、マッピングビットマップにサーチしてビットマップデータにより述べたリード命令中のリードアドレスを改修する、述べたビットマップは、述べたローカルストレージ空間アドレスに対応するデータが、述べたセキュリティストレージ空間にダンプされているか否か表示するものである
    送信ユニット、改修後のリード又はストレージ命令をハードウエアレイヤーへ送信して実行する、
    計算デバイス。
  17. 請求項16項に記載された計算デバイスであって、更に
    更新ユニットは、命令改修ユニットは述べたストレージ命令を改修する後、ビットマップ中に有る述べた宛先アドレスの対応ビットを更新することに適する、ことを含む、計算デバイス。
  18. 請求項16項に記載された計算デバイスであって、更に
    暗号化復号化ユニット、述べたセキュリティストレージ空間とカプリィング接合して、セキュリティストレージ空間に進出するデータを暗号化復号化することに適する、ことを含む、計算デバイス。
JP2016550550A 2014-03-04 2015-03-03 シングルデータブラックホール処理方法及び計算デバイス Active JP6317461B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410076658.0 2014-03-04
CN201410076658.0A CN103942492B (zh) 2014-03-04 2014-03-04 单机版数据黑洞处理方法及计算设备
PCT/CN2015/073555 WO2015131799A1 (zh) 2014-03-04 2015-03-03 单机版数据黑洞处理方法及计算设备

Publications (2)

Publication Number Publication Date
JP2017514195A JP2017514195A (ja) 2017-06-01
JP6317461B2 true JP6317461B2 (ja) 2018-04-25

Family

ID=51190159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016550550A Active JP6317461B2 (ja) 2014-03-04 2015-03-03 シングルデータブラックホール処理方法及び計算デバイス

Country Status (4)

Country Link
US (1) US20170185767A1 (ja)
JP (1) JP6317461B2 (ja)
CN (1) CN103942492B (ja)
WO (1) WO2015131799A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942492B (zh) * 2014-03-04 2016-09-21 中天安泰(北京)信息技术有限公司 单机版数据黑洞处理方法及计算设备
CN103942499B (zh) * 2014-03-04 2017-01-11 中天安泰(北京)信息技术有限公司 基于移动存储器的数据黑洞处理方法及移动存储器
CN106295386B (zh) 2015-06-02 2021-04-27 阿里巴巴集团控股有限公司 数据文件的保护方法、装置及终端设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2398134A (en) * 2003-01-27 2004-08-11 Hewlett Packard Co Applying a data handing policy to predetermined system calls
JP4347582B2 (ja) * 2003-02-04 2009-10-21 パナソニック株式会社 情報処理装置
JP4806557B2 (ja) * 2005-10-18 2011-11-02 株式会社日立製作所 ログを管理するストレージ装置及び計算機システム
KR101012222B1 (ko) * 2005-10-24 2011-02-11 싸이언스 파크 가부시키가이샤 전자계산기의 데이터 관리 방법, 및 그를 위한 프로그램을 기록한 기록 매체
KR100789722B1 (ko) * 2006-09-26 2008-01-02 한국정보보호진흥원 웹 기술을 사용하여 전파되는 악성코드 차단시스템 및 방법
JP4287485B2 (ja) * 2007-07-30 2009-07-01 日立ソフトウエアエンジニアリング株式会社 情報処理装置及び方法、コンピュータ読み取り可能な記録媒体、並びに、外部記憶媒体
JP2009043133A (ja) * 2007-08-10 2009-02-26 Hitachi Software Eng Co Ltd 情報処理装置
CN101452514B (zh) * 2007-12-06 2011-06-29 中国长城计算机深圳股份有限公司 一种安全计算机的用户数据保护方法
JP2011150388A (ja) * 2010-01-19 2011-08-04 Hitachi Solutions Ltd 機密区分情報に基づいたファイル保存先パス変換システム及び方法
KR101626424B1 (ko) * 2011-03-28 2016-06-01 맥아피 인코퍼레이티드 가상 머신 모니터 기반 안티 악성 소프트웨어 보안 시스템 및 방법
JP6255336B2 (ja) * 2011-04-29 2017-12-27 中天安泰(北京)信息技▲術▼有限公司Antaios (Beijing) Information Technology Co., Ltd. 安全なデータ格納方法およびデバイス
CN103942492B (zh) * 2014-03-04 2016-09-21 中天安泰(北京)信息技术有限公司 单机版数据黑洞处理方法及计算设备

Also Published As

Publication number Publication date
US20170185767A1 (en) 2017-06-29
CN103942492A (zh) 2014-07-23
WO2015131799A1 (zh) 2015-09-11
CN103942492B (zh) 2016-09-21
JP2017514195A (ja) 2017-06-01

Similar Documents

Publication Publication Date Title
JP6317821B2 (ja) データブラックホール処理方法及びモバイルストレージデバイス
JP6250829B2 (ja) データブラックホール処理方法
CN103679039B (zh) 数据安全存储方法及装置
CN103299284B (zh) 数据安全读取方法及装置
US9460306B1 (en) System and method for controlling access of machine code to operating system resources
US20170235963A1 (en) Method, apparatus, system and non-transitory computer readable medium for code protection
JP2014515858A (ja) 実行中の命令を再結合する方法および装置
CN103679040B (zh) 数据安全读取方法及装置
JP6317461B2 (ja) シングルデータブラックホール処理方法及び計算デバイス
JP6255336B2 (ja) 安全なデータ格納方法およびデバイス
CN103729598B (zh) 数据安全互联系统及其建立方法
US9367686B1 (en) System and method for antivirus checking of native images of software assemblies
CN103729600B (zh) 数据安全互联系统建立方法及数据安全互联系统
CN103729601B (zh) 数据安全互联系统及数据安全互联系统建立方法
CN103679041B (zh) 数据安全读取方法及装置
CN103679042B (zh) 数据安全存储方法及装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170529

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180329

R150 Certificate of patent or registration of utility model

Ref document number: 6317461

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150