Encriptação de dados
From LimeSurvey Manual
Introdução
A funcionalidade Encriptação de dados foi criada para ajudar os administradores de inquéritos a lidar melhor com os novos regulamentos de proteção de dados adotados em diferentes partes do mundo (por exemplo, o RGPD).
Esta funcionalidade permite a encriptação dos dados pessoais existentes na base de dados central de participantes e/ou na tabela de participantes no inquérito. Além disso, também pode encriptar os dados recolhidos junto dos seus inquiridos se o atributo de pergunta de encriptação estiver ativado.
Tenha em atenção que os seus dados serão sempre visíveis na interface do LimeSurvey. Apenas as entradas da base de dados são encriptadas - ninguém que aceda ao servidor onde aloja o LimeSurvey consegue visualizar os respetivos dados. Por isso, tenha cuidado ao atribuir permissões globais e do inquérito.
Quando encriptar os seus dados?
Não existe uma resposta única para esta pergunta. Depende em grande medida de:
- o tipo de dados que recolhe
- o local em que o seu inquérito se baseia
- a legislação nacional ou federal
Na maioria das vezes, é importante encriptar os dados de identificação pessoal (por exemplo, como recomenda o Regulamento Geral sobre a Proteção de Dados). Por isso, campos como primeiro nome, último nome, endereço de email, número de telefone, morada, entre outros, podem ser usados para identificar as respostas submetidas por uma pessoa.
Noutros casos, os dados que devem ser encriptados não se limitam necessariamente aos exemplos acima. Em determinados cenários (por exemplo, em investigação médica), pode ser necessário encriptar a maior parte dos seus dados se for possível associar as respostas à pessoa que as submeteu.
Consequentemente, adapte o seu inquérito e a recolha de dados à legislação local!
Definições
Existem três locais no LimeSurvey onde se podem definir as opções de encriptação de dados:
- atributos da pergunta
- atributos do participante
- atributos da base de dados central de participantes.
Atributos da pergunta
O atributo da pergunta "Encriptação" é utilizado para ativar a encriptação de dados das respetivas respostas. Este atributo está desativado por predefinição. Depois de o inquérito ser ativado, já não é possível alterar este atributo.

Atributos do participante
Os três atributos principais (primeiro nome, último nome e endereço de email) são sempre apresentados na tabela de participantes no inquérito, estando a encriptação ativada por predefinição.
Cada novo atributo de participante terá a encriptação desativada por predefinição.
A encriptação pode ser ativada ou desativada em qualquer momento.
Gestão de atributos da base de dados central de participantes
Os três atributos principais (primeiro nome, último nome e endereço de email) são sempre apresentados na base de dados central de participantes, estando a encriptação ativada por predefinição.
Cada novo atributo de participante terá a encriptação desativada por predefinição.
A encriptação pode ser ativada ou desativada em qualquer momento.
Avançado
A biblioteca Sodium é utilizada para fornecer a funcionalidade de encriptação e desencriptação de dados do LimeSurvey.
Sodium é uma biblioteca de software moderna e fácil de utilizar para encriptação, desencriptação, assinaturas, hash de senhas e muito mais. É um fork portátil, compilável em várias plataformas, instalável e empacotável do NaCl, com uma API compatível e uma API alargada para melhorar ainda mais a usabilidade. O seu objetivo é fornecer todas as operações essenciais necessárias para construir ferramentas criptográficas de nível superior.
Sodium é multiplataforma e multilinguagem. Funciona numa grande variedade de compiladores e sistemas operativos, incluindo Windows (com MinGW ou Visual Studio, x86 e x86_64), iOS e Android. Existem também versões Javascript e WebAssembly, totalmente suportadas. Estão disponíveis e bem suportadas ligações para todas as linguagens de programação comuns.
A versão 7.2.0 e posteriores da linguagem de programação PHP incluem a extensão Sodium (designada ext/sodium) como biblioteca criptográfica principal. A versão 2 da extensão PHP no PECL é compatível com a ext/sodium do PHP 7.2.
O LimeSurvey utiliza a biblioteca Sodium Compat para fazer a ponte com diferentes versões do PHP.
Esta biblioteca suporta, a título experimental, as versões PHP 5.2.4 - 7.x (mais recente), mas oficialmente só suporta versões do PHP que não atingiram o fim de vida (EOL).
Os métodos de encriptação/desencriptação de dados utilizados no LimeSurvey baseiam-se em assinaturas de chave pública. As chaves pública e secreta encontram-se no ficheiro /application/config/security.php. As chaves são geradas automaticamente na primeira utilização da funcionalidade de encriptação.
Não será possível efetuar pesquisas parciais de cadeias de caracteres em colunas da base de dados com dados encriptados, apenas pesquisas por correspondência exata.
Erros
Erros possíveis ao utilizar a encriptação de dados:
- a biblioteca não existe: a biblioteca PHP Sodium tem de estar instalada para poder utilizar a funcionalidade de encriptação de dados. Aqui encontra um guia sobre como instalar a biblioteca: Instalação do Sodium. Se não pretender utilizar a encriptação de dados, tem de desativar a encriptação nas configurações dos atributos.
- chave de desencriptação errada: a chave de desencriptação foi alterada desde a última vez que os dados foram guardados, pelo que não é possível desencriptá-los. A única forma de desencriptar os dados é recuperar a chave original a partir de uma cópia de segurança e substituir a chave de desencriptação atual pela chave original.
Nota: se o erro de chave de desencriptação errada ocorrer apenas quando o LimeSurvey envia um e-mail (por exemplo, ao concluir um inquérito), aceda a Configuração > Configurações globais > Configurações de e-mail, volte a introduzir a sua senha SMTP e clique em Guardar.[1]
Caso contrário, ainda pode tentar comparar e, eventualmente, recuperar as suas chaves de desencriptação a partir de uma cópia de segurança (porque faz cópias de segurança... certo? Hã?).