Qual é o tamanho máximo permitido de nome de arquivo (e pasta) com eCryptfs?

31

Sou um novo usuário do eCryptfs e tenho uma pergunta muito básica que não consegui encontrar em lugar nenhum. Estou interessado em usar o eCryptfs através do meu Synology NAS que usa o Linux.

Ao tentar criptografar minha pasta (EXT4) por meio do aplicativo de criptografia da Synology (eCryptfs), encontro erros que indicam que o comprimento do meu nome de arquivo não pode exceder 45 caracteres (sem criptografia).

Se o limite for realmente 45 caracteres, o eCryptfs pode não ser uma ferramenta utilizável para a maioria.

Qual é o tamanho máximo de arquivo permitido ao criptografar arquivos e pastas com o eCryptfs? O Linux tem 255 caracteres?

    
por Fabry 27.02.2012 / 09:59

4 respostas

54

Divulgação completa: Eu sou um dos autores e o atual mantenedor dos utilitários eCryptfs userspace.

Ótima pergunta!

O Linux tem um tamanho máximo de 255 caracteres para a maioria dos sistemas de arquivos (incluindo EXT4) e um caminho máximo de 4096 caracteres.

eCryptfs é um sistema de arquivos em camadas. Ele se empilha em cima de outro sistema de arquivos, como o EXT4, que é usado para gravar dados no disco. O eCryptfs sempre criptografa o conteúdo do arquivo, mas ele pode encriptar (obscuramente) nomes de arquivos (ou não).

Se nomes de arquivos não forem criptografados, você poderá gravar com segurança nomes de arquivo de até 255 caracteres e criptografar seus conteúdos, pois os nomes de arquivos gravados no sistema de arquivos inferior serão simplesmente correspondentes. Embora um invasor não consiga ler o conteúdo de index.html ou budget.xls , eles saberão quais nomes de arquivo existem. Isso pode (ou não) vazar informações confidenciais dependendo do seu caso de uso.

Se nomes de arquivos são criptografados, as coisas ficam um pouco mais complicadas. O eCryptfs preenche um bit de dados na frente do nome de arquivo criptografado, de forma que ele possa identificar nomes de arquivos criptografados definitivamente. Além disso, a própria criptografia envolve "preenchimento" do nome do arquivo.

Por exemplo, eu tenho um arquivo criptografado, ~/.bashrc . Este nome de arquivo é criptografado usando minha chave para:

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

Claramente, esse nome de 7 caracteres agora requer mais de 7 caracteres para serem criptografados. Empiricamente, descobrimos que nomes de arquivo de caracteres com mais de 143 caracteres começam a exigir que > 255 caracteres sejam criptografados. Então nós (como desenvolvedores upstream do eCryptfs) geralmente recomendamos que você limite seus nomes de arquivos a ~ 140 caracteres.

Agora, tudo isso dito, o Synology NAS é um produto comercial que incorpora e usa eCryptfs e Linux para criptografar e proteger dados o dispositivo. Nós (os desenvolvedores upstream do eCryptfs) não temos nada a ver com a Synology ou seus produtos, apesar de estarmos felizes em ver o eCryptfs sendo usado em estado selvagem . Parece-me que a recomendação de 45 caracteres é um erro tipográfico (da nossa recomendação de 140 caracteres) ou simplesmente uma estimativa muito mais conservadora.

    
por 27.02.2012 / 16:05
10

Este tópico é muito interessante porque eu estava pensando exatamente a mesma coisa. Eu posso viver com ter que renomear 20 arquivos de 50 000 se os nomes dos arquivos precisam ser 140 caracteres ou menos, mas 45 ou menos não é viável (na minha situação) porque exigiria que eu renomeie muitos arquivos.

Fiz a mesma pergunta diretamente à Synology (mesmo apontando para o presente artigo), e a resposta deles foi interessante: "O limite do nome de arquivo do compartilhamento criptografado é de 143 bytes. Ele pode ter até 140 caracteres latinos puros ou 45 Caracteres CJK (chinês, japonês e coreano). "

Após essa resposta, fiz mais testes, testando com arquivos de 45, 46, 140, 143 e 144 caracteres. Meus testes mostram que arquivos com até 143 caracteres (não bytes, ao contrário do que a Synology me disse) serão criptografados, mas arquivos com 144 caracteres PREVÊM uma pasta a ser criptografada. No entanto, a MENSAGEM DE ERRO que recebo do meu NAS é que o nome do arquivo precisa ter menos de 45 caracteres (enquanto a realidade é que deve ter menos de 144 caracteres).

Eu não fiz testes com caracteres CJK ... Mas, para quem lê isto, parece que você está bem até 143 caracteres, apesar do que o sistema lhe diz.

    
por 01.11.2012 / 05:23
6

Eu gostaria de esclarecer que o linux tem um limite de 255 bytes por nome de arquivo, não 255 caracteres. Esta é uma diferença significativa e se você usar, por exemplo, Codificação UTF-8, você pode acabar com nomes de arquivo de 100 caracteres no máximo.

    
por 03.02.2015 / 11:52
1

O tamanho do nome de arquivo do ecrypt era apenas um problema para mim, pois precisava de uma subárvore específica do meu diretório inicial para suportar nomes extensos de arquivos e, finalmente, percebi que poderia simplesmente criar um sistema de arquivos dentro de um arquivo e montá-lo:

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

Existem provavelmente todos os tipos de problemas de eficiência com isso, mas é suficiente para o meu caso em que os arquivos são apenas resultados de testes criados periodicamente para minhas próprias finalidades locais.

Meus colegas colocaram sua imagem em / tmp - os dados de teste não são particularmente confidenciais: queremos principalmente proteger nosso código-fonte, não nossos resultados de teste.

    
por 19.09.2014 / 12:14