EncFS

EncFS
EncFS
개발자발리언트 고프
안정된 릴리스
1.9.5 / 2018년 4월 27일, 4년 전(2018-04-27)[1]
저장소
운영 체제Linux, FreeBSD, macOS,[2] Windows('encfs4win'[3] 포트) 및 Android 앱
유형파일 시스템, 암호화
면허증.LGPL
웹 사이트EncFS 홈

EncFSFree(LGPL) FUSE 기반의 암호화 파일 시스템입니다.암호화된 파일의 저장소로 [4][5]임의 디렉토리를 사용하여 파일을 투명하게 암호화합니다.

EncFS 파일시스템의 마운트에는, 송신원디렉토리와 마운트 포인트의 2 개의 디렉토리가 관련합니다.마운트 포인트의 각 파일에는, 그 파일에 대응하는 특정의 파일이 소스 디렉토리에 있습니다.마운트 포인트의 파일은 원본 디렉터리에 있는 파일의 암호화되지 않은 보기를 제공합니다.파일명은 소스 디렉토리에서 암호화됩니다.

파일은 볼륨 키를 사용하여 암호화되며, 볼륨 키는 암호화된 원본 [6]디렉터리 내부 또는 외부에 저장됩니다. 키의 복호화에 패스워드가 사용됩니다.

일반적인 용도

  • Linux에서는 eCryptfs 대신 홈 폴더를 암호화할 수 있습니다.
  • 클라우드 스토리지(Dropbox, Google Drive, OneDrive 등)에 저장된 파일 및 폴더를 암호화할 수 있습니다.
  • 이동식 디스크의 파일 폴더를 이동식 암호화할 수 있습니다.
  • 크로스 플랫폼 폴더 암호화 메커니즘으로 사용할 수 있습니다.
  • 2단계 인증(2FA)을 추가하여 스토리지 보안을 강화합니다.EncFS 볼륨키를 암호화된 소스 디렉토리 외부에 저장하여 실제 암호화된 데이터와 물리적으로 분리된 위치에 저장하면 2단계 인증(2FA)을 추가하여 보안이 대폭 강화됩니다.예를 들어 EncFS는 USB 플래시 드라이브, 네트워크 마운트, 광학 디스크 또는 클라우드 [6]등 실제 암호화된 데이터 이외의 장소에 고유한 볼륨 키를 저장할 수 있습니다.또한 이 볼륨 키의 암호를 해독하려면 암호가 필요할 수 있습니다.

이점

EncFS는 각 파일이 호스트 디렉토리 트리의 다른 위치에 암호화된 파일로 개별적으로 저장되기 때문에 다른 디스크 암호화 소프트웨어에 비해 몇 가지 이점을 제공합니다.

크로스 플랫폼

EncFS는 여러 플랫폼에서 사용할 수 있지만 eCryptfs는 Linux 커널에 연결되어 있습니다.

비트롯 검출

EncFS는 기본 파일 시스템 위에 비트롯 검출을 구현합니다.

확장 가능한 스토리지

EncFS에는 고정 크기를 차지하는 '볼륨'이 없습니다.마운트 포인트에 추가 또는 삭제되는 파일이 많아지면 암호화된 디렉토리가 확장 및 축소됩니다.

일반 파일 서버

EncFS의 암호화된 디렉토리는 일반 파일 서버(NFS, SSHFS )에 배치할 수 있으며 Rsync 등의 일반 파일 시스템 도구를 사용하여 효율적으로 미러링 및 백업할 수 있습니다.

다른 물리 디바이스

파일 시스템이 소스 디렉토리의 하위 디렉토리 중 하나에 마운트된 경우 마운트 포인트의 일부 디렉토리가 다른 물리적 디바이스에 존재할 수 있습니다.

고속 백업

백업 유틸리티는 소스 디렉토리(파일 동기화, 클라우드 스토리지)에서 변경된 파일만 백업할 수 있습니다.

파손 저감

데이터 손상은 더욱 격리됩니다.fileata의 파손은 단일 파일에 대해 로컬이며 fsck와 같은 신뢰할 수 있는 파일 시스템 복구 유틸리티를 사용하여 파일 시스템의 데이터 파손을 수정할 수 있습니다.일부 전체 디스크 암호화 시스템에는 이러한 특성 중 하나 또는 둘 다 없습니다.

최적화

파일 수정은 기본 파일 시스템에 반영되므로 전체 디스크 암호화와 달리 운영 체제에 의한 다양한 최적화가 가능합니다.예를 들어 TRIM(Releaseed Space)에 대한 정보를 전달하면 SSD 드라이브의 성능을 향상시킬 수 있습니다.단, 이것은 dm-crypt에서도 지원됩니다.

랜덤 파일 액세스

파일에는 랜덤으로 액세스 할 수 있습니다.예를 들어 파일 전체를 복호화하지 않고 매우 큰 암호화된 비디오의 중간으로 건너뛸 수 있습니다.

단점들

EncFS를 사용하면 몇 가지 단점이 있습니다.

호환성.

마운트된 EncFS 디렉토리는 소스 디렉토리를 포함하는 파일 시스템과 동일한 기능과 제한을 공유합니다.

매우 긴 파일 이름은 지원되지 않습니다.

암호화로 인해 EncFS에 의해 생성된 암호화된 파일의 파일 이름이 원래 파일 이름보다 길어집니다.따라서 파일 시스템에서 지원되는 최대값에 가까운 파일 이름은 암호화 후 길이 제한을 초과하기 때문에 EncFS에서 저장할 수 없습니다.대부분의 파일 시스템은 파일 이름을 255바이트로 제한합니다.이 경우 EncFS는 파일 이름을 [7][8]최대 190바이트까지만 지원합니다.

보안에 관한 일반적인 우려 사항

소스 디렉토리에 액세스 할 수 있는 사람은, 암호화된 파일 시스템에 있는 파일의 수, 가지고 있는 권한, 대략적인 크기, 및 파일명과 파일 데이터는 [9]암호화되어 있어도, 액세스 또는 수정한 마지막 시각을 확인할 수 있습니다.

EncFS 1.7 보안 문제

2014년 2월에 유료 보안 감사가 실시되어 몇 가지 잠재적인 취약성이 발견되었습니다.결론:[10]

EncFS는 아마도 상대가 암호문의 복사본을 하나만 얻고 그 이상은 얻지 않는 한 안전할 것입니다.EncFS는 상대방이 암호문의 스냅샷을 여러 번에 볼 수 있는 경우 안전하지 않습니다.EncFS는 악의적인 수정으로부터 파일을 보호하려고 하지만 이 기능에는 심각한 문제가 있습니다.

EncFS 1.8 보안에 관한 우려 사항

EncFS 1.8의 발표에는 이전 감사에서 제기된 보안상의 우려를 인정하면서 몇 가지 기본적인 설계 변경이 포함되어 있습니다.그러나 이러한 [11]취약성에 대해서는 여전히 특정 우려가 남아 있습니다.

파일 시스템 옵션

새로운 EncFS 볼륨을 생성할 때 다양한 요구에 맞게 파일 시스템을 사용자 지정할 수 있는 몇 가지 다른 옵션을 사용할 수 있습니다.

암호 알고리즘

EncFS는 시스템의 다양한 암호화 라이브러리에서 찾을 수 있는 모든 암호를 사용합니다.일반적으로 복어와 AES를 사용할 수 있습니다.

가변 키 길이를 지원하는 암호에 대해 암호 키 길이(keySize)를 선택할 수 있습니다.

블록 크기

각 파일은 블록으로 암호화되며 이 옵션은 블록 크기를 제어합니다.1바이트를 읽을 때마다 해당 바이트가 포함된 블록 전체를 복호화해야 합니다.마찬가지로 각 쓰기에 대해 블록을 복호화, 변경 및 재암호화해야 합니다.

대부분의 경우 기본 블록 크기 1024로 충분합니다.

파일명 부호화

소스 디렉토리의 파일명은 블록 또는 스트림모드로 플레인 또는 암호화할 수 있습니다.블록 모드는 파일 이름 길이를 다소 가리는 반면 스트림 모드는 파일 이름을 가능한 짧게 유지하므로 파일 시스템이 디렉토리 트리를 관리하는 방법에 따라 소스 디렉토리의 파일 시스템에서 공간을 절약할 수 있습니다.

파일명 IV 체인

유효하게 하면, 파일명 암호화의 초기화 벡터는 파일의 부모 디렉토리에서 취득되어 이름이 같지만 디렉토리가 다른 2개의 파일이 서로 다른 암호화된 파일명을 갖게 됩니다.

디렉토리의 이름이 변경되면, 그 디렉토리에 포함되는 모든 파일과 디렉토리는 암호화된 파일명을 재암호화할 필요가 있기 때문에, 고비용의 조작이 될 가능성이 있습니다.많이 채워진 디렉토리의 이름이 자주 변경되는 경우 이 옵션을 비활성화해야 합니다.

파일별 IV 초기화 벡터

이네이블의 경우, 각 파일은 랜덤한8 바이트 초기화 벡터로 암호화됩니다.이 벡터는 소스 디렉토리의 암호화된 파일 내에 저장됩니다.이 옵션을 실행 중지하면 각 파일이 동일한 초기화 벡터로 암호화되므로 볼륨 키를 쉽게 해제할 수 있습니다.

이 옵션을 활성화하면 파일 시스템의 보안이 강화되고 파일당 8바이트가 추가됩니다.

외부 IV 체인

파일 데이터 초기화 벡터가 파일 이름의 초기화 벡터 체인에서 파생되도록 합니다.같은 데이터는, 다른 파일명 또는 디렉토리로 다른 방법으로 암호화됩니다.

따라서, 이 모드가 유효하게 되어 있을 때에 파일의 이름을 바꾸려면 , 파일의 랜덤 초기화 벡터가 파일명 초기화 벡터 체인의 변경에 의해서 오프셋 되거나, 데이터를 재인코딩 할 필요가 있습니다.EncFS의 작성자는 특히 대용량 파일의 경우 상당히 빠르기 때문에 이전 경로를 선택했습니다.

파일 이름에서 IV 헤더 체인

부호화를 풀 패스명에 의존시킵니다.따라서 이름을 바꾸거나 이동하는 것은 다시 인코딩하는 것을 의미합니다.하드링크는 지원되지 않습니다.

MAC 헤더 차단

각 암호화된 블록에 체크섬을 저장하여 EncFS에 의해 암호화된 파일의 파손 또는 변경을 검출합니다.체크섬(블록)MACBytes)는 8바이트입니다.옵션으로 각 블록에 최대 8바이트의 랜덤 데이터(blockMACRandBytes)를 추가하여 암호화되지 않은 데이터가 동일한 2개의 블록이 동일한 체크섬을 갖는 것을 방지할 수 있습니다.이 옵션은 데이터를 읽거나 쓸 때(정합성을 검증하기 위해) 각 블록의 체크섬을 계산해야 하므로 대량의 CPU 오버헤드가 발생합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Releases - vgough/encfs". Retrieved 11 June 2018 – via GitHub.
  2. ^ "Valient Gough". Valient Gough. Retrieved 23 April 2018.
  3. ^ "encfs4win - an experimental project of porting encfs to the Windows world". Retrieved 29 November 2013.
  4. ^ Falko, Timme (2017-01-14). "How to Encrypt your Data with EncFS on Debian 8 (Jessie)". The Linux Foundation. Retrieved 2017-04-13.
  5. ^ Falko, Timme (2016-05-06). "Encrypt your Data with EncFS on Ubuntu 16.04". The Linux Foundation. Retrieved 2017-04-13.
  6. ^ a b Gough, Valient (2016-12-26). "ENVIRONMENT VARIABLES". GitHub. Retrieved 2017-05-07.
  7. ^ "Issue #7 - alternative filename storage for very long filenames". github.com. 2014-08-22. Retrieved 2016-01-27. Long filenames can exceed the filesystem limits after encryption & encoding.
  8. ^ "Manpage for enfs.1". manpages.ubuntu.com. Ubuntu. Archived from the original on 2016-02-03. Retrieved 2016-01-27. If your underlying filesystem limits you to N characters in a filename, then EncFS will limit you to approximately 3*(N-2)/4. For example if the host filesystem limits to 256 characters, then EncFS will be limited to 190 character filenames. This is because encrypted filenames are always longer than plaintext filenames.
  9. ^ "EncFS Directory Encryption Notes".
  10. ^ "EncFS Security Audit".
  11. ^ "EncFS 1.8 Announcement".

외부 링크