メイン コンテンツをスキップする

QVD 暗号化

QVD ファイル内の機密情報を顧客提供のキーペアで暗号化して、データへのアクセスを制御することができます。暗号化キーは証明書によって管理されます。証明書は QlikView Distribution Service (QDS) を実行するユーザーの証明書ストアに格納する必要があります。

暗号化は、暗号化が有効になっていて証明書の拇印が追加されている settings.ini ファイルで構成されます。QVD 暗号化はデフォルトでは有効になっていません。

エンジンは拇印を読み取ってから、Windows CNG キー ストアからキーを取得します。次に、エンジンはデータの暗号化に使用される新しいデータ暗号化キー (DEK) を生成します。

注: DEK は再利用されないため、1 つのファイルが侵害された場合でも、他のすべてのファイルに対して暗号化が引き続き有効です。

以下は暗号化されています:

  • データ (テーブルと項目)

QVD ヘッダーは暗号化されません。暗号化パラメーターは、追加のメタデータとして QVD ヘッダーに格納されます。

注: 既存の QVD を再ロードして、settings.ini ファイルで QVD 暗号化を有効にした後で暗号化する必要があります。

Qlik Sense および QlikView の古いバージョンは、暗号化された QVD ファイルを読み取るときにエラーを返します。

暗号化証明書の概要

暗号化キーは、証明書を使用して管理するのが最適です。証明書は QlikView Distribution Service (QDS) を実行するユーザーの証明書ストアに格納する必要があります。

暗号化証明書は、暗号化キーの周りのシェルとして機能します。証明書の有効期限が切れている場合でもキーを取得できるため、有効期限が切れた暗号化証明書を更新する必要はありません。

暗号化キー

暗号化ソリューションでは、2 種類のキーを使用します。

  • データ暗号化キー
  • キー暗号化キー

データ暗号化キー

データ暗号化キー (DEK) は、データの AES-256 暗号化用に自動生成されたキーです。暗号化されたオブジェクトごとに新しいキーが生成されます。

キー暗号化キー

キー暗号化キー (KEK) は、データ暗号化キーの安全な非対称暗号化のための秘密キーと公開キーのペアです。公開キーはデータの暗号化に使用され、秘密キーは公開キーで暗号化されたデータの復号化に使用されます。

注: RSA アルゴリズムを使用するキーのみがサポートされています。

キーの暗号化に使用されるキーは、settings.ini ファイルで指定されます。Microsoft Cryptography Next Generation(CNG)Key Storage Provider に格納されています。これは、Windows 証明書ストアに格納されている証明書に含まれています。

QVD 暗号化の使用

これは、QlikView で QVD 暗号化機能を使用するための一般的なワークフローです。

  1. 暗号化証明書を作成: Windows PowerShell を使用して暗号化証明書を作成
  2. QVD 暗号化を有効にし、キーを指定: QVD 暗号化の有効化
  3. マルチノード展開の場合、暗号化証明書をエクスポート: Windows PowerShell を使用して暗号化証明書をエクスポート
  4. マルチノード展開の場合、すべてのノードで暗号化証明書をインポート: Windows PowerShell を使用して暗号化証明書をインポート
警告: 必ず証明書をバックアップしてください。証明書が失われると、暗号化された QVD を開くことができない場合があります。必要な限り、証明書のバックアップを安全に保管するのはユーザーの責任です。

Qlik Sense と共有する QVD ファイルの暗号化

QlikViewQlik Sense Enterprise on Windows の両方で使用する QVD ファイルがある場合は、両製品で同じサムプリントが定義されていることを確認します。

QVD 暗号化の有効化

Qlik associative engine は、settings.ini ファイルで暗号化キーの拇印を定義することによって構成されます。enableEncryptQvd=1 を定義してQVD暗号化を有効にします。次に、証明書から 拇印 項目の値をコピーし、settings.iniencryptionKeyThumbprint 項目に貼り付けます。

注: 証明書は QlikView Distribution Service (QDS) を実行するユーザーの証明書ストアに格納する必要があります。
  1. 証明書マネージャ ツール (certmgr.msc) を開きます。
  2. 証明書を見つけます。
  3. 証明書を右クリックして [Open] (開く) を選択します。
  4. [詳細] タブで、[拇印] 項目を選択し、値をコピーします。

  5. 適切な settings.ini ファイルを見つけます。

    QlikView Desktop の場合、settings.ini ファイルは C:\Users\<user>\AppData\Roaming\QlikTech\QlikView にあります。

    QlikView Server の場合、settings.ini ファイルは C:\Windows\System32\config\systemprofile\AppData\Roaming\QlikTech\QlikViewBatch にあります。

  6. settings.ini ファイルで、QVD 暗号化を有効にします: enableEncryptQvd=1。次に、拇印値を encryptionKeyThumbprint 項目に貼り付けます。

    Example:  

    enableEncryptQvd=1 encryptionKeyThumbprint=563888bb6aea55eb0d33d9d8b909e0d2ef26ffbd
  7. Settings.ini ファイルを保存します。

QlikView は、スペースなしの 40 桁の 16 進文字列形式の Secure Hash Algorithm 1 (SHA-1) 拇印を受け入れます。

Example:  

証明書の拇印に、56 38 88 bb 6a ea 55 eb 0d 33 d9 d8 b9 09 e0 d2 ef 26 ff bd のように、スペースが含まれている場合、次のように encryptionKeyThumbprint 項目に入力します。

encryptionKeyThumbprint=563888bb6aea55eb0d33d9d8b909e0d2ef26ffbd
注: 組織にキー ローテーション ポリシーがある場合、キーが変更されたときに拇印定義を更新する必要がある場合があります。

QVD が新しいキーで保存されるまで、古いキーを含む証明書をサーバーに保存してください。

暗号化証明書の管理

証明書の管理に使用できるツールは多数ありますが、このドキュメントでは、Windows PowerShell と Microsoft Management Console を使用した証明書の作成と配布に焦点を当てています。

他のツールを使用する場合、要件は次のとおりです。

  • RSAキーが使用される
  • キーは CNG KeyStorageProvider に格納される
  • 証明書は、エンジンを実行しているユーザーの証明書ストアに格納される
警告: 必ず証明書をバックアップしてください。証明書が失われると、暗号化された QVD を開くことができない場合があります。必要な限り、証明書のバックアップを安全に保管するのはユーザーの責任です。
注: 暗号化証明書は、展開内のすべてのノードにエクスポートする必要があります。

Windows PowerShell を使用して暗号化証明書を作成

証明機関 (CA) によって発行された証明書を使用する必要はありません。独自の自己署名証明書を発行して署名することもできます。作成する暗号化証明書は、QlikView Distribution Service (QDS) を実行するユーザーの証明書ストアに格納する必要があります。

新しい暗号化証明書を作成するには、New-SelfSignedCertificate コマンドレットを使用して自己署名証明書を作成します。

Syntax: Windows Server 2016 以降

PS C:\Users\johndoe.ACME> New-SelfSignedCertificate -Subject <Certifcate name> -KeyAlgorithm RSA -KeyLength <Key length, e.g.4096> -Provider "Microsoft Software Key Storage Provider" -KeyExportPolicy ExportableEncrypted -CertStoreLocation "cert:\CurrentUser\My"

Syntax: Windows Server 2012 R2

PS C:\Users\johndoe.ACME> New-SelfSignedCertificate -DnsName <Certifcate name> -CertStoreLocation "cert:\CurrentUser\My"

New-SelfSignedCertificate コマンドレット パラメーター Windows Server 2016 以降

Windows Server 2016 以降の PowerShell を使用して証明書を作成する場合、少なくとも次のパラメーターを定義する必要があります。

注: 包括的なドキュメントについては、「Microsoft New-SelfSignedCertificate ドキュメント」を参照してください。

-Subject

新しい証明書の件名に表示される文字列を指定します。このコマンドレットは、等号を含まない値の前に CN= を付けます。複数のサブジェクトの相対識別名 (RDN とも呼ばれる) の場合、各件名の相対識別名をコンマ (,) で区切ります。相対識別名の値にコンマが含まれている場合は、各件名相対識別名をセミコロン (;) で区切ります。

-Subject <Certifcate name>

-KeyAlgorithm

新しい証明書に関連付けられる非対称キーを作成するアルゴリズムの名前を指定します。RSA である必要があります。

-KeyAlgorithm RSA

-KeyLength

新しい証明書に関連付けられているキーの長さをビット単位で指定します。

-KeyLength <Key length, e.g.4096>

-Provider

このコマンドレットが証明書の作成に使用する KSP または CSP の名前を指定します。Microsoft Software Key Storage Provider である必要があります。

-Provider "Microsoft Software Key Storage Provider"

-KeyExportPolicy

証明書に関連付けられている秘密キーのエクスポートを管理するポリシーを指定します。このパラメーターの許容値は次のとおりです。

  • Exportable
  • ExportableEncrypted (既定値)
  • NonExportable

-KeyExportPolicy ExportableEncrypted

-CertStoreLocation

新しい証明書を格納する証明書ストアを指定します。現在のパスが Cert:\CurrentUser または Cert:\CurrentUser\My の場合、デフォルトのストアは Cert:\CurrentUser\My です。それ以外の場合は、このパラメーターに Cert:\CurrentUser\My を指定する必要があります。

-CertStoreLocation "cert:\CurrentUser\My"

New-SelfSignedCertificate コマンドレット パラメーター Windows Server 2012 R2

Windows Server 2012 R2 の PowerShell を使用して証明書を作成する場合、少なくとも次のパラメーターを定義する必要があります。

注: 包括的なドキュメントについては、「Microsoft New-SelfSignedCertificate ドキュメント」を参照してください。

-DnsName

証明書の件名の別名拡張に含める 1 つ以上の文字列を指定します。最初の DNS 名は、件名と発行者名としても保存されます。

-DnsName <Certifcate name>

-CertStoreLocation

新しい証明書を格納する証明書ストアを指定します。現在のパスが Cert:\CurrentUser または Cert:\CurrentUser\My の場合、デフォルトのストアは Cert:\CurrentUser\My です。それ以外の場合は、このパラメーターに Cert:\CurrentUser\My を指定する必要があります。

-CertStoreLocation "cert:\CurrentUser\My"

New-SelfSignedCertificate 既定値 Windows Server 2012 R2

Windows Server 2012 R2 の New-SelfSignedCertificate コマンドレットには、次の既定値が適用されます。

  • キー アルゴリズム: RSA
  • キーの長さ: 2048
  • 拡張キー使用法 (EKU): クライアント認証とサーバー認証
  • キー使用法: デジタル署名、キー暗号化 (a0)
  • 有効期間: 1 年

例: PowerShell for Windows Server 2016 以降を使用してデータ暗号化証明書を作成する

この例では、test というユーザーが、件名が MyTestCert で、キーの長さが 4096 ビットの自己署名のエクスポート可能な暗号化証明書を作成しています。証明書は Cert:\CurrentUser\My に格納されます。

Microsoft PowerShell で次のコマンドを入力します。

PS C:\Users\test> New-SelfSignedCertificate -Subject MyTestCert -KeyAlgorithm RSA -KeyLength 4096 -Provider "Microsoft Software Key Storage Provider" -KeyExportPolicy ExportableEncrypted -CertStoreLocation "cert:\CurrentUser\My"

証明書が作成されると、Microsoft PowerShell に次のように表示されます。

PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My Thumbprint Subject ---------- ------- 563888BB6AEA55EB0D33D9D8B909E0D2EF26FFBD CN=MyTestCert

Windows PowerShell を使用して暗号化証明書をエクスポート

暗号化証明書をエクスポートするには、Export-PfxCertificate コマンドレットを使用します。

Syntax:  

PS C:\Users\johndoe.ACME> Export-PfxCertificate -cert cert:\currentuser\My\<certificate thumbprint> -FilePath <FileName>.pfx -Password <Password or variable>

Export-PfxCertificate cmdlet parameters

証明書をエクスポートするときは、少なくとも次のパラメータを定義する必要があります。

注: 包括的なドキュメントについては、「Microsoft New-SelfSignedCertificate ドキュメント」を参照してください。

-cert

エクスポートする証明書へのパスを指定します。

-cert cert:\currentuser\My\<certificate thumbprint>

-FilePath

エクスポートする PFX ファイルのパスを指定します。

-FilePath <FileName>.pfx

-Password

エクスポートされた PFX ファイルを保護するために使用されるパスワードを指定します。パスワードは安全な文字列の形式にする必要があります。このパラメーターを指定しないと、エラーが表示されます。

-Password <Password or variable>

例: データ暗号化証明書のエクスポート

この例では、test というユーザーが、以前に作成した暗号化証明書を PFX ファイルにエクスポートします。

  1. まず、プレーン テキストのパスワード文字列の安全な文字列を作成し、$mypwd 変数に格納します。彼は ConvertTo-SecureString コマンドレットを使用しています。

    Microsoft PowerShell で次のコマンドを入力します。

    PS C:\Users\test> $mypwd = ConvertTo-SecureString -String "MyPassword" -Force -AsPlainText
  2. 次に、Export-PfxCertificate コマンドレットを使用して、拇印 563888bb6aea55eb0d33d9d8b909e0d2ef26ffbd で暗号化証明書を実際にエクスポートします。前のステップで作成されたパスワード変数は、エクスポートされた PFX ファイルを保護するために呼び出されます。Microsoft PowerShell で次のコマンドを入力します。

    PS C:\Users\test> Export-PfxCertificate -cert cert:\currentuser\My\563888bb6aea55eb0d33d9d8b909e0d2ef26ffbd -Filepath MyTestCert.pfx -Password $mypwd

証明書がエクスポートされると、Microsoft PowerShell に次のように表示されます。

Directory: C:\Users\test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 11/20/2019 11:21 4294 MyTestCert.pfx

Microsoft Management Console を使用した暗号化証明書のバックアップ

常に証明書のバックアップが必要です。証明書がサーバーから失われた場合、またはハード ディスクに障害が発生した場合、暗号化されたアプリを開くことができない場合があります。 必要な限り、証明書のバックアップを安全に保管するのはユーザーの責任です。

証明書をバックアップするときのエクスポートと同じ手順を使用できます。Windows PowerShell を使用して暗号化証明書をエクスポート を参照してください。

暗号化証明書をバックアップするもう 1 つの方法は、Microsoft Management Console でそれを行うことです。以下の例は、Microsoft Management Console を使用して、SSL 証明書を秘密キーでエクスポートまたはバックアップする方法を示しています。

  1. SSL 証明書がインストールされている Windows サーバーで、Microsoft Management Console を開きます。Windows の検索メニューで mmc と入力して開きます。
  2. Console ウィンドウで、[ファイル] > [スナップインの追加/削除] をクリックします。
  3. [スナップインの追加または削除] ウィンドウで、左側の [利用可能なスナップイン] ペインから [証明書] を選択し、[追加 >] をクリックします。
  4. ダイアログで、[ユーザー アカウント] を選択し、[次へ] をクリックします。
  5. [スナップインの追加と削除] ウィンドウで、[OK] をクリックします。
  6. Console ウィンドウの左側の [Console Root] ペインで、[証明書 (現在のユーザー)] を展開し、エクスポートまたはバックアップする証明書を見つけます。

  7. 中央のペインで、エクスポートまたはバックアップする証明書を右クリックし、[すべてのタスク] > [エクスポート] をクリックします。
  8. 証明書のエクスポート ウィザードの [証明書のエクスポート ウィザードへようこそ] ページで、[次へ] をクリックします。
  9. [秘密キーのエクスポート] ページで、[はい、秘密キーをエクスポートします] を選択して、[次へ] をクリックします。
  10. [ファイル形式のエクスポート] ページで、[Personal Information Exchange – PKCS #12 (.PFX)] を選択し、[可能であれば、証明書パスにすべての証明書を含める] をオンにします。

    警告: [正常にエクスポートされた場合、秘密キーを削除] を選択しないでください。

    [次へ] をクリックします。

  11. [セキュリティ] ページで、[パスワード] ボックスをオンにし、パスワードを作成して確認します。

    注: このパスワードは、秘密キーを使用して証明書をインポートまたは復元するときに必要になります。

    次に、[グループまたはユーザー名] ボックスをオンにします。該当する場合は、秘密キーを使用して証明書へのアクセスを割り当てる Active Directory ユーザーまたはグループ アカウントを選択します。次に [追加] をクリックします。

    [次へ] をクリックします。

  12. [エクスポートするファイル] ページで、[参照] をクリックしてバックアップ ファイルの保存場所とファイル名を指定し、[保存] をクリックします。

    [エクスポートするファイル] ページに戻り、[次へ] をクリックします。

  13. [証明書のエクスポート ウィザードの完了] ページで、設定が正しいことを確認し、[完了] をクリックします。
  14. エクスポートが成功したことを示すメッセージが表示され、秘密キー付きの SSL 証明書が選択した場所に保存されます。

Windows PowerShell を使用して暗号化証明書をインポート

他のマシンなどに暗号化証明書をインポートするには、Import-PfxCertificate コマンドレットを使用します。

注: インポートする暗号化証明書は、QlikView Distribution Service (QDS) を実行するユーザーの証明書ストアに格納する必要があります。

Syntax:  

PS C:\Users\johndoe.ACME> Import-PfxCertificate -CertStoreLocation cert:\currentuser\My -FilePath <FileName>.pfx [-Exportable] -Password $mypwd

Import-PfxCertificate cmdlet parameters

証明書をインポートするときは、少なくとも次のパラメータを定義する必要があります。

注: 包括的なドキュメントについては、「Microsoft Import-PfxCertificate ドキュメント」を参照してください。

-CertStoreLocation

証明書がインポートされるストアのパスを指定します。このパラメーターが指定されていない場合、現在のパスが宛先ストアとして使用されます。

-CertStoreLocation cert:\currentuser\My

FilePath

PFX ファイルのパスを指定します。

-FilePath <FileName>.pfx

-Exportable

オプション。

インポートした秘密キーをエクスポートできるかどうかを指定します。このパラメーターが指定されていない場合、秘密キーはエクスポートできません。

-Exportable

-Password

インポートされた PFX ファイルのパスワードを安全な文字列の形式で指定します。

-Password $mypwd

例: データ暗号化証明書のインポート

この例では、test2 というユーザーが、以前に PFX ファイルにエクスポートされた拇印 563888BB6AEA55EB0D33D9D8B909E0D2EF26FFBD の暗号化証明書をインポートします。

  1. まず、プレーン テキストのパスワード文字列の安全な文字列を作成し、$mypwd 変数に格納します。彼は ConvertTo-SecureString コマンドレットを使用しています。

    Microsoft PowerShell で次のコマンドを入力します。

    PS C:\Users\test2>  $mypwd = ConvertTo-SecureString -String "MyPassword" -Force -AsPlainText
  2. 次に、Import-PfxCertificate コマンドレットを使用して、PFX ファイルの実際のインポートを続行します。前のステップで作成されたパスワード変数は、PFX ファイルにアクセスするために呼び出されます。Microsoft PowerShell で次のコマンドを入力します。

    PS C:\Users\test2>  Import-PfxCertificate -CertStoreLocation cert:\currentuser\My -FilePath MyTestCert.pfx -Exportable -Password $mypwd

証明書がエクスポートされると、Microsoft PowerShell に次のように表示されます。

PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My Thumbprint Subject ---------- ------- 563888BB6AEA55EB0D33D9D8B909E0D2EF26FFBD CN=MyTestCert

Microsoft Management Console を使用した暗号化証明書の復元

証明書を復元するときのインポートと同じ手順を使用できます。Windows PowerShell を使用して暗号化証明書をインポート を参照してください。

Microsoft Management Console を使用した暗号化証明書のバックアップ で説明されているように、Microsoft Management Console を使用して証明書をバックアップした場合は、以下の例に従って SSL 証明書を復元します。

注: 復元する暗号化証明書は、QlikView Distribution Service (QDS) を実行するユーザーの証明書ストアに格納する必要があります。
  1. SSL 証明書をインストールする Windows サーバーで、Microsoft Management Console を開きます。Windows の検索メニューで mmc と入力して開きます。
  2. Console ウィンドウで、[ファイル] > [スナップインの追加/削除] をクリックします。
  3. [スナップインの追加または削除] ウィンドウで、左側の [利用可能なスナップイン] ペインから [証明書] を選択し、[追加 >] をクリックします。
  4. ダイアログで、[ユーザー アカウント] を選択し、[次へ] をクリックします。
  5. [スナップインの追加と削除] ウィンドウで、[OK] をクリックします。
  6. Console ウィンドウの左側の [Console Root] ペインで、[証明書 (現在のユーザー)] を展開し、[個人] フォルダを右クリックして、[すべてのタスク] > [インポート] を選択します。

  7. [証明書のインポート ウィザードへようこそ] ウィンドウで、[次へ] をクリックします。
  8. [インポートするファイル] ページで、[参照] をクリックしてインポートする PFX ファイルを見つけて選択し、[次へ] をクリックします。

    注: デフォルトでは、X.509 証明書 (*.cert,*.crt) ファイル タイプのみを検索するように設定されているため、ファイル エクスプローラー ウィンドウのファイル タイプ ドロップダウンで [すべてのファイル (*.*)] を選択してください。
  9. [秘密キーの保護] ページで、SSL 証明書がエクスポートまたはバックアップされたときに作成されたパスワードを入力します。

    次に、[このキーをエクスポート可能としてマークする] チェックボックスをオンにします。つまり、必要に応じて SSL 証明書をバックアップまたはエクスポートできます。

    次に、[すべての拡張プロパティを含める] チェックボックスもオンにします。

    [次へ] をクリックします。

  10. [証明書ストア] ページで、[すべての証明書を次のストアに配置する] を選択し、[参照] をクリックします。

    [証明書ストアの選択] ウィンドウで、[個人] を選択して [OK] をクリックします。

    [証明書ストア] ページに戻り、[次へ] をクリックします。

  11. [証明書のインポート ウィザードの完了] ページですべての設定が正しいことを確認し、[完了] をクリックします。
  12. インポートが成功したことを示すメッセージが表示され、秘密キー付きの SSL 証明書が個人ストア (フォルダ) に保存されます。