データ暗号化
From LimeSurvey Manual
はじめに
データ暗号化は、LimeSurvey 4で提供される新機能です。これは、アンケート管理者が世界のさまざまな地域で採用されている新しいデータ保護規制(GDPRなど)に適切に対応できるように作成されました。
この機能により、中央参加者データベースまたはアンケート参加者テーブルにある個人データを暗号化できます。さらに、質問暗号化属性が有効になっている場合、回答者から収集したデータを暗号化することもできます。
データは常にLimeSurveyインターフェースに表示されることに注意してください。暗号化されるのはデータベースエントリーのみです。LimeSurveyをホストするサーバーにアクセスするユーザーは、データを見ることはできません。したがって、グローバルまたはアンケートの権限を誰に付与するか注意してください。
データを暗号化すべき場面
この問いに対する正しい答えはありません。以下の要素に大きく依存します。
- 収集するデータの種類
- アンケートを実施する場所
- 国または連邦の法律
ほとんどの場合、個人を特定できるデータを暗号化することが重要です(たとえば、一般データ保護規則で推奨されているように)。姓、名、電子メールアドレス、電話番号、住所などのフィールドを使用すれば、誰が回答を送信したのか識別できます。
そのほか、暗号化すべきデータは必ずしも上記の例にとどまりません。特定のシナリオ(医学研究など)では、データを送信した人の回答が追跡できる場合、ほとんどのデータは暗号化する必要があります。
結局のところ、アンケートとデータ収集を現地の法律に適合させる必要があります。
設定
LimeSurveyには、データ暗号化の設定ができる場所が3つあります。
質問属性
質問属性「暗号化」は、対応する回答データの暗号化を有効にするために使用します。この属性の既定値はオフです。アンケートをアクティブにすると、この属性を変更することはできません。
参加者属性
3つのコア属性(姓、名、電子メール)は常にアンケート参加者テーブルに表示され、暗号化は既定でオンになっています。
新しい参加者の属性では、暗号化設定の既定値はオフになっています。
暗号化はいつでもオンまたはオフにできます。
中央参加者データベース属性管理
3つのコア属性(姓、名、および電子メール)は常に中央参加者データベースに表示され、暗号化は規定でオンになっています」デフォルトで。
新しい参加者の属性では、暗号化設定の既定値はオフになっています。
暗号化はいつでもオンまたはオフにできます。
高度な情報
Sodiumライブラリは、LimeSurveyのデータ暗号化および復号化機能を提供するために使用されます。
Sodiumは、暗号化、復号化、署名、パスワードハッシュなどのための最新の使いやすいソフトウェアライブラリです。これは、互換性のあるAPIと、使いやすさをさらに向上させる拡張APIを備えた、NaClのポータブル、クロスコンパイル、インストール、パッケージ可能なフォークです。その目標は、高レベルの暗号化ツールを構築するために必要なすべてのコアオペレーションを提供することです。
Sodiumは、クロスプラットフォームでクロス言語です。 Windows(MinGWまたはVisual Studio、x86およびx86_64)、iOS、Androidなど、さまざまなコンパイラーおよびオペレーティングシステムで実行されます。JavascriptおよびWebAssemblyバージョンも利用可能であり、完全にサポートされています。すべての一般的なプログラミング言語のバインディングが利用可能であり、十分にサポートされています。
バージョン7.2.0以降のPHPプログラミング言語には、コア暗号化ライブラリとしてSodium拡張(ext / sodiumと呼ばれる)が含まれています。PECLのPHP拡張のバージョン2は、PHP 7.2のext/sodiumと互換性があります。
LimeSurveyは、Sodium Compatライブラリを使用して、さまざまなPHPバージョンとブリッジします。このライブラリは、PHP 5.2.4 - 7.x(最新)を暫定的にサポートしていますが、公式にはPHPの非EOLバージョンのみをサポートしています。
LimeSurveyで使用されるデータの暗号化/復号化方法は、公開鍵署名に基づいています。公開鍵と秘密鍵は/application/config/security.phpファイルにあります。暗号化機能の最初の使用時にキーが自動的に生成されます。
暗号化されたデータを含むデータベース列では、部分一致の検索はできません。完全一致検索のみです。
エラー
データ暗号化を使用する場合に考えられるエラー
- ライブラリが存在しない: データ暗号化機能を使用するには、PHPナトリウムライブラリをインストールする必要があります。ライブラリのインストール方法に関するガイドは次のとおりです。Sodiumのインストール。データ暗号化を使用したくない場合は、属性設定で暗号化を無効にする必要があります。
- 誤った復号化キー: データが最後に保存されたあとに復号化キーが変更されたため、データを復号化できません。バックアップから元のキーを取得し、現在の復号化キーを元のキーに置き換えることによりデータを複合化できます。
注: LimeSurveyが電子メールを送信する場合にのみwrong decryption keyエラーが発生する場合(例: アンケート終了時)、設定 > 全体設定 > メールアドレス設定から、SMTPパスワードを再入力し保存します。[1]
それ以外の場合でも、バックアップから復号キーを比較し、回復することができます(バックアップを実行するから、ですよね)。