フィールドデータの暗号化
FileMaker プラットフォームでは、指定されたキーを使用して次の関数でデータを暗号化および復号します:
-
CryptEncryptBase64: テキストおよびオブジェクトデータを受け取って、暗号化された Base64 エンコードテキストを返します。
-
CryptDecryptBase64: CryptEncryptBase64 で暗号化された Base64 エンコードテキストを受け取って、暗号化される前と同じタイプ (テキストまたはオブジェクトデータ) の復号されたデータを返します。
暗号化データをエンコードおよび初期化する方法をさらに細かく制御する必要がある場合、CryptEncrypt および CryptDecrypt 関数を使用することができます。FileMaker Pro ヘルプを参照してください。
重要 これらの関数は FileMaker Pro ファイルのセキュリティスキーマ (アカウント、アクセス権セット、拡張アクセス権) に直接関係しません。そのため、データのセキュリティはカスタム App 内でこれらの関数を使用する方法に依存します。
開発者としてキーを安全に管理する方法を検討してください:
-
作成: 安全性の高いキーを作成 (生成) するには、少なくともキーの長さ、複雑さ、ランダム性の 3 つの要素を盛り込む必要があります。
-
格納: キーを復号するデータとは別の場所に、安全に保存する必要があります。
-
保持: 暗号化データを使用できる間は常にキーが使用できる必要があります。たとえば、キーが使用できないとバックアップが使用できません。
-
破損: キーがなければデータを復号できないため、これらの関数を使用する方法により、キーが破損するとそのキーで暗号化したデータも破損することになります。
これらの関数のいずれかを利用するとフィールド内のデータの信頼性を保護することができます (フィールドレベルの暗号化とも呼ばれる)。ただし、このレベルの暗号化は、ファイル全体 (バックアップを含む) を不正な改ざんから保護する保存データの暗号化 (Encryption at Rest) の代用にはなりません。「カスタム App の暗号化」を参照してください。
また、次も検討してください:
-
すでに復号済みのデータを復号しようとするとデータが破損する場合があります。代わりにデータが暗号化されているかどうかを示す識別フラグを使用して必要な場合のみ復号するようにします。
-
暗号化されているフィールドのコンテンツを後で復号してから再度暗号化する場合、暗号化されるたびに異なる値になります。
-
キーが漏えいした場合、漏えいしたキーで暗号化データを復号して新しいキーで再度暗号化できるように、暗号化データを含むすべてのレコードを見つけられるようにしておく必要があります。