태그 보관물: filenames

filenames

eCryptfs에서 허용되는 최대 파일 이름 (및 폴더) 크기는 얼마입니까? 통해 내 폴더 (EXT4)를 암호화하려고

저는 새로운 eCryptfs 사용자이며 어디에서나 찾을 수 없다는 매우 기본적인 질문이 있습니다. Linux를 사용하는 Synology NAS를 통해 eCryptfs를 사용하고 싶습니다.

Synology의 암호화 앱 (eCryptfs)을 통해 내 폴더 (EXT4)를 암호화하려고 할 때 파일 이름 길이가 45자를 초과 할 수 없다는 오류가 발생합니다 (암호화 없음).

제한이 실제로 45자인 경우 eCryptfs는 대부분 사용 가능한 도구가 아닐 수 있습니다.

eCryptfs로 파일 및 폴더를 암호화 할 때 허용되는 최대 파일 이름 크기는 얼마입니까? 리눅스는 255 자입니까?



답변

전체 공개 : 저는 eCryptfs 사용자 공간 유틸리티의 저자이자 현재 관리자입니다.

좋은 질문입니다!

Linux는 대부분의 파일 시스템 (EXT4 포함)의 최대 파일 이름 길이가 255 자이며 최대 경로는 4096 자입니다.

eCryptfs 는 계층 파일 시스템입니다. EXT4와 같은 다른 파일 시스템 위에 쌓이며 실제로 디스크에 데이터를 쓰는 데 사용됩니다. eCryptfs는 항상 파일 내용을 암호화하지만 선택적으로 파일 이름을 암호화하거나 숨길 수 있습니다.

파일 이름이 암호화되지 않은 경우 하위 파일 시스템에 기록 된 파일 이름이 단순히 일치하므로 최대 255 자의 파일 이름을 안전하게 작성하고 내용을 암호화 할 수 있습니다. 공격자는 index.html또는 의 내용을 읽을 수 없지만 budget.xls어떤 파일 이름이 있는지 알 수 있습니다. 사용 사례에 따라 민감한 정보가 유출되거나 유출되지 않을 수 있습니다.

파일 이름이 암호화되면 상황이 조금 더 복잡해집니다. eCryptfs는 암호화 된 파일 이름 앞에 암호화 된 파일 이름을 명확하게 식별 할 수 있도록 약간의 데이터를 추가합니다. 또한 암호화 자체는 파일 이름을 “패딩”합니다.

예를 들어 암호화 된 파일이 ~/.bashrc있습니다. 이 파일 이름은 내 키를 사용하여 다음과 같이 암호화됩니다.

/home/kirkland/.Private/ECRYPTFS_FNEK_ENCRYPTED.dWek2i3.WxXtwxzQdkM23hiYK757lNI7Ydf0xqZ1LpDovrdnruDb1-5l67.EU--

분명히, 7 자 파일 이름은 이제 7 자 이상을 암호화해야합니다. 경험적으로, 143 자보다 긴 문자 파일 이름은 암호화하기 위해> 255자를 요구하기 시작합니다. 따라서 eCryptfs 업스트림 개발자는 일반적으로 파일 이름을 ~ 140 자로 제한하는 것이 좋습니다.

이제 Synology NAS는 eCryptfs와 Linux를 내장하고 사용하여 장치의 데이터를 암호화하고 보호하는 상용 제품입니다. 우리 (eCryptfs의 업스트림 개발자)는 Synology 또는 해당 제품과 아무 관련이 없지만 일반적으로 eCryptfs 가 야생에서 사용되는 것을 기쁘게 생각합니다 . 45 자 추천은 인쇄상의 오류 (140 자 추천) 또는 훨씬 더 보수적 인 추정 인 것 같습니다.


답변

이 스레드는 내가 똑같은 것을 궁금해했기 때문에 매우 흥미 롭습니다. 파일 이름이 140 자 이하이어야하는 경우 50 000 중에서 20 개의 파일 이름을 바꾸어야하지만 45 개 이하의 파일은 너무 많은 파일의 이름을 바꿔야하기 때문에 실현 가능하지 않습니다 (내 상황에서는).

나는 똑같은 질문을 Synology에 직접 물었고 (현재 기사를 가리 키더라도) 그들의 대답은 흥미 롭습니다. “암호화 된 공유의 파일 이름 제한은 143 바이트입니다. 최대 140 개의 순수 라틴 문자 또는 45 CJK (중국어) , 일본어 및 한국어) 문자입니다. “

이 답변에 이어 45, 46, 140, 143 및 144 자의 파일로 테스트하면서 더 많은 테스트를했습니다. 필자의 테스트에 따르면 최대 143 자 (Synology의 말과 달리 바이트가 아님)의 파일은 암호화되지만 144자인 파일은 암호화 할 폴더를 예방합니다. 그러나 NAS에서 얻는 오류 메시지는 파일 이름이 45 자 미만이어야한다는 것입니다 (실제로는 144 자 미만이어야 함).

나는 CJK 문자로 테스트를하지 않았다 …하지만 이것을 읽는 사람에게는 시스템이 알려주는 내용에도 불구하고 143 문자까지 괜찮아 보입니다.


답변

리눅스는 파일 이름 당 255 바이트가 아니라 255 바이트 제한이 있음을 분명히하고 싶습니다. 이것은 중요한 차이점이며 UTF-8 인코딩과 같은 예를 들어 최대 100 자의 파일 이름으로 끝날 수 있습니다.


답변

ecrypt의 파일 이름 길이는 긴 파일 이름을 지원하기 위해 홈 디렉토리의 특정 하위 트리가 필요하다는 점에서 나에게만 문제가되었으며 결국 파일 내에 파일 시스템을 만들고 간단히 마운트 할 수 있다는 것을 깨달았습니다.

dd if=/dev/zero of=/home/me/.some.img bs=1024 count=1024
mkfs.ext3 /home/me/.some.img
chmod 777 /home/me/longfilenames
sudo mount /home/me/.some.img /home/me/longfilenames

아마도 모든 종류의 효율성 문제가있을 수 있지만 파일이 내 로컬 목적을 위해 주기적으로 생성 된 테스트 결과 인 경우에는 충분합니다.

내 동료들은 이미지를 / tmp에 넣었습니다. 테스트 데이터는 특히 기밀이 아닙니다. 우리는 주로 테스트 결과가 아닌 소스 코드를 보호하려고합니다.


답변