Actions

データ暗号化

From LimeSurvey Manual

Revision as of 07:50, 10 August 2019 by Bravehorse (talk | contribs) (Created page with "===中央参加者データベース属性管理=== 3つのコア属性(姓、名、および電子メール)は常にCentral_Participant_Database/ja|中央参加者デ...")



はじめに

データ暗号化は、LimeSurvey 4で提供される新機能です。これは、アンケート管理者が世界のさまざまな地域で採用されている新しいデータ保護規制(GDPRなど)に適切に対応できるように作成されました。

この機能により、中央参加者データベースまたはアンケート参加者テーブルにある個人データを暗号化できます。さらに、質問暗号化属性が有効になっている場合、回答者から収集したデータを暗号化することもできます。

データは常にLimeSurveyインターフェースに表示されることに注意してください。暗号化されるのはデータベースエントリーのみです。LimeSurveyをホストするサーバーにアクセスするユーザーは、データを見ることはできません。したがって、グローバルまたはアンケートの権限を誰に付与するか注意してください。


  暗号化キーを作成したら、必ずバックアップを作成してください。 キーを紛失すると、データを回復できなくなるため、データが使用できなくなります。LimeSurvey CEを使用する場合、公開キーと秘密キーは/application/config/security.phpにあります。



データを暗号化すべき場面

この問いに対する正しい答えはありません。以下の要素に大きく依存します。

  • 収集するデータの種類
  • アンケートを実施する場所
  • 国または連邦の法律
  • ...

ほとんどの場合、個人を特定できるデータを暗号化することが重要です(たとえば、一般データ保護規則で推奨されているように)。姓、名、電子メールアドレス、電話番号、住所などのフィールドを使用すれば、誰が回答を送信したのか識別できます。

そのほか、暗号化すべきデータは必ずしも上記の例にとどまりません。特定のシナリオ(医学研究など)では、データを送信した人の回答が追跡できる場合、ほとんどのデータは暗号化する必要があります。

結局のところ、アンケートとデータ収集を現地の法律に適合させる必要があります。

Settings

There are three places in LimeSurvey where data encryption settings can be set:


質問属性

質問属性「暗号化」は、対応する回答データの暗号化を有効にするために使用します。この属性の既定値はオフです。アンケートをアクティブにすると、この属性を変更することはできません。



参加者属性

3つのコア属性(姓、名、電子メール)は常にアンケート参加者テーブルに表示され、暗号化は既定で「オン」になっています。

Each new participant attribute will have encryption turned off by default.

Encryption can be turned on or off at any moment.



中央参加者データベース属性管理

3つのコア属性(姓、名、および電子メール)は常に中央参加者データベースに表示され、暗号化は規定でオンになっています」デフォルトで。

Each new participant attribute will have encryption turned off by default.

Encryption can be turned on or off at any moment.


Advanced

Sodium library is used to provide data encryption and decryption functionality for LimeSurvey.

Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more. It is a portable, cross-compilable, installable, packageable fork of NaCl, with a compatible API, and an extended API to improve usability even further. Its goal is to provide all of the core operations needed to build higher-level cryptographic tools.


Sodium is cross-platforms and cross-languages. It runs on a variety of compilers and operating systems, including Windows (with MinGW or Visual Studio, x86 and x86_64), iOS and Android. Javascript and WebAssembly versions are also available and are fully supported. Bindings for all common programming languages are available and well-supported.


Version 7.2.0 and newer of the PHP programming language includes the Sodium extension (referred to as ext/sodium) as a core cryptography library. Version 2 of the PHP extension in PECL is compatible with ext/sodium in PHP 7.2.


LimeSurvey uses the Sodium Compat library to bridge with different PHP versions. This library tentatively supports PHP 5.2.4 - 7.x (latest), but officially it only supports non-EOL'd versions of PHP.


Data encryption/decryption methods used in LimeSurvey are based on public-key signatures. Public and secret keys can be found in /application/config/security.php file. Keys are automatically generated on first usage of encryption feature.


  Warning : Once data encryption is turned on, data in corresponding database columns would become unreadable without decrypting them first. You should always have a backup of your encryption keys in case they get deleted. Also, once encryption keys are set, you should never change them because it would make all existing data unusable.



Partial string search won't be possible for database columns with encrypted data, only exact match search.


Errors

Possible errors when using data encryption:

  • library doesn't exists: PHP Sodium library have to be installed to be able to use data encryption feature. Here is a guide on how to install library: Sodium installation. If you don't want to use data encryption, you have to disable encryption in attribute settings.
  • wrong decryption key: decryption key has changed since data was last saved, so data can't be decrypted. The only way to decrypt data is to retrieve the original key from backup and replace the current decryption key with the original key.