実際の導入に際し、注意すべきポイント等を以下に記します。

  1. 確実なバックアップ
      PDELで暗号化された情報はマップファイル・レシピファイルを紛失すると、復号不可能となります。必ず確実なバックアップを取得し、絶対に紛失しないでください。
  2. PDELで暗号化する情報と方式の検討
  3. 新規開発システムへの導入
      新規開発案件の多くは、現行システムのリプレース(なんらかの機能追加を伴うリプレース)ではないでしょうか。ここではリプレースを前提に、導入時の注意点等を記します。
  4. 稼動済みシステムへの導入
      PDELを稼動済みシステムに導入し、それと同時にデータベース等で管理している重要な情報を暗号化する場合、様々な注意が必要です。メインとなる「アプリケーションの改修」「データ移行/データパッチ」以外に「現行システムへの影響調査」等も忘れずに行なってください。現行システムへの影響調査では、オンプレミスかつハード増強を行わない場合、例えば設計書に「当案件リリースに伴い、CPU使用率、メモリやディスクの使用量、ネットワークトラフィック、DBアクセス等が増大して、他のサービスや運用に悪影響を及ぼすことは無いと推測しています。その根拠として・・・(様々な調査結果に基づく仮説等)」と記すためには「どのような調査が必要か?」という視点で検討してください。(クラウドでは、現行システムの調査そのものが困難であったり、クラウドセンターの負荷がランダムになること等も予想されます。クラウドの制限としてユーザーの理解を求めることも、場合によっては検討してください。)
  5. MVCモデルへの導入
      PDELをMVCモデルで実装されたシステムに導入する場合、暗号化・復号ともにMの機能としての実装を推奨します。暗号化については異論はないと思いますが「復号はVでも構わないのではないか?」という考えもできます。Mを推奨するのは「暗号化された情報を元の情報に復元したり、あるいはデータマスキングを行うという機能は、データに対する更新である」という考えからです。
      MVCをCに細分化して考えてみます。はSQL発行等のDBに直接アクセスする機能、は入力データチェックや入力値・DB情報等をもとに何らかの情報を算出するビジネスロジック、はHTML等の固定部分を生成する機能、はHTML等の可変部分を生成する機能です。ビューヘルパー等も含めのプログラムは「前回ログイン日時をYYYY年MM月DD日 hh時mm分ss秒形式に編集する」「10桁の取引番号を1234-5678-90のように桁を区切って編集する」等のように、データの内容を変更することなく、適切な表示形式に変換する機能に限定すべきです。暗号化されたデータを復号したり、あるいはデータマスキングで置き換える、という機能をに含めるべきではありません。DBから検索直後にの機能として復号する方式を推奨します。(ORMを使用するフレームワークでは「モデルオブジェクトの暗号化されたデータの格納フィールド」を「復号で上書き」した後に「モデル保存を行う」と、DBまで更新されてしまうリスクに注意してください。ORMにバーチャルフィールド・バーチャルカラムの機能があれば、その活用を検討してください。)