به مثال زیر توجه کنید :

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

همانطور که گفته شد اولین راهی که برای حفظ این فایل به نظر میرسد اینست که دسترسی کاربران دیگر روی این فایل برداشته شود و فقط شما اجازه دسترسی به آن را داشته باشید ( مجوزهای NTFS ) .  اما روش دیگری هم برای محافظت از این فایل وجود دارد که به مراتب مطمئن تر از روش قبلی است . در این درس به آموزش این روش که به نام رمز نگاری داده ها ( Encryption ) معروف است میپردازیم :

رمز نگاری روشی است که از قدیم برای ارسال اطلاعات متنی مهم و محرمانه از آن استفاده میشد . به این شکل که دو طرفی که نیاز به یک ارتباط امن از طریق ارسال نامه داشتند ،  به طور توافقی برای حروف و کلمات معنی دار که در متن نامه ها استفاده مشد ، معادلهای نامفهوم  تعیین میکردند ، مثلا به جای کلمه " سلام " کلمه نامفهوم   " ■ȸÜ║ߎ "  را معین میکردند .

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

سیستم عامل ویندوز هم از روشی تقریبا شبیه به این برای حفظ اطلاعات محرمانه یک کاربر استفاده میکند که به توضیح آن میپردازیم :

همانطور که میدانید هر کاراکتر یک کد بین 0 تا 255  دارد که به نام کد اسکی کاراکتر معروف است :

 کد اسکی چند کاراکترهای متنی :

 

کاراکترهای A…Z  :    از کد 65 تا 90

کاراکترهای  a…z  :    از کد 97 تا 122

 اعداد            9...0 :    از کد 48 تا 57

 

 یستم Encryption  یا رمزنگاری ویندوز از این کدها برای رمزنگاری اطلاعات استفاده میکند که با ذکر یک مثال ساده آن را توضیح میدهیم :

قبل از ادامه لازم به ذکر است که سیستم عامل ویندوز برای رمز نگاری اطلاعات از یک کلید ( Public Key ) استفاده میکند . این کلید برای هر User account   متفاوت است و در زمان ایجاد یک User account ، ساخته میشود و به آن اختصاص می یابد. کلید میتواند یک کاراکتر ، علامت ، عدد و یا مجموعه ای از آنها باشد . مفهوم کامل کلید در مثال زیر قابل درک است.

یک فایل متنی را در نظر بگیرید که قسمتی از متن آن ،  کلمه “ SALAM “ است . ما قصد داریم برای درک بهتر مطلب این قسمت از فایل را تقریبا به روشی که سیستم عامل ویندوز از آن استفاده میکند ، رمزنگاری کنیم :

سیستم عامل ویندوز ابتدا کد اسکی همه کاراکترهای داخل فایل را در نظر میگیرد :

 

کاراکتر

M

A

L

A

S

کد اسکی

77

65

76

65

83

سپس با استفاده از یک الگوریتم خاص یک عملیات ریاضی روی کلید و تک تک کاراکترها انجام میدهد .

در اینجا به منظور ساده تر شدن مثال ، این عملیات ریاضی را عملیات جمع ( + ) و کلید رمزنگاری را عدد 45 در نظر میگیریم.

 

کاراکتر اصلی

M

A

L

A

S

کد اسکی معادل

77

65

76

65

83

عملیات جمع با کلید  

45

45

45

45

45

حاصل عملیات

122

110

121

110

128

کاراکتر معادل عدد جدید

z

n

y

n

Ç

 

سپس ویندوز به جای تک تک کاراکترهای داخل فایل متنی ، معادل آنها را که در این عملیات بدست آمده را مینویسد:

 

به جای کلمه “ SALAM ” کلمه نامفهوم       “ Çnynz “

 در فایل متنی قرار میگیرد

 

 

در مثالی که ذکر شد ، یک عملیات رمزنگاری یا Encrypt ساده انجام شد و ویندوز با استفاده از Public key کاربر ، فایل را Encrypt کرد .

حال اگر همین کاربری که فایل را رمز نگاری کرده با استفاده از User account خودش به سیستم Logon کند و فایل را باز کند ، ویندوز اطلاعات داخل فایل را به صورت خودکار از حالت رمز نگاری شده ( Encrypt ) خارج میکند ( Decrypt میکند ) و کاربر را قادر میسازد تا اطلاعات داخل فایل را بخواند و از آنها استفاده کند.

 اگر کاربر دیگری این فایل را باز کند ، یک سری متن ناخوانا را مشاهده میکند ( یا با پیغام Access denied مواجه میشود و محتویات فایل را نمی بیند ) و قادر به استفاده از آنها نخواهد بود . چون همانطور که گفته شد ، هر کاربر یک Public key خاص دارد و زمانی که یک فایل با Public key یک کاربر Encrypt شود ، با همان Public key قابل Decrypt شدن است .

 توجه کنید که Decrypt به این معنی است که همین عملیاتی که روی تک تک کاراکتر ها انجام شد و کاراکتر جدیدی به وجود آمد ( Encrypt )، به صورت برعکس انجام شود یعنی :

 

کاراکتر Encrypt  شده 

z

n

y

n

Ç

کد اسکی معادل

122

110

121

110

128

عملیات برعکس که در اینجا تفریق ( - ) است

45

45

45

45

45

حاصل عملیات

77

65

76

65

83

کاراکتر معادل عدد جدید

M

A

L

A

S

 

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

سیستم Encryption  یا ( EFS encrypting file system) یکی از مزایای سیستم فایل NTFS است و این قابلیت را به ما میدهد تا بتوانیم یک فایل یا یک شاخه را Encrypt  کنیم . در صورتی که یک شاخه را Encrypt کنیم ، هر فایلی که داخل آن باشد و یا بعدا کپی شود ، به حالت Encrypt تبدیل میشود و در صورتی که فایلی را از داخل آن به محل دیگری کپی کنیم ، از حالت Encrypt خارج میشود و به حالت Decrypt  تبدیل میشود.

برای رمزنگاری یا Encrypt کردن یک فایل یا شاخه باید روی آن Properties بگیریم و وارد قسمت Advanced شویم :

 و در پنجره ای که باز میشود گزینه Encrypt contents to secure data را علامت بزنیم .

توجه داشته باشید در صورتی که قصد Encrypt کردن یک فایل دورن یک شاخه را داشته باشیم ، ویندوز با یک پیغام به شما پیشنهاد میکند که فایل و شاخه مادر را با هم Encrypt کنید ( Encrypt the file and the parent folder). که دراین صورت این فایل و هر فایل و زیر شاخه ای که پس از این ساخته شود ، Encrypt می شود و فایلهای موجود Encrypt  نخواهند شد. 

 و در صورتی که گزینه Encrypt the file only را انتخاب کنید ، فقط همین فایل Encrypt می شود .

 در صورتی که قصد Encrypt کردن یک شاخه را داشته باشید ، ویندوز پیغامی مبنی بر اینکه آیا عملیات Encryption فقط روی شاخه انجام شود (Apply changes to this folder only) به ما میدهد ، که در این صورت فقط فایلها و زیر شاخه هایی که از این پس در این شاخه ساخته شوند ، Encrypt خواهند شد و فایلها و زیر شاخه های موجود Encrypt نخواهند شد . 

 و در صورتی که گزینه Apply changes to this folder, subfolders and files  را انتخاب کنیم ، این شاخه و تمامی فایلها و زیرشاخه های موجود ، و فایلها و زیرشاخه هایی که از این پس ساخته شوند ، Encrypt میشوند .

 در انتها با زدن کلید Ok در این پنجره ، فایل یا شاخه مورد نظر به شکل خواسته شده Encrypt میشود و جهت شناسایی بهتر توسط کاربر ، نام فایل با رنگ سبز نوشته میشود .

 عملیات Encryption قابلیت اجرا از طریق خط فرمان با استفاده از فرمان Cipher را نیز دارد . این فرمان این قابلیت را به مدیر میدهد تا از طریق خط فرمان فایل یا شاخه ای را Encrypt کند . شکل کلی این فرمان به صورت زیر است :

cipher [/e | /d] [/s:folder_name] [/a] [file_name [...]]

 

/e

عملیات Encryption را روی فایل یا شاخه مورد نظر انجام میدهد.

/d

عملیات Decryption را روی فایل یا شاخه مورد نظر انجام میدهد.

/s

به وسیله این سوئیچ ، شاخه مورد نظر را برای عملیات Encryption یا Decryption را مشخص میکنیم . این سوئیچ فقط شاخه مورد نظر ، زیرشاخه های داخل آن و فایلها و زیر شاخه هایی که از این پس ساخته شوند را Encrypt میکند و روی فایلهای موجود هیچ عملیاتی انجام نمیدهد.

/a

تمامی فایلها و زیرشاخه های موجود داخل شاخه را Encrypt می کند .

File_name

به همراه سوئیچ /a ، می توانیم نام یک فایل را برای Encrypt شدن وارد کنیم .

 چند نکته در مورد عملیات رمزنگاری یا Encryption  :

ü      این عملیات فقط در درایوهایی با سیستم فایل NTFS قابل انجام است .

ü      عملیات Encryption و NTFS compression با هم روی یک فایل یا شاخه قابل پیاده سازی نیستند .

ü      فیلهایی که دارای خاصیت سیستمی ( System ) هستند ، و فایلهایی که درون شاخه Windows هستند را نمیتوان Encrypt کرد .

ü      در صورتی که فایل یا شاخه ای که Encrypt شده را به درایوی با سیستم فایل FAT منتقل یا کپی کنیم ، خاصیت Encrypt از بین میرود و فایل یا شاخه به حالت Decrypt تبدیل میشود .