Actions

Data encryption/ja: Difference between revisions

From LimeSurvey Manual

(Created page with "この機能により、中央参加者データベースまたはアンケート参加者テーブルにある...")
No edit summary
(33 intermediate revisions by 2 users not shown)
Line 12: Line 12:
この機能により、[[Central_Participant_Database/ja|中央参加者データベース]]または[[Survey participants/ja|アンケート参加者テーブル]]にある個人データを暗号化できます。さらに、[[QS:Encryption/ja|質問暗号化属性]]が有効になっている場合、回答者から収集したデータを暗号化することもできます。
この機能により、[[Central_Participant_Database/ja|中央参加者データベース]]または[[Survey participants/ja|アンケート参加者テーブル]]にある個人データを暗号化できます。さらに、[[QS:Encryption/ja|質問暗号化属性]]が有効になっている場合、回答者から収集したデータを暗号化することもできます。


Please note that your data will always be visible in the LimeSurvey interface. Only the database entries get encrypted - nobody that accesses the server where you host LimeSurvey can visualize the respective data. Therefore, please pay attention to whom you provide [[Manage users|global and survey permissions]].
データは常にLimeSurveyインターフェースに表示されることに注意してください。暗号化されるのはデータベースエントリーのみです。LimeSurveyをホストするサーバーにアクセスするユーザーは、データを見ることはできません。したがって、[[Manage users/ja|グローバルまたはアンケートの権限]]を誰に付与するか注意してください。




{{Alert|Once you create encryption keys, make sure to create backups. If you lose the keys, the data will become unusable since it cannot be recovered any longer. If you use LimeSurvey CE, the public and secret keys can be found in '''/application/config/security.php'''.}}
{{Alert|暗号化キーを作成したら、必ずバックアップを作成してください。 キーを紛失すると、データを回復できなくなるため、データが使用できなくなります。LimeSurvey CEを使用する場合、公開キーと秘密キーは'''/application/config/security.php'''にあります。}}




Line 21: Line 21:




There is no one correct answer to this question. It heavily depends on:
この問いに対する正しい答えはありません。以下の要素に大きく依存します。


*the type of data you collect
*収集するデータの種類
*where your survey is based on
*アンケートを実施する場所
*national or federal legislation
*国または連邦の法律
*...
* ...


Most of the time, it is important to encrypt personally identifiable data (e.g., as it is recommended in the General Data Protection Regulation). Therefore, fields such as first name, last name, email address, phone number, address, and so on can be used to identify the responses one person submitted.
ほとんどの場合、個人を特定できるデータを暗号化することが重要です(たとえば、一般データ保護規則で推奨されているように)。姓、名、電子メールアドレス、電話番号、住所などのフィールドを使用すれば、誰が回答を送信したのか識別できます。


In other cases, the data that should be encrypted does not necessarily stop at the examples provided above. In certain scenarios (e.g., in medical research), you might need to encrypt most of your data if you can track back the responses to the person who submitted them.
そのほか、暗号化すべきデータは必ずしも上記の例にとどまりません。特定のシナリオ(医学研究など)では、データを送信した人の回答が追跡できる場合、ほとんどのデータは暗号化する必要があります。


'''As a result, please adapt your survey and the data collection to the local legislation!'''
'''結局のところ、アンケートとデータ収集を現地の法律に適合させる必要があります。'''


==Settings==
==設定==
There are three places in LimeSurvey where data encryption settings can be set:
LimeSurveyには、データ暗号化の設定ができる場所が3つあります。
* [[Data_encryption#Question_attributes|question attributes]]  
* [[Data_encryption/ja#.E8.B3.AA.E5.95.8F.E5.B1.9E.E6.80.A7|質問属性]]  
* [[Data_encryption#Participant_attributes|participant attributes]]
* [[Data_encryption/ja#.E5.8F.82.E5.8A.A0.E8.80.85.E5.B1.9E.E6.80.A7|参加者属性]]
* [[Data_encryption#Central_participant_database_attribute_management|central participant database attributes]].
* [[Data_encryption/ja#.E4.B8.AD.E5.A4.AE.E5.8F.82.E5.8A.A0.E8.80.85.E3.83.87.E3.83.BC.E3.82.BF.E3.83.99.E3.83.BC.E3.82.B9.E5.B1.9E.E6.80.A7.E7.AE.A1.E7.90.86|中央参加者データベース属性]].




===Question attributes===
===質問属性===
Question attribute "Encrypted" is used to enable data encryption for corresponding responses. This attribute is '''turned off''' by default. Once survey is activated, it is not possible to change this attribute.
質問属性「暗号化」は、対応する回答データの暗号化を有効にするために使用します。この属性の既定値は'''オフ'''です。アンケートをアクティブにすると、この属性を変更することはできません。




Line 48: Line 48:




===Participant attributes===
===参加者属性===
Three core attributes (firstname, lastname, and email) are always shown in the [[Survey_participants|survey participants table]], the encryption being '''turned on''' by default.
3つのコア属性(姓、名、電子メール)は常に[[Survey_participants/ja|アンケート参加者テーブル]]に表示され、暗号化は既定で'''オン'''になっています。


Each new participant attribute will have encryption '''turned off''' by default.
新しい参加者の属性では、暗号化設定の既定値は'''オフ'''になっています。


Encryption can be turned on or off at any moment.
暗号化はいつでもオンまたはオフにできます。




Line 59: Line 59:




===Central participant database attribute management===
===中央参加者データベース属性管理===
Three core attributes (firstname, lastname and email) are always shown in the [[Central_Participant_Database|central participant database]], the encryption being '''turned on''' by default.
3つのコア属性(姓、名、および電子メール)は常に[[Central_Participant_Database/ja|中央参加者データベース]]に表示され、暗号化は規定で'''オン'''になっています」デフォルトで。


Each new participant attribute will have encryption '''turned off''' by default.
新しい参加者の属性では、暗号化設定の既定値は'''オフ'''になっています。


Encryption can be turned on or off at any moment.
暗号化はいつでもオンまたはオフにできます。




<center>[[File:Cpdb attribute management.png|800px]]</center>
<center>[[File:Cpdb attribute management.png|800px]]</center>


==Advanced==
==高度な情報==
Sodium library is used to provide data encryption and decryption functionality for LimeSurvey.
Sodiumライブラリは、LimeSurveyのデータ暗号化および復号化機能を提供するために使用されます。


<blockquote>''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.''
<blockquote>''Sodiumは、暗号化、復号化、署名、パスワードハッシュなどのための最新の使いやすいソフトウェアライブラリです。これは、互換性のあるAPIと、使いやすさをさらに向上させる拡張APIを備えた、NaClのポータブル、クロスコンパイル、インストール、パッケージ可能なフォークです。その目標は、高レベルの暗号化ツールを構築するために必要なすべてのコアオペレーションを提供することです。''




''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.''</blockquote>
''Sodiumは、クロスプラットフォームでクロス言語です。 Windows(MinGWまたはVisual Studio、x86およびx86_64)、iOS、Androidなど、さまざまなコンパイラーおよびオペレーティングシステムで実行されます。JavascriptおよびWebAssemblyバージョンも利用可能であり、完全にサポートされています。すべての一般的なプログラミング言語のバインディングが利用可能であり、十分にサポートされています。''</blockquote>




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.
バージョン7.2.0以降のPHPプログラミング言語には、コア暗号化ライブラリとしてSodium拡張(ext / sodiumと呼ばれる)が含まれています。PECLのPHP拡張のバージョン2は、PHP 7.2のext/sodiumと互換性があります。




LimeSurvey uses the [https://github.com/paragonie/sodium_compat Sodium Compat] library to bridge with different PHP versions.
LimeSurveyは、[https://github.com/paragonie/sodium_compat Sodium Compat]ライブラリを使用して、さまざまなPHPバージョンとブリッジします。このライブラリは、PHP 5.2.4 - 7.x(最新)を暫定的にサポートしていますが、公式には[https://secure.php.net/supported-versions.php PHPの非EOLバージョン]のみをサポートしています。
This library tentatively supports PHP 5.2.4 - 7.x (latest), but officially it only supports [https://https://secure.php.net/supported-versions.php non-EOL'd versions of PHP].




Data encryption/decryption methods used in LimeSurvey are based on [https://libsodium.gitbook.io/doc/public-key_cryptography/public-key_signatures 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.
LimeSurveyで使用されるデータの暗号化/復号化方法は、[https://libsodium.gitbook.io/doc/public-key_cryptography/public-key_signatures 公開鍵署名]に基づいています。公開鍵と秘密鍵は/application/config/security.phpファイルにあります。暗号化機能の最初の使用時にキーが自動的に生成されます。




{{Alert|title=Warning|text=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'''.
{{Alert|title=注意|text=データの暗号化を有効にすると、対応するデータベース列のデータは、復号化してからでないと読み取りできなくなります。'''暗号化キーを削除してしまう場合に備えて、常に暗号化キーのバックアップが必要です。'''また、ひとたび暗号化キーを設定したあとに変更すると、既存のすべてのデータが使用できなくなるため、変更しないでください。}}
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:
* '''ライブラリが存在しない''':  データ暗号化機能を使用するには、PHPナトリウムライブラリをインストールする必要があります。ライブラリのインストール方法に関するガイドは次のとおりです。[https://www.php.net/manual/en/sodium.installation.php Sodiumのインストール]。データ暗号化を使用したくない場合は、[[Data_encryption/ja#.E8.A8.AD.E5.AE.9A|属性設定]]で暗号化を無効にする必要があります。
* '''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: [https://www.php.net/manual/en/sodium.installation.php Sodium installation]. If you don't want to use data encryption, you have to disable encryption in [https://manual.limesurvey.org/Data_encryption#Settings 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.

Revision as of 13:13, 11 September 2019



はじめに

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

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

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


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



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

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

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

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

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

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

設定

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のインストール。データ暗号化を使用したくない場合は、属性設定で暗号化を無効にする必要があります。
  • 誤った復号化キー: データが最後に保存されたあとに復号化キーが変更されたため、データを復号化できません。バックアップから元のキーを取得し、現在の復号化キーを元のキーに置き換えることによりデータを複合化できます。