중요한 파일을 암호화하는 것은 일반적이지만, 리눅스 시스템 전체 하드 드라이브를 암호화하는 것은 부담스러울 수 있습니다. 이때 gocryptfs
를 사용하면 특정 디렉토리만 암호화하여 데이터를 안전하게 보호할 수 있습니다. gocryptfs
는 저장하는 모든 데이터를 암호화하고, 필요할 때만 복호화하는 디렉토리를 제공합니다.
데이터 유출로부터 보호하는 gocryptfs
개인 정보 보호는 현대 사회에서 매우 중요한 문제입니다. 끊임없이 발생하는 데이터 침해 사고는 개인과 기업 모두에게 큰 위협이 되고 있습니다. 드롭박스, 구글 드라이브, 마이크로소프트 원드라이브와 같은 클라우드 서비스를 이용하는 사용자가 많아짐에 따라, 매일 막대한 양의 데이터가 클라우드에 저장됩니다. 이러한 상황에서 데이터 유출 사고가 발생할 경우, 개인 정보 및 기밀 문서를 보호하는 것이 매우 중요합니다.
데이터 침해는 다양한 형태와 규모로 발생하며, 클라우드에만 국한되지 않습니다. 분실된 USB 메모리나 도난당한 노트북도 개인 정보 유출의 원인이 될 수 있습니다. 데이터의 중요도는 크기와 상관없이, 민감한 정보가 유출될 경우 심각한 결과를 초래할 수 있습니다.
일반적인 데이터 보호 방법 중 하나는 하드 드라이브 전체를 암호화하는 것입니다. 이 방법은 높은 보안성을 제공하지만, 컴퓨터 속도가 느려지는 단점이 있습니다. 또한, 오류 발생 시 백업으로부터 시스템을 복원하는 과정이 복잡해질 수 있습니다.
gocryptfs
는 이러한 단점을 보완하여 필요한 디렉토리만 암호화할 수 있도록 합니다. 시스템 전체 암호화 및 복호화에 따른 오버헤드를 줄여 빠르고 가볍게 작동합니다. 또한 암호화된 디렉토리를 다른 컴퓨터로 쉽게 이동할 수 있으며, 암호만 있다면 어디서든 파일에 접근할 수 있습니다.
gocryptfs
는 경량의 암호화된 파일 시스템으로, 루트 권한 없이 일반 계정으로 마운트할 수 있습니다. FUSE(Filesystem in Userspace) 패키지를 사용하여 사용자 공간에서 파일 시스템을 관리하며, 커널 파일 시스템 루틴과 gocryptfs
사이의 다리 역할을 합니다.
gocryptfs 설치 방법
우분투에 gocryptfs
를 설치하려면 다음 명령을 실행하십시오.
sudo apt-get install gocryptfs
페도라에 설치하려면 다음 명령을 실행하십시오.
sudo dnf install gocryptfs
만자로에서는 다음 명령을 사용하십시오.
sudo pacman -Syu gocryptfs
암호화된 디렉토리 생성
gocryptfs
의 장점은 사용법이 매우 간단하다는 것입니다. 기본 원칙은 다음과 같습니다.
- 암호화할 파일과 하위 디렉토리를 저장할 디렉토리를 생성합니다.
gocryptfs
를 사용하여 해당 디렉토리를 초기화합니다.- 마운트 지점으로 사용할 빈 디렉토리를 생성한 후, 암호화된 디렉토리를 해당 마운트 지점에 마운트합니다.
- 마운트 지점에서 복호화된 파일을 보고 사용할 수 있으며, 새 파일을 생성할 수 있습니다.
- 작업이 완료되면 암호화된 폴더를 마운트 해제합니다.
예를 들어, ‘vault’라는 디렉토리를 생성하여 암호화된 데이터를 저장할 것입니다.
mkdir vault
새 디렉토리를 초기화하여 gocryptfs
파일 시스템을 생성해야 합니다.
gocryptfs -init vault
메시지가 표시되면 암호를 입력하십시오. 암호는 안전하게 보관해야 하며, 두 번 입력하여 정확한지 확인해야 합니다. 강력한 암호를 선택하는 것이 중요합니다. 구두점, 숫자 또는 기호를 포함하는 관련 없는 세 단어가 좋은 예시가 될 수 있습니다.
마스터 키가 생성되어 표시됩니다. 이 키는 안전한 개인 위치에 복사하여 보관해야 합니다. 이 예에서는 연구 시스템에 gocryptfs
디렉토리를 생성하므로 마스터 키를 볼 수 있지만, 실제로는 더욱 안전하게 보관해야 합니다. 마스터 키를 다른 사람이 얻게 되면 모든 암호화된 데이터에 접근할 수 있기 때문입니다.
‘vault’ 디렉토리로 이동하면 두 개의 파일이 생성된 것을 확인할 수 있습니다.
cd vault
ls -ahl
‘gocryptfs.diriv’는 짧은 바이너리 파일이며, ‘gocryptfs.conf’ 파일에는 설정 및 보안 정보가 포함되어 있습니다.
암호화된 데이터를 클라우드에 업로드하거나 이동식 저장 매체에 백업하는 경우, ‘gocryptfs.conf’ 파일은 포함하지 않는 것이 좋습니다. 그러나, 제어 가능한 로컬 미디어에 백업하는 경우에는 포함해도 무방합니다.
시간과 노력을 기울이면 ‘gocryptfs.conf’ 파일에서 ‘암호화된 키’ 및 ‘솔트’ 항목으로부터 암호를 추출할 수 있습니다.
cat gocryptfs.conf
암호화된 디렉토리 마운트
암호화된 디렉토리는 비어있는 마운트 지점에 마운트됩니다. ‘geek’이라는 이름의 디렉토리를 마운트 지점으로 사용하겠습니다.
mkdir geek
이제 마운트 지점에 암호화된 디렉토리를 마운트할 수 있습니다. 암호화된 디렉토리 내부의 gocryptfs
파일 시스템이 실제로 마운트되는 것입니다. 암호를 묻는 메시지가 표시됩니다.
gocryptfs vault geek
암호화된 디렉토리가 마운트되면, 마운트 지점 디렉토리를 다른 디렉토리와 동일하게 사용할 수 있습니다. 이 디렉토리에서 편집하거나 생성하는 모든 내용은 실제로 암호화된 디렉토리에 저장됩니다.
간단한 텍스트 파일을 만들어 보겠습니다.
touch secret-notes.txt
편집기를 사용하여 파일을 열고 내용을 추가한 후 저장할 수 있습니다.
gedit secret-notes.txt
새 파일이 생성되었는지 확인해 보겠습니다.
ls
이제 암호화된 디렉토리로 이동하여 새 파일이 암호화된 이름으로 저장되었는지 확인해 보겠습니다. 파일 이름만으로는 어떤 파일인지 알 수 없습니다.
cd vault
ls -hl
암호화된 파일의 내용을 확인하면, 텍스트 파일이 암호화되어 읽을 수 없는 형태로 변경된 것을 알 수 있습니다.
less aJGzNoczahiSif_gwGl4eAUnwxo9CvOa6kcFf4xVgYU
아래 이미지는 암호화된 파일의 내용이 어떻게 표시되는지 보여줍니다.
암호화된 디렉토리 마운트 해제
암호화된 디렉토리 사용이 완료되면, fusermount
명령을 사용하여 마운트를 해제할 수 있습니다. FUSE 패키지에 포함된 이 명령은 마운트 지점에서 암호화된 디렉토리 내부의 gocryptfs
파일 시스템을 마운트 해제합니다.
fusermount -u geek
마운트 지점 디렉토리를 확인해 보면, 여전히 비어있는 것을 볼 수 있습니다.
ls
이제 암호화된 디렉토리 안에 모든 데이터가 안전하게 저장되어 있습니다.
간편하고 안전한 암호화
간단한 시스템은 복잡한 시스템보다 사용 빈도가 높습니다. gocryptfs
는 사용하기 쉬울 뿐만 아니라 안전합니다. 보안이 없는 간편함은 아무 의미가 없습니다. 필요에 따라 여러 개의 암호화된 디렉토리를 만들거나, 하나의 디렉토리에 모든 중요한 데이터를 저장할 수 있습니다. 암호화된 파일 시스템을 마운트하고 해제하는 과정을 단순화하기 위해 별칭을 생성할 수도 있습니다.