フィールド暗号化プラグイン(無料)

文字列(1行)・文字列(複数行)フィールドの値を、レコード保存時にブラウザ内(Web Crypto API)で AES-256-GCM暗号化してから保存するプラグインです。kintoneのREST APIは保存されている生の値を そのまま返すため、画面表示を隠すだけの「マスキング」ではAPI越しに値が読めてしまいますが、 このプラグインは値そのものを暗号文に変換して保存するため、REST APIからも平文を読み取れません。 復号にはパスフレーズの入力が必要で、パスフレーズ自体はどこにも保存されません。

セキュリティ #暗号化 #機密情報保護
ダウンロード(v1)

執筆者: 羽鳥達郎(合同会社Pons) / kintoneアプリデザインスペシャリスト・基本情報技術者・cybozuオフィシャルパートナー ※本サイトで配布するプラグインは、サイボウズ株式会社のオフィシャルプロダクトではありません。

こんな方におすすめ

ユースケース

フィールドの表示・非表示やアクセス権の設定は画面上の閲覧を制御できますが、REST APIやAPIトークンを持つ第三者アプリからは通常どおり値が読めてしまいます。このプラグインで暗号化したフィールドは、REST API経由でも暗号文(意味の無い文字列)しか取得できません。

セットアップ手順

  1. アプリのフォーム編集で「スペース」フィールドを1つ配置し、要素IDを設定する(パスフレーズ入力フォーム・復号ボタンが表示される場所になります)。
  2. プラグインをアプリに追加し、設定画面を開く。
  3. ①暗号化対象フィールド(文字列1行・文字列複数行から1つ以上)→②復号ボタンを設置するスペースフィールド→③パスフレーズの最小文字数、の順に設定して保存する。
  4. 保存後、アプリを更新する(kintoneのアプリ設定は保存しただけでは反映されず、更新〈デプロイ〉して初めてレコード画面に反映されます)。

新規作成画面でパスフレーズを設定すると、対象フィールドが保存時に自動で暗号化されます。対象フィールドが空欄のままならパスフレーズの入力は不要です。パスフレーズは1レコードにつき1つで、新規作成時に設定したパスフレーズが以後もそのレコードの唯一の正しいパスフレーズになります(変更する機能はありません)。パスフレーズを紛失した場合、暗号化されたデータは復号する手段がなく、永久に読めなくなります。パスフレーズの管理は利用者ご自身の責任で行ってください。

マイナンバー(個人番号)を取り扱う場合の注意: マイナンバーの利用・保管には番号法(マイナンバー法)等に基づく別途の法令要件があり、本プラグインによる暗号化だけでこれらの要件を満たせるとは限りません。マイナンバーをkintoneで扱うかどうか、扱う場合の方法は、必ず組織のセキュリティ担当・個人情報保護担当にご確認のうえご判断ください。

セキュリティレビュー結果サマリ

設定画面イメージ

フィールド暗号化プラグインの設定画面。暗号化対象フィールド(チェックボックス)、復号ボタンを設置するスペースフィールド、パスフレーズの最小文字数を設定する画面のスクリーンショット。

API実行数について

このプラグインはREST API・kintone.api()を一切使用しません。暗号化・復号処理はすべて ブラウザ内蔵のWeb Crypto APIのみで完結するため、レコードの保存・閲覧に伴うAPI実行数への影響は ありません。

GitHub / 改善要望

あわせて読みたい記事

あわせて検討したいkintone関連サービス