当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2015年2月6日金曜日

フィールドの暗号化(3)・・・文書のフィールドを手動で暗号化する

こんにちは。IBM ConnectED 2015が開催されていたアメリカから帰国して一週間。ようやく体調も日本風に慣れてきた感じがします。

今日も昨日の続きで、文書のフィールドの暗号化についてです。

記事を読み始める前に
にほんブログ村 IT技術ブログへ
をクリックしてくださいね。別ウィンドウで開くように設定してありますから、[戻る]をクリックするとかいう手間はありませんので、ぜひ気軽に押してください。


では、今日の話です。
昨日までの
フィールドの暗号化(1)・・・暗号キーを作成する
フィールドの暗号化(2)・・・暗号キーをマージする
で、暗号キーを作成することはできました。

そこで今日はサンプルDBを作成して、文書のフィールドを暗号化するという事を行ってみます。

まずは、サンプル用にノーツDBを作成しました。
フォーム名は「MainTopic」。
フィールドは下表のとおり。  
No.フィールド名フィールドの種類フィールドの種類説明
1Subjectテキスト編集可能タイトル
2Categoryダイアログリスト編集可能カテゴリ
3AngouDataテキスト編集可能暗号化するデータ
4CreatedUser作成者作成時の計算結果文書を作成したユーザ名
5CreatedDateTime日付/時刻作成時の計算結果文書の作成日時
6Bodyリッチテキスト編集可能本文
配置はこんな感じにしてみました。シンプルですね。



フォームのデザイン


暗号化したデータを格納するのは、「AngouData」というフィールドです。このフィールドは境界線が赤くなるので分かり易いでしょう。


ビューは・・・適当で良いので、勝手に作ってください。


暗号キーを使って文書のフィールドを暗号化するにはいくつかの方法があります。
今日はそのうち、プログラミングでもなんでもない、手動での方法を紹介します。


まずは普通に文書を作成します。
ここで、「AngouData」にはまだデータを入力しないでください。
※今回紹介する方法では、新規作成時には文書の暗号化を行うことができないようなのです。

その他のフィールドは適当に入力してください。
そうしたら、文書を保存します。

保存できたら、開きなおして編集モードにします。
この状態で文書のプロパティを開きます。
右から2番目のタブ(セキュリティ)を開きます。
文書のプロパティ

シークレット暗号キーという箇所があるので、そこの"レ"をクリックして、既に作成した「test」というキーを選択します。
シークレット暗号の選択

そうしたら、文書のプロパティを閉じて、「AngouData」フィールドに適当な値を入力して、文書を保存します。
これで文書のフィールドが暗号化されました。

実際に文書を開きなおしてみましょう。
まずは、文書を作成したユーザー本人が開いた時の画面です。
文書の復号化

暗号キーを持っていますので、当然暗号化されたデータを読むことができています。
ステータスバーにも「文書の暗号を解読します...」と表示されていて、暗号化データを復号化しているのが分かります。

次に、暗号キーを持っていないユーザーがこの文書を表示した場合です。
文書の復号化に失敗

暗号化フィールドが空白になっていて、データが表示されていません。
また、ステータスバーにも「キーがないために暗号化した文書の一部にアクセスできません」と表示されていて、暗号化データの復号に失敗したことが分かります。

ちなみに、この暗号化データは非表示になっているのではなく、きちんと暗号化されています。
ビュー上で文書のプロパティを見るとそれが分かります。
ビュー上で文書のプロパティを開いた

文書のプロパティの中に「AngouData」というアイテムがありません。代わりに「$Seal」や「$SealData」といったアイテムが作成されています。これらが暗号データを表しています。


どうでしょうか?
割と簡単ですよね。これを使いこなすと、重要なデータもノーツDBに安心して格納できるようになります。
クレジットカードの番号を入力しないといけないような場合などに良いでしょう。
(暗号キーはあらかじめ関係者に配布しておく)。


明日(というか月曜日??)は、違った方法で文書のフィールドを暗号化する方法をご紹介します。

では、今日はこの辺で・・・







【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: