بخشی از مقاله
چکیده –
در این مقاله یک نرم افزار رمزکننده پوشه با استفاده از الگوریتم های رمزنگاری پیشنهاد شده است. نرم افزار پیشنهاد شده قابلیت رمزکردن فایل های درون یک پوشه را دارد. هم چنین نرم افزار قادر است در صورت تغییر و دستکاری فایل های رمز شده بصورت عمدی یا غیرعمد، به کاربر هشدار لازم را اعلام نماید. نرم افزار می تواند در صورت درخواست کاربر، خروجی تابع درهم ساز را به ایمیل کاربر ارسال کند تا در مراجعه بعدی از هرگونه تغییر آگاه شود.
-1 مقدمه
رشد سریع دنیای دیجیتال، باعث افزایش بی حد اطلاعات و داده شده است. این اطلاعات می توانند از جنبه های مختلف دارای حریم های شخصی، حقیقی یا حقوقی باشند. هم چنین بستر ارتباطی بین دستگاه ها و افراد و شبکه های تبادل داده نیز باید محفوظ و به دور از تعرض باشد. لذا امروزه مبحث امنیت و حفاظت از اطلاعات بیش از هر زمان دیگری اهمیت پیدا کرده است و پیش بینی می شود با پیشرفت تکنولوژی بر اهمیت آن همواره افزوده شود. اهمیت این مبحث با بررسی اجمالی سرمایه گذاری افراد و شرکت ها در زمینه ارتقا امنیت داده های خویش و تلاش بی وقفه و صرف هزینه های گزاف برای شکستن سدهای امنیتی به منظور دستیابی به اطلاعات سایرین کاملا مشخص و آشکار می شود.
امنیت و اصول و روش های ایجاد آن به خصوص برای داده های دنیای دیجیتال، هم اکنون تبدیل به مبحثی کاربردی و بطور کامل علمی شده است که حضور در این بخش هم برای محافظان و هم برای مهاجمان بدون داشتن دانش و آگاهی لازم از مباحث آن امکان پذیر نیست.
یک طراح فضای امنیتی و سیستم رمزگذاری باید موارد مهمی را در ابتدای فعالیت خود در نظر بگیرد. یک طراح سیستم رمزگذاری باید قبل از شروع طراحی خود نیاز های خود از نظر اطلاعاتی، میزان حساسیت داده ای که قرار است رمز شود و طرح دقیق و جامع خود را در نظر گرفته باشد. نکته مهمی که باید در نظر داشته باشد این است که رمزگذاری محصول نیست، بلکه یک فرآیند است. هم چنین سیستم باید بر مبنای توانائی های سخت افزاری و شرایط محیطی طراحی شود. بطور کلی می توانگفت، یک سیستم رمزگذاری باید قبل از نهائی شدن و عرضه، قادر باشد به تمامی سوالات مربوط به حوزه امنیت و رمز پاسخ محکم، منطقی و قابل دفاع ارائه کند.
در این مقاله ساختار نرم افزار رمزکننده پوشه پیشنهادی یا - PFES - Porposed Folder Encryption Software پیشنهاد شده است که بر مبنای الگوریتم های شناخته شده رمزنگاری است. در فصل بعد، الگوریتم ها و ساختارهایی که در نرم افزار پیشنهادی استفاده شده بطور مختصر توضیح داده شده است. در فصل سوم ساختار کلی نرم افزار پیشنهادی بیان شده است. در نهایت این مقاله با نتیجه گیری به پایان می رسد.
-2 الگوریتم های استفاده شده در PFES
نرم افزار پیشنهادی بر اساس الگوریتم ها و استانداردهای رمز نگاری است. از ویژگی های نرم افزار مطلوب، سریع بودن، توانائی پردازش real time و کم بودن عملیات محاسباتی است. بنابراین تلاش شده است تعادل مناسبی بین امنیت و سادگی و سرعت پردازش برقرار شود. در PFES از الگوریتم های زیر استفاده شده است.
-1-2 ساختار CBC
ساختار انتخاب شده برای رمزنگاری در PFES، Cipher Block Chain یا CBC در نظر گرفته شده است. در این ساختار، از خروجی بلوک متن اصلی رمز شده ی قبلی به عنوان کلید بلوک بعدی استفاده می شود. بنابراین فقط یک مقدار Intialization Vector یا IV به عنوان کلید بلوک اول نیاز داریم. رمزگذاری و رمزگشائی بلوک ها زنجیروار به هم وابسته است و در صورت بروز خطا در یکی از بلوک ها، اعتبار عبارت رمزگشائی شده در تمامی بلوک های بعدی مخدوش می شود. هم چنین این ساختار به ترتیب رمزگذاری و رمزگشائی نیز حساس است.
دلیل انتخاب CBC، ساختار رمز امن تر، خواص آماری مناسب، سرعت مناسب، قابلیت تشخیص تغییر در بلوک ها و ... نسبت به سایر ساختارها است. هم چنین در این ساختار فایل های مشابه به متن رمز شده متفاوتی ایجاد می شود. در شکل 1 رمزگذاری مبتنی براین ساختار نشان داده شده است.
شکل:1 رمزگذاری براساس ساختار CBC
-2-2 الگوریتم رمزنگاری AES-128
الگوریتم رمزنگاری AES که مخفف Advanced Encryption Standard است، امروزه بیشترین استفاده را در بین الگوریتم های رمزنگاری متقارن دارد. این الگوریتم در بسیاری از مراکز و سازمان ها به عنوان الگوریتم رمزنگاری استاندارد معرفی شده است. ویژگی های اصلی این الگوریتم عبارتند از : طول بلوک های متن اصلی 128 بیت است. طول کلید می تواند یکی از مقادیر 128، 192 و 256 بیت باشد. امنیت بالا نسبت به سایر الگوریتم های ارائه شده و عملکرد بهینه سخت افزاری و نرم افزاری آن. به دلیل اینکه AES در یک مرحله تمام 128 بیت را رمز می کند، تعداد مرحله کمتری نسبت به DES دارد. در AES سه نوع مختلف لایه وجود دارد که در هر مرحله هر سه لایه قرار دارند: لایه های Key addition، S-Box و .[1]Diffusion Layer
الگوریتم AES برای کلیدهایی با طول 128، 192 و 256 به ترتیب 10، 12 و 14 دور خواهد داشت. در هر دور به ترتیب مراحل Substitute bytes، Shift rows، Mix columns و Add round key بر روی بیت ها انجام می شود. ساختار الگوریتم AES-128 که شامل 10 دور است، در شکل 2 نشان داده شده است. فلوچارت الگوریتم AES نیز در شکل 3نشان داده شده است. در این شکل کلیه عملیاتی که در یک دور روی داده ها انجام می شود، مشاهده می شود.
شکل:2 ساختار الگوریتم AES
شکل:3 فلوچارت الگوریتم AES
-3-2 تابع درهم ساز SHA-256
دلیل استفاده تابع درهم در PFES، تشخیص دستکاری یا تغییر عمدی یا غیرعمدی فایلها است. تابع درهم یا Hash Function تابع یک طرفه ای است که خلاصه کوتاهی از ورودی را در خروجی خود قرار می دهد و به ازای ورودی های مختلف با طول های متفاوت خروجی ها مختلفی با طول ثابت ایجاد می کند.
تابع درهم ساز پیشنهادی در این نرم افزار SHA-256 است. این تابع فاقد کلید دارای ویژگی های ذیل است: به ازای هر مقدار ورودی، دارای خروجی با 256 بیت است. در این نرم افزار اگر طول خروجی تابع Hash کوتاهتر باشد مناسب تر است ولی با توجه به اینکه SHA-1 در سال 2017 به عنوان یک تابع Hash ناامن معرفی شد[3]، از آن در نرم افزار استفاده نمی شود. هم چنین الگوریتم MD5 با اینکه تعداد 128 بیت خروجی دارد و محاسبات کمتری دارد و در نتیجه سریع تر است، ولی امنیت آن همواره در خطر بوده است. الگوریتم SHA-256 در یک دور در شکل 4 نشان داده شده است.
شکل:4 الگوریتم SHA-256 در یک دور
-3 ساختار نرم افزار PFES
در این بخش، ساختار پیشنهادی نرم افزار رمزگذار پوشه، PFES، توضیح داده می شود. مراحل انجام کار نرم افزار از بعد از نصب آن و شروع به کار آن می باشد. نرم افزار می تواند با آغاز بکار سیستم عامل یا به درخواست کاربر و فراخوانی آن از روی آیکون نرم افزار فعال شود. پس از فعال شدن نرم افزار و باز شدن صفحه اصلی آن که شامل منوها و نوارهای هدر است، مراحل انجام کار برای رمز کردن یک پوشه بدین صورت است:
-1-3 رمزنگاری پوشه
· از طریق منوهای هدر، انتخاب پوشه یا فایل مورد نظر از درایو یا محل قرارگیری پوشه
· با انتخاب پوشه، پنجره ای باز می شود که دارای گزینه های نام و نام و نام خانوادگی، Name، شماره کاربر، ID، تاریخ، Date و توضیحات دلخواه، Comment است و تا هنگامی که در هر جای خالی حداقل دو کاراکتر نوشته نشود، به مرحله بعد نمی رود. با تکمیل این فرم مشخصات، اطلاعات ورودی کاربر را کد می کند و به عنوان سری بیتی metadata ذخیره می کند.
· نرم افزار در این مرحله اندازه فایل های درون پوشه را محاسبه می کند و به کاربر نشان می دهد. در صورت تائید کاربر اطلاعات اندازه فایل ها نیز به metadata افزوده می شود.
· سپس نرم افزار در پنجره ای جدید درخواست تخصیص یک رمز با حداقل 8 و حداکثر 16کاراکتر می کند. در این پنجره، کاربر باید دو بار رمز را بنویسد تا در صورت ایجاد خطا در هنگام نوشتن مشخص شود. در صورتی این مرحله به پایان می رسد که هر دو رمز ورودی یکسان باشد. نرم افزار کاراکترهای رمز ورودی را تبدیل به کد اسکی می کند. بنابراین یک سری بیتی به طول حداقل 64 بیت و حداکثر 128 بیت رمز ورودی کاربر خواهد بود. این بیت ها را به عنوان password ذخیره می کند.
· نرم افزار اطلاعات لازم را از کاربر گرفته و اخذ کامل این
اطلاعات که در هر پنجره همراه کلید OK برای تائید و Cancel برای لغو است، نشان دهنده تائید کاربر برای رمزنگاری پوشه انتخاب شده است.
· نرم افزار پوشه انتخابی را توسط نرم افزار فشرده سازی Winrar به یک فایل با پسوند rar تبدیل می کند. این کار برای ایجاد یک فایل واحد از پوشه ای که شامل چندین فایل است انجام می شود. به همین دلیل در هنگام نصب نرم افزار PFES، باید قسمت Registery سیستم عامل را سرچ کند که در صورت عدم وجود نرم افزار Winrar آن را نصب کند. البته فشرده سازی بدون پسورد انجام می شود. نرم افزار Winrar برای فشرده سازی و رمزکردن، در ورژن 4 از AES-256 و در ورژن 5 از SHA-256 استفاده می کند.