# tDataEncrypt

読み取り不可能な暗号文に変換することでデータを保護します。

暗号文を解読し、元のデータを読み取ることができるのは、自分で定義したパスワードと暗号化ファイルを持つユーザーのみです。

情報メモ注: このコンポーネントではJava 8u161以降のバージョンが必要です。

ローカルモードでは、Apache Spark 1.6以降のバージョンがサポートされています。

Talendがサポートしているテクノロジーの詳細は、[Talendコンポーネント](https://help.qlik.com/talend/r/ja-JP/7.3/components/data-privacy)を参照してください。

## データの暗号化が必要な理由

暗号化は自分の資産、職場、顧客の機密データ保護に使われます。暗号化によって内部漏洩や外部漏洩からデータを保護できます。

ビッグデータ環境では多岐にわたるソースから大量のデータが収集された後、操作および保管されます。暗号化により機密データの露出リスクを低減できます。

暗号化はまた、データ保護法への準拠という点でも推奨および要求されています。

## データ暗号化の検討事項

* 保護するデータのタイプを定義する: 送信中のデータか保存データか
* 保護するデータのスコープを特定する: 目的、所有権、アクセスなど
* 暗号化ファイルには強力なパスワードを指定してください。
* 異なるデータ暗号化操作で同じパスワードを再利用しないでください。
* セキュアなパスワード管理システムにパスワードを保管してください。
* データの解読に必要となるパスワードと暗号化ファイルには認証を受けたユーザーのみがアクセスできるようにしてください。
* 強力な暗号化方式では通常、必要となるリソースが増えます。
* データをセキュアに保つため、暗号化ファイルと暗号化済みデータは別々に管理してください。
* データセットの暗号化ごとに個別の暗号化ファイルを使うことをお勧めします。
* データ暗号化は完全なセキュリティアプローチではありません。さまざまなセキュリティレイヤーを組み合わせることで、機密データに関する不安を払拭できます。セキュリティレイヤーには、脆弱性の評価と管理のほか、マルウェア対策ソリューションが含まれます。

## データ暗号化の方式

tDataEncryptコンポーネントは、AES-GCMとBlowfish暗号化方式を使ってデータを暗号化します。

| AES-256 | Blowfish |
| --- | --- |
| GCMの動作モード | CBCの動作モード |
| ランダムに生成された256ビットキーを使用します | ランダムに生成された256ビットキーを使用します |
| 整合性チェックあり | 整合性チェックなし |
| 最新のCPUではより高速 | 計算速度で優位 |
| 特許取得 | 特許未取得 |
| 米国国立標準技術研究所(NIST)によって標準化 | - |
| SSL/TLSによる使用 | - |

## データ暗号化のプロセス

データ暗号化プロセスのステップは次のとおりです。

1. 暗号ファイルの生成。以下のものが含まれます。

   * PBKDF2キー導出関数を使用して、ユーザー定義のパスワードから暗号化キーを導出するために使用されるランダムに生成されたソルト
   * ランダムに生成され、AESとユーザー定義のパスワードで暗号化された256ビットの鍵
   * AESとユーザー定義のパスワードで暗号化された方式

2. 次の方法で暗号化ファイルから暗号化されたデータにアクセス:

   1. ランダムに生成されたソルトを使用して、ユーザー定義のパスワードから暗号化キーを取得
   2. 暗号化キーとAESメソッドを使用して、ランダムに生成された256ビットキーと暗号化メソッドを復号化

   復号中は、パスワードが正しければ、コンポーネントは、暗号化方法とランダムに生成された256ビットの鍵にアクセスすることができます。それ以外の場合、アクセスは拒否されます。

3. 以下を使用してデータを暗号化:

   * 暗号化ファイルからランダムに生成された256ビットキー
   * 暗号化方式
   * データごとに生成されたランダム初期化ベクトル(IV)

### このセクション内

* [tDataEncryptの標準プロパティ](https://help.qlik.com/talend/ja-JP/components/7.3/data-privacy/tdataencrypt-standard-properties)
* [Apache Spark BatchのtDataEncryptプロパティ](https://help.qlik.com/talend/ja-JP/components/7.3/data-privacy/tdataencrypt-properties-for-apache-spark-batch)
* [Apache Spark StreamingのtDataEncryptのプロパティ](https://help.qlik.com/talend/ja-JP/components/7.3/data-privacy/tdataencrypt-properties-for-apache-spark-streaming)