Home    XP_CRYPT Online Help Prev Next
How To use XP_CRYPT GUI
Introduction
What is XP_CRYPT
System requirements
Free version limitations
End user license agreement
Installing XP_CRYPT
Installation procedure
Activation
XP_CRYPT API
What's new
Encryption methods overview
Session
xp_crypt_set_var
xp_crypt_get_var
xp_crypt_close_session
xp_crypt_init_session
xp_crypt_set_option
Asymmetric keys
DSA
xp_dsa_free_key
xp_dsa_load_key
xp_dsa_save_key
xp_dsa_generate_couple
RSA
xp_rsa_generate_couple
xp_rsa_generate_pub_key
xp_rsa_load_key
xp_rsa_priv_dec
xp_rsa_pub_enc
xp_rsa_save_key
xp_rsa_free_key
Digital signatures
DSA
xp_dsa_verify
xp_dsa_sign
RSA
xp_rsa_sign
xp_rsa_verify
Hashing
xp_crypt
xp_md5
xp_sha1
Symmetric encryption
AES128
xp_aes128_decrypt
xp_aes128_encrypt
AES
xp_aes_decrypt
xp_aes_encrypt
DESX
xp_desx_decrypt
xp_desx_encrypt
RC4
xp_rc4_decrypt
xp_rc4_encrypt
Triple DES
xp_des3_encrypt
xp_des3_decrypt
Error codes
Tutorial
How to use GUI
Advanced technique (Old)
Table encryption (Old)
Troubleshooting
Troubleshooting overview

XP_CRYPT GUI. コード作成ツール

はじめに


XP_CRYPT giuはXP_CRYPT 4.0以降のソフトを用いて暗号化するためのUDF、トリガーおよびビューの作成を簡単にするツールです。

暗号化の方法

XP_CRYPTは5種類の暗号化アルゴリズム:RSA(非対称アルゴリズム)、AES、Triple DES、DESXおよびRC4(対称アルゴリズム)をサポートしています。必要に応じてアルゴリズムを選択することができます。しかし、対称アルゴリズムに比べてRSAでの暗号化は相対的に遅い点に注意して下さい。

データを保護するには、まずデータベースにログインして下さい。ここでは、「pubs」というデータベースを用いています。このデータベースはSQLサーバと共にインストールされており、本や著者のデモデータが含まれています。

ログインすると、現在あるテーブルと暗号鍵のリストを表示する画面に移動します。現時点では何もデータがありません。

ここで、使用したいアルゴリズムを選択し、タイプに応じた鍵を作成してください。例ではRC4とRSAを選びます。

「鍵の追加」を選択ももしくはCtrl-Nを押してください。下のダイアログが表示されます。

「Password Alias」は鍵の名前であると考えて下さい。実際、これはSQLセッションでパスワードを保持する変数の名前です。

鍵を作成したので、パスワードを入力する必要があります。パスワードはテーブルに現存するデータの暗号化に使用されます。「パスワードの入力」をクリックしパスワードとして「test」を入力して下さい。

緑の記号「A」は「起動」を意味します。つまり現時点からこの鍵を使用することができます。

この例では、著者の氏名を暗号化します。これらのフィールドは「著者」のテーブルにあります。系図を開き、「au_lname」フィールドを選択して下さい。「フィールドの暗号化」チェックボックスをマークし、コンボボックスから暗号鍵を選択して下さい。

「暗号の選択」ドロップダウンメニューでは「鍵とパスワード」画面で作成された鍵が表示されます。現時点ではRC4鍵のみです。これを選択し、ツールバーで「保存」を押して下さい(Ctrl-S)。

この時点で、XP_CRYPTは暗号化に必要なスキーマの作成を開始します。左の系図から「テーブル」をクリックするとオペレーションのログをみることができます。

XP_CRYPTにより「enc_au_lname」というフィールドが追加されました。このフィールドには「au_lname」フィールドからの暗号化されたデータが入っています。いくつかのデータを選択するとこれを見ることができます。

SELECT enc_au_lname FROM authors

enc_au_lname
------------------------------
ydSrcsidbufzu9XZ
ydSrcsidbvfpt8TS
ydSrccidbvP6oNLTBg==
ydSrcMidbv+8nsTdGhA=
ydSrf8idbuPvoMDVDwGw

XP_XRYPTによって復号化結果を示すビューが作成されました。テーブルを暗号化した後は、このビューを使ってデータの選択・挿入を行って下さい。データは自動的に暗号化されます。このビューの名前はテーブル+最後の「ビュー」と同じですが作成後に名前の変更が可能です。

このビューから選択してみましょう:

SELECT au_lname FROM authorsView

au_lname
---------------------------------------- 
NULL
NULL
NULL

ここで、実際のデータの変わりにNULLが表示されます。これはSQLセッションにパスワードが存在しないためです。パスワードは「xp_crypt_set_var」という名のXP_CRYPT機能で設定されます。ここでは変数「pubs.pass1」に対して「test」というパスワードを設定する必要があります。実はこれはステップ3で入力されたのと同じパスワードです。

exec master..xp_crypt_set_var 'pubs.pass1','test'
SELECT au_lname FROM authorsview

au_lname
---------------------------------------- 
White
Green
Carson
....

アプリケーションへのパスワードの設定は一度だけで、セッション中使うことができます。xp_crypt_set_varを呼び出さずに選択してみて下さい。クエリー解析ツールを閉じるか時間切れになるまで作動します。SQLサーバに接続している他のユーザがこのデータを見ることはできません。パスワードはこのセッションに対してのみ設定されています。

さて、RSA鍵を作成し、名字フィールドを暗号化しましょう。

非対称暗号、RSAアルゴリズム、鍵サイズ1024およびパスワード通称「pass2」を選択して下さい。OKを押すとパスワードの問われます。このパスワードはテーブルに鍵を保存するために使用されますので、忘れないようにして下さい。パスワードとして「rsatest」を入力しましょう。実際に使用する際はもっと注意深くパスワードを選んで下さい。

鍵はすでに起動されており、使用開始が可能になっています。ダブルクリックするとどのような鍵なのかを見ることができ、公開鍵と秘密鍵が表示されています。公開鍵は暗号化にしようされ、非暗号化状態で保存されています。秘密鍵は厳重に保管、Triple DESで暗号化されているはずです。どちらの鍵もPEMフォーマットです。必要であれば別のアプリケーションでこれらの鍵を使用することができます。実際に使用する場合は紛失防止のため別の場所に鍵のコピーを保存して下さい。

暗号化したいフィールドを選択して下さい。この例ではau_lnameとphoneを選びます。両方のフィールドにRSA鍵を選択しCtrl-Sを押すかメニューから「保存」を選択して下さい。

必要なものはすべて自動的に作成され、現存のデータも暗号化されます。

注記:元の著者テーブルに暗号化されていない情報を含む、au_lname、 au_fname およびphoneフィールドが残っているかもしれません。XPPXRYPT GUIは、データからそれらのフィールドを意図的に削除しません。データが安全であることを確認してからご自身で削除を実行して下さい。暗号化する前にデータベースのバックアップを取ることを推奨します。

全てうまくいくかテストしてみて下さい:

EXEC master..xp_crypt_set_var 'pubs.pass1','test'
EXEC master..xp_crypt_set_var 'pubs.pass2','rsatest'
SELECT au_lname,au_fname,phone from authorsview

Output:

au_lname                                 au_fname             phone 
---------------------------------------- -------------------- ------------ 
White                                    Johnson              408 496-7223
Green                                    Marjorie             415 986-7020
Carson                                   Cheryl               415 548-7723

全てが作動しているのを確認後、始めのテーブルから元のフィールドを削除することができます。この例では、著者テーブルにあるau_lname, au_fname およびphoneは暗号化されたフィールドに保存されているため必要がありません。「authorsview からau_lname、au_fnameおよびphone を選択」に見られるものは復号化に伴ってオンフライ・ビューで作成されたフィールドです。

システム・テーブル

XP_CRYPT guiは作動中に各データベースに3つのテーブルを作成します。これは暗号化フィールド、トリガー、ビューなどに関する情報を保存するのに使用されます。

xpcrypt_ENCRYPTED_FIELDS
xpcrypt_GENERATED_KEYS
xpcrypt_TABLES

これらのテーブルを作成する必要はありません。アプリケーションからデータベースにログインすると、テーブルは自動的に作成されます。

注意!xpcrypt_TABLESテーブルにはRSAおよびDSA鍵が保存されます。鍵の紛失防止のため、暗号設定をした後は必ずこのテーブルをバックアップして下さい。RSAまたはDSA鍵を紛失した場合データの復号化もしくは有効化が不可能になります。このテーブルにパスワードは保存されません。手動でテーブルを変更しないで下さい。データベースごと、自動的に作成されたテーブルに鍵が保存されます。

 
2005 (c) Activecrypt Software LLC. All rights reserved.

Browser Based Help. Published by chm2web software.