完全な開示:私はeCryptfsユーザースペースユーティリティの作成者の1人であり、現在のメンテナーです。
いい質問です!
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文字の推奨事項から)であるか、単に控えめな推定値であるかのように思われます。