15
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Oracle Advanced Security Transparent Data Encryption のののの のののののののののの

Oracle Advanced Security Transparent Data Encryptionのご紹介

  • View
    404

  • Download
    7

Embed Size (px)

Citation preview

Page 1: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Oracle Advanced Security Transparent Data Encryption のご紹介

日本オラクル株式会社

Page 2: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標または商標です。他社名又は製品名は、それぞれ各社の商標である場合があります。

Page 3: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

データファイルを直接アクセスされるリスク

3

Oracle Database

データベース上の物理ファイル - データ・ファイル- Redo ログファイル- アーカイブログファイル- バックアップファイル- エクスポートファイル・・・

$> strings -a financials.dbf |grep “\-[0-9]\{4\}\-”

5555-5555-5555-44445105-1051-0510-5100 OS ユー

OS ユーザで直接バイナリ・エディタや stringsコマンドを使って物理ファイルにアクセスされるデータベースが起動していなくてもアクセス可能ストレージ暗号や OS のファイル暗号は意味をなさない

Page 4: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

従来の格納データ暗号化機能の問題点

4

しかし

SQL> declare 2 input_data varchar2(256) := ' 暗号化したい文字列 '; 3 key_data raw(8) := dbms_obfuscation_toolkit.desgetkey( 4 seed => utl_raw.cast_to_raw(rpad('abcd', 80, 'abcd'))); 5 output_data raw(256); 6 output_data2 raw(256); 7 begin 8 dbms_output.put_line(input_data); 9 dbms_obfuscation_toolkit.desencrypt( 10 input => utl_raw.cast_to_raw(rpad(input_data, ((floor(lengthb(input_data)/8 + .9)) * 8))), 11 key => key_data, 12 encrypted_data => output_data); 13 dbms_output.put_line(output_data); 14 dbms_obfuscation_toolkit.desdecrypt( 15 input => output_data, 16 key => key_data, 17 decrypted_data => output_data2); 18 dbms_output.put_line(utl_raw.cast_to_varchar2(rtrim(output_data2))); 19 end; 20 /

暗号化ツールキット( PL/SQL パッケージ)を利用したデータの暗号化は Oracle 9i 以前からも可能

暗号化ツールキットの利用

アプリケーションの変更が必要 パフォーマンスの劣化が大きい 暗号鍵管理の問題

セキュリティ要件上は求められていても、 データ暗号化の実装は困難・・

Page 5: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Oracle Advanced Security Transparent Data Encryption ( TDE ) • アプリケーションからは透過的にデータの暗号化 / 復号

– 既存のアプリケーション( SQL )を改修する必要はなし

• 列暗号、表領域暗号の 2 種類の暗号化方式• 強力な暗号アルゴリズムを利用した暗号化を実施

– NIST の標準共通鍵暗号方式 AES(128/192/256bit) に対応

• Oracle Wallet や Hardware Security Module を利用した暗号鍵管理メカニズム

ディスク

バックアップ

ダンプファイル

外部委託先アプリケーションSELECT name,cardnumber   FROM credit;

ヤマダタロウ 1234567812345678

ヤマダタロウ aG5#g&3f_g0R1Blg

カード番号の暗号化

5

Page 6: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Oracle Advanced Security Transparent Data Encryption ( TDE )

Xeon 5570IPP 無し

Xeon 5570IPP 有り

AES-NI 無し

AES-NI 有り

10 倍のスループット

暗号化Xeon 5570

IPP 無しXeon 5570

IPP 有り

AES-NI 無し

AES-NI 有り

8 倍のスループット

複合

1. アプリケーションの改修なく実装可能2. CPU内でデータの暗号化 /復号処理を実行

- パフォーマンス劣化を防止

暗号

化処

理量

(MB

/秒)高

Intel/SPARC プロセッサの暗号化アクセラレーションによる DB 暗号化・復合

AES-NI の使用有無による暗号化処理データ量 (MB/ 秒 ) の比較

6

Intel/SPARC でサポート

Page 7: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

SGA

TDE 列暗号化 (10gR2 ~ )

表領域REDO ログUNDO 表領域

サーバープロセス

SELECTINSERTUPDATE ・・・• 列単位での暗号化

• サーバプロセスで暗号化・復号• REDO ログ、 UNDO 表領域、アーカイブログも暗号化される

• SGA のバッファキャッシュは、暗号化されている• 暗号化するとデータサイズは増加する

※ 暗号化アルゴリズムや SALT, MAC オプションの有無に依存するが、 暗号化される列の値ごとに 1 ~ 52Byte 増加する

• 表暗号鍵はデータディクショナリに格納• 暗号列への索引は、 B-Tree 索引の一意検索のみ• データ型とデータ長の制限が若干あり

Oracle Wallet(Oacle Keystore)

列暗号化マスター鍵

暗号化 / 復号

表暗号鍵

7

Page 8: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

SGA

TDE 表領域暗号化 (11gR1 ~ )

8

表領域暗号化 

REDO ログUNDO 表領域

Disk I/O で暗号化 / 復号

サーバープロセス

SELECTINSERTUPDATE ・・・• 表領域単位での暗号化

• 表領域内の表や索引といったオブジェクトはすべて暗号化される

• データブロックに対する I/O で暗号化・復号

• REDO ログ、 UNDO 表領域、アーカイブログも暗号化される

• SGA のバッファキャッシュ上は暗号化されていない

• 暗号化してもデータサイズは増加しない

• 表領域暗号鍵はデータファイルのヘッダーに格納

• 暗号列への索引に制限なし• ほとんどすべてのオブジェクトが暗号化可能

(BFILE のみ不可 )

表領域暗号化マスター鍵

表領域暗号鍵

Oracle Wallet(Oacle Keystore)

Page 9: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

列暗号・表領域暗号の特徴

9

列暗号化 表領域暗号化暗号化のタイミング 行アクセス時 データ・ブロックに対する I/O発生時暗号化アルゴリズム 3DES168, AES128 , AES192 , AES256

暗号化により保護される場所

メモリ、ディスク ディスク

データサイズ 暗号化対象データの量に比例して増加 暗号化前と変わらない性能への影響 暗号化列へのアクセス頻度に応じて劣

化暗号化表領域のディスク I/O頻度に応じて劣化

対象オブジェクト 列のみ暗号化列に対する索引は、B-Tree索引の一意検索のみ可能

表領域内のすべてのオブジェクトBITMAP索引の作成や B-Tree索引の範囲検索も利用可能

• 基本的に、表領域暗号化を使用することを推奨

Page 10: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

TDE の暗号鍵の仕組み

10

Oracle Wallet(Oracle Keystore)

パスワード認証

マスター暗号鍵

表暗号鍵

データ・ディクショナリ

表領域暗号鍵

表領域

Datafile

表領域暗号鍵

表領域

Datafile

• Oracle Wallet に、マスター暗号鍵が格納される  ( 12c※ から呼称は、 Oracle Keystore)• マスター暗号鍵は、それぞれの表暗号鍵と表領域暗号鍵を暗号化する• 表ごとの暗号鍵、表領域ごとの暗号鍵でそれぞれの実データを暗号化する• Oracle Wallet にはマスター暗号鍵の履歴が含まれる

Page 11: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Oracle Enterprise Manager Cloud Control 12c

11

GUI による暗号鍵管理

Page 12: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Oracle Enterprise Manager Cloud Control 12c

12

マスタ暗号鍵の変更

Page 13: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Oracle Enterprise Manager Cloud Control 12c

13

表領域の暗号化方法

Page 14: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Oracle Enterprise Manager Cloud Control 12c

14

表領域の暗号化方法

Page 15: Oracle Advanced Security Transparent Data Encryptionのご紹介

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |