2016년 10월 20일 목요일

[출처 : https://plus.google.com/ ]

암호화 파일 시스템을 적용하는 것과 관련해서, 한동안 고민을 했었는데.

드디어 해답을 알아내서 팁 하나를 공유드립니다.

linux 에서는 eCryptfs 라는 암호화 파일 시스템을 사용할 수 있는 방법이 제공되고 있습니다.

sudo apt-get install ecryptfs-utils

당근 요렇게 설치해주셔야 쓸 수 있는데, 디렉토리 암호화를 적용하고 싶다고 치면,

해당 디렉토리를 eCryptfs 로 마운트를 하면 간단하게 적용됩니다..
다양한 암호화 알고리즘을 적용할 수 있기 때문에 취향껏 옵션을 선택하시면 됩니다.
(옵션에 따라서 데이터만 암호화 시킬 수도 있고, 파일 이름 까지 암호화 시킬 수도 있습니다.)

sudo mount /home/me/safe /home/me/safe -t ecryptfs -o passphrase_passwd=비밀번호,
ecryptfs_cipher=aes,ecryptfs_key_bytes=24,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=no,no_sig_cache=yes

요렇게요.

이 상태에서 읽고 쓰고 하는 것은 모두 암호화 되어서 저장되고 복호화 되어서 읽히고 합니다.

문제는 요렇게 mount 하면 계정 access control 에만 기대게 되어 해당 directory 에 접근할 수 있는 모든 사람들이 다 들어가서 볼 수 있게 된다는 거죠.

퍼미션 시스템에만 기대면 암호화 하는것에 대해서 뭔가 덜 보호되는거 같습니다.
퍼미션이 뚫려도 암호화 파일 시스템으로 최후의 보루를 삼고 싶었던 건데, 아무런 보호가 안된다니?

바로 이걸 위해서 unshare 를 쓰는 겁니다.

unshare - -mount - - /bin/bash -c "sudo mount /home/me/safe /home/me/safe -t ecryptfs -o passphrase_passwd=비밀번호,
ecryptfs_cipher=aes,ecryptfs_key_bytes=24,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=no,no_sig_cache=yes && 기타 등등 하고 싶은 짓"

( - - 는 붙여야 합니다.)

요런식으로 하면, eCryptfs 로 마운트되는게 저 안에서만 유효하기 때문에
설령 내 계정으로 /home/me/safe 에 들어가서 보더라도 암호화된 텍스트 밖에 못 보게 됩니다.

댓글 없음:

댓글 쓰기