eCryptfs에서 허용하는 최대 파일 이름(및 폴더) 크기는 얼마입니까?

eCryptfs에서 허용하는 최대 파일 이름(및 폴더) 크기는 얼마입니까?

저는 새로운 eCryptfs 사용자입니다. 아주 기본적인 질문이 있는데 어디에서도 찾을 수 없습니다. Linux를 사용하는 Synology NAS에서 eCryptfs를 사용하는 데 관심이 있습니다.

Synology의 암호화 응용 프로그램(eCryptfs)을 통해 내 폴더(EXT4)를 암호화하려고 시도하는 동안 내 파일 이름이 45자를 초과할 수 없다는 오류가 발생했습니다(따라서 암호화할 수 없음).

제한이 실제로 45자라면 eCryptfs는 대부분의 사람들이 사용할 수 있는 도구가 아닐 것입니다.

eCryptfs를 사용하여 파일과 폴더를 암호화할 때 허용되는 최대 파일 이름 크기는 얼마입니까? Linux의 경우 255자입니까?

답변1

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

좋은 질문!

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

암호화된 파일 시스템계층적 파일 시스템입니다. 실제로 디스크에 데이터를 쓰는 데 사용되는 다른 파일 시스템(예: 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자에 비해) 좀 더 보수적인 추정치인 것 같습니다.

답변2

이 스레드는 저도 똑같은 것을 궁금해했기 때문에 매우 흥미로웠습니다. 파일 이름이 140자 이하여야 한다면 50,000개 파일 중 20개의 파일 이름을 바꿔야 할 수도 있지만, 너무 많은 파일 이름을 바꿔야 하기 때문에 45자 이하로는 불가능합니다(내 경우에는).

나는 Synology에게 직접 똑같은 질문을 했고(심지어 이 기사를 지적하기도 했습니다) 그들의 대답은 흥미로웠습니다. "암호화된 공유의 파일 이름은 143바이트로 제한됩니다. 일반 라틴 문자 140자 또는 CJK 45자(중국어, 일본어, 및 한국어) 문자입니다."

이 답변을 바탕으로 45, 46, 140, 143, 144자의 파일을 사용하여 직접 몇 가지 테스트를 더 수행했습니다. 내 테스트에 따르면 최대 143자(Synology의 설명과 달리 바이트가 아님)의 파일은 암호화되지만 최대 144자의 파일에서는 폴더가 암호화되지 않습니다. 그러나 NAS에서 받은 오류 메시지는 파일 이름이 45자 미만이어야 한다는 것입니다(실제로는 144자 미만이어야 합니다).

나는 CJK 문자로 테스트하지 않았습니다...하지만 이 글을 읽는 사람이라면 시스템에서 무엇을 말하든 143자까지는 괜찮을 것 같습니다.

답변3

Linux에서는 파일 이름당 길이 제한이 255자가 아니라 255바이트라는 점을 분명히 하고 싶습니다. 이는 중요한 차이점입니다. 예를 들어 UTF-8 인코딩을 사용하는 경우 최대 100자 길이의 파일 이름을 갖게 될 수 있습니다.

답변4

긴 파일 이름을 지원하기 위해 홈 디렉터리의 특정 하위 트리가 필요했기 때문에 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에 배치했습니다. 테스트 데이터는 특별히 기밀이 아닙니다. 우리는 주로 테스트 결과가 아닌 소스 코드를 보호하고 싶습니다.

관련 정보