محافظت از فایل ها با رمزنگاری در ویندوز

رمزنگاری یا Encryption به فرآیند غیرقابل مشاهده کردن فایل ها توسط افراد بدون مجوز گفته می شود. در رمزنگاری یک کلید برای رمزگشایی اطلاعات به کار می رود. افرادی که دارای این کلید باشند می توانند اطلاعات را مشاهده کنند. در پارتیشن و والیوم های با فایل سیستم NTFS علاوه بر NTFS Permission یک راه ایمن کردن اطلاعات EFS یا Encryption File System است. اگر کاربر فاقد کلید لازم برای باز کردن فایل باشد با پیغام Access Denied رو به رو خواهد شد. امنیتی که EFS برای ما ایجاد می کند بسیار امنیت محکم تری نسبت به NTFS Permission است اما این به معنی غیر قابل نفوذ بودن نیست. معمولا برای اطلاعات رده حساس به کار می رود و در اطلاعات رده حیاتی از روش های دیگر که الگوریتم های رمزنگاری پیچیده تری دارند استفاده می شود. همچنین برای اطلاعات رده مهم، که پایین ترین سطح اهمیت اطلاعات اند، از EFS استفاده نمی شود. در ویندوز ویستا روش رمزنگاری پیچیده تری با استفاده از چیپ های TPM و رابط bitlocker موجود است که در این خصوص در گذشته صحبت کرده ایم. اما همچنان بنا به دلایل بسیار و تفاوت عملکرد این دو سیستم EFS متداول است.

تذکر در خواندن این مقاله: تلاش شده مطالب این مقاله به ساده ترین نحو ممکن نگارش شود. مطالب با روندی آهسته تخصصی تر و پیچیده می شوند. اما مطالب ابتدایی عمومی به شمار می رود و برای همگان مفید است.

هر چند انجام رمزنگاری ظاهرا ساده و به دور از پیچیدگی است، اما به موارد بسیار زیادی باید توجه کرد. که در ادامه آن ها را بررسی می کنیم.برای رمزنگاری در خط فرمان از دستور Cipher استفاده می کنیم که قابلیت های بسیار بیشتر را نسبت به محیط گرافیکی به صورت متمرکز در اختیار ما قرار می دهد. با این وجود بررسی در محیط گرافیکی می کنیم و سپس سری به خط فرمان می زنیم.

روی فایلی یا فلدری که می خواهید رمزنگاری شود کلیک راست کنید و سپس Properties را بزنید. در زبانه general گزینه Advanced را بزنید. و چک باکس Encrypt Contents to Secure Data را بزنید. توجه کنید که نمی توانید Compression و Encryption را همزمان داشته باشید. اگر بخواهم دلیل این مسئله را خیلی عامیانه و فقط برای درک مسئله بیان کنم چنین است: در Compression از عبارت های مشابه فاکتور گرفته می شود تا حجم فایل کاهش یابد اما در Encryption عبارتی به فایل ضرب می شود تا فایل بدون کلید غیر قابل تشخیص باشد. بنابراین این دو در خلاف یکدیگرند. سپس OK بزنید و Apply کنید. این فایل در حال حاضر رمزنگاری شده و احتمالا فقط خودتان قادر مشاهده آن هستید. به صروت پیش فرض فایل های رمزنگاری شده با رنگ سبز در Windows Explorer نمایش داده می شوند البته این رنگ قابل تغییر است.

