JP2009510616A - データベース内の機密データを保護するためのシステム及び方法 - Google Patents

データベース内の機密データを保護するためのシステム及び方法 Download PDF

Info

Publication number
JP2009510616A
JP2009510616A JP2008533520A JP2008533520A JP2009510616A JP 2009510616 A JP2009510616 A JP 2009510616A JP 2008533520 A JP2008533520 A JP 2008533520A JP 2008533520 A JP2008533520 A JP 2008533520A JP 2009510616 A JP2009510616 A JP 2009510616A
Authority
JP
Japan
Prior art keywords
database
encryption
data
user
computer
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.)
Pending
Application number
JP2008533520A
Other languages
English (en)
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.)
Ingrian Networks Inc
Original Assignee
Ingrian Networks Inc
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
Priority claimed from US11/236,294 external-priority patent/US20070079140A1/en
Priority claimed from US11/236,061 external-priority patent/US20070079386A1/en
Priority claimed from US11/236,046 external-priority patent/US20070074047A1/en
Application filed by Ingrian Networks Inc filed Critical Ingrian Networks Inc
Publication of JP2009510616A publication Critical patent/JP2009510616A/ja
Pending legal-status Critical Current

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Abstract

機密データを保護するための技術は、データベース内で暗号化の使用を含む。その技術によるシステムまたは方法は、ターゲットデータベース内のデータを再暗号化するための新たな暗号キーを自動的に選択することを含み得る。新たな初期化ベクトルが、再暗号化のために選択されたデータの各列を再暗号化するのに特定され得る。新たな初期化ベクトルは、再暗号化のために選択されたターゲットデータベース内のデータベーステーブルに係るデータの1以上の行に関して特定され得る。その技術によるシステムまたは方法は、リレーショナルデータベースを、変換中にリレーショナルデータベースのリソース上での影響がほとんどないかまたは全くなくして、リレーショナルデータベースのセキュアリレーショナルデータベースへの変換を自動化するためのメカニズムを提供することを含み得る。
【選択図】図1

Description

本発明は、データセキュリティを対象とし、そして、より具体的には、データベース内に存在する機密データを保護することを対象とする。
クレジットカード番号、ソーシャルセキュリティ番号、患者記録、保険データ等のような機密情報が保護される必要があることは否定できない。企業は、そのような機密データが通過するときに、そのような機密データを保護するための手順を制定したのであるが、しばしば、そのようなデータは、暗号化されないフォーマット(「クリアテキスト」または「プレーンテキスト」)に保存される。例えば、データはしばしばデータベース内にクリアテキストとして保存される。クリアテキストは、データを危険にさらし、及び/又はデータを違法に使用できる攻撃者や不満を抱く従業員の目に見えるものである。さらに、データセキュリティが顧客から高く望まれる特徴であるだけでなく、特定のデータセキュリティの規則に従うことが必要とされる。データを適切に保護するために、組織は、データが保存中であるとき、データが通過中であるとき、データが使用されているときを含んでいつもデータを保護するための手順を制定することを必要とする。
一旦、ターゲットデータベース内のデータが暗号化されると、データのセキュリティは、データベース内においてデータを定期的に再暗号化することにより、さらに強められる。ターゲットデータベースの管理者および/またはターゲットデータベースにアクセスするアプリケーションにほとんど影響がないように、再暗号化のプロセスが自動化されることが望ましい。
しかしながら、存在するデータベースをセキュアシステムに変換するために、大量のデータが変換されることが必要とされる理由から、莫大な計算リソースが要求される。ターゲットリレーショナルデータベースの計算および記憶リソースを使い果たさないように、変換をなすことが望ましい。また、ターゲットデータベースの管理者に対して可能な限り透過的および便利な変換をなすことが望ましい。
また、与えられたデータベースの特定のデータベーステーブルおよび/または全てのデータベーステーブルの全ての列を暗号化するよりもむしろデータベースの特定の列を選択的に暗号化する能力を備えることが望ましい。しかしながら、データベーステーブルについての列レベルのような、粒度の細かいレベルで暗号化を提供することは、与えられたデータベース内の暗号化されたデータにアクセスすることを望むアプリケーションプログラムに対して大規模な変化を要求する。そのようなアプローチは、その解決を実装するためにかなりの時間と努力を要求するであろう。
これらの、そして他の問題が、ここで記載される技術を使用することで、取り組まれ、解決され、および/または改善される。
いくつかの実施例に従い、リレーショナルデータベースのリソースへの最小限の影響を伴う暗号化されたフォーマットに、リレーショナルデータベース内に存在する既存のデータを変換するためのメカニズムを提供することによって、安全でないリレーショナルデータベースシステムは、最初にセキュアシステムに変換される。いくつかの実施例に従い、リレーショナルデータベースがセキュアシステムに変換された後、そのようなリレーショナルデータベースのセキュリティは、新たな暗号キーを使用して、データベース内のデータを定期的に再暗号化することにより、さらに強化される。新たな暗号キーを使用するデータベース内のデータの定期的な再暗号化は、ここでは、キーローテーションとして参照される。
いくつかの実施例に従い、メカニズムは、ターゲットデータベース内のデータを再暗号化するための新たな暗号キーを自動的に選択するために提供される。いくつかの実施例に従い、新たな初期化ベクトルが、再暗号化のために選択されたデータのそれぞれの列を再暗号化するために特定されてもよい。いくつかの実施例に従い、新たな初期化ベクトルは、再暗号化のために選択されたデータベーステーブル内のデータの1以上の行のために特定されてもよい。
いくつかの実施例に従い、ターゲットデータベース内のデータを自動的に再暗号化するために使用されるメカニズムは、以下の機能性を含む。1)再暗号化のための事前に暗号化された1以上の列を選択することをユーザに許容する、2)再暗号化のためにユーザによって選択された列についての列レベルでの新たな初期化ベクトルを特定することをユーザに許容する、3)再暗号化のためにユーザによって選択されたそれぞれの行についての行レベルでの新たな初期化ベクトルの生成について要求することをユーザに許容する、4)ユーザによって選択された列または行データの再暗号化における使用のための新たな暗号キーを特定することをユーザに許容する、5)ユーザによって選択されたデータの再暗号化のためのバッチサイズを特定することをユーザに許容する、6)ユーザによって特定された再暗号化を実行する、7)もし望まれれば、後にリレーショナルデータベースのバックアップデータのデータ復号化を助けるための暗号キーの用法のヒストリを記録する、および8)もし望まれれば、異なる暗号化モードを特定することをユーザに許容する。
いくつかの実施例に従い、メカニズムは、リレーショナルデータベースの計算および保存リソースを使い果たさないようにリレーショナルデータベースから分けられる装置上で、ユーザ選択データの再暗号化が起こることを許容するために提供される。そのようなメカニズムは、ターゲットリレーショナルデータベースからユーザによって特定されたデータの再暗号化を管理する管理コンソールを含み得る。
いくつかの実施例に従い、再暗号化のために選択されたデータベースデータの再暗号化は、セキュアシステムへの変換のためにターゲットとされたリレーショナルデータベースからの大量のデータにおけるデータ暗号化を高速に実行するように設計された専門の一部のハードウェア上で実行される。さらに、そのような専門のハードウェアは、ターゲットリレーショナルデータベースとつながるデータベースサーバをオフロードするために、独自のCPUと処理電源を装備する。いくつかの実施例に従い、ユーザ選択データの再暗号化は、ターゲットデータベースサーバまたはターゲットデータベースに関係する他のいくつかのメカニズムによって実行される。
いくつかの実施例に従い、ターゲットデータベースから暗号化のためのターゲットデータを移動することについて使用されるメカニズムは、以下の機能性を含む。1)ユーザが修正することを承認されたテーブルがどれであるかを確認する、2)確認されたテーブル内において、ユーザが暗号化することを承認された列がどれであるかを決定する、3)望まれた暗号化の特性を特定するための入力パラメータを受け取る、4)暗号化のターゲットとされたそれぞれの列内について要求される、列長やデータタイプを修正または生成する、5)暗号化のターゲットとされたそれぞれの列内で表されるクリアテキストデータを暗号化する、および6)暗号化されていないフォームにターゲットデータを戻すのと同様に、暗号化された列を、元のサイズおよびデータタイプに戻すための「アンドゥ」機能性を提供する。
いくつかの実施例に従い、メカニズムは、ターゲットデータの暗号化が、リレーショナルデータベースの計算および保存リソースを使い果たさないように、リレーショナルデータベースから分けられた装置上で起こることを許容するために提供される。そのようなメカニズムは、ターゲットデータベースから処理用の暗号化サーバへのデータの移動を管理する管理コンソールを含み得る。
いくつかの実施例に従い、暗号化のターゲットとされたデータベースのデータは、セキュアシステムへの変換のターゲットとされたリレーショナルデータベースからの大量のデータ上のデータ暗号化を高速に実行するよう設計された専門の一部のハードウェア上で実行される。さらに、そのような専門の一部のハードウェアは、ターゲットリレーショナルデータベースにつながるデータベースサーバをオフロードするために、独自のCPUおよび処理電源を装備する。
いくつかの実施例に従い、リレーショナルデータベースから分けられ、かつターゲットデータを暗号化するために使用されるメカニズムが、非認証処理にアクセスできないようするために、暗号キーを高いセキュア形式内に保存する。
いくつかの実施例に従い、ターゲットリレーショナルデータベースから分けられたメカニズムが、ターゲットリレーショナルデータベースからターゲットデータを取り出すための選択ステートメントを出す。そのようなメカニズムは、その後、ターゲットデータ上の、マルチスレッドのハードウェアレベルの暗号化を実行する。ターゲットデータが暗号化された後、メカニズムは、ターゲットリレーショナルデータベースに暗号化データをコピーして戻すためのアップデートステートメントを出す。
いくつかの実施例に従い、リレーショナルデータベース内に存在する既存のデータを暗号化フォーマットに変換するためのメカニズムを提供することにより、安全でないデータベースシステムは、セキュアシステムに変換される。さらに、いくつかの実施例に従い、データベース内の機密データの粒度の細かい保護を許容するためのメカニズムが提供される。言い換えれば、データベース内のいくつかのテーブルは、暗号化のために選択され得る。もし望まれれば、全てのデータベーステーブルを暗号化するよりはむしろ、与えられたデータベーステーブル内のいくつかの列が暗号化のために選択され得る。そのよう粒度の細かい保護は、データベースおよびデータベース内のデータにアクセスするアプリケーションプログラムに対して最小限の影響を伴って実装される。認証されたアプリケーションプログラムは、ほとんどないか、または全くないアプリケーションプログラムへの変化を伴って暗号化データに途切れなくアクセスできる。
いくつかの実施例に従い、リレーショナルデータベースの外部のアプリケーションプログラムに、途切れのない方式におけるデータベース内の機密データにアクセスすること許容するためのメカニズムが提供される。説明のために、アプリケーションプログラムは、リレーショナルデータベース内の暗号化データにアクセスするためのステートメントを修正しなければならないということなしに、暗号化されていないデータにアクセスするために通常使用される既存のクエリステートメントを使用するために許容されるべきである。言い換えれば、アプリケーションプログラムは、機密データが暗号化される前に、データベース内の機密データにアクセスするために使用される同じクエリステートメントを使用できる。
いくつかの実施例に従い、リレーショナルデータベースと1以上のメカニズムとの間の途切れのない相互のやり取りの管理を許容するためのメカニズムが、以下のために提供される。1)リレーショナルデータベースの内部からの求めに応じて、データを暗号化および復号化する、2)プレーンテキスト列から暗号化された列へデータを移動する、3)その後の暗号および復号オペレーションを自動化する、4)認可されたユーザのみが機密データにアクセスできるよう、ユーザを認証する。
いくつかの実施例に従い、認可されたアプリケーションプログラムが与えられたソースデータベーステーブル内で既に暗号化された機密データにアクセスする要求を出したとき、メタデータテーブルを使ってソーステーブルのビューがインタンス生成される。さらに、要求された機密データが復号化され、そのようなビューが復号化されたデータを伴って取り込まれる。ビュー上で要求しているアプリケーションプログラムが実行される任意の動作が補足される。補足された動作に応じて、あたかも要求しているアプリケーションが一致するソーステーブルで動作しているかのように、新たな動作が一致するソーステーブル上で自動的に実行される。
図1は、いくつかの実施例に従い、透過的な暗号化のためのシステムアーキテクチャを示す高レベルブロック図である。アーキテクチャ100内において、クライアントコンピュータ102は、ウェブサーバ104を通じて、アプリケーションサーバ106にアクセスできる。アプリケーションサーバ106は、リレーショナルデータベース108と通信できる。リレーショナルデータベース108は、データベースプロバイダ110と暗号化プロバイダ112を含む。データベースプロバイダ110と暗号化プロバイダ112は、暗号化サーバ114と通信できるようになっている。暗号化サーバ114はまた、ネットワーク接続暗号化サーバ(NAEサーバ)として参照される。
いくつかの実施例に従い、データベースプロバイダ110のようなデータベースプロバイダは、与えられたリレーショナルデータベースに対して与えられた暗号化プロバイダの特徴を露出するためのいくつかの機能を構成するPL/SQL(手続き型言語/構造化照会言語)レイヤである。そのような機能は、限定されない以下のことを含む。1)暗号化クライアント証明書キーストアおよびパスワードの場所をセットするような、暗号化プロバイダが必要とし得るプロバイダシステム特性をセットする機能、2)暗号化サーバユーザネームおよびリレーショナルデータベースの特定のユーザのためのパスワードをセットする機能、3)文字列を暗号化し、および文字列でエンコードされたBase64のようなデータを戻すための付随的な機能、4)文字列でエンコードされたBase64を復号化し、および暗号化されていないオリジナルの文字列を戻すための付随的な機能、5)数を暗号化し、そして、文字列でエンコードされたBase64のようなデータを戻すための付随的な機能、6)文字列でエンコードされたBase64を復号化し、そして、暗号化されていない数を戻すための付随的な機能、7)文字列を暗号化し、生の2値のようなデータを戻すための付随的な機能、8)生の2値を復号化し、そして、暗号化されていないオリジナルの文字列を戻すための機能、9)数を暗号化し、そして、生の2値のようなデータを戻すための機能、10)生の2値を復号化し、そして、暗号化されていない数を戻すための機能、11)文字列を暗号化し、ビットデータのようなデータを戻すための機能、12)ビットデータを復号化し、そして、暗号化されていないオリジナルの文字列に戻すための機能、13)数を暗号化し、そして、ビットデータのようなデータを戻すための機能、14)ビットデータを復号化し、そして、暗号化されていないオリジナルの数に戻すための機能。
いくつかの実施例に従い、NAEサーバのような暗号化サーバは、クライアント接続を聞き、そして、暗号化オペレーションや暗号キー管理オペレーションを管理する。暗号化サーバは、ユーザや暗号化サーバクライアントに、暗号キー、認証、データの暗号化および復号化、デジタル署名の生成、メッセージ認証コード(MAC)の証明と関係するオペレーションを含む暗号化オペレーションを実行することを許容する。
暗号化サーバは、暗号化サーバクライアントが暗号化プロバイダを通して暗号化オペレーションを実行することを許容する。いくつかの実施例に従い、暗号化プロバイダは暗号化サーバに対するAPIである。暗号化サービスについて要求するために、暗号化サーバと通信するのは暗号化プロバイダである。
図2は、いくつかの実施例に従い、リレーショナルデータベース内のクリアテキストフォーマット内に保存された機密データを、リレーショナルデータベースにアクセスするアプリケーションプログラムに、アプリケーションプログラムに対して透過的となる方式で暗号化オペレーションを実行するための暗号化サーバと交信することを許容するような方式で、暗号化されたフォーマットに変換するといったことが実行されるいくつかのステップを示すフローチャートである。ブロック202では、機密データが確認され、そのような機密データが存在するデータベーステーブルが確認される。そのような機密データが存在すると確認されたデータベーステーブルは、ここではソーステーブルとして参照される。図2を参照した説明の目的のために、ここで表1として示すように、「CUSTOMER」と呼ばれるデータベーステーブルCC#NUMと呼ばれる列に、機密データ(クレジットカード番号)を含むものと仮定する。

Figure 2009510616
ブロック204では、ソーステーブル「CUSTOMER」は、同じ名前「CUSTOMER」を伴って、後にビューが生成され得るように、改名される。ここで、ソーステーブル「CUSTOMER」は、表2に示されるように、「CUSTOMER#ENC」に改名されると仮定する。しかしながら、表2に示される改名されたソーステーブル「CUSTOMER#ENC」中の列CC#NUMの中のデータは、まだ変わっていないが、ブロック210で記述される方式に変更される。

Figure 2009510616
ブロック206では、テンポラリテーブルが生成され、改名されたソーステーブルCUSTOMER#ENCからの列CC#NUMからの機密データがテンポラリテーブルにエクスポートされる。ブロック206で記述されるようなテンポラリテーブルへの機密データのエクスポートの後で、ブロック208では、後のステップでデータタイプの変更のときに起こるいかなるデータ変換を避けるために、CUSTOMER#ENC内の列CC#NUMのデータが零にセットされる。ここで、テンポラリテーブルの例が、CUSTOMER#TEMPとして表3に示される。

Figure 2009510616
ブロック210では、データタイプと列CC_NUMの列サイズが、暗号化データがクリアテキストデータよりも予想通りに大きいために、適応する暗号化データに修正される。限定されない例として、暗号化データは、フォーマットがエンコードされたBase64に保存され、またはバイナリデータとして保存される。データタイプおよび列CC_NUMの列サイズが修正された後で、かつ、テンポラリテーブルCUSTOMER_TEMPからの機密データがCUSTOMER_ENCにインポートされる前に、ブロック212で、暗号化プロバイダは、機密データを、テンポラリテーブルから、データが暗号化される暗号化サーバに送る。
ブロック214では、暗号化サーバは機密データを暗号化プロバイダに戻す。暗号化プロバイダは、暗号化された機密データを改名されたソーステーブルCUSTOMER_ENCの列CC_Numに挿入する。ここで、暗号化データを含むソーステーブルは、表4に示されるように現れる。

Figure 2009510616
図3は、いくつかの実施例に従い、暗号化データにアクセスするためのアプリケーションによって送られたクエリステートメントに対する修正なしで、アプリケーションプログラムにデータベースから暗号化されたデータにアクセスすることを許容するために実行されるいくつかのステップを示すフローチャートである。説明のため、リレーショナルデータベース内で暗号化されたフォーマット内に保存される機密データにユーザがアクセスしたいと望むことを仮定する。ユーザがアクセスすることを要求するデータは、以下「要求された機密データ」として参照される。ここで、図3は、図1を参照して記述される。図1の参照において、ユーザは、ウェブサーバ104を経由してアプリケーションサーバ106にアクセスするクライアントコンピュータ102を使用できる。アプリケーションサーバ106は、リレーショナルデータベース108からデータにアクセスするための少なくとも1つのアプリケーションプログラム(図1に示されていない)を管理する。リレーショナルデータベース108内に保存された機密データの暗号化されたフォーマットについて、アプリケーションサーバ106および少なくとも1つのアプリケーションプログラムは、不可知論者であると仮定する。要求された機密データは暗号化されるのであるが、アプリケーションサーバ106および関係するアプリケーションプログラムは、まるで機密データがクリアテキストフォーマット内にあるかのようにオペレートする。
図3のブロック302では、アプリケーションサーバは、リレーショナルデータベースの呼び出しをつくり、そして、ユーザの代わりにデータベース内のデータへのアクセスを要求するためにクエリを送る。ブロック304では、要求されたデータが機密データかどうかについての決定がなされる。もし、要求されたデータが機密データでないと決定された場合、その後、ブロック306で、クエリは、ユーザに、非機密データにアクセスすることを許容することによって満足される。
しかしながら、もし、要求されたデータが機密データであると決定された場合、その後、ブロック308で、ユーザは暗号化プロバイダを通じて暗号化サーバに認証される。限定されない認証の例において、ユーザは、有効なユーザネームおよびパスワードを求められる。もう1つの限定されない認証の例において、有効なユーザネームおよびパスワードを求められることに加えて、ユーザは、クライアント証明書を求められ得る。もう1つの限定されない例において、ユーザの証明書は、リレーショナルデータベースに保存され、そして、それ故、データベースから取り出される。
ブロック310では、ユーザがうまく認証されたかどうかが決定される。もし、ユーザがうまく認証されていないと決定された場合、その後、ブロック312で、データにアクセスするというユーザの要求は拒否される。
しかしながら、ユーザがうまく認証されたと決定された場合には、その後、ブロック314で、データベースプロバイダは、要求された機密データを含むデータベーステーブルのビューを自動的にインスタンス生成し、そして、要求された機密データの復号化されたフォームを伴った、インスタンス生成されたビューを取り込む。いくつかの実施例に従い、そのようなビューは、メタデータテーブルの使用のためにインスタンス生成される。ユーザは、その後、現れたビューに交信することができる。ここで、図2に関して記述された例に戻り、取り込まれたデータは表5に示される。

Figure 2009510616
図4は、いくつかの実施例に従い、要求された機密データを含む、インスタンス生成されて取り込まれたビューにおいて、ユーザによって発行された挿入クエリステートメントを実行するためのいくつかのステップを示すフローチャートである。
図4のブロック402では、認証されたユーザは、リレーショナルデータベース内で与えられたデータベーステーブルに、機密データを挿入するために、取り込まれたインスタンス生成ビュー上でクエリ挿入ステートメントを実行する。取り込まれたインスタンス生成ビューは、オリジナルソースデータベーステーブルと一致するような同じ名前を有しているので、暗号化された列または暗号化されたデータを参照するクエリステートメントは、修正なしで規則的に機能する。
ブロック404では、ビュー上で挿入ステートメントを実行するという、認証されたユーザの試みに応じて、1以上のトリガが、ユーザの挿入ステートメントをトラップさせられるようにする。ブロック406では、トラップされた挿入ステートメントの挿入値に基づいて、新たな挿入ステートメントが生成されるように、暗号化のためのNAEサーバに実行されるような要求がつくられる。言い換えれば、NAEサーバは、挿入値上で暗号化を実行する。ブロック408では、新たな挿入ステートメントが、取り込まれたインスタンス生成ビューと一致するソースデータベーステーブルに一致して実行される。
図5は、いくつかの実施例に従い、要求された機密データを含む取り込まれたインスタンス生成ビュー上でユーザによって発行されたアップデートクエリステートメントを実行するためのいくつかのステップを示すフローチャートである。
図5のブロック502では、認証されたユーザは、リレーショナルデータベース内で与えられたデータベーステーブルに、新たな機密データをアップデートするために、取り込まれたインスタンス生成ビュー上でクエリアップデートステートメントを実行する。取り込まれたインスタンス生成ビューは、オリジナルソースデータベーステーブルと一致するような同じ名前を有しているので、暗号化された列または暗号化されたデータを参照するクエリステートメントは、修正なしで規則的に機能し得る。
ブロック504では、ビュー上でアップデートステートメントを実行するための認証されたユーザの試みに応じて、1以上のトリガが、ユーザのアップデートステートメントがトラップされるようにする。ブロック506では、トラップされたアップデートステートメントのアップデート値に基づいて、新たなアップデートステートメントが生成される。ブロック408では、取り込まれたインスタンス生成ビューと一致するオリジナルデータベーステーブル上で、アップデートステートメントが実行される。
図6は、いくつかの実施例に従い、データベースから分けられた暗号化メカニズムを使用するデータベース内で事前に暗号化されたデータの再暗号化のためのシステムアーキテクチャを示す高レベルブロック図である。アーキテクチャ600内において、クライアントコンピュータ602は、暗号化サーバ614と通信することができる。暗号化サーバは、リレーショナルデータベース608と通信する。暗号化サーバは、他のコンポーネントの間に、CPU、処理電源を含む。暗号化サーバは、データベース結合上の限定されない情報および暗号化されたデータについてのアクセス特権を含む情報を保存するために使用され得る。
暗号化サーバ614はまた、ネットワーク接続暗号化サーバ(NAEサーバ)として参照される。リレーショナルデータベース608は、他のコンポーネントの間で、テーブル610のような複数のデータテーブル、およびメタデータテーブル612のような複数のメタデータテーブルを含む。リレーショナルデータベース内のメタデータテーブル612のようなメタデータテーブルは、限定されるものでない、1)データベーステーブル及びリレーショナルデータベースによって管理される列に関係するそれぞれの認証されたユーザのアクセス権、および、2)テータベーステーブルおよび列スキーマ、3)暗号化方法上の情報、および4)テーブルとターゲットデータベースから暗号化のために選択される列の特性上の情報、を含む情報を保存するために使用され得る。暗号化サーバは、再暗号化のためにターゲットリレーショナルデータベースからユーザによって選択されたターゲットデータを取り出す。暗号化サーバは、その後、暗号キーおよび/またはユーザによって選択された新たな初期化ベクトルを使用するユーザ選択データ上で再暗号化を実行する。
セキュリティ管理者、データベース管理者のようなユーザは、暗号化サーバに関係するデータ管理コンソールにアクセスすることにより、リレーショナルデータベース内のデータの再暗号化処理を管理するためにクライアントコンピュータを使用し得る。いくつかの実施例に従い、データ管理コンソールは、そのユーザに望まれるデータベースサーバにログインすること、および、再暗号化のためのデータを選択すること、を許容する。いくつかの他の実施例において、望まれるリレーショナルデータベースは、データベースプロバイダおよび暗号化プロバイダを含み得る。いくつかの実施例に従い、データベースプロバイダは、データベースサーバ上に存在し、NAEサーバに通信するコンピュータ実行機能性の一部である。 暗号化プロバイダは、暗号化サービスを要求するための暗号化サーバと通信する。いくつかの実施例に従い、暗号化プロバイダは、暗号化サーバに対するAPIである。
いくつかの実施例に従い、NAEサーバのような暗号化サーバは、暗号化オペレーションおよび暗号キー管理オペレーションを管理する。暗号化サーバは、データの暗号化および復号化、暗号キー、認証、デジタル署名の生成、メッセージ認証コード(MAC)と関係するオペレーションを含む暗号化オペレーションを実行することをユーザまたは暗号化サーバクライアントに許容する。
いくつかの実施例に従い、暗号化サーバは、以下の機能性を含むキーローテーションツールを含む。1)1以上の事前に暗号化された再暗号化のための列を選択することをユーザに許容する、2)再暗号化のためにユーザによって選択された列についての列レベルでの新たな初期化ベクトルを特定することをユーザに許容する、3)再暗号化のためにユーザによって選択された各行についての行レベルでの新たな初期化ベクトルの生成を要求することをユーザに許容する、4)ユーザによって選択された列または行データの再暗号化における使用のための新たな暗号キーを特定することをユーザに許容する、5)ユーザによって選択されたデータの再暗号化のためのバッチサイズを特定することをユーザに許容する、6)ユーザによって特定されるような再暗号化を実行する、7)望まれた場合に、しばらく経ってリレーショナルデータベースのバックアップデータのデータ復号化を手助けする暗号キーの使用法のヒストリを記録する、および8)望まれた場合に、異なる暗号化モードを特定することをユーザに許容する。
図7は、ターゲットリレーショナルデータベースに最小の影響を有する方式で再暗号化のためにユーザによって選択されたターゲットデータベース内の列または行内のデータの再暗号化のために実行されるいくつかのステップを示すフローチャートである。
図7のブロック702では、セキュリティ管理者またはデータベース管理者のようなユーザは、再暗号化の目的のために、ターゲットリレーショナルデータベースから選択された列または行データ(同様にターゲットデータとして参照される)のデータ再暗号化処理を始める。いくつかの実施例に従い、ユーザは、図6の暗号化サーバ604のような暗号化サーバにアクセスすることにより、データ再暗号化処理を始めることができる。いくつかの実施例に従い、暗号化サーバは、フロントエンドユーザインターフェースを伴う暗号キーローテーションツールを含み得る。そのようなキーローテーションツールのフロントエンドユーザインターフェースは、ここでは、データ管理コンソールとして同様に参照される。データ管理コンソールは、ターゲットデータベースにログインすることが要求されるデータの特定のセットに、ユーザが入ることを許容する。ログインすることが要求されるデータの特定のセットは、データベースベンダに基づいて変わり得る。それ故、いくつかの実施例に従い、管理コンソールは、ターゲットデータベースのデータベースタイプを特定することをユーザに許容する。データベースタイプに基づいて、管理コンソールは、その後、ターゲットデータベースにログインするためのログインデータフィールドを示すことができる。
ユーザのログイン情報が提示されたとき、ターゲットデータベースサーバに接続するという試みが初期化される。いくつかの実施例に従い、もし、接続の試みがうまくいった場合、データベース接続情報が暗号化サーバ上に保存される。そのようなデータベース接続情報は、将来のログインの試みの間に、ユーザが選択されたターゲットデータベースについての最小量のデータエントリを要求するログインスクリーンをユーザがもらうことができるように、それぞれのタイプのデータベースに関して集められ、そして保存され得る。
ターゲットデータベースに接続するという接続の試みが失敗となった場合、その後、ユーザは、エラーメッセージを受け取り、ログイン情報を再入力することが許される。
図7のブロック704では、いくつかの実施例に従い、ユーザが選ぶターゲットデータベースに一度接続されると、管理コンソールは、その後、再暗号化のためにユーザに利用可能な事前に暗号化されたデータベーステーブルのリストを示すことができる。いくつかの実施例に従い、メタデータテーブル612のようなデータベースメタデータテーブルは、ユーザのユーザIDに基づいて検索される。データベースメタデータテーブルは、ユーザによって事前に暗号化されたデータベーステーブルのリストを決定するために、ユーザIDに基づいて検索される。ユーザが事前に暗号化したデータベーステーブルのリストは、ここでは、データベーステーブルのターゲットリストとして参照される。データベーステーブルのターゲットリストは、ユーザに示すための管理コンソールに戻される。
図7のブロック706では、ユーザは、再暗号化についてのデータベーステーブルのターゲットリストからデータベーステーブルを選択できる。ユーザによって選択されたデータベーステーブルは、ここでは、ベーステーブルとして参照される。選択されたデータベーステーブルは、ここではしばしばベーステーブルとして参照される。図7のブロック708では、列のリストがユーザに示される。いくつかの実施例に従い、データベースメタデータテーブルは、選択されたデータベーステーブル内でユーザによって事前に暗号化された列のリストを決定するために、ユーザのユーザIDに基づいて検索される。ユーザが事前に暗号化した、選択されたデータベーステーブル内の列のリストは、ここでは、列のターゲットリストとして参照される。列のターゲットリストは、ユーザに示すための管理コンソールに戻される。
図7のブロック710では、列のターゲットリストから再暗号化のための列を特定することが、ユーザに許される。ブロック712では、ユーザには、1以上の選択された列のそれぞれについての新たな暗号キーを特定することが許される。付随的に、新たな暗号キーを選択することに加え、ユーザには、異なる暗号化モードを選択することが許される。ユーザにはまた、1以上の選択された列のそれぞれについての新たな初期化ベクトルを選択することが許される。もし、ユーザが行レベルで初期化ベクトルを選択した場合、その後、選択されたデータベーステーブル内の全ての列は、選択されたデータベーステーブル内の与えられた列がキーローテーションのために選択されるか否かにかかわらず、新たな初期化ベクトルおよび新たに選択されたキーローテーションを用いて暗号化される。いくつかの実施例に従い、ユーザの選択は、将来の参照のために暗号化サーバ内に保存され得る。
ブロック714では、関係する前に処理された多くの行を制御するためのバッチサイズを特定することが、ユーザに許される。図7のブロック716では、再暗号化のためのもう1つのテーブルを選択することがユーザに許され、そして上記の処理が繰り返される。ブロック718では、ユーザが、彼または彼女の再暗号化のためのテーブルおよび列の選択を完了した後、ターゲットデータベースから再暗号化および他に必要な修正のための暗号化サーバへのユーザの選択されたテーブルおよび列のキーローテーションを自動的に実行するために、スクリプトが生成される。例えば、選択されたデータのバルクロードの復号化と再暗号化を自動化することに関する保存された手続きが使用され得る。いくつかの実施例に従い、保存された手続きは、データベースサーバから呼ばれ得る。
図8は、いくつかの実施例に従い、データベースから分けられた暗号化メカニズムを使用するデータベース内のデータの暗号化のためのシステムアーキテクチャを示す高レベルのブロック図である。アーキテクチャ800内において、クライアントコンピュータ802は、暗号化サーバ814に通信可能である。暗号化サーバは、リレーショナルデータベース808と通信を行う。暗号化サーバは、他のコンポーネントの間で、CPUおよび処理電源を含む。暗号化サーバは、データベース接続および暗号化データへのアクセス特権上の限定されない情報を含む情報を保存するために使用され得る。暗号化サーバ814はまた、ネットワーク接続暗号化サーバ(NAEサーバ)として参照される。
リレーショナルデータベース808は、他のコンポーネントの間で、テーブル810のような複数のデータテーブル、およびメタデータテーブル812のような複数のメタデータテーブルを含む。リレーショナルデータベース内のメタデータテーブルは、限定されることのない、1)リレーショナルデータベースによって管理されるデータベーステーブルおよび列に関するそれぞれ認証されたユーザのアクセス権、および2)データベーステーブルおよび列スキーマ、3)暗号化方法上の情報、4)ターゲットリレーショナルデータベースから暗号化のために選択されたテーブルや列の特性における情報、を含む情報を保存するために使用され得る。暗号化サーバは、選択されたターゲットリレーショナルデータベースからターゲットデータを取り出す。暗号化サーバは、その後、ターゲットデータ上で暗号化を実行する。いくつかの実施例に従い、暗号化サーバは、その後、ターゲットデータ上で、マルチスレッドの、ハードウェアレベルの暗号化を実行する。
セキュリティ管理者またはデータベース管理者のようなユーザは、暗号化サーバに関係するデータ管理コンソールにアクセスすることにより、リレーショナルデータベース中のデータの暗号化処理を管理するために、クライアントコンピュータを使用できる。いくつかの実施例に従い、データ管理コンソールは、望まれるデータベースサーバにログインし、データベースと通信することをユーザに許容する。いくつかの他の実施例に従い、望まれるリレーショナルデータベースは、データベースプロバイダや暗号化プロバイダを含み得る。いくつかの実施例に従い、データベースプロバイダは、リレーショナルデータベースサーバのコンピュータ実行機能性であり、暗号化プロバイダと通信することができる。暗号化プロバイダは、暗号化サービスを要求するために暗号化サーバと通信する。いくつかの実施例に従い、暗号化プロバイダは、暗号化サーバへのAPIである。
いくつかの実施例に従い、NAEサーバのような暗号化サーバは、暗号化オペレーション、および暗号キー管理オペレーションを管理する。暗号化サーバは、データの暗号化および復号化に関係するオペレーション、暗号キー、認証、デジタル署名の生成、メッセージ認証コード(MAC)の生成と証明、を含む暗号化オペレーションを実行することを、ユーザまたは暗号化サーバクライアントに許容する。
いくつかの実施例に従い、暗号化サーバは、以下の機能性を含むデータ移動ツールを含む。1)ユーザが修正するために認証されるテーブルがどれであるかを証明する、2)証明されたテーブル内において、ユーザが修正するために認証される列がどれであるかを決定する、3)望まれる暗号化の特性を特定するための入力パラメータを受け取る、4)暗号化のターゲットとされたそれぞれの列について要求される列長やデータタイプを修正または生成する、5)暗号化のターゲットとされるそれぞれの列に存在するクリアテキストデータを暗号化する、6)非暗号化形式にターゲットデータを回復するのと同様に、暗号化された列をそのオリジナルのサイズやデータタイプに回復させるための「アンドゥ」機能性を提供する。
図9は、ターゲットリレーショナルデータベース内のクリアテキストフォーマット内に保存された機密データを、ターゲットリレーショナルデータベースのリソース上で最小限の影響を有する方式で暗号化フォーマットに変換するための実行されるいくつかのステップを示すフローチャートである。
図9のブロック902において、セキュリティ管理者のようなユーザは、暗号化のターゲットためにリレーショナルデータベースから選択された機密データ(同様にターゲットデータとして参照される)のデータ移動を始める。いくつかの実施例に従い、ユーザは、図8の暗号化サーバ804のような暗号化サーバにアクセスすることによりデータ移動を始めることができる。いくつかの実施例に従い、暗号化サーバは、フロントエンドユーザインターフェースと伴うデータ移動ツールを含み得る。そのようなデータ移動ツールのフロントエンドユーザインターフェース、ここではまた、データ管理コンソールとして参照される。データ管理コンソールは、ターゲットデータベースにログインすることが要求されるデータの特定のセットを入力することをユーザに許容する。ログインすることが要求されるデータの特定のセットは、データベースベンダに基づいて変わり得る。それ故、いくつかの実施例に従い、管理コンソールは、ターゲットデータベースのデータベースタイプを特定することをユーザに許容する。データベースタイプに基づいて、管理コンソールは、その後、ターゲットデータベースにログインするためのログインデータフィールドを示し得る。
ユーザのログイン情報が提示されたとき、ターゲットデータベースサーバに接続するという試みは、初期化される。いくつかの実施例に従い、もし、接続の試みがうまくいった場合、データベース接続情報は、暗号化サーバ上に保存される。そのようなデータベース接続情報は、将来のログインの試みの間に、選択されたターゲットデータベースのための最小量のデータエントリを要求するログインスクリーンをユーザが受け取ることができるように、データベースのそれぞれのタイプのために、集められ、保存され得る。
もし、ターゲットデータベースへの接続の試みがうまくいかなかった場合、その後、ユーザは、エラーメッセージを受け取り、ログイン情報を再入力することが許容される。
図9のブロック904では、いくつかの実施例に従い、ターゲットデータベースに一度接続されると、管理コンソールは、その後、修正のためにユーザに利用可能なデータベーステーブルのリストを示すことができる。いくつかの実施例に従い、メタデータテーブル612のようなデータベースメタデータテーブルが、ユーザのユーザIDに基づいて検索される。そのようなメタデータテーブルは、ターゲットデータベース内に存在するデータテーブル上に情報を保存する。データベースメタデータテーブルは、ユーザがアクセスまたは修正するために認証されたデータベーステーブルのリストを決定するために、ユーザIDに基づいて検索される。アクセスまたは修正するためにユーザが認証されたデータベーステーブルのリストは、ここでは、データベーステーブルのアクセス可能なリストとして参照される。データベーステーブルのアクセス可能なリストは、ユーザに示すための管理コンソールに戻される。
図9のブロック906では、ユーザは、移動およびその後の修正のためにデータベーステーブルのアクセス可能なリストからデータベーステーブルを選択できる。ユーザに選択されたデータベーステーブルは、ここでは、選択されたデータベーステーブルとして参照される。選択されたデータベーステーブルは、ときどき、ベーステーブルとしてここに参照される。図9のブロック908では、列のリストがユーザに示される。いくつかの実施例に従い、データベースメタデータテーブルは、選択されたデータベーステーブル内で修正のためにユーザに利用可能な列のリストを決定するために、ユーザのユーザIDに基づいて検索される。アクセスおよび修正するためにユーザに認証された、選択されたデータベーステーブル内の列のリストは、ここでは、列のアクセス可能なリストとして参照される。
列のアクセス可能なリストは、ユーザに提示するための管理コンソールに戻される。いくつかの実施例に従い、列のアクセス可能なリストを決定することに加え、データベースメタデータテーブルおよび暗号化サーバに保存された暗号化情報は、ユーザに有用となり得る列上のいくつかの情報を決定するために検索される。ユーザに有用な列上の情報は、ここでは、列情報として参照される。列情報は、暗号化のための候補のような列をユーザが承認するか拒絶するかを決定するのに役立ち得る。
列情報は、ユーザに提示するための管理コンソールに戻される。そのような列情報は、実装により異なる。いくつかの限定されない列情報の例は、1)列がサポートされたデータタイプを有するかどうか(ユーザが、暗号化の候補としてのサポートされていないデータタイプを伴う列を拒絶するようにアドバイスされる)、2)列が基本キーとして使用されたかどうか(列が、明示的か、黙示的かのいずれかで外部キーとして参照されていない場合に、基本キー列が暗号化され得ることをユーザが知らされる)、3)列が外部キーとして使用されたかどうか(ユーザは、暗号化の候補である外部キーとして使用された列を拒絶するようにアドバイスされる)、4)列がインデックス内で使用されたかどうか(ユーザは、暗号化データのソート順序がクリアテキストデータのソート順序と一致していないことをアドバイスされる)、5)列がそれに割り当てられたデフォルト値を有しているかどうか(ユーザは、暗号化の候補であるそれらに割り当てられたデフォルト値を有する列を拒絶するようアドバイスされる)、6)列が検査制約を有しているかどうか(ユーザは、暗号化の候補である検査制約を有する列を拒絶するようアドバイスされる)、7)列が、この列が存在するデータベーステーブル上でいくつかのトリガにおいて参照されるかどうか(ユーザは、トリガが期待通りに機能するかどうかを見るためにトリガを再検討するようアドバイスされる)、および8)列が暗号化フォーマット内にあるかどうか(ユーザは、暗号化の候補として既に暗号化された列を拒絶するようアドバイスされる)、に関係する。上記の1以上の限定されない列情報の例は、いくつかの実施例に従い、手動のチェックを含み得る。
図9のブロック910では、ターゲットデータベース(ベーステーブル)から暗号化のための列を選択することがユーザに許される。ブロック912では、選択された列についての暗号化方法および関係する暗号化特性を選択することがユーザに許される。例えば、暗号化アルゴリズム、モード、初期化ベクトル、およびパディングを選択することがユーザに許され得る。いくつかの実施例に従い、ユーザの選択は、将来の参照のために暗号化サーバ内に保存され得る。
図9のブロック914では、暗号化のためのもう1つのテーブルを選択することがユーザに許され、そして、上記の処理が繰り返される。ブロック916では、ユーザが彼または彼女の暗号化のためのテーブルおよび列の選択が完了した後で、ユーザの選択されたテーブルおよび列並びに他に必要な修正のデータ移動を自動的に実行するために、スクリプトが生成され得る。スクリプトの一機能の一例は、ターゲットデータが暗号化された後に、ターゲットに適合するように、選択された暗号化アルゴリズムおよび選択された暗号化特性に基づいた列サイズの修正である。スクリプトのセットは、リレーショナルデータベースのそれぞれの列について変わり得る。データベース管理システムの各タイプは、変更機能性をサポートし得る。それ故、データ移動についての工程は、データベース管理システム(DBMS)の各タイプに合わせて調整される。
図10は、SQLサーバタイプDBMSについてのデータ移動スクリプトの限定されない高レベルの例である。ブロック1002では、アイデンティティ列がすでに存在しない場合に、列が暗号化のために選択されるベーステーブルに、アイデンティティ列が加えられる。
ブロック1004では、ブロック1002内で参照されるベーステーブルから暗号化のために選択された列からのデータが、ブロック1002で参照されるアイデンティティおよびインクリメントされた行カウンタとともに、テンポラリテーブルに配置される。いくつかの実施例に従い、インクリメントされた行カウンタは、処理のためのユーザ指定のバッチサイズをサポートするために使用され得る。テンポラリテーブル内に配置されたデータは、その後、適用可能であれば、選択された暗号化方法、モード、初期化ベクトルおよびバディングを使用することで暗号化サーバによって暗号化される。
ブロック1006では、ブロック1002で参照されるベーステーブル内で暗号化のために選択された列に一致するデータ値が、零にセットされる。データ値は、一致する列サイズおよびデータタイプを修正するために、零にセットされる。
ブロック1008では、暗号化のために選択された列サイズおよび列のデータタイプは、選択された暗号化アルゴリズムおよびパディングをサポートするために修正される。
ブロック1010では、ブロック1002で参照されるベーステーブルは、TSQL暗号化処理を呼び出すことにより、ブロック1004内で参照されるテンポラリテーブルからのデータの暗号化されたバージョンとともにアップデートされる。
ブロック1012では、ブロック1014で参照されるテンポラリテーブルは、データ暗号化処理が完了され、有効とされた後に、ドロップされる。ブロック1014では、反転が実際に望まれる場合に、ベーステーブルまたはいくつかの特定された列をそのオリジナルの暗号化されていないフォームに戻すようために、図10を参照して記載されるように、暗号化処理を反転させるために「アンドゥ」機能性が提供される。
図11は、DB2サーバタイプDBMSのためのデータ移動スクリプトの限定されない高レベルの例である。ブロック1102では、暗号化のために選択されたデータのそれぞれの列について、暗号化のために列が選択されたベーステーブルに、新たな列が加えられる。ブロック1104では、選択された列データが暗号化サーバによって暗号化され、そして、ブロック1102で参照される新たな列が、列データの暗号化されたバージョンとともにアップデートされる。
ブロック1106では、暗号化されていないオリジナルのデータの列の値が零にセットされる。ブロック1108では、ブロック1102内で参照されるベーステーブルが、同じオリジナルネームを伴うベーステーブルのビューを生成するために、改名される。ブロック1110では、ベーステーブルの名前が改名される前に、ブロック1108内を参照するベーステーブル上において、ベーステーブルと同じ名前でビューが生成される。ブロック1112では、反転が実際に望まれたときに、ベーステーブルまたはいくつかの特定の列を、そのオリジナルの暗号化されていない形式に戻すために、図11を参照して記述されるように、暗号化処理を反転させるために「アンドゥ」機能性が提供される。
前述の明細書において、発明の実施例は、実装によって異なる多くの多数の具体的な細目を参照して記載されたものである。明細書および図面は、適宜に、限定的な意味よりもむしろ例としてみなされる。
図1は、いくつかの実施例に従い、透過的な暗号化のためのシステムアーキテクチャを示す高レベルのブロック図である。 図2は、いくつかの実施例に従い、リレーショナルデータベースにアクセスするアプリケーションプログラムに、アプリケーションプログラムに対して透過的である、いわば暗号化オペレーションを実行するための暗号化サーバと情報のやり取りをすること許容するように、リレーショナルデータベース内のクリアテキストフォーマットに保存される機密データを、暗号化フォーマットの形式に変換するために実行されるいくつかのステップを示すフローチャートである。 図3は、いくつかの実施例に従い、暗号化データにアクセスするためのアプリケーションプログラムによって送られるステートメントを検索するために、アプリケーションプログラムがデータベース内で暗号化されたデータに修正なしでアクセスすることを許容するために実行されるいくつかのステップを示すフローチャートである。 図4は、いくつかの実施例に従い、要求された機密データを含むインスタント生成されて取り込まれたビューにおいて、ユーザによって出された挿入クエリーステートメントを実行するためのいくつかのステップを示すフローチャートである。 図5は、いくつかの実施例に従い、要求された機密データを含むインスタント生成されて取り込まれたビューにおいて、ユーザによって出されたアップデートクエリーステートメントを実行するためのいくつかのステップを示すフローチャートである。 図6は、いくつかの実施例に従い、データベースから分けられた暗号化メカニズムを使用するデータベース内のデータの暗号化のためのシステムアーキテクチャを示す高レベルブロック図である。 図7は、ターゲットリレーショナルデータベース内のクリアテキストフォーマット内に保存される機密データを、ターゲットリレーショナルデータベースのリソースにおいて最小限の影響を有する暗号化フォーマットの形式に変換するために実行されるいくつかのステップを示すフローチャートである。 図8は、いくつかの実施例に従い、データベースから分けられた暗号化メカニズムを使用するデータベース内のデータの暗号化のためのシステムアーキテクチャを示す高レベルブロック図である。 図9は、ターゲットリレーショナルデータベース内のクリアテキストフォーマット内に保存される機密データを、ターゲットリレーショナルデータベースのリソースにおいて最小限の影響を有する暗号化フォーマットの形式に変換するために実行されるいくつかのステップを示すフローチャートである。 図10は、DBMSタイプのSQLサーバのためのデータ移動スクリプトの限定されない高レベルの例である。 図11は、DBMSタイプのDB2サーバのためのデータ移動スクリプトの限定されない高レベルの例である。

Claims (70)

  1. データベース内のデータにセキュリティを提供するためのコンピュータ実行方法であって、少なくとも1つの事前に暗号化された列を選択することをユーザに許容するためのメカニズムを提供すること、および、前記少なくとも1つの事前に暗号化されて選択された列内のデータの再暗号化のための新たなキーを特定することを前記ユーザに許容するための前記メカニズムに関係する自動化ツールを提供することを含むコンピュータ実行方法。
  2. 前記少なくとも1つの事前に暗号化されて選択された列の前記再暗号化のための新たな初期化ベクトルを特定することを前記ユーザに許容することをさらに含む請求項1に記載のコンピュータ実行方法。
  3. 前記少なくとも1つの事前に暗号化されて選択された列の前記再暗号化のために、1以上の行のための新たな初期化ベクトルが生成されることを要求することを前記ユーザに許容することをさらに含む請求項1に記載のコンピュータ実行方法。
  4. 前記再暗号化のためのバッチサイズを特定することを前記ユーザに許容することをさらに含む請求項1に記載のコンピュータ実行方法。
  5. 前記再暗号化を実行することをさらに含む請求項1に記載のコンピュータ実行方法。
  6. 前記再暗号化のために前記ユーザによって選択された各列に関係する暗号キーの用法のヒストリを記録することをさらに含む請求項1に記載のコンピュータ実行方法。
  7. 前記自動化ツールを使用するためのグラフィカルユーザインターフェースを伴う管理コンソールを提供することをさらに含む請求項1に記載のコンピュータ実行方法。
  8. 前記インターフェースがウェブベースのものである請求項7に記載のコンピュータ実行方法。
  9. データベース内のデータを暗号化するための暗号化システムであって、
    再暗号化のために少なくとも1つの事前に暗号化された列を選択することをユーザに許容するための手段、および、前記少なくとも1つの事前に暗号化されて選択された列内のデータの前記再暗号化のための新たなキーを特定することを前記ユーザに許容するための手段を含む暗号化システム。
  10. 前記少なくとも1つの事前に暗号化されて選択された列の前記再暗号化のための新たな初期化ベクトルを特定することを前記ユーザに許容するための手段をさらに含む請求項9に記載の暗号化システム。
  11. 前記少なくとも1つの事前に暗号化されて選択された列の前記再暗号化のための1以上の行についての新たな初期化ベクトルを特定することを前記ユーザに許容するための手段をさらに含む請求項9に記載の暗号化システム。
  12. 前記再暗号化のためのバッチサイズを特定することを前記ユーザに許容するための手段をさらに含む請求項9に記載の暗号化システム。
  13. 前記再暗号化を実行するための手段をさらに含む請求項9に記載の暗号化システム。
  14. 前記再暗号化ために前記ユーザによって選択される各列に関係する暗号キーの用法のヒストリを記録するための手段をさらに含む請求項9に記載の暗号化システム。
  15. データベース内のデータを暗号化するための装置であって、
    1以上のプロセッサ、
    暗号キーのためのストレージ、
    前記データベースにアクセスすることを望むユーザを認証するための認証メカニズム、
    前記データベースへのインターフェース接続のためのデータベースインターフェース、
    前記データベース内の前記データを管理することを前記ユーザに許容するための管理コンソール、
    前記1以上のプロセッサによって実行されたときに、
    少なくとも1つの事前に暗号化された列を選択することを前記ユーザに許容するためのメカニズムを提供し、
    そして、前記少なくとも1つの事前に暗号化されて選択された列内のデータの再暗号化のための新たなキーを特定することを前記ユーザに許容するための前記メカニズムと関係する自動化ツールを提供する、ステップを前記1以上のプロセッサに実行させる1以上の命令の1以上の列を運ぶストレージ媒体、
    を含む装置。
  16. 前記少なくとも1つの事前に暗号化されて選択された列の前記再暗号化のための新たな初期化ベクトルを特定することを前記ユーザに許容することをさらに含む請求項15に記載の装置。
  17. 前記少なくとも1つの事前に暗号化されて選択された列の前記再暗号化のための1以上の行のための新たな初期化ベクトルを特定することを前記ユーザに許容することをさらに含む請求項15に記載の装置。
  18. 前記再暗号化のためのバッチサイズを特定することを前記ユーザに許容することをさらに含む請求項15に記載の装置。
  19. 前記再暗号化を実行することをさらに含む請求項15に記載の装置。
  20. 前記再暗号化のために前記ユーザによって選択された各列に関係する暗号キーの用法のヒストリを記録することをさらに含む請求項15に記載の装置。
  21. 前記自動化ツールを使用するためのグラフィカルユーザインターフェースを伴う管理コンソールを提供することをさらに含む請求項15に記載の装置。
  22. 前記インターフェースがウェブベースのものである請求項21に記載の装置。
  23. データベースからのデータを暗号化するためのコンピュータ実行方法であって、
    暗号化オペレーションを実行するための前記データベースのリソースから分離された計算リソースを有するメカニズムを提供すること、
    暗号化のためのターゲットデータを選択し、
    前記ターゲットデータのための暗号化方法を選択し、
    前記選択された暗号化方法のための1以上の特性を特定し、そして、
    前記ターゲットが暗号化された後で、前記ターゲットデータに適合するための方式中に前記ターゲットデータが存在する各データベース列のための一致するスキーマを修正する、ための前記メカニズムと関係する自動化ツールを提供すること、
    を含むコンピュータ実行方法。
  24. 前記各データベース列をそのオリジナルのサイズおよびデータタイプに復元するための機能性を提供することをさらに含む請求項23に記載のコンピュータ実行方法。
  25. 前記データベース内のどのデータが、前記データベースへのユーザのアクセス権に基づいて、ユーザによって修正され得るのかを決定することをさらに含む請求項23に記載のコンピュータ実行方法。
  26. 前記データベース内のどのデータベーステーブルが、前記ユーザによって修正され得るのかを証明することをさらに含む請求項25に記載のコンピュータ実行方法。
  27. 前記証明されたデータベース内のどの列が、前記ユーザによって修正され得るのかを決定することさらに含む請求項26に記載のコンピュータ実行方法。
  28. 前記選択された暗号化方法を使用して前記ターゲットデータを暗号化することをさらに含む請求項23に記載のコンピュータ実行方法。
  29. ターゲットデータが暗号化された後で、前記ターゲットデータをそのオリジナルの暗号化されていないフォームに復元することをさらに含む請求項23に記載のコンピュータ実行方法。
  30. 前記自動化ツールを使用するためのグラフィカルユーザインターフェースを伴う管理コンソールを提供することをさらに含む請求項23に記載のコンピュータ実行方法。
  31. 前記インターフェースがウェブベースのものである請求項30に記載のコンピュータ実行方法。
  32. 前記選択された暗号化方法のための前記1以上の特性が、暗号化アルゴリズムタイプ、モードタイプ、パディングおよび初期化ベクトルを含む請求項23に記載のコンピュータ実行方法。
  33. 前記暗号化アルゴリズムタイプが、DES、DESede、AES、RC4、HMAC、RSAを含む請求項32に記載のコンピュータ実行方法。
  34. 前記モードタイプがCBCモードおよびEBCモードを含む請求項32に記載のコンピュータ実行方法。
  35. データベース内のデータを暗号化するための暗号化システムであって、
    暗号化のためのターゲットデータを選択するための手段、
    前記ターゲットデータのための暗号化方法を選択するための手段、
    前記選択された暗号化方法のための1以上の特性を特定するための手段、および、
    前記ターゲットが暗号化された後で、前記ターゲットデータが、前記ターゲットデータと適合するための方式で存在する各データベース列のための一致するスキーマを修正するための手段、
    を含む暗号化システム。
  36. 前記各データベース列を、そのオリジナルのサイズおよびデータタイプに復元するための機能性を提供するための手段をさらに含む請求項35に記載の暗号化システム。
  37. 前記データベース内のどのデータが、前記データベースへの前記ユーザのアクセス権に基づいて、ユーザによって修正され得るのかを決定するための手段をさらに含む請求項35に記載の暗号化システム。
  38. 前記データベース内のどのデータベーステーブルが、前記ユーザによって修正され得るのかを証明するための手段をさらに含む請求項37に記載の暗号化システム。
  39. 前記証明されたデータテーブル内のどの列が、前記ユーザによって修正され得るのかを決定するための手段をさらに含む請求項38に記載の暗号化システム。
  40. 前記選択された暗号化方法を使用して前記ターゲットデータを暗号化するための手段をさらに含む請求項35に記載の暗号化システム。
  41. 前記ターゲットデータが暗号化された後で、前記ターゲットデータをそのオリジナルの暗号化されていないフォームに復元するための手段をさらに含む請求項35に記載の暗号化システム。
  42. データベース内のデータを暗号化するための装置であって、
    1以上のプロセッサ、
    暗号キーのためのストレージ、
    前記データベースへのアクセスを望むユーザを認証するための認証メカニズム、
    前記データベースを交信するためのデータベースインターフェース、
    管理者に、前記データベース内の前記データを管理することを許容するための管理コンソール、
    前記1以上のプロセッサによって実行されたときに、
    暗号化のためのターゲットデータを選択し、
    前記ターゲットデータのための暗号化方法を選択し、
    前記選択された暗号化方法のための1以上の特性を特定し、そして、
    前記ターゲットが暗号化された後で、前記ターゲットデータに適合する方式で前記ターゲットデータが存在する各データベース列について一致するスキーマを修正する、ステップを前記1以上のプロセッサに実行させる1以上の命令の1以上の配列を運ぶストレージ媒体
    を含む装置。
  43. 前記各データベース列を、そのオリジナルのサイズおよびデータタイプに復元するための第1のメカニズムをさらに含む請求項42に記載の装置。
  44. 前記データベース内のどのデータが、前記データベースへの前記ユーザのアクセス権に基づいて、ユーザによって修正され得るのかを決定するための第2のメカニズムをさらに含む請求項42に記載の装置。
  45. 前記データベース内のどのデータベーステーブルが、前記ユーザによって修正され得るのかを証明するための第3のメカニズムをさらに含む請求項44に記載の装置。
  46. 前記証明されたデータベーステーブル内のどの列が、前記ユーザによって修正され得るのかを決定する第4のメカニズムをさらに含む請求項45に記載の装置。
  47. 前記選択された暗号化方法を使用して前記ターゲットデータを暗号化するための第5のメカニズムをさらに含む請求項42に記載の装置。
  48. 前記ターゲットデータが暗号化された後で、前記ターゲットデータをそのオリジナルの暗号化されていないフォームに復元するための第6のメカニズムをさらに含む請求項42に記載の装置。
  49. アプリケーションプログラムおよびデータベースに対して透過的な形式でデータベース内の機密データにアクセスすることをアプリケーションプログラムに許容するコンピュータ実行方法であって、
    アプリケーションプログラムが前記機密データにアクセスするよう試みたときに、ビューをインスタンス生成し、前記ビューがデータベース内のソーステーブルに一致し、前記ソーステーブルは、前記機密データが暗号化データとして存在し、
    前記アプリケーションプログラムが認証された場合に前記機密データに一致する復号化データを伴う前記ビューを取り込み、
    前記ビューを前記認証されたアプリケーションプログラムに公開すること、
    を含むコンピュータ実行方法。
  50. 前記暗号化されたデータを形成するための前記ソーステーブル内の前記機密データを暗号化することをさらに含む請求項49に記載のコンピュータ実行方法。
  51. 前記ビューをインスタンス生成する前に、前記ソーステーブルを改名することをさらに含む請求項50に記載のコンピュータ実行方法。
  52. 前記ソーステーブルのオリジナルの名前とともに前記インスタンス生成されたビューの名前を付けることをさらに含む請求項51に記載のコンピュータ実行方法。
  53. テンポラリテーブルを生成すること、および前記機密データを前記ソーステーブルから前記テンポラリテーブルにエクスポートすること、および、その後、前記暗号化データを形成するために、前記テンポラリテーブル内の前記機密データを暗号化することをさらに含む請求項50に記載のコンピュータ実行方法。
  54. 前記暗号化されたデータを前記テンポラリテーブルから前記ソーステーブルに戻すことをさらに含む請求項53に記載のコンピュータ実行方法。
  55. 前記ビューを自動的にインスタンス生成するための1以上のメタデータテーブルを使用することをさらに含む請求項49に記載のコンピュータ実行方法。
  56. 前記アプリケーションが、前記データベース内に保存された前記機密データにアクセスするように試みたときに、前記アプリケーションプログラムを認証することをさらに含む請求項49に記載のコンピュータ実行方法。
  57. データを挿入するための挿入ステートメントをトラップすることをさらに含み、前記挿入ステートメントが前記アプリケーションプログラムによって前記ビュー上で実行され、前記トラップされた挿入ステートメントに応じて、前記データを前記ソーステーブルに挿入するための新たな一致する挿入ステートメントを生成することを含む請求項49に記載のコンピュータ実行方法。
  58. 前記機密データをアップデートするためのアップデートステートメントをトラップすることをさらに含み、前記アップデートステートメントが前記アプリケーションプログラムによって前記ビュー上で実行され、前記トラップされたアップデートステートメントに応じて、前記ソーステーブル内で前記機密データをアップデートするための新たな一致するアップデートステートメントを生成することを含む請求項49に記載のコンピュータ実行方法。
  59. 前記挿入ステートメントをトラップするため、および前記新たに一致する挿入ステートメントを生成するための1以上のトリガを使用することをさらに含む請求項57に記載のコンピュータ実行方法。
  60. 1以上のメタデータテーブルに基づいて前記1以上のトリガを自動的に生成することをさらに含み、前記1以上のメタデータテーブルが、暗号化のターゲットとされるデータベーステーブルおよび列を定義するために設定可能とされる請求項59に記載のコンピュータ実行方法。
  61. 前記アップデートステートメントをトラップするため、および新たに一致するアップデートステートメントを生成するための1以上のトリガを使用することをさらに含む請求項57に記載のコンピュータ実行方法。
  62. 前記ビューを取り込むための前記機密データを復号化するために適合されるネットワーク接続暗号化・復号化(NAE)メカニズムを使用することをさらに含む請求項49に記載のコンピュータ実行方法。
  63. 前記ソーステーブル内のストレージのための前記機密データを暗号化するために適合されるネットワーク接続暗号化・復号化(NAE)メカニズムを使用することをさらに含む請求項49に記載のコンピュータ実行方法。
  64. データベース内のデータを暗号化するための透過的な暗号化システムであって、
    前記データベースを前記透過的な暗号化システムに結合するために前記データベース内からの要求に応じてデータを暗号化および復号化するための手段、
    1以上のプレーンテキストデータベーステーブル列から、一致する1以上の暗号化されたデータベーステーブル列にデータを移動させるための手段、
    前記透過的な暗号化システムに、データベースを結合した後に、データベース上で、自動的に次の暗号化および復号化オペレーションを自動化するための手段、
    前記結合されたデータベース内の暗号化データにユーザだけがアクセスすることができるように、ユーザを認証するための手段、
    を含む透過的な暗号化システム。
  65. データベース内のデータを暗号化するための透過的な暗号化システムであって、
    アプリケーションプログラムが機密データにアクセスすることを試みたときに、ビューをインスタンス生成するための手段を含み、前記ビューはデータベース内のソーステーブルに一致し、前記ソーステーブルは、機密データが暗号化データとして存在するものであり、
    前記アプリケーションプログラムが認証されたときに、前記機密データと一致する復号化されたデータとともに前記ビューを取り込むための手段、および
    前記ビューを前記認証されたアプリケーションプログラムに公開するための手段、
    を含む透過的な暗号化システム。
  66. 前記アプリケーションが前記データベース内に保存された前記機密データにアクセスしようと試みたときに、前記アプリケーションプログラムを認証するための手段をさらに含む請求項65に記載の透過的な暗号化システム。
  67. データを挿入するための挿入ステートメントをトラップするための手段をさらに含み、前記挿入ステートメントが、前記アプリケーションプログラムによって前記ビュー上で実行され、前記トラップされた挿入ステートメントに応じて、前記データを前記ソーステーブルに挿入するための一致する新たな挿入ステートメントを生成することを含む請求項65に記載の透過的な暗号化システム。
  68. 前記機密データをアップデートするためのアップデートステートメントをトラップするための手段をさらに含み、前記アプリケーションプログラム、およびトラップされた前記アップデートステートメントに応じて、前記ソーステーブル内で前記機密データをアップデートするための新たな一致するアップデートステートメントを生成することにより、アップデートステートメントが前記ビュー上で実行されてなる請求項65に記載の透過的な暗号化システム。
  69. 前記ビューに取り込むための前記機密データを復号化するための手段をさらに含む請求項65に記載の透過的な暗号化システム。
  70. 前記ソーステーブル内のストレージのための前記機密データを暗号化するための手段をさらに含む請求項65に記載の透過的な暗号化システム。
JP2008533520A 2005-09-26 2006-09-26 データベース内の機密データを保護するためのシステム及び方法 Pending JP2009510616A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/236,294 US20070079140A1 (en) 2005-09-26 2005-09-26 Data migration
US11/236,061 US20070079386A1 (en) 2005-09-26 2005-09-26 Transparent encryption using secure encryption device
US11/236,046 US20070074047A1 (en) 2005-09-26 2005-09-26 Key rotation
PCT/US2006/037477 WO2007038509A2 (en) 2005-09-26 2006-09-26 System and method for protecting sensitive data

Publications (1)

Publication Number Publication Date
JP2009510616A true JP2009510616A (ja) 2009-03-12

Family

ID=37900395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008533520A Pending JP2009510616A (ja) 2005-09-26 2006-09-26 データベース内の機密データを保護するためのシステム及び方法

Country Status (4)

Country Link
EP (1) EP1934713A4 (ja)
JP (1) JP2009510616A (ja)
TW (1) TW200802029A (ja)
WO (1) WO2007038509A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012043012A1 (ja) * 2010-09-28 2012-04-05 日本電気株式会社 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
CN105389366A (zh) * 2015-11-10 2016-03-09 中国建设银行股份有限公司 一种大数据量报表查询方法和系统

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5875441B2 (ja) 2012-03-29 2016-03-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データを暗号化する装置及び方法
TWI545460B (zh) 2012-08-31 2016-08-11 萬國商業機器公司 轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品
US9860063B2 (en) 2015-02-27 2018-01-02 Microsoft Technology Licensing, Llc Code analysis tool for recommending encryption of data without affecting program semantics
TWI640187B (zh) * 2015-07-16 2018-11-01 國立成功大學 榫接加密方法
US10210266B2 (en) 2016-05-25 2019-02-19 Microsoft Technology Licensing, Llc Database query processing on encrypted data
JP6572926B2 (ja) 2017-03-17 2019-09-11 富士ゼロックス株式会社 ドキュメント管理システム
TWI626582B (zh) * 2017-04-11 2018-06-11 Complex form application system
CN109033873B (zh) * 2018-07-19 2020-11-17 四川长虹智慧健康科技有限公司 一种防止隐私泄漏的数据脱敏方法
CN114925400A (zh) * 2022-05-27 2022-08-19 杭州帕拉迪网络科技有限公司 数据动态脱敏方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169808A (ja) * 2000-11-30 2002-06-14 Hitachi Ltd セキュアマルチデータベースシステム
US20030046572A1 (en) * 2001-08-30 2003-03-06 Newman Aaron Charles Cryptographic infrastructure for encrypting a database

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999629A (en) * 1995-10-31 1999-12-07 Lucent Technologies Inc. Data encryption security module

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169808A (ja) * 2000-11-30 2002-06-14 Hitachi Ltd セキュアマルチデータベースシステム
US20030046572A1 (en) * 2001-08-30 2003-03-06 Newman Aaron Charles Cryptographic infrastructure for encrypting a database

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012043012A1 (ja) * 2010-09-28 2012-04-05 日本電気株式会社 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
JP5776696B2 (ja) * 2010-09-28 2015-09-09 日本電気株式会社 暗号化データベースシステム、クライアント端末、暗号化データベースサーバ、自然結合方法およびプログラム
US9147079B2 (en) 2010-09-28 2015-09-29 Nec Corporation Encrypted database system, client terminal, encrypted database server, natural joining method, and program
CN105389366A (zh) * 2015-11-10 2016-03-09 中国建设银行股份有限公司 一种大数据量报表查询方法和系统
CN105389366B (zh) * 2015-11-10 2019-07-09 中国建设银行股份有限公司 一种大数据量报表查询方法和系统

Also Published As

Publication number Publication date
WO2007038509A2 (en) 2007-04-05
EP1934713A2 (en) 2008-06-25
EP1934713A4 (en) 2009-04-22
WO2007038509A3 (en) 2007-10-04
TW200802029A (en) 2008-01-01

Similar Documents

Publication Publication Date Title
US10002152B2 (en) Client computer for updating a database stored on a server via a network
JP2009510616A (ja) データベース内の機密データを保護するためのシステム及び方法
EP1522167B1 (en) A method and an apparatus for retrieving a value secured in a key management system
US7266699B2 (en) Cryptographic infrastructure for encrypting a database
EP2430789B1 (en) Protection of encryption keys in a database
US7320076B2 (en) Method and apparatus for a transaction-based secure storage file system
JP4902207B2 (ja) ファイルの暗号化と復号化のための複数のキーを管理するシステムと方法
CN103561034B (zh) 一种安全文件共享系统
US9350714B2 (en) Data encryption at the client and server level
JP5679018B2 (ja) データベース暗号化システムと方法及びプログラム
US7587608B2 (en) Method and apparatus for storing data on the application layer in mobile devices
US7269729B2 (en) Relational database management encryption system
US20090225987A1 (en) Key rotation
US10356088B1 (en) User authentication based on multiple asymmetric cryptography key pairs
US20090240956A1 (en) Transparent encryption using secure encryption device
US20070079140A1 (en) Data migration
WO2005119960A2 (en) Structure preserving database encryption method and system
US20170099144A1 (en) Embedded encryption platform comprising an algorithmically flexible multiple parameter encryption system
CN108170753A (zh) 一种共有云中Key-Value数据库加密与安全查询的方法
CN117313144A (zh) 敏感数据的管理方法、装置、存储介质和电子设备
CN116566644A (zh) 一种基于伪随机函数和区块链智能合约的可搜索加密方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110311

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110805