데이터 암호화
From LimeSurvey Manual
소개
데이터 암호화 기능은 설문조사 관리자가 전 세계 여러 지역에서 도입된 새로운 개인정보 보호 규정(예: GDPR)에 더 잘 대응할 수 있도록 만들어졌습니다.
이 기능을 사용하면 중요 참여자 데이터베이스 및/또는 설문조사 참여자들 테이블에 있는 개인 데이터를 암호화할 수 있습니다. 또한 암호화 질문 속성을 활성화하면 응답자로부터 수집한 데이터도 암호화할 수 있습니다.
데이터는 LimeSurvey 인터페이스에서는 항상 표시된다는 점에 유의하십시오. 데이터베이스 항목만 암호화되므로 LimeSurvey를 호스팅하는 서버에 접근하는 사람은 해당 데이터를 볼 수 없습니다. 따라서 전역 권한 및 설문조사 권한을 부여할 대상에 주의하십시오.
데이터를 언제 암호화해야 합니까?
이 질문에 대한 정답은 하나가 아닙니다. 다음 사항에 따라 크게 달라집니다.
- 수집하는 데이터의 유형
- 설문조사가 기반을 둔 지역
- 국내법 또는 연방법
대부분의 경우 개인 식별이 가능한 데이터를 암호화하는 것이 중요합니다(예: 일반 데이터 보호 규정에서 권장하는 바와 같이). 따라서 이름, 성, 이메일 주소, 전화번호, 주소 등의 필드는 한 사람이 제출한 응답을 식별하는 데 사용될 수 있습니다.
다른 경우에는 암호화해야 하는 데이터가 위에서 제시한 예시에 국한되지 않을 수 있습니다. 특정 상황(예: 의학 연구)에서는 응답을 제출한 사람까지 추적할 수 있다면 대부분의 데이터를 암호화해야 할 수도 있습니다.
따라서 설문조사와 데이터 수집을 해당 지역의 법규에 맞게 조정하십시오!
설정
LimeSurvey에서 데이터 암호화 설정은 세 곳에서 지정할 수 있습니다.
질문 속성
질문 속성 "암호화"는 해당 응답에 대한 데이터 암호화를 활성화하는 데 사용됩니다. 이 속성은 기본적으로 꺼져 있습니다. 설문조사를 활성화한 후에는 이 속성을 변경할 수 없습니다.

참여자 속성
세 가지 핵심 속성(이름, 성, 이메일)은 항상 설문조사 참여자들 테이블에 표시되며, 암호화는 기본적으로 켜져 있습니다.
새로 추가한 각 참여자 속성은 기본적으로 암호화가 꺼져 있습니다.
암호화는 언제든지 켜거나 끌 수 있습니다.
중요 참여자 데이터베이스 속성 관리
세 가지 핵심 속성(이름, 성, 이메일)은 항상 중요 참여자 데이터베이스에 표시되며, 암호화는 기본적으로 켜져 있습니다.
새로 추가한 각 참여자 속성은 기본적으로 암호화가 꺼져 있습니다.
암호화는 언제든지 켜거나 끌 수 있습니다.
고급
LimeSurvey의 데이터 암호화 및 복호화 기능에는 Sodium 라이브러리가 사용됩니다.
Sodium은 암호화, 복호화, 서명, 비밀번호 해싱 등을 위한 현대적이고 사용하기 쉬운 소프트웨어 라이브러리입니다. NaCl의 포터블, 크로스 컴파일, 설치 및 패키징이 가능한 포크로서, 호환 API와 사용성을 더욱 높이기 위한 확장 API를 제공합니다. 상위 수준의 암호화 도구를 구축하는 데 필요한 모든 핵심 기능을 제공하는 것이 목표입니다.
Sodium은 크로스 플랫폼 및 크로스 언어를 지원합니다. Windows(MinGW 또는 Visual Studio, x86 및 x86_64), iOS, Android를 포함한 다양한 컴파일러와 운영 체제에서 실행됩니다. Javascript 및 WebAssembly 버전도 제공되며 완벽하게 지원됩니다. 모든 주요 프로그래밍 언어용 바인딩이 제공되며 잘 지원됩니다.
PHP 프로그래밍 언어 버전 7.2.0 이상에는 핵심 암호화 라이브러리로 Sodium 확장(ext/sodium)이 포함되어 있습니다. PECL의 PHP 확장 버전 2는 PHP 7.2의 ext/sodium과 호환됩니다.
LimeSurvey는 다양한 PHP 버전과 연동하기 위해 Sodium Compat 라이브러리를 사용합니다.
이 라이브러리는 PHP 5.2.4 - 7.x(최신)를 잠정적으로 지원하지만, 공식적으로는 EOL되지 않은 PHP 버전만 지원합니다.
LimeSurvey에서 사용하는 데이터 암호화/복호화 방식은 공개 키 서명을 기반으로 합니다. 공개 키와 비밀 키는 /application/config/security.php 파일에서 확인할 수 있습니다. 키는 암호화 기능을 처음 사용할 때 자동으로 생성됩니다.
암호화된 데이터가 있는 데이터베이스 열에서는 부분 문자열 검색은 불가능하며, 정확히 일치하는 검색만 가능합니다.
오류
데이터 암호화를 사용할 때 발생할 수 있는 오류:
- library doesn't exists: 데이터 암호화 기능을 사용하려면 PHP Sodium 라이브러리가 설치되어 있어야 합니다. 라이브러리 설치 방법은 다음 안내를 참조하십시오: Sodium 설치. 데이터 암호화를 사용하지 않으려면 속성 설정에서 암호화를 비활성화해야 합니다.
- wrong decryption key: 데이터를 마지막으로 저장한 이후 복호화 키가 변경되어 데이터를 복호화할 수 없습니다. 데이터를 복호화하는 유일한 방법은 백업에서 원래 키를 가져와 현재 복호화 키를 원래 키로 교체하는 것입니다.
참고: wrong decryption key 오류가 LimeSurvey가 이메일을 보낼 때(예: 설문을 완료했을 때)만 발생한다면, 설정 > 전역 설정 > 이메일 설정으로 이동하여 SMTP 비밀번호를 다시 입력한 후 저장을 누르십시오.[1]
그렇지 않다면 백업에서 복호화 키를 비교하여 복구해 볼 수 있습니다(백업은 해 두셨겠죠? 설마 안 하셨나요?).