.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "ENCFS 1" .TH ENCFS 1 2025-03-21 1.9.5 "Encrypted Filesystem" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" encfs \- سوار کردن یا ایجاد یک سیستم‌فایل مجازیِ رمزگذاری‌شده .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBencfs\fR [\fB\-\-version\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-c\fR|\fB\-\-config\fR] [\fB\-t\fR|\fB\-\-syslogtag\fR] [\fB\-s\fR] [\fB\-f\fR] [\fB\-\-annotate\fR] [\fB\-\-standard\fR] [\fB\-\-paranoia\fR] [\fB\-\-insecure\fR] [\fB\-\-reverse\fR] [\fB\-\-reversewrite\fR] [\fB\-\-extpass=program\fR] [\fB\-S\fR|\fB\-\-stdinpass\fR] [\fB\-\-anykey\fR] [\fB\-\-forcedecode\fR] [\fB\-require\-macs\fR] [\fB\-i MINUTES\fR|\fB\-\-idle=MINUTES\fR] [\fB\-m\fR|\fB\-\-ondemand\fR] [\fB\-\-delaymount\fR] [\fB\-u\fR|\fB\-\-unmount\fR] [\fB\-\-public\fR] [\fB\-\-nocache\fR] [\fB\-\-noattrcache\fR] [\fB\-\-nodatacache\fR] [\fB\-\-no\-default\-flags\fR] [\fB\-o FUSE_OPTION\fR] [\fB\-d\fR|\fB\-\-fuse\-debug\fR] [\fB\-H\fR|\fB\-\-fuse\-help\fR] \&\fIrootdir\fR \fImountPoint\fR [\fB\-\-\fR [\fIFuse Mount Options\fR]] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" برنامهٔ \fBEncFS\fR یک سیستم‌فایل مجازیِ رمزگذاری‌شده ایجاد می‌کند که داده‌های رمزگذاری‌شده را در دایرکتوری \fIrootdir\fR ذخیره کرده و داده‌های رمزگشایی‌شده (متن‌آشکار) را در دایرکتوری \fImountPoint\fR قابل مشاهده می‌سازد. کاربر باید گذرواژه‌ای وارد کند که برای رمزگذاری (غیرمستقیم) نام فایل‌ها و محتویات آن‌ها به کار می‌رود. .PP اگر \fBEncFS\fR نتواند سیستم‌فایل پشتیبانی‌شده‌ای را در \fIrootdir\fR مشخص‌شده پیدا کند، از کاربر پرسیده خواهد شد که آیا مایل به ایجاد یک سیستم‌فایل رمزگذاری‌شدهٔ جدید در مکان مشخص‌شده است یا خیر. گزینه‌هایی در اختیار کاربر قرار می‌گیرد که امکان کنترل الگوریتم‌های مورد استفاده را فراهم می‌کند. با توسعه و تکامل بیشتر \fBEncFS\fR، ممکن است گزینه‌های بیشتری در دسترس قرار گیرد. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-\-version\fR 4 .IX Item "--version" نسخهٔ \fBEncFS\fR را نمایش می‌دهد. استفاده از گزینهٔ \fB\-\-verbose\fR پیش از \fB\-\-version\fR ممکن است اطلاعات بیشتری را نشان دهد. .IP "\fB\-c\fR, \fB\-\-config\fR" 4 .IX Item "-c, --config" باعث می‌شود \fBEncFS\fR از فایل ارائه‌شده به عنوان فایل پیکربندی استفاده کند. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" باعث فعال‌سازی ثبت وقایع در کانال‌های مختلف اشکال‌زدایی درون \fBEncFS\fR می‌شود. در حالت عادی، این پیام‌های ثبت وقایع غیرفعال بوده و تأثیری ندارند. توصیه می‌شود هنگام فعال بودن گزارش تفصیلی، برنامه در حالت پیش‌زمینه (\fB\-f\fR) اجرا شود. .IP "\fB\-t\fR, \fB\-\-syslogtag\fR" 4 .IX Item "-t, --syslogtag" این گزینه امکان تعیین برچسب syslog را فراهم می‌کند که هنگام ثبت پیام‌ها از طریق syslog به کار خواهد رفت. به‌طور پیش‌فرض، برچسب syslog برابر با \fBencfs\fR تنظیم شده است. .IP \fB\-s\fR 4 .IX Item "-s" گزینهٔ \fB\-s\fR (\fIsingle threaded\fR) باعث می‌شود \fBEncFS\fR در حالت تک‌نخی اجرا شود. به‌طور پیش‌فرض، \fBEncFS\fR در حالت چندنخی اجرا می‌شود. این گزینه در طول فرایند توسعهٔ \fBEncFS\fR برای ساده‌سازی اشکال‌زدایی و امکان اجرا با ابزارهای تحلیل حافظه به کار می‌رود. .IP \fB\-f\fR 4 .IX Item "-f" گزینهٔ \fB\-f\fR (\fIforeground\fR) باعث می‌شود \fBEncFS\fR در پیش‌زمینه اجرا شود. در حالت عادی \fBEncFS\fR به عنوان یک دیمن (daemon) اجرا شده و به پس‌زمینه می‌رود و کنترل را به پوستهٔ فراخواننده بازمی‌گرداند. با گزینهٔ \fB\-f\fR، در پیش‌زمینه اجرا خواهد شد و تمام پیام‌های هشدار و اشکال‌زدایی در خروجی خطای استاندارد نمایش داده می‌شوند. در حالت پیش‌فرض (پس‌زمینه)، تمام این پیام‌ها از طریق syslog ثبت می‌شوند. .IP \fB\-\-annotate\fR 4 .IX Item "--annotate" چاپ خطوط توضیحی و راهنما در stderr در طول فرایند پیکربندی. .IP \fB\-\-standard\fR 4 .IX Item "--standard" در صورت ایجاد یک سیستم‌فایل جدید، این گزینه به‌طور خودکار گزینه‌های پیکربندی استاندارد را انتخاب می‌کند تا به ساخت خودکار سیستم‌فایل کمک نماید. این همان مجموعه‌گزینه‌هایی است که باید مورد استفاده قرار گیرد، مگر اینکه دقیقاً بدانید چه کاری انجام می‌دهید و مستندات را خوانده باشید. .Sp هنگامی که سیستم‌فایلی ساخته نمی‌شود، این پرچم هیچ عملی انجام نمی‌دهد. .IP \fB\-\-paranoia\fR 4 .IX Item "--paranoia" مشابه \fB\-\-standard\fR، اما برای حالت \fBparanoia\fR (امنیت فوق‌العاده بالا). .IP \fB\-\-insecure\fR 4 .IX Item "--insecure" به شما امکان می‌دهد رمزگذاری داده‌ها را غیرفعال کنید و داده‌ها را همان‌گونه که هستند به صورت متن‌آشکار منتقل نمایید. البته استفاده از آن اکیداً نهی می‌شود! .IP \fB\-\-reverse\fR 4 .IX Item "--reverse" به‌طور معمول \fBEncFS\fR در صورت درخواست، یک نمای متن‌آشکار از داده‌ها فراهم می‌کند: داده‌های رمزنگاری‌شده را ذخیره کرده و داده‌های متن‌آشکار را نمایش می‌دهد. با استفاده از \fB\-\-reverse\fR، داده‌های متن‌آشکار را به عنوان منبع دریافت کرده و داده‌های رمزنگاری‌شده را بر حسب نیاز تولید می‌کند. این ویژگی می‌تواند برای تهیهٔ پشتیبان‌های رمزگذاری‌شدهٔ راه‌دور، در مواردی که تمایلی به نگهداری فایل‌های محلی به صورت رمزگذاری‌شده ندارید، مفید باشد. .Sp برای مثال، دستور زیر یک نمای رمزگذاری‌شده در دایرکتوری /tmp/crypt\-view ایجاد می‌کند: .Sp .Vb 1 \& encfs \-\-reverse /home/me /tmp/crypt\-view .Ve .Sp سپس می‌توانید دایرکتوری /tmp/crypt\-view را کپی کنید تا یک نسخه از داده‌های رمزگذاری‌شده در اختیار داشته باشید. همچنین باید یک نسخه از فایل /home/me/.encfs6.xml را که حاوی اطلاعات سیستم‌فایل است، نزد خود نگه دارید. این دو در کنار یکدیگر می‌توانند برای بازیابی داده‌های رمزگشایی‌شده به کار روند: .Sp .Vb 1 \& ENCFS6_CONFIG=/home/me/.encfs6.xml encfs /tmp/crypt\-view /tmp/plain\-view .Ve .Sp اکنون دایرکتوری /tmp/plain\-view دقیقاً حاوی همان داده‌های دایرکتوری /home/me خواهد بود. .Sp توجه داشته باشید که حالت \fB\-\-reverse\fR تنها با گزینه‌های پیکربندی محدودی کار می‌کند، بنابراین ممکن است هنگام استفاده از آن بسیاری از تنظیمات غیرفعال شوند. گزینه‌های ناسازگار تا این لحظه عبارتند از: Filename Initialization Vector Chaining و External IV Chaining. .IP \fB\-\-reversewrite\fR 4 .IX Item "--reversewrite" مشابه \fB\-\-reverse\fR است اما در صورت امکان، اجازهٔ نوشتن را نیز می‌دهد (پیکربندی باید UniqueIV را غیرفعال کرده باشد). گزینهٔ ناسازگار: Per-File Initialization Vectors. .IP \fB\-\-extpass=program\fR 4 .IX Item "--extpass=program" یک برنامهٔ خارجی را برای دریافت گذرواژهٔ کاربر مشخص می‌کند. هنگامی که برنامهٔ خارجی اجرا می‌شود، متغیر محیطی "RootDir" تنظیم خواهد شد تا حاوی مسیر دایرکتوری ریشه باشد. این برنامه باید گذرواژه را در خروجی استاندارد چاپ کند. .Sp برنامهٔ \fBEncFS\fR تمام مقادیر بازگردانده‌شده از برنامه را به عنوان گذرواژه در نظر می‌گیرد، به جز خط جدید انتهایی (\en) که حذف خواهد شد. .Sp برای مثال، مشخص کردن \fB\-\-extpass\fR=\fI/usr/lib/ssh/ssh\-askpass\fR باعث می‌شود \fBEncFS\fR از برنامهٔ اعلان گذرواژهٔ ssh استفاده کند. .Sp \&\fBنکته\fR: برنامهٔ \fBEncFS\fR حداکثر 2k داده از برنامهٔ دریافت گذرواژه می‌خواند و هرگونه خط جدید انتهایی را حذف می‌کند. نسخه‌های پیش از 1.4.x تنها ۶۴ بایت متن را می‌پذیرفتند. .IP "\fB\-S\fR, \fB\-\-stdinpass\fR" 4 .IX Item "-S, --stdinpass" خواندن گذرواژه از ورودی استاندارد، بدون نمایش پیام درخواست. این گزینه می‌تواند برای اسکریپت‌نویسی فرایندهای سوار کردن در encfs مفید باشد. .Sp توجه داشته باشید که ابتدا باید از وجود سیستم‌فایل و نقطهٔ اتصال اطمینان حاصل کنید. در غیر این صورت encfs گزینه‌های ساخت سیستم‌فایل را به صورت تعاملی اعلان خواهد کرد که ممکن است با اجرای اسکریپت شما تداخل ایجاد کند. .IP \fB\-\-anykey\fR 4 .IX Item "--anykey" بررسی اعتبارسنجی کلید را غیرفعال می‌کند. این گزینه به \fBEncFS\fR امکان می‌دهد با گذرواژه‌های ثانویه استفاده شود. از این سازوکار می‌توان برای ذخیرهٔ مجموعه‌ای مجزا از فایل‌ها در یک سیستم‌فایل رمزگذاری‌شده استفاده کرد. \fBEncFS\fR فایل‌هایی را که به‌درستی رمزگشایی نشوند نادیده می‌گیرد؛ از این رو فایل‌های ایجادشده با گذرواژه‌های مجزا تنها زمانی قابل مشاهده خواهند بود که سیستم‌فایل با گذرواژهٔ مرتبط با آن‌ها سوار شده باشد. .Sp توجه داشته باشید که در صورت تغییر گذرواژهٔ اصلی (با استفاده از \fBencfsctl\fR)، سایر گذرواژه‌ها دیگر قابل استفاده نخواهند بود مگر اینکه گذرواژهٔ اصلی به حالت پیشین خود بازگردانده شود، زیرا سایر گذرواژه‌ها به یک رمزگشایی نامعتبر از کلید حجم متکی هستند که در صورت تغییر گذرواژهٔ اصلی، همان مقدار باقی نخواهد ماند. .Sp \&\fBهشدار\fR: از این گزینه با مسئولیت شخصی خود استفاده کنید..IP \fB\-\-forcedecode\fR 4 .IX Item "--forcedecode" این گزینه تنها روی سامانه‌های فایلی که از سرایندهای بلوک MAC استفاده می‌کنند تأثیر دارد. به‌طور پیش‌فرض، اگر یک بلوک رمزگشایی شود و MAC ذخیره‌شده با مقدار محاسبه‌شده مطابقت نداشته باشد، یک خطای IO به برنامه بازگردانده شده و بلوک تحویل داده نمی‌شود. با این حال، با تعیین \fB\-\-forcedecode\fR، تنها یک خطا ثبت می‌شود و داده‌ها همچنان به برنامه تحویل داده خواهند شد. این امر ممکن است برای تلاش جهت خواندن فایل‌های آسیب‌دیده مفید باشد. .IP \fB\-\-require\-macs\fR 4 .IX Item "--require-macs" در صورت ایجاد یک سامانه فایل جدید، فعال بودن سرایندهای کد اصالت‌سنجی بلوک را اجباری می‌کند. هنگام سوار کردن یک سامانه فایل موجود، در صورتی که سرایندهای کد اصالت‌سنجی بلوک فعال نباشند، باعث خروج encfs می‌شود. .Sp این گزینه می‌تواند برای بهبود امنیت در مواردی که متن رمزشده در برابر دستکاری آسیب‌پذیر است، با جلوگیری از غیرفعال کردن MACها در فایل پیکربندی توسط مهاجم، به کار رود. .IP "\fB\-i\fR, \fB\-\-idle=MINUTES\fR" 4 .IX Item "-i, --idle=MINUTES" پیاده کردن (unmount) خودکار سامانه فایل را پس از یک دوره عدم فعالیت فعال می‌کند. این دوره بر حسب دقیقه مشخص می‌شود، بنابراین کوتاه‌ترین مدت زمان وقفه‌ای که می‌توان درخواست کرد یک دقیقه است. اگر فایل‌هایی درون سامانه فایل باز باشند، حتی اگر در حالت فقط‌خواندنی باز باشند، \fBEncFS\fR به‌طور خودکار آن را پیاده نخواهد کرد. با این حال، صرفاً باز بودن فایل‌ها به عنوان فعالیت محسوب نمی‌شود. .IP "\fB\-m\fR, \fB\-\-ondemand\fR" 4 .IX Item "-m, --ondemand" سوار کردن سامانه فایل بر حسب تقاضا. این گزینه در حال حاضر تنها در ترکیب با گزینه‌های \fB\-\-idle\fR و \fB\-\-extpass\fR معنا دارد. هنگامی که سامانه فایل غیرفعال می‌شود، \fBEncFS\fR به جای خروج، با رها کردن داخلی ارجاع خود به آن، دسترسی به سامانه فایل را متوقف می‌کند. اگر کسی مجدداً برای دسترسی به سامانه فایل تلاش کند، برنامه extpass برای درخواست گذرواژه از کاربر به کار گرفته می‌شود. در صورت موفقیت، سامانه فایل دوباره در دسترس قرار می‌گیرد. .IP \fB\-\-delaymount\fR 4 .IX Item "--delaymount" هنگام شروع encfs، سامانه فایل را سوار نمی‌کند؛ در عوض، سوار کردن را تا اولین استفاده به تأخیر می‌اندازد. این گزینه تنها به همراه \fB\-\-ondemand\fR معنا دارد. .IP "\fB\-u\fR, \fB\-\-unmount\fR" 4 .IX Item "-u, --unmount" نقطه اتصال (\fImountPoint\fR) مشخص‌شده را پیاده می‌کند. .IP \fB\-\-public\fR 4 .IX Item "--public" تلاش می‌کند تا encfs مانند یک سامانه فایل چندکاربره معمول رفتار کند. به‌طور پیش‌فرض، تمام سامانه‌های فایل مبتنی بر FUSE تنها برای کاربری که آن‌ها را سوار کرده قابل مشاهده هستند. هیچ کاربر دیگری (از جمله root) نمی‌تواند محتوای سامانه فایل را مشاهده کند. گزینه \fB\-\-public\fR دو کار انجام می‌دهد: هنگام سوار کردن سامانه فایل پرچم‌های FUSE به نام‌های "allow_other" و "default_permission" را اضافه می‌کند که به FUSE می‌گوید به سایر کاربران اجازه دسترسی به سامانه فایل را داده و از مجوزهای مالکیتی که توسط سامانه فایل ارائه شده استفاده کند. ثانیاً، پرچم \fB\-\-public\fR نحوه کارکرد توابع ایجاد گره در encfs را تغییر می‌دهد \- زیرا آن‌ها تلاش خواهند کرد مالکیت گره‌های جدید را بر اساس شناسه فراخواننده تنظیم کنند. .Sp \&\fBهشدار\fR: برای اینکه این قابلیت کار کند، encfs باید به عنوان root اجرا شود \-\- در غیر این صورت توانایی تغییر مالکیت فایل‌ها را نخواهد داشت. توصیه می‌شود قبل از در نظر گرفتن استفاده از \fB\-\-public\fR، ابتدا بررسی کنید آیا گزینه allow_other مربوط به fuse می‌تواند آنچه را می‌خواهید برآورده سازد یا خیر. .IP \fB\-\-nocache\fR 4 .IX Item "--nocache" حافظه پنهان صفات فایل در هسته را غیرفعال می‌کند. تنظیم این گزینه باعث می‌شود EncFS مقادیر "attr_timeout=0" و "entry_timeout=0" را به FUSE ارسال کند. این امر تضمین می‌کند که تغییرات اعمال‌شده در صفات فایل‌های پشتیبان خارج از EncFS، بلافاصله در نقطه اتصال EncFS نمایان شوند. حافظه پنهان داده‌های داخلی EncFS نیز غیرفعال می‌شود. کاربرد اصلی \fB\-\-nocache\fR در حالت معکوس (reverse mode) است. .IP \fB\-\-noattrcache\fR 4 .IX Item "--noattrcache" مشابه \fB\-\-nocache\fR اما تنها برای صفات (attributes). .IP \fB\-\-nodatacache\fR 4 .IX Item "--nodatacache" مشابه \fB\-\-nocache\fR اما تنها برای داده‌ها (data). .IP \fB\-\-no\-default\-flags\fR 4 .IX Item "--no-default-flags" \&\fBEncfs\fR از نسخه 1.2.2 به بعد به‌طور پیش‌فرض پرچم‌های FUSE به نام‌های "use_ino" و "default_permissions" را اضافه می‌کند، چرا که این کار سازگاری با برخی از برنامه‌ها را بهبود می‌بخشد. اگر به هر دلیلی نیاز دارید یک یا هر دوی این پرچم‌ها را غیرفعال کنید، از گزینه \&\fB\-\-no\-default\-flags\fR استفاده نمایید. .Sp خطوط فرمان زیر نتیجه یکسانی ایجاد می‌کنند: .Sp .Vb 2 \& encfs raw crypt \& encfs \-\-no\-default\-flags raw crypt \-\- \-o use_ino,default_permissions .Ve .IP "\fB\-o FUSE_ARG\fR" 4 .IX Item "-o FUSE_ARG" آرگومان‌های \fBFUSE\fR را مستقیماً به کتابخانه زیرین ارسال می‌کند. این کار ارسال گزینه‌های FUSE را هنگام سوار کردن \fBEncFS\fR از طریق mount (و /etc/fstab) آسان می‌سازد. به عنوان مثال: .Sp .Vb 1 \& mount encfs#/home/me\-crypt /home/me \-t fuse \-o kernel_cache .Ve .Sp توجه داشته باشید که آرگومان‌های encfs را نمی‌توان به این روش تنظیم کرد. اگر نیاز به تنظیم آرگومان‌های encfs دارید، یک اسکریپت پوششی (wrapper) ایجاد کنید، مانند encfs-reverse؛ .Sp .Vb 2 \& #!/bin/sh \& encfs \-\-reverse "$@" .Ve .Sp سپس با استفاده از مسیر اسکریپت اقدام به سوار کردن نمایید: .Sp .Vb 1 \& mount encfs\-reverse#/home/me /home/me\-crypt \-t fuse .Ve .IP "\fB\-d\fR, \fB\-\-fuse\-debug\fR" 4 .IX Item "-d, --fuse-debug" اشکال‌زدایی را در کتابخانه \fBFUSE\fR فعال می‌کند. این گزینه تنها زمانی باید استفاده شود که به وجود مشکلی در خود \fBFUSE\fR (نه \fBEncFS\fR) مشکوک هستید، زیرا حجم بالایی از داده‌های سطح پایین را تولید می‌کند و احتمالاً در ردیابی عمومی مشکلات چندان مفید نخواهد بود. ابتدا حالت پرحرف (\fIverbose\fR با پرچم \fB\-v\fR) را امتحان کنید که نمای سطح بالاتری از آنچه درون \fBEncFS\fR رخ می‌دهد ارائه می‌دهد. .IP "\fB\-H\fR, \fB\-\-fuse\-help\fR" 4 .IX Item "-H, --fuse-help" راهنمای \fBFUSE\fR را نمایش می‌دهد. .IP \fB\-\-\fR 4 .IX Item "--" گزینه \fB\-\-\fR به \fBEncFS\fR دستور می‌دهد تا هرگونه آرگومان باقی‌مانده را مستقیماً به \&\fBFUSE\fR ارسال کند. به نوبه خود، \fBFUSE\fR این آرگومان‌ها را به \fBfusermount\fR پاس می‌دهد. برای کسب اطلاعات درباره دستورهای موجود، صفحه راهنمای \fBfusermount\fR را مشاهده کنید. .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .IX Header "ENVIRONMENT VARIABLES" .IP \fBENCFS6_CONFIG\fR 4 .IX Item "ENCFS6_CONFIG" مشخص می‌کند که از کدام فایل پیکربندی (معمولاً با نام .encfs6.xml) استفاده شود. به‌طور پیش‌فرض، فایل پیکربندی از دایرکتوری رمزشده خوانده می‌شود. استفاده از این گزینه امکان نگهداری فایل پیکربندی را به‌صورت جدا از فایل‌های رمزشده فراهم می‌کند. .Sp هشدار: در صورت از دست دادن فایل پیکربندی، محتویات فایل‌های رمزشده به‌طور غیرقابل بازگشتی از دست خواهند رفت. این فایل حاوی کلید اصلی (master key) است که با گذرواژه شما رمزگذاری شده است. بدون کلید اصلی، حتی در صورت دانستن گذرواژه، بازیابی اطلاعات غیرممکن خواهد بود..SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" ایجاد یک سیستم‌فایل رمزگذاری‌شده جدید. داده‌های خام (رمزگذاری‌شده) در «~/.crypt» ذخیره شده، و داده‌های رمزگذاری‌نشده در «~/crypt» قابل مشاهده می‌شوند. در این مثال هر دو دایرکتوری در دایرکتوری خانگی قرار دارند. این مثال خروجی کامل encfs را هنگام پرسش از کاربر برای ساخت سیستم‌فایل نشان می‌دهد: .PP .Vb 9 \& % encfs ~/.crypt ~/crypt \& Directory "/home/me/.crypt" does not exist, create (y,n)?y \& Directory "/home/me/crypt" does not exist, create (y,n)?y \& Creating new encrypted volume. \& Please choose from one of the following options: \& enter "x" for expert configuration mode, \& enter "p" for pre\-configured paranoia mode, \& anything else, or an empty line will select standard mode. \& ?> \& \& Standard configuration selected. \& Using cipher Blowfish, key size 160, block size 512 \& New Password: \& Verify: .Ve .PP سیستم‌فایل اکنون سوار (mount) شده و در \fI~/crypt\fR قابل مشاهده است. اگر فایل‌ها در آنجا ایجاد شوند، به شکل رمزگذاری‌شده در \fI~/.crypt\fR دیده خواهند شد. برای پیاده کردن (unmount) سیستم‌فایل، از \fIfusermount\fR با گزینهٔ \fB\-u\fR (پیاده‌سازی) استفاده کنید: .PP .Vb 1 \& % fusermount \-u ~/crypt .Ve .PP مثالی دیگر. برای سوار کردن همان سیستم‌فایل، اما نام‌گذاری نقطهٔ اتصال توسط fusermount به نام '/dev/foo' (همان‌طور که در \fIdf\fR و ابزارهای دیگری که /etc/mtab را می‌خوانند نمایش داده می‌شود)، و همچنین درخواست حافظهٔ موقت (caching) در سطح کرنل برای داده‌های فایل (که هر دو آرگومان‌های ویژه‌ای برای fusermount هستند): .PP .Vb 1 \& % encfs ~/.crypt ~/crypt \-\- \-n /dev/foo \-c .Ve .PP یا، در صورتی که هنگام کار در یک سیستم‌فایل رمزگذاری‌شده با رفتاری غیرعادی تحت برنامه‌ای خاص مواجه شدید، اجرای برنامه در حالت پرگویی (verbose mode) هنگام بازتولید مشکل و ارسال خروجی آن به همراه گزارش خطا می‌تواند مفید باشد: .PP .Vb 1 \& % encfs \-v \-f ~/.crypt ~/crypt 2> encfs\-report.txt .Ve .PP به منظور جلوگیری از نشت اطلاعات حساس از طریق کانال‌های اشکال‌زدایی، تمام هشدارها و پیام‌های اشکال‌زدایی (همان‌طور که در حالت پرگویی خروجی داده می‌شوند) تنها شامل نام‌های رمزگذاری‌شدهٔ فایل‌ها هستند. در صورت تمایل می‌توانید از تابع \fIdecode\fR در برنامهٔ \fIencfsctl\fR برای رمزگشایی نام فایل‌ها استفاده کنید. .SH "هشدارها (CAVEATS)" .IX Header "CAVEATS" \&\fBEncFS\fR یک سیستم‌فایل واقعی نیست. این ابزار به هیچ‌گونه ذخیره‌سازی یا نگهداری واقعی فایل‌ها نمی‌پردازد. صرفاً درخواست‌ها را ترجمه کرده (در صورت نیاز رمزگذاری یا رمزگشایی می‌کند) و آن‌ها را به سیستم‌فایل میزبان زیرین منتقل می‌نماید. بنابراین هرگونه محدودیت در سیستم‌فایل میزبان، توسط \fBEncFS\fR به ارث برده خواهد شد (یا احتمالاً حتی محدودتر خواهد شد). .PP یکی از این محدودیت‌ها، طول نام فایل است. اگر سیستم‌فایل زیرین شما طول نام فایل را به N نویسه محدود کند، آن‌گاه \fBEncFS\fR شما را تقریباً به 3*(N\-2)/4 محدود خواهد کرد. به عنوان مثال، اگر سیستم‌فایل میزبان نام فایل‌ها را به ۲۵۵ نویسه محدود کند، \fBEncFS\fR به ۱۸۹ نویسه برای نام فایل محدود خواهد شد. این امر به این دلیل است که نام‌های فایل رمزگذاری‌شده همیشه طولانی‌تر از نام‌های فایل متنی ساده (plaintext) هستند. .SH "گزینه‌های سیستم‌فایل (FILESYSTEM OPTIONS)" .IX Header "FILESYSTEM OPTIONS" هنگامی که به \fBEncFS\fR دایرکتوری ریشه‌ای داده شود که شامل سیستم‌فایل موجود \fBEncFS\fR نباشد، گزینهٔ ایجاد آن را ارائه می‌دهد. توجه داشته باشید که گزینه‌ها فقط در زمان ایجاد سیستم‌فایل قابل تنظیم هستند. هیچ پشتیبانی برای تغییر درجا (in-place) گزینه‌های یک سیستم‌فایل وجود ندارد. .PP اگر می‌خواهید سیستم‌فایلی را برای استفاده از ویژگی‌های جدیدتر ارتقا دهید، باید یک سیستم‌فایل جدید ایجاد کرده و هر دو سیستم‌فایل قدیمی و جدید را به طور هم‌زمان سوار کنید و فایل‌ها را از قدیمی به جدید کپی نمایید. .PP چندین نمونه از encfs می‌توانند به طور هم‌زمان اجرا شوند، از جمله نگارش‌های متفاوتی از encfs، تا زمانی که با ماژول FUSE فعلی روی سیستم شما سازگار باشند. .PP امکان انتخاب بین دو پیکربندی از پیش تنظیم‌شده (حالت‌های 'standard' و 'paranoia') به همراه حالت پیکربندی کارشناسانه (expert) فراهم شده است. .PP حالت \fIStandard\fR از تنظیمات زیر استفاده می‌کند: رمزنگار: AES اندازهٔ کلید: ۱۹۲ بیت الگوریتم PBKDF2 با زمان اجرای ۰٫۵ ثانیه، سالت ۱۶۰ بیتی اندازهٔ بلوک سیستم‌فایل: ۱۰۲۴ بایت کدگذاری نام فایل: کدگذاری بلوکی همراه با زنجیره‌سازی IV سرایندهای فایل با بردار مقداردهی اولیهٔ (IV) یکتا عبور دادن حفره‌های فایل (File holes passed through) .PP حالت \fIParanoia\fR از تنظیمات زیر استفاده می‌کند: رمزنگار: AES اندازهٔ کلید: ۲۵۶ بیت الگوریتم PBKDF2 با زمان اجرای ۳ ثانیه، سالت ۱۶۰ بیتی اندازهٔ بلوک سیستم‌فایل: ۱۰۲۴ بایت کدگذاری نام فایل: کدگذاری بلوکی همراه با زنجیره‌سازی IV سرایندهای فایل با بردار مقداردهی اولیهٔ (IV) یکتا سرایندهای بلوک کد احراز اصالت پیام (MAC) زنجیره‌سازی بردار مقداردهی اولیهٔ خارجی (External IV Chaining) عبور دادن حفره‌های فایل (File holes passed through) .PP در حالت پیکربندی کارشناسانه / دستی، هر یک از گزینه‌های بالا قابل پیکربندی است. در اینجا فهرستی از گزینه‌های فعلی همراه با نکاتی دربارهٔ معنای آن‌ها آمده است: .SH "تابع اشتقاق کلید (Key Derivation Function)" .IX Header "Key Derivation Function" از نگارش 1.5 به بعد، \fBEncFS\fR از PBKDF2 به عنوان تابع پیش‌فرض اشتقاق کلید استفاده می‌کند. تعداد تکرارها در تابع کلیدسازی بر اساس زمان واقعی ساعت دیواری برای تولید کلید انتخاب می‌شود. در حالت استاندارد زمان هدف ۰٫۵ ثانیه و در حالت پارانویا زمان هدف ۳٫۰ ثانیه در نظر گرفته شده است. .PP روی یک سیستم 1.6GHz AMD 64، تقریباً ۶۴ هزار تکرار تابع اشتقاق کلید در نیم ثانیه پردازش می‌شود. تعداد دقیق تکرارهایی که باید استفاده شود در فایل پیکربندی ذخیره می‌گردد، زیرا برای سوار کردن مجدد سیستم‌فایل به آن نیاز است. .PP اگر پیکربندی سیستم‌فایل \fBEncFS\fR از نگارش 1.4.x با نگارش 1.5 تغییر داده شود (مانند زمان استفاده از encfsctl برای تغییر گذرواژه)، تابع جدید PBKDF2 اعمال شده و سیستم‌فایل دیگر توسط نگارش‌های قدیمی‌تر قابل خواندن نخواهد بود. .IP \fICipher\fR 4 .IX Item "Cipher" کدام الگوریتم رمزنگاری استفاده شود. این فهرست به طور خودکار بر اساس الگوریتم‌های پشتیبانی‌شده‌ای که \fBEncFS\fR در کتابخانه‌های رمزنگاری یافته تولید می‌شود. هنگام استفاده از نگارشی جدید از \fBOpenSSL\fR، گزینه‌های معمول Blowfish و AES هستند. .Sp الگوریتم Blowfish یک رمزنگار ۸ بایتی است \- که در هر بار ۸ بایت را کدگذاری می‌کند. الگوریتم AES یک رمزنگار ۱۶ بایتی است. .IP "\fICipher Key Size\fR" 4 .IX Item "Cipher Key Size" بسیاری از الگوریتم‌های پشتیبانی‌شده، اگر نگوییم همه، از چندین طول کلید پشتیبانی می‌کنند. واقعاً نیازی به داشتن طول کلیدهای بسیار عظیم نیست. حتی ۱۶۰ بیت (مقدار پیش‌فرض) احتمالاً بیش از حد نیاز است. .IP "\fIFilesystem Block Size\fR" 4 .IX Item "Filesystem Block Size" این اندازه (به بایت) مقداری است که \fBEncFS\fR در هر بار با آن سروکار دارد. هر بلوک بردار مقداردهی اولیهٔ (IV) مخصوص به خود را دریافت می‌کند و در حالت زنجیره‌سازی بلوک رمز (cipher-block-chaining) الگوریتم کدگذاری می‌شود. یک بلوک ناقص در انتهای فایل با استفاده از حالت جریانی (stream mode) کدگذاری می‌شود تا از نیاز به ذخیرهٔ اندازهٔ فایل در جایی دیگر جلوگیری شود. .Sp داشتن اندازه‌های بلوک بزرگ‌تر سربار \fBEncFS\fR را اندکی کاهش می‌دهد، اما اگر برنامه‌های شما بخش‌های کوچکی از فایل‌ها را بخوانند، می‌تواند سربار اضافه کند. برای خواندن یک بایت منفرد از یک فایل، کل بلوک حاوی آن بایت باید خوانده و رمزگشایی شود، بنابراین اندازهٔ بلوک بزرگ به درخواست‌های کوچک سربار تحمیل می‌کند. در فراخوانی‌های نوشتن وضعیت حتی بدتر است، زیرا یک بلوک باید خوانده و رمزگشایی شود، تغییرات اعمال گردد، و سپس بلوک دوباره کدگذاری شده و نوشته شود. .Sp مقدار پیش‌فرض از نگارش 1.0 برابر ۵۱۲ بایت است. این مقدار در نگارش 0.x روی ۶۴ بایت به طور ثابت برنامه‌نویسی شده بود، که برای کاربردهای عمومی به اندازهٔ تنظیمات فعلی کارآمد نبود. .IP "\fIFilename Encoding\fR" 4 .IX Item "Filename Encoding" \&\fBجدید در 1.1\fR. انتخابی بین کدگذاری جریانی (stream) نام فایل و کدگذاری بلوکی (block) ارائه می‌شود. مزیت کدگذاری جریانی این است که نام‌های فایل کدگذاری‌شده تا حد امکان کوتاه خواهند بود. اگر نام فایلی با یک حرف داشته باشید، در شکل کدگذاری‌شده بسیار کوتاه خواهد بود، در حالی که در کدگذاری بلوکی نام فایل‌ها همیشه به سمت بالا گرد شده و مضربی از اندازهٔ بلوک رمزنگاری می‌شوند (۸ بایت برای Blowfish و ۱۶ بایت برای AES). .Sp مزیت حالت کدگذاری بلوکی این است که طول همهٔ نام‌های فایل به صورت مضربی از اندازهٔ بلوک رمزنگار درمی‌آید. این بدان معناست که فردی که داده‌های رمزگذاری‌شدهٔ شما را مشاهده می‌کند، اطلاعات زیادی دربارهٔ طول نام فایل‌های شما به دست نمی‌آورد. این گزینه به صورت پیش‌فرض فعال است، زیرا زمان اجرای آن مشابه استفاده از رمز جریانی است. با این حال، اگر به دلایلی نام‌های فایل رمزگذاری‌شدهٔ کوتاه‌تری می‌خواهید، حالت رمز جریانی می‌تواند مفید باشد. .Sp بر اساس سیستم‌فایل زیرینی که حداکثر از ۲۵۵ نویسه در نام فایل‌ها پشتیبانی می‌کند، حداکثر طول ممکن نام فایل بسته به طرح کدگذاری انتخاب‌شده به این شرح است: stream (۱۸۹)، block (۱۷۶)، block32 (۱۴۳). توجه داشته باشید در صورتی که نام‌های فایل حاوی نویسه‌های خاص (چندبایتی) باشند، بهتر است از بایت صحبت کنیم. .Sp پیش از نگارش 1.1، تنها کدگذاری جریانی پشتیبانی می‌شد. .IP "\fIFilename Initialization Vector Chaining\fR" 4 .IX Item "Filename Initialization Vector Chaining" \&\fBجدید در 1.1\fR. در نگارش‌های پیشین \fBEncFS\fR، هر بخش از نام فایل در یک مسیر به طور جداگانه کدگذاری می‌شد؛ بنابراین اگر "foo" به "XXX" کدگذاری می‌شد، با داشتن یک کلید رمزنگاری یکسان، همیشه به همان شکل کدگذاری می‌شد، صرف‌نظر از این‌که مسیر "a/b/foo" باشد یا "aa/foo/cc" و غیره. این بدان معنا بود که فرد ناظر بر داده‌های رمزگذاری‌شده می‌توانست متوجه شود که دو فایل در دایرکتوری‌های مختلف دارای نام یکسانی هستند، حتی اگر نمی‌دانست آن نام پس از رمزگشایی چیست. .Sp با زنجیره‌سازی بردار مقداردهی اولیه (IV chaining)، هر دایرکتوری بردار مقداردهی اولیهٔ اختصاصی خود را دریافت می‌کند؛ بنابراین "a/foo" و "b/foo" نام‌های کدگذاری‌شدهٔ کاملاً متفاوتی برای "foo" خواهند داشت. این ویژگی تقریباً هیچ تأثیری بر کارایی ندارد (برای اغلب عملیات‌ها)، و به همین دلیل در همهٔ حالت‌ها به عنوان پیش‌فرض فعال است. .Sp \&\fBنکته:\fR یک استثنای چشمگیر در زمینهٔ کارایی، تغییر نام دایرکتوری‌ها است. از آن‌جا که بردار مقداردهی اولیه برای کدگذاری نام فایل به مسیر دایرکتوری وابسته است، هرگونه تغییر نام نیازمند کدگذاری مجدد تمام نام‌های فایل در درخت دایرکتوریِ در حال تغییر است. اگر هزاران فایل وجود داشته باشد، EncFS مجبور خواهد بود هزاران تغییر نام انجام دهد. همچنین ممکن است EncFS در حین عملیات تغییر نام با فایلی مواجه شود که قادر به رمزگشایی آن نیست یا اجازهٔ انتقال آن را ندارد؛ در این حالت تلاش خواهد کرد تمام تغییراتی را که تا آن لحظه انجام داده به حالت قبل بازگرداند و عملیات تغییر نام با شکست مواجه خواهد شد. .IP "\fIPer-File Initialization Vectors\fR" 4 .IX Item "Per-File Initialization Vectors" \&\fBجدید در 1.1\fR. در نگارش‌های پیشین \fBEncFS\fR، هر فایل به روشی یکسان کدگذاری می‌شد. هر بلوک در یک فایل همواره بردار مقداردهی اولیهٔ مختص به خود را داشت، اما به روشی معین و قطعی (deterministic)، به طوری که بلوک N در یک فایل درست مانند بلوک N در فایلی دیگر کدگذاری می‌شد. این امر باعث می‌شد کسی بتواند با مقایسهٔ داده‌های کدگذاری‌شده متوجه شود که آیا دو فایل یکسان هستند (یا بخش‌هایی از فایل یکسان است) یا خیر. .Sp با بردارهای مقداردهی اولیهٔ مجزا برای هر فایل، هر فایل بردار مقداردهی اولیهٔ تصادفی ۶۴ بیتی اختصاصی خود را دریافت می‌کند، به طوری که هر فایل به روشی متفاوت رمزگذاری می‌شود. .Sp این گزینه به صورت پیش‌فرض فعال است. .Sp حالت معکوس (Reverse mode) بردار IV را از شمارهٔ inode مشتق می‌کند؛ بنابراین ممکن است به عنوان مثال هنگام کپی شدن فایل‌های مبدأ از یک سیستم‌فایل به سیستم‌فایلی دیگر تغییر کند..IP "\fIExternal IV Chaining\fR" 4 .IX Item "External IV Chaining" \&\fBجدید در ۱.۱.۳\fR. این گزینه ارتباط نزدیکی با «بردارهای مقداردهی اولیه به ازای هر فایل» (Per-File Initialization Vectors) و «زنجیره‌سازی بردار مقداردهی اولیه نام فایل» (Filename Initialization Vector Chaining) دارد. اساساً این قابلیت، زنجیره‌سازی بردار مقداردهی اولیه را از نام‌های فایل به بردار مقداردهی اولیه به ازای هر فایل گسترش می‌دهد. .Sp هنگامی که این گزینه فعال باشد، بردار مقداردهی اولیه به ازای هر فایل با استفاده از بردار مقداردهی اولیه مشتق‌شده از کد زنجیره‌سازی بردار مقداردهی اولیه نام فایل کدگذاری می‌شود. این بدان معناست که داده‌های درون یک فایل به نام فایل گره می‌خورند. اگر یک فایل رمزگذاری‌شده در خارج از \fBencfs\fR تغییر نام یابد، دیگر درون \fBencfs\fR قابل رمزگشایی نخواهد بود. توجه داشته باشید که مگر در صورت فعال بودن سرایندهای Block MAC، خطای رمزگشایی شناسایی نخواهد شد و در نتیجه داده‌هایی خوانده می‌شوند که ظاهراً تصادفی به نظر می‌رسند. .Sp این امر هزینه‌هایی نیز به همراه دارد. هنگامی که External IV Chaining فعال باشد، پیوندهای سخت (hard links) در فایل‌سیستم مجاز نخواهند بود، زیرا راهی برای رمزگشایی صحیح دو نام فایل مختلف که به یک داده یکسان اشاره می‌کنند، وجود نخواهد داشت. .Sp همچنین، تغییر نام یک فایل مستلزم تغییر سرایند فایل است؛ بنابراین، تغییر نام تنها زمانی مجاز خواهد بود که کاربر دسترسی نوشتن به فایل را داشته باشد. .Sp به دلیل این محدودیت‌ها، این گزینه به طور پیش‌فرض برای حالت استاندارد غیرفعال است (و به طور پیش‌فرض برای حالت پارانویا فعال است). .Sp این گزینه ممکن است با برخی از ارائه‌دهندگان ابری ناسازگار باشد، زیرا در هنگام تغییر نام، محتوای فایل تغییر می‌کند، اما برچسب زمانی آن تغییری نمی‌کند. به همین دلیل، تغییرات فایل ممکن است توسط برنامه‌های همگام‌سازی ارائه‌دهندگان ابری به درستی دیده نشود. از این رو استفاده از آن برای فضاهای ابری توصیه نمی‌شود. .IP "\fIBlock MAC headers\fR" 4 .IX Item "Block MAC headers" \&\fBجدید در ۱.۱\fR. اگر این گزینه فعال باشد، هر بلوک در هر فایل همراه با یک چِک‌سام رمزنگاری (کد اصالت‌سنجی پیام یا Message Authentication Code) ذخیره می‌شود. این کار عملاً تغییر یک فایل بدون شناسایی شدن توسط \fBEncFS\fR را غیرممکن می‌سازد. \fBEncFS\fR از خواندن داده‌هایی که چِک‌سام را تأیید نکنند خودداری کرده، خطا را ثبت می‌کند و یک خطای I/O به برنامه برمی‌گرداند. .Sp این امر بار اضافی قابل توجهی ایجاد می‌کند (پیش‌فرض ۸ بایت در هر بلوک فایل‌سیستم است)، به علاوه بار محاسباتی، و به طور پیش‌فرض به جز در حالت پارانویا فعال نیست. .Sp هنگامی که این گزینه فعال نباشد، اگر از \fBEncFS\fR خواسته شود داده‌های تغییر یافته یا آسیب‌دیده را بخواند، هیچ راهی برای اعتبارسنجی اینکه آیا داده‌های رمزگشایی‌شده همان چیزی است که در ابتدا رمزگذاری شده بود نخواهد داشت. .IP "\fIFile-hole pass-through\fR" 4 .IX Item "File-hole pass-through" باعث می‌شود \fBencfs\fR در فایل‌ها حفره‌ها (holes) را باقی بگذارد. اگر یک بلوک کاملاً به صورت صفر خوانده شود، فرض می‌شود که یک حفره است و در هنگام خواندن به صورت صفر رها می‌شود (رمزگشایی نمی‌شود). در صورت دسترسی به \fBencfs\fR با استفاده از پروتکل SMB، این گزینه الزامی است. .Sp به طور پیش‌فرض فعال است. می‌تواند در حالت خبره (expert mode) غیرفعال شود. .SH "حملات (ATTACKS)" .IX Header "Attacks" هدف اصلی \fBEncFS\fR محافظت آفلاین از داده‌ها است. بدین معنا که روشی مناسب برای ذخیره فایل‌ها فراهم می‌کند تا در صورت به دست آمدن بعدی فایل‌ها، هر تلاشی برای خواندن آن‌ها خنثی شود. .PP برخی از الگوریتم‌ها در \fBEncFS\fR همچنین برای خنثی کردن حملات آنلاین طراحی شده‌اند؛ جایی که فرض می‌شود مهاجم توانایی دستکاری فایل‌ها را دارد. .PP در برابر نفوذی‌ترین حملات، که در آن‌ها مهاجم کنترل کاملی بر روی دستگاه کاربر دارد (و بنابراین می‌تواند خودِ \fBEncFS\fR، یا \fBFUSE\fR، یا خود هسته را تغییر دهد)، هیچ محافظتی صورت نمی‌گیرد. تصور نکنید که اگر رمز عبور خود را در یک رایانه به خطر افتاده وارد کنید، فایل‌های رمزگذاری‌شده از داده‌های حساس شما محافظت خواهند کرد. این که چگونه تشخیص دهید رایانه برای استفاده ایمن است، خارج از محدوده این مستندات است. .PP با این اوصاف، در اینجا نمونه‌هایی از حملات و تکنیک‌های جمع‌آوری داده از محتویات فایل‌سیستم به همراه الگوریتم‌هایی که \fBEncFS\fR برای دفع آن‌ها پشتیبانی می‌کند، آورده شده است: .IP "\fBحمله\fR: تغییر چند بایت از یک فایل رمزگذاری‌شده (بدون دانستن اینکه به چه چیزی رمزگشایی خواهند شد)." 4 .IX Item "Attack: modifying a few bytes of an encrypted file (without knowing what they will decode to)." \&\fBEncFS\fR از هیچ شکلی از رمزگذاری XOR که به بایت‌های منفرد اجازه دهد بدون تأثیر بر سایر بایت‌ها تغییر یابند، استفاده نمی‌کند. بیشتر تغییرات ده‌ها بایت یا بیشتر را تحت تأثیر قرار می‌دهند. علاوه بر این، می‌توان از سرایندهای Block MAC برای شناسایی هرگونه تغییر در فایل‌ها استفاده کرد. .IP "\fBحمله\fR: کپی کردن یک بلوک تصادفی از یک فایل به یک بلوک تصادفی از فایلی دیگر." 4 .IX Item "Attack: copying a random block of one file to a random block of another file." هر بلوک دارای بردار مقداردهی اولیه [قطعی] ویژه خود است. .IP "\fBحمله\fR: کپی کردن بلوک N به بلوک N از فایلی دیگر." 4 .IX Item "Attack: copying block N to block N of another file." هنگامی که پشتیبانی از Per-File Initialization Vector فعال باشد (پیش‌فرض در فایل‌سیستم‌های 1.1.x)، یک بلوک کپی‌شده هنگام انتقال به فایلی دیگر به درستی رمزگشایی نخواهد شد. .IP "\fBحمله\fR: کپی کردن یک فایل به صورت کامل به فایلی دیگر." 4 .IX Item "Attack: copying an entire file to another file." می‌توان با فعال کردن حالت External IV Chaining از این کار جلوگیری کرد. .IP "\fBحمله\fR: تشخیص یکسان بودن دو نام فایل با نگاه کردن به نام‌های رمزگذاری‌شده." 4 .IX Item "Attack: determine if two filenames are the same by looking at encrypted names." زنجیره‌سازی بردار مقداردهی اولیه نام فایل (Filename Initialization Vector chaining) با اختصاص دادن یک بردار مقداردهی اولیه ۶۴\-بیتی مشتق‌شده از نام مسیر کامل به هر فایل، از این امر جلوگیری می‌کند. .IP "\fBحمله\fR: مقایسه اینکه آیا دو فایل حاوی داده‌های یکسانی هستند یا خیر." 4 .IX Item "Attack: compare if two files contain the same data." پشتیبانی از Per-File Initialization Vector از این امر جلوگیری می‌کند. .SH "سلب مسئولیت (DISCLAIMER)" .IX Header "DISCLAIMER" این کتابخانه به این امید که مفید واقع شود توزیع شده است، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. لطفاً برای جزئیات کامل به فایل «COPYING» توزیع‌شده با \fBEncFS\fR مراجعه کنید. .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" \&\fBEncFS\fR توسط \fBValient Gough \fR نوشته شده است. .PP وبگاه: \fBhttps://vgough.github.io/encfs\fR. .PP پشتیبانی، گزارش‌های باگ...: \fBhttps://github.com/vgough/encfs\fR. .PP فهرست پستی: ندارد. .PP پورت‌های Cygwin و Windows: \fBhttps://github.com/vgough/encfs/wiki\fR. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBencfsctl\fR\|(1)