Шифрование данных
From LimeSurvey Manual
Введение
Функция шифрования данных создана, чтобы помочь администраторам опросов лучше соответствовать новым нормам защиты данных, принятым в разных частях мира (например, GDPR).
Эта функция позволяет шифровать персональные данные, находящиеся в центральной базе данных участников и/или в таблице участников опроса. Кроме того, можно шифровать данные, собираемые от респондентов, если включен атрибут вопроса «Зашифровано».
Обратите внимание: ваши данные всегда будут отображаться в интерфейсе LimeSurvey. Шифруются только записи в базе данных - никто из тех, кто имеет доступ к серверу, на котором размещён LimeSurvey, не сможет просмотреть эти данные. Поэтому внимательно выбирайте, кому предоставлять глобальные права доступа и права доступа к опросу.
Когда следует шифровать данные?
Однозначного ответа на этот вопрос нет. Он во многом зависит от:
- типа собираемых данных
- места проведения опроса
- национального или федерального законодательства
Чаще всего важно шифровать персональные данные, позволяющие идентифицировать человека (например, как рекомендовано в Общем регламенте по защите данных). Поэтому такие поля, как имя, фамилия, адрес e-mail, номер телефона, адрес и т. д., могут использоваться для определения ответов, отправленных одним человеком.
В других случаях данные, которые необходимо шифровать, не ограничиваются приведёнными выше примерами. В некоторых ситуациях (например, в медицинских исследованиях) может потребоваться зашифровать большую часть данных, если ответы можно отследить до человека, который их отправил.
Поэтому, пожалуйста, адаптируйте ваш опрос и сбор данных к местному законодательству!
Настройки
В LimeSurvey есть три места, где можно задать настройки шифрования данных:
Атрибуты вопросов
Атрибут вопроса «Зашифровано» используется для включения шифрования данных в соответствующих ответах. По умолчанию этот атрибут выключен. После активации опроса изменить этот атрибут невозможно.

Атрибуты участников
Три основных атрибута (имя, фамилия и e-mail) всегда отображаются в таблице участников опроса, при этом шифрование по умолчанию включено.
У каждого нового атрибута участника шифрование по умолчанию выключено.
Шифрование можно включить или выключить в любой момент.
Управление атрибутами центральной базы данных участников
Три основных атрибута (имя, фамилия и e-mail) всегда отображаются в центральной базе данных участников, при этом шифрование по умолчанию включено.
У каждого нового атрибута участника шифрование по умолчанию выключено.
Шифрование можно включить или выключить в любой момент.
Дополнительно
Для шифрования и расшифровки данных в LimeSurvey используется библиотека Sodium.
Sodium — это современная, простая в использовании программная библиотека для шифрования, расшифровки, подписей, хеширования паролей и многого другого. Это переносимый, кросс-компилируемый, устанавливаемый и пакетируемый форк NaCl с совместимым API и расширенным API для ещё большего удобства использования. Её цель — предоставить все основные операции, необходимые для создания высокоуровневых криптографических инструментов.
Sodium является кроссплатформенной и поддерживает множество языков. Она работает с различными компиляторами и операционными системами, включая Windows (с MinGW или Visual Studio, x86 и x86_64), iOS и Android. Также доступны версии для Javascript и WebAssembly, которые полностью поддерживаются. Доступны и хорошо поддерживаются привязки для всех распространённых языков программирования.
Начиная с версии 7.2.0 языка программирования PHP, расширение Sodium (ext/sodium) входит в состав ядра в качестве основной криптографической библиотеки. Версия 2 расширения PHP в PECL совместима с ext/sodium в PHP 7.2.
LimeSurvey использует библиотеку Sodium Compat для обеспечения совместимости с разными версиями PHP.
Эта библиотека предположительно поддерживает PHP 5.2.4 - 7.x (последняя версия), но официально она поддерживает только версии PHP, поддержка которых не прекращена.
Методы шифрования и расшифровки данных, используемые в LimeSurvey, основаны на подписях с открытым ключом. Открытый и секретный ключи находятся в файле /application/config/security.php. Ключи генерируются автоматически при первом использовании функции шифрования.
Для столбцов базы данных с зашифрованными данными поиск по части строки невозможен — доступен только поиск по точному совпадению.
Ошибки
Возможные ошибки при использовании шифрования данных:
- library doesn't exists (библиотека не существует): для использования функции шифрования данных необходимо установить библиотеку PHP Sodium. Руководство по установке библиотеки: Установка Sodium. Если вы не хотите использовать шифрование данных, отключите шифрование в настройках атрибутов.
- wrong decryption key (неверный ключ расшифровки): ключ расшифровки изменился с момента последнего сохранения данных, поэтому данные невозможно расшифровать. Единственный способ расшифровать данные — взять исходный ключ из резервной копии и заменить им текущий ключ расшифровки.
Примечание: если ошибка wrong decryption key возникает только при отправке LimeSurvey сообщения электронной почты (например, после завершения опроса), перейдите в раздел Конфигурация > Общие настройки > Настройки e-mail, заново вставьте свой пароль STMP и нажмите «Сохранить».[1]
В противном случае вы все же можете попытаться сравнить и, возможно, восстановить ключи расшифровки из резервной копии (ведь вы же делаете резервные копии... правда? Э-э?).