برای آنکه بتوانید به فرد دیگری مجوز مشاهده فایل را بدهید دوباره Advanced را بزنید و سپس Details را بزنید. در پنجره user access to file دو قمست وجود دارد:
۱) Users who can access this file لیستی از کاربرانی است که می توانند به این فایل دسترسی داشته باشند. می توانید به راحتی افرادی را اضافه و یا حذف کنید.
۲) Recovery Certificates for this file as defined by Recovery Policy : افرادی هستند که به منظور بازیابی این فایل همواره مجوز دسترسی به این فایل ها را دارند. در اینجا قادر به تغییر این افراد نیستید.

 از دست رفتن کلید ها و تهیه نسخه پشتیبان :

 همانطور که گفته شد برای دسترسی به یک فایل رمزنگاری شده باید یک کلید در اختیار داشت. این کلید بر اساس کلمه عبور و SID ساخته می شود. در سناریو های بسیاری احتمال از دست رفتن این کلید است. مثلا عوض کردن ویندوز در کامپیوتر و یا Set Password کردن. توجه کنید که در Change Password مشکلی وجود ندارد. Change Password به زمانی گفته می شود که با وارد کردن password فعلی، کلمه عبور جدیدی برای خود انتخاب می کنید و Set Password به زمانی گفته می شود که بدون وارد کردن کلمه عبور فعلی یک کلمه عبور جدید را اجبارا اعمال می کنید. در recover password که در خصوص password های فراموش شده استفاده می شود، نیز همانند Change Passwordکلید از دست نمی رود. بنابراین همیشه به کاربران توصیه می شود تا password reset disk بسازند و آن را در محلی امن نگه داری کنند. هر چند خود این مسئله قدری خطرناک است اما راه حلی مناسب است.

یک راه حل مناسب برای از دست ندادن کلید ها تهیه نسخه پشتیبان از آن ها است. با زدن دکمه Backup Keys می توانید از کلید های خودتان نسخه پشتیبان تهیه کنید. با زدن این دکمه ویزاردی به نمایش در می آید:

 گرفتن نسخه پشتیبان :
۱) در صفحه خوش آمدگویی ویزارد به شما توضیح داده می شود که شما با استفاده از این ویزارد می توانید از مجوز( Certification ) های خودتان یک کپی تهیه کنید. مجوزها که توسط Certification Authority صادر می شوند، شامل تصدیق هویت شما و اطلاعاتی که می تواند موجب ایمن سازی یک ارتباط شبکه و یا محافظت از یک فایل است می باشند. با زدن next به مرحله بعدی می رویم.

۲) در مرحله بعدی باید نوع فایل خروجی را انتخاب کنیم. هر کدام از این فایل ها شرایط و قابلیت های خاص خود را دارند که در اینجا قصد نداریم همه را بررسی کنیم. در اینجا Personal Information Exchange را انتخاب می کنیم. PFX فایلی است که برای انتقال مجوز ها به یک کامپیوتر دیگر و یا یک removable storage به کار می رود. در ورژن های مختلف ویندوز نوع فایل های خروجی متفاوتی پشتیبانی می شود. برای اطلاعات بیشتر روی لینک موجود در ویزارد کلیک کنید.

۳) با زدن Next به مرحله بعدی می رویم و در آنجا باید با وارد کردن یک Password از فایل خروجی محافظت کنیم. توجه کنید که اسم رمزی انتخاب کنید که با روش های Social Engineering قابل کشف نباشد. تاکید می کنم با کلمه عبور ایمیل و… خودتان یکی نباشد و آن را روی کاغذ و یا در یک فایل یادداشت نکنید. با زدن Next به مرحله بعدی بروید.

۴) در این مرحله باید نام و محل قرار گیری فایل خروجی را معین کنید. با زدن next به مرحله بعدی می روید و با زدن finish نسخه پشتیبان ساخته می شود.

 باز کردن نسخه پشتیبان :
۱) پس از انتقال فایل به کامپیوتر جدید، و یا به user profile که کلمه عبور آن user به صورت set password عوض شده است. فایل را باز می کنیم. با باز کردن فایل ویزارد Certificate Import نمایش داده می شود. با زدن next به مرحله بعدی می رویم.

۲) اکنون باید فایل نسخه پشتیبان را انتخاب کنیم. چون ما در اینجا خود فایل را باز کردیم، آدرس فایل درج شده و با زدن next به مرحله بعدی می رویم.

۳) حال باید رمز عبور که در زمان تهیه نسخه پشتیبان انتخاب کرده بودیم را وارد کنیم.

