注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

はじめに

このガイドには、次のセクションが含まれています。

Cipher チャネルを作成する

Cipher チャネルを作成するときは、シークレットを作成する前に、まず暗号アルゴリズムを選択するよう求められます。新しい Cipher チャネルを作成する方法は2つあります。

方法1:プラットフォームのファイルシステムから Cipher チャネルを作成する

任意のプロジェクトに移動し、+ 新規 > Cipher チャネルを選択して、新しい Cipher チャネルを作成します。任意のアルゴリズムを選択します。暗号化された値で結合を行うには、AES_SIV (AES-256-SIV) を推奨します。

チャネルの操作

Foundry のファイルシステムで Cipher チャネルを作成できない場合は、Palantir の担当者にお問い合わせください。

方法2:Cipher アプリケーションから Cipher チャネルを作成する

パネルの左側に移動し、プラットフォームアプリ > データガバナンスで Cipher を探して、方法1と同じ手順に沿って進めます。

チャネルのダイアログ

暗号アルゴリズムを選択する方法

画面上のガイドでは、希望するプロトコルで Cipher チャネルを作成する手順を案内します。以下は、ユースケースに適した設定を選択する際に役立つ補足情報です。

  • アルゴリズム: Cipher は現在、以下のアルゴリズムをサポートしています。
    • テキストベース:AES_GCM_SIV 確率論的暗号化アルゴリズム、AES_SIV (AES-256-SIV) 決定論的暗号化アルゴリズム、SHA-256 ハッシュアルゴリズム(ペッパー付き)、および SHA-512 ハッシュアルゴリズム(ペッパー付き)。
    • 画像ベース:視覚的な難読化による画像スクランブル。

ハッシュと暗号化の主な違いは、暗号化された値は適切な権限を持つユーザーが復号できるのに対し、ハッシュ化された値は暗号処理によって難読化を解除したり、再識別したりできないことです。ユースケースで再識別が必要な場合は、暗号化を推奨します。

確率論的暗号化と決定論的暗号化の主な違いは、以下のとおりです。

  • 確率論的暗号化: 同じ入力でも、常に異なる出力になります。
  • 決定論的暗号化: 同じ入力は、常に同じ出力になります。
  • ハッシュ: 常に決定論的です。

視覚的な難読化による画像スクランブルアルゴリズムは、決定論的かつ可逆的です。

決定論的アルゴリズムと確率論的アルゴリズムのどちらを選択するかを検討する際には、以下の点を考慮する必要があります。

  • 暗号化されたデータで結合や集計を行う必要がある場合は、決定論的アルゴリズムが必要です。
  • 暗号化するデータのカーディナリティが低い場合や、統計分布がよく知られている場合は、暗号化されたデータに対する辞書攻撃や統計的攻撃のリスクを抑えるために、確率論的アルゴリズムの選択を検討するとよいでしょう。

暗号システムの鍵を設定する方法

画面上のガイドでは、暗号システムを設定する手順を案内します。先ほど選択した暗号アルゴリズムに応じて、機密データを保護するために選択できるシークレットの形式が異なります。

  • シークレット:
    • 暗号化: シークレットから鍵を導出できる鍵取得方法は2つあります。
      • ストレッチングによる鍵導出(推奨):Cipher サービスは、従来から鍵の強化に用いられてきた方法を適用し、シークレットから鍵を導出します。鍵ボタンをクリックすると、シークレットをランダムに生成できます。
      • 単一鍵:この方式には導出関数が含まれていません。適切に設計された AES_SIV 鍵がすでにあり、その鍵自体を使用する場合に推奨します。長さ64の Base64 エンコードされた文字列として入力する必要があります。
    • ハッシュ: ハッシュ用シークレットの作成:
      • ターミナルでコマンドを実行して、ハッシュ用シークレットを自分で作成することを推奨します(最小14文字で、ランダムに生成されたもの)。
      • または、鍵ボタンをクリックしてシークレットをランダムに生成できます。
    • 視覚的な難読化: 画像スクランブルのシード:
      • 桁数の多いランダムな数値を指定します。この数値は、画像内のピクセルを並べ替え、変更するためのシーケンスを生成するシードとして使用されます。

Cipher チャネルを作成をクリックすると、Cipher チャネルの作成プロセスが完了します。

ライセンスを発行する

Cipher ライセンスを発行するには、Cipher チャネルに移動し、新しい Cipher ライセンスを作成ボタンをクリックします。

Cipher ライセンスを発行する

Cipher ライセンスで許可されている操作をユーザーが実行できるようにするには、そのユーザーにライセンスの閲覧権限を付与してください。

次の3種類のライセンスから選択できます。

運用ユーザーライセンスデータマネージャーライセンス管理者ライセンス
セルレベルで監査可能✅❌❌
レート制限を適用可能✅❌❌
列全体の暗号化/復号に使用❌✅✅
暗号鍵へのアクセスを実質的に付与❌❌⚠️
以下で使用可能
オブジェクトレイヤー (Workshop、Object Explorer など)✅❌❌
Functions(Checkpoint をバイパスするを参照)✅❌❌
Pipeline Builder❌✅✅
Contour❌✅✅
コード開発❌❌✅

運用ユーザーライセンス

運用ユーザーライセンス(旧称「Frontend License」)を使用すると、Foundry ユーザーは個々の値を暗号化または復号できます。このライセンスを使用して実行されるすべての操作は、完全に監査可能です。

運用ユーザーライセンスで設定できる権限は次の2つです。

  • 個々の値の暗号化/ハッシュ化: Foundry アプリケーションを通じて単一の値を暗号化またはハッシュ化します。この操作にはレート制限カウンターを設定できます。
  • 個々の値の復号: Foundry アプリケーションを通じて単一の値を復号します。この操作にはレート制限カウンターを設定できます。この設定は、Workshop や Object Explorer などのフロントエンドを通じて、特定の暗号化された値をユーザーが閲覧できるようにする場合に役立ちます。

レート制限は任意の設定で、設定した時間内に個人が実行できる単一値の暗号処理の回数を指定します。ユーザーが制限を超えると、期間がリセットされるまで操作がブロックされます。

Checkpoint をバイパスする

ライセンスで Checkpoint のバイパスを許可すると、Functions や直接の API 呼び出しなど、Checkpoint を表示できない場所でライセンスを使用できます。このライセンスの使用は引き続きセルレベルで監査可能で、レート制限も適用されます。

データマネージャーライセンス

データマネージャーライセンス(旧称「High Trust License」)を使用すると、Foundry ユーザーは Pipeline Builder や Contour などのツールを使用して、データセットの列全体を暗号化または復号できます。この設定は、ポイントアンドクリックのツールが便利なユーザーや、セキュリティに関する厳格な要件を持つユーザーに役立ちます。Pipeline Builder での Cipher の使用について詳しくはこちら。

データマネージャーライセンスで設定できる権限は次の2つです。

  • 列レベルの暗号化/ハッシュ化: Pipeline Builder や Contour などのツールを通じてデータセットの列を暗号化またはハッシュ化します。
  • 列レベルの復号: Pipeline Builder や Contour などのツールを通じてデータセットの列を復号します。

管理者ライセンス

管理者ライセンス(旧称「Transforms License」)を使用すると、Foundry ユーザーは Code Repositories でデータセットの列全体を暗号化または復号でき、暗号鍵へのアクセスも付与されます。

トランスフォームでの操作を許可すると、ユーザーに暗号鍵へのアクセスが実質的に付与されます。このライセンスへのアクセスは、高い権限を持つユーザーにのみ付与してください。

管理者ライセンスで設定できる権限は次の2つです。

  • 暗号化/ハッシュ化の管理: Code Repositories でのデータセットの列の暗号化またはハッシュ化と、暗号化鍵へのアクセスです。
  • 復号の管理: Code Repositories でのデータセットの列の復号と、復号鍵へのアクセスです。

ウォークスルーガイド

上記の手順を理解したら、このチュートリアルを参照して、Cipher アプリケーションを使用して暗号化操作を実行する手順を確認します。

このチュートリアルでは架空の従業員データを使用します。画像や付属のデータセットをはじめ、このドキュメントで共有されるすべての情報は架空のものです。

再現手順

開始する前に、架空の従業員データセットをダウンロードし、Foundry にアップロードしてください。

  1. ランディングプロジェクトで Cipher チャネルを作成します。
  2. 暗号化の許可を持つ データマネージャーライセンスを作成します。
  3. Pipeline Builder で機密情報の列を暗号化します: 新しいパイプラインを作成し、右上隅の + 新規 > パイプラインを選択して、従業員データセットを Pipeline Builder にインポートします。次に、作成したデータマネージャーライセンスを使用する Cipher 暗号化トランスフォームを選択し、データセットの Employee_name 列に適用します。これで列が暗号化されているはずです。暗号化が完了したら、データセットを使用するオブジェクトタイプのパイプライン出力を追加し、Employee_number を主キーとタイトルとして使用できます。(Pipeline Builder の詳しい情報はこちら)

Pipeline Builder を使用して列を暗号化する

  1. オブジェクト出力を追加します: パイプライン出力の下にある回転アイコンから出力設定に移動します。対象オントロジーと出力フォルダーを選択し、保存します。このデータセット内の任意のオブジェクトにアクセスすると、以前に暗号化した値がアクセス不可になっており、閲覧できないことがわかります。次のステップでは、これらの値を復号する方法を説明します。

Ciphertext プロパティタイプを設定する

  1. 運用ユーザーライセンスを作成します: Cipher チャネルに戻り、復号の許可を持つ新しい運用ユーザーライセンスを作成します。このライセンスを使用すると、オブジェクトの復号を実行できます。上記と同じ操作を実行すると、今度はオブジェクトの値を復号できるはずです。

Cipher による復号要求のワークフロー