MyDiamo 暗号化

Home / ガイド / MyDiamo 暗号化

暗号化プロセス

#fancy-title-5fc37901f003c a{ color: #274e75; }

暗号化

<暗号化ポリシーの設定>

5

オプション 説明 設定値
POLICY_ID 暗号化時のポリシー名を指定 ユーザ設定値(英文字の組み合わせで16文字以下)
ALGORITHM 暗号化アルゴリズムを指定 TDES/AES/BLOWFISH/RC4他 *MyDiamo(MDFL)版
IV Initial Vectorを指定 FIV(Fixed IV), VIV(Variable IV)
PARTIAL-ENC-POS 部分暗号化の開始する位置を指定* 数字
PARTIAL-ENC-OFF 部分暗号化の反映される長さを指定*
(指定しないと、最後まで暗号化)
数字
BLOCK MODE 暗号化時採用するBlock Cipher Modeを指定 CBC, CFB, CFB_Byte
ENCODE MODE データのencode modeを指定 RAW(encodeしない), BASE64, HEXSTRING
※BASE64を推奨
ENC_FLG 重複した暗号化を防止するFLAG値を入力 ユーザ設定値 例:”00FF”
    * PARTIAL-ENC-POSとPARTIAL-ENC-OFFのオプションは、部分暗号化の設定時のみ必要であるため、指定しないか、もしくは “0” に指定すると、部分暗号化は無効とされます。
    ALGORITHM (暗号化アルゴリズム)
    A. 官公庁(韓国)の場合、 SEED、ARIA、SHA-2 を採用するよう推奨
    官公庁(韓国)の場合、韓国国家情報院(ITセキュリティ認証事務局)の検証済みアルゴリズムであるARIA、SEED、SHA-2等を 採用するよう推奨 – (参照)個人情報暗号化措置の案内書(2012.10, 行政安全部およびKISA)
    B. 一般企業の場合、パフォーマンス・メリットより AES を採用するよう推奨
    C. キーが長くなるに対し、パフォーマンスは劣化するが、セキュリティは向上

D’Amo の全キーの長さは、韓国放送通信議員会とKISAの推奨するキーの長さの基準を満たしている

    共通鍵暗号アルゴリズム(対称鍵)のキーの長さは 128 bit以上、HASH は112 bit超のキーを採用するよう推奨
    (直訳)個人情報の技術的管理的保護措置基準解説書 (2012.09, 放送通信議員会およびKISA)
アルゴリズム キーの長さ(bit) HASH(bit) パフォーマンス(Mbps) その他
SEED 128 - 294 標準アルゴリズム
TDES 168 - -
AES 128 - 1126 最速のパフォーマンス
256 - 885
ARIA 128 - 441 標準アルゴリズム
SEEDより高速パフォーマンスと高セキュリティ
256 - 388
BLOWFISH 128, 256 - -
    韓国国家情報院検証済み暗号化モジュールに対し当社パフォーマンステスト結果 (2013年7月現在)  テスト環境: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.90GHz, 16GB RAM, Windows 7 in 64-bit

IV (Initial Vector)

    – Fixed IV
    (または Column IV)暗号化時同じIVを採用するため、同じデータを暗号化すると同じ結果が出力
    -Record IV
    暗号化する度に異なるIVを採用するため、同じデータを暗号化すると異なる結果が出力

BLOCK MODE (運用モード)

    – CBC (Cipher Block Chaining)
    ブロック暗号化の運用モード中最も高セキュリティを確保するモードであり、最も採用の頻度が高い
    – CFB (Cipher FeedBack)
    ストリーム暗号化の運用モードであり、暗号化の前後、データの長さに変わりがない
<暗号化するカラムの設定>

6

オプション 説明 設定値
OWNER 暗号化するカラムの所有者(Owner) 所有者(Owner)を入力
TABLE 暗号化するカラムを持つテーブル名 テーブル名を入力
COLUMN 暗号化するカラム名* カラム名を入力
POLICY ID 暗号化に採用するポリシー名 暗号化ポリシー名を入力
    – 暗号化の設定が可能なカラムのタイプ:char, varchar, varbinary, tinyint, smallint, mediumint, int, bigint, float, double
    – 部分暗号化が可能なカラムのタイプ:char, varchar, varbinary
    – tinyint, smallint, mediumint, int, bigint, float, doubleの場合、下記のような制限がある
    IV: FIV採用可(VIV採用不可)
    部分暗号化不可
    Block Mode: CFB, CFB_BYTE採用可(CBC採用不可)※
    Encoding: RAW採用可(BASE64, HEXSTRING採用不可)
<暗号化権限の設定>

14

オプション 説明 設定値
USER 暗号化を実行するアカウント アカウントを入力
OWNER 暗号化カラムの所有者(Owner) 所有者(Owner)を入力
TABLE 暗号化するカラムを持つテーブル名 テーブル名を入力
COLUMN 暗号化するカラム名 カラム名を入力
ENC PRIV 暗号化の権限を付与* 0:権限なし
1:権限あり
DEC PRIV 復号の権限を付与 0:権限なし
1:権限あり
    (注意1)暗号化の実行時には、当該アカウントに対し「暗号化権限」が付与されていなければならないため、ENC PRIVは必ず “1” に設定
    (注意2) 暗号化権限とは、データの挿入(Insert)や更新(Update)の実行権限を含んでいます。すなわち、暗号権限のないユーザは、暗号化カラムを更新することはできません。
<暗号化の実行>
    暗号化の権限が付与されたアカウントよりDBにアクセス(MyDiamoのCLIではありません)
    下記のコマンドより暗号化テーブルを指定することで、暗号化を実行

 

9

オプション 説明 設定値
OWNER 暗号化カラムの所有者(Owner) 所有者(Owner)を入力
TABLE 暗号化するカラムを持つテーブル名 テーブル名を入力
    (注意1) mysql の damo_table_migration プロシージャは、MySQLの[root権限]のみが実行可能です。
    (注意2)暗号化を実行する前に、MyDiamo の暗号化定義が、すべて保存されてなくてはなりません。 セーブコマンド実行します。また、MyDiamo の定義を変更した場合も、都度、セーブしなくてはなりません
    例) MyDiamo> save all

暗号化を実行すると、下記のメッセージが出力

    「DEC MIGRATION COMMAND」の画面上出力されているクエリを記録しておくと、復号時使用可能です。 このクエリを使用すると、暗号化データは平文に、また、カラム定義のデータ長も、すぐに復旧することが可能です。

11

#accordion-5fc37901f0479 .mk-accordion-single.current-item .mk-accordion-tab{ color:#274e75; } #accordion-5fc37901f0479 .mk-accordion-pane .inner-box{background-color: #fafafa;}

暗号化時の注意点

#fancy-title-5fc37901f35b4 a{ color: #274e75; }
    暗号化する対象のカラムに対しINDEXを採用する際には、部分暗号化後「Prefix index*」を指定
    – 部分暗号化の指定範囲でprefix index*を生成 *前頭の平文のデータのみインデックス化すること
    暗号化設定時、下記のクエリを発行し制約を確認後、FKに対しては必ずFK削除→暗号化→FK再生成

(注意)暗号化時に、FK制約がある場合、暗号化のエラーが発生します。

PK 確認

12

FK確認(InnoDBのみ対応)

13

 

.page-section-5fc37901eef35 { padding:10px 0; background-attachment:; background-attachment: scroll\9 !important; background-position:left top; background-repeat:repeat; } .page-section-5fc37901eef35 .alt-title span { } .page-section-5fc37901eef35.section-expandable-true:not(.active-toggle):hover .mk-section-color-mask { opacity:0.2 !important; } .page-section-5fc37901eef35 .expandable-section-trigger i { opacity:1; top:0 !important; }