۴) در مرحله بعد باید محل جاگذاری مجوز ها را انتخاب کنیم. در اینجا Automatically را انتخاب می کنیم. اما در صورت لزوم می توان در محل ذخیره سازی ای خاص مجوز ها را جایگذاری کرد.

۵) با زدن finish، کلید ها بر می گردند.

بازیابی ( recover ) کردن فایل رمزنگاری شده بدون در اختیار داشتن مجوز:
رمزگشایی ( Decrypt ) کردن فایل رمزنگاری شده ( Encrypted ) :

بارها و بارها دیده ام که افراد اطلاعات خودشان را به علت عدم توجه به شرایط نگه داری فایل های رمزنگاری شده و یا عدم دانش کافی در شرایط خاص از دست داده اند. با داشتن یک recovery agent می توان بسیاری از مشکلات را حل کرد. در محیط اکتیودایرکتوری دامین به صورت پیش فرض فردی که اولین دامین کنترلر را ایجاد می کند، Recovery agent است. اما به صورت پیش فرض در کامپیوتر های عضو شبکه workgroup ، هیچ recovery agent وجود ندارد. در صورت وجود یک Recovery Agent به صورت زیر می توان عمل کرد:

۱) با استفاده از NTBACKUP یا یک نرم افزار Backup دیگر، و یا راه ها و روش هایی که انتقال یک فایل رمزنگاری شده در آن ممکن است، فایل را برای recovery agent ارسال می کنیم. توجه کنید که recovery agent نمی تواند فایل را روی هر کامپیوتری recover کند. فراموش نکنید که با استفاده از بستری ایمن اطلاعات را منتقل کنید.

۲) حال recovery agent با استفاده از مجوز ریکاوری خود و private key که دارد می تواند به راحتی با برداشتن چک باکس Encrypt Contents to Secure Data فایل ها را decrypt کند و با هر متد فایل ترانسفوری اطلاعات را به شما بازگرداند.

* با استفاده از backup اگر از یک فایل encrypt شده ، backup بگیرید همچنان encrypted باقی می ماند.
* در ویندوز ۲۰۰۰ کاربر administrator به صورت پیش فرض بازیاب اطلاعات است.

مجوز ها و رمزنگاری :
دو گروه مجوز ( Certificate ) در EFS نقش دارند که عبارت اند از:

Encrypting File System Certificates : این گونه از مجوز ها به دارندگانشان اجاز می دهند تا از EFS برای رمزنگاری و رمزگشایی اطلاعات استفاده کنند. این مجوز اغلب به صورت خلاصه EFS Cerf گفته می شود. فیلد Enhanced key Usage برای این دسته از مجوز ها مقدار ۱٫۳٫۶٫۱٫۴٫۱٫۳۱۱٫۱۰٫۳٫۴ را دارد.

File Recovery Certificates : این گروه از مجوز ها به دارندگانش اجازه می دهند تا فایل ها و فلدر های رمزنگاری شده را در حوزه یک دامین، سایت و… ریکاور کنند. بدون توجه به آنکه چه کسی این فایل را رمزنگاری کرده. فیلد Enhanced key Usage برای این دسته از مجوز ها مقدار ۱٫۳٫۶٫۱٫۴٫۱٫۳۱۱٫۱۰٫۳٫۴٫۱ را دارد.

افزودن یک Recovery Agent :
افزودن یک Data Recover Agent دو مرحله انجام می گیرد.

۱)تولید مجوز و کلید
۲)افزودن

۱) تولید مجوز و کلید:

۱) به خط فرمان بروید مثلا در  RUN وارد کنید CMD .
۲) اکنون دستور مقابل را در خط فرمان وارد کنید :cipher /r:filename
۳) حال یک کلمه عبور برای محافظت از کلید ها و مجوز ها وارد کنید.
۴)  کلمه عبور را مجددا وارد کنید.
۵) دو فایل با پسوند های PFX و CER برای شما ساخته می شود و پیغامی جهت اطلاعات از این امر در خط فرمان به شما داده می شود.

* بهتر از پیش از مرحله ۲ مجوز خود را نصب کنید.
* این دستور “سایفر” خوانده می شود. نمی دانم چرا برخی اشتباه تلفظ می کنند.
* سوییچ
SmartCard برای ذخیره سازی مجوز در کارت هوشمند به کار می رود. همچنین در استفاده از این سوییچ فایل PFX ساخته نمی شود.
* به جای
FileName نام دو فایل  PFX و CED را به دلخواه وارد کنید.
*  فایل در جایی ساخته می شود که CMD به آن اشاره می کند. مثلا می توانید برای راحتی محل اشاره را به پارتیشن C تغییر دهید اما توصیه می شود محل اشاره User Profile خودتان باشد.

۲) افزودن یک Recovery Agent در دامین :

۱) وارد کنسول Active Directory Users and Computers شوید.
۲) روی دامینی که می خواهید Recovery Policy آن را تغییر دهید بروید و right-click کنید و properties را بزنید.
۳) سیاستی را که می خواهید تغییر دهید انتخاب کنید و یا یک سیاست جدید اضافه کنید.
۴) به مسیر زیر بروید:

Computer Configuration/Windows Settings/Security Settings/Public Key Policies/Encrypting File System

۵)روی Encrypting file System رایت کلیک کنید و Add Data Recovery Agent را بزنید. و در ویزارد به نکات زیر توجه کنید:

– برای این کار باید عضو گروه Domain Admins و یا Enterprise admin باشید و یا با استفاده از delegation حق این کار را داشته باشید.
– پیش از اضافه کردن یک Recovery Agent باید انتشار مجوز های در اکتیودایرکتوی تنظیم شده باشد. که به صورت پیش فرض چنین نیست.

– زمانی که از طریق یک فایل، Recovery Agent اضافه می کنید. user به صورت USER_UNKNOWN نوشته می شود زیرا نام کاربر در فایل ذخیره نمی شود.

۲) افزودن یک Recovery Agent به صورت local :
مشابه مراحل افزودن در دامین است با این تفاوت که به کنسول Group Policy Object Editor باید بروید. یعنی در مرحله اول به MMC رفته و Add/remove snap-in را بزنید. سپس Group Policy Object را انتخاب کنید و ادامه مراحل را طی کنید. می توانید به راحتی در run وارد کنید gpedit.msc و مراحل ۲ تا ۵ را انجام دهید.

* دقت کنید در اینجا حتما باید از طریق یک فایل و همان فایل با پسوند CER یک بازیاب اطلاعات اضافه کنید.

-باید عضو گروه Administrators در Local Users باشید.

EFS چگونه کار می کند؟

۱) EFS از یک زوج کلید عمومی و اختصاصی ( Public – Private key ) استفاده می کند.  همچنین کلید هر فایل متفاوت است. زمانی که کاربر یک فایل را رمزنگاری می کند، EFS یک File Encryption Key یا به اختصار FEK تولید می کند. FEK با کلید عمومی آن کاربر رمزنگاری می شود و با فایل ذخیره می شود.

۲) زمانی که Recovery Agent وجود داشته باشد، کلید رمز نگاری شده با Public Key هر Recovery Agent نیز با فایل ذخیره می شود.

غیر فعال کردن EFS روی یک کامپیوتر :

با استفاده از registry می توان امکان EFS را غیرفعال کرد.

تذکر: ویراشی Registry نیاز به اطلاعات کافی دارد. چنانچه قصد دارید Registry را ویرایش کنید حتما ابتدا یک نسخه پشتیبان از آن تهیه کنید. همچنین ممکن است اگر مشکی بروز کند با استفاده از Last know Good Configuration مشکل را بر طرف کنید. ویرایش رجیستری توسط کاربران مبتدی توصیه نمی شود.

در Registry Editor به شاخه زیر بروید.

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionEFS

یک متغیر جدید از نوع DWORD با نام EfsConfigurationایجاد کنید و مقدار آن را ۱ بگذارید. کامپیوتر را ریستارت کنید.

دسترسی سریع تر به Encrypt :

می توان با استفاده از ویرایش Registry، برای رمزنگاری کردن سریع تر گزینه ای را در منو right click اضافه کرد. به مسیر زیر بروید:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvanced

و یک متغیر از نوع DWORD به نام EncryptionContextMenu  و با مقدار ۱ بسازید. کامپیوتر را ریستار کنید.

ذخیره نسخه پشتیبان کلید EFS در وب سایت مایکروسافت:

در ویندوز ویستا و سرور ۲۰۰۸ می توانید File Recovery Certificate خود را در وب سایت مایکروسافت به نام Digital Locker ذخیره کنید. چرا که ممکن است خود مجوز Recovery Agent از دست برود. در اغلب شرکت ها فقط یک Recovery Agent در نظر گرفته می شود که این مسئله ریسک از دست رفتن اطلاعات را افزایش می دهد. برای جلوگیری از این مشکل، Recovery Agent می تواند با استفاده از Secure Online Key Backup قابل دسترسی از طریق کنترل پنل، مجوز خود را آنلاین ذخیره و بعدا به آن دسترسی پیدا کند. برای این کار به یک Windows Live ID نیز احتیاج است.

بررسی تکنولوژیک EFS :
EFS از یک متد تقریبا پیچیده و متاسب رمزنگاری استفاده می کند که در اکثر حملات محافظت مناسبی در خصوص فایل ها حساس ایجاد می کند. در اینجا بررسی کوتاهی از تکنولوژی EFS به عمل می آورم و از بسیاری از اجزا ی این تکنولوژی صرف نظر می کنم. همچنین از بررسی آنکه هر کدام از این مراحل در Kernel Mode اتفاق می افتد و یا در User Mode که از لحاظ امنیتی بسیار مسئله مهمی است نیز به علت تسهیل مسئله موقتا چشم پوشی می کنم.

EFS از یک کلید عمومی با ترکیب عطفی یک کلید متقارن ( symmetric key ) استفاده می کند. FEK تنها یک قسمت از کلید است. FEK ابتدا فایل را رمزنگاری می کند و سپس خودش به صورت رمزنگاری شده توسط public key که از EFS Certificate اتخاذ شده، با فایل ذخیره می شود. برای رمزگشایی FEK سیستم  EFS از کلید شخصی ( private key ) که تنها Encrypt کننده فایل دارد استفاده می کند.

الگوریتم های رمزنگاری کلید عمومی از یک کلید نامنتقارن ( asymmetric Key ) استفاده می کنند. نا متقارن به این معنی است که کلید های متفاوتی برای رمزنگاری و رمزگشایی فایل استفاده می شود. یک کلید عمومی در دسترس همگان در یک شبکه است. به عنوان مثال یک کلید می تواند در سراسر دامین منتشر شود که این باعث می شود کلید برای همه در دسترس باشد.

دو کلید عمومی و شخصی از یکدیگر کاملا جدا هستند اما در عمل مکمل یکدیگر اند. اطلاعاتی که توسط یک Public Key رمزنگاری شده باشد فقط با Private Key خود می توانند باز شوند. این دو کلید در کنار هم را یک جفت کلید ( Key Pair ) یا Key Set می گوییم.

یکی از موانع رمزنگاری با کلید عمومی مقدار زمان پردازشی است که صرف عملیات ریاضی مربوطه می شود. استفاده از کلید متقارن که به تنهایی برای رمزنگاری و رمزگشایی استفاده شود چیزی بین ۱۰۰ تا ۱۰۰۰ مرتبه الگوریتم سریع تری دارد. بنابراین EFS با استفاده از FEK ابتدا اطلاعات را رمزنگاری و رمزگشایی می کند و با استفاده از یک Public Key و یک Private Key سپس FEK را رمز نگاری می کند و با فایل ذخیره می کند.

زمانی که یک فایل رمزنگاری می شود، رمزنگارنده به صورت اتفاقی یک FEK یکتا تولید می کند. که این یک روش سریع با کلید متقارن است. اما این هنوز قسمتی از کار است. FEK اطلاعات را در بلوک های جدا و سپس رمز می کند. EFS به فایل یک Header (سرفصل)  اضافه می کند که حداقل شامل دوبخش است:

۱) DDF که کوتاه شده Data Decryption Field است و شامل FEK می شود که با Public Key کاربر به رمز درآورده شده ذخیره می شود.
۲) DRF که کوتاه شده Data Recovery Field است و شامل FEK می شود که با Public Key مخصوص Recover Agent ذخیره می شود.

همانطور که Public Key کاربر از EFS Certificate اخذ شده، Public Key مربوط به Recovery Agent از File Recovery Certificate اخذ می شود.

برای مشاهده و یا ویرایش فایل نیازی به رمزگشایی کردن فایل وجود ندارد. هرچند در واقع تمامی این عملیات در پشت پرده رخ می دهند. کلید شخصی شما که در User Profile شما به صورت ایمن نگه داری می شود، وارد DDF می شود تا نسخه رمزنگاری شده FEK باز شود. سپس EFS با استفاده از نسخه رمزباز شده FEK اطلاعات رمزنگاری شده را باز می کند. مسئله Recover کردن اطلاعات هم بسیار شبیه به همین مرحله است. در واقع کلید عمومی Recovery Agent برای رمزگشایی DRF به کار می رود. چناچه چند Recovery Agent نیز موجود باشد، هر Recovery Agent فقط می تواند DRF مخصوص خود را باز کند. پس خطر آنکه یک Recovery Agent بتواند هر فایلی را باز کند وجود ندارد.

به یاد داشته باشید که در ویندوز ۲۰۰۰ به صورت پیش فرض Administrator به صورت Local یک Data Recovery Agent است، اما در نسخ بعدی به صورت پیش فرض هیچ Recovery Agent وجود ندارد و باید یک Recovery Agent اضافه کنید. در محیط اکتیودایرکتوری کاربر Administrator که اولین دامین را ایجاد می کند، به صورت پیش فرض Data Recovery Agent است.

در پایان:
* راهکارهایی که برای بازیابی اطلاعات در این مقاله ارائه شده تمام سناریو ها را پوشش نمی دهد و در آینده تکمیل خواهد شد.
* هرچند که
EFS امنیتی مناسب را ایجاد می کند اما برای اطلاعات بالاتر از رده حساس از روش هایی با الگوریتم های پیچیده تر که کمتر قابل نفوذ هستند استفاده می شود. اما به یاد داشته باشید در روش های دیگر امکان بازیابی اطلاعات در دسترس نیست.
* از مجوز
Data Recovery Agent خودتان حتما نسخه پشتیبان تهیه کنید، هر چند در این مقاله چندان مجال این مبحث نبود اما در آینده این نکته را پوشش می دهم.

6 دیدگاه در محافظت از فایل ها با رمزنگاری در ویندوز

  1. سلام ؛

    راه حل مایکروسافتی وجود نداره اما نرم افزاری به نام EFS Key شنیدم که می تواند این کار را انجام دهد، هرچند من تا کنون این کار رو نکردم… شرکت های Data recovery احتمالا راه حل های مناسبی سراغ دارند.

  2. سلام ..من به یک مشکل برخوردم و او این است زمانی که من یک فایل را دانلود میکنم خوده کامپیوتر به صورت اتوماتیک پسوند فایل را عوض میکند ..فرضا من یک فایل به پسوند mp4 دانلود میکنم و بعد از دانلود که کامپیوتر خودمو ریستارت میکنم پسوند این فایل به .vvv تعقیر میکند…و نوشته شده است که فایل شما توسط RSA 2048 حفاظت شده است ..چی قسم این مشکل را رفع کنم تا فایل هایم درست شود

  3. برای اولین بار که انکریپت رو زدم اومد گفت میخوای از سرتیفیکیت پشتیبانی بگیری من نگرفتم الان از کدوم قسمت میتونم کلید رو بردارم؟اگه ممکنه به ایمیلم بزنید ممنون

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *