توضیحات کامل از طرح امنیت داده
چکیده
پردازش ابری یک فناوری جدید است که بهتازگی از طرف شرکتهاي مختلف از جمله مايکروسافت، گوگل، آمازون و آيبيام عرضه شده است که شامل مجموعهای از منابع مجازی و مقیاسپذیر است که قابلیت ارائه خدمات مورد نیاز کاربران براساس میزان استفاده آنها ازسرویسهای ارائه شده را دارا میباشد. درحقیقت مجموعهای از خدمات شبکه است که میتواند از طریق راههای ساده و فراگیر در دسترس کاربران قرار گیرد. در پردازش ابری سعی میشود اطلاعات در سمت سرور نیز ذخیره شود که لازمه ذخیره اطلاعات در سمت سرور حفظ امنیت دادهها و استفاده از مکانیزمهای رمزنگاری میباشد. روشهای رمزنگاری متفاوتی ارائه شده است که مشکل برخی از آنها تصادم و برخی زمان مصرفی زیاد میباشد. ما در این پایان نامه برای کاهش زمان مصرفی از الگوریتمهای رمزنگاری قبلی استفاده کرده و روش جدیدی برای رمزنگاری دادهها ارائه داده و آنرا با روش مشابه قبلی مقایسه کرده و زمان مصرفی آنها را مورد مقایسه قرار دادهایم. تهدیدهای امنیتی موجود در روش پیشنهادی مورد بررسی قرار گرفته و نتایج شبیه سازی نشان میدهد که روش ارائه شده نسبت به روشهای مشابه از کارایی بهتری بر خوردار است و ضمن حفظ امنیت کافی دادهها، زمان مصرفی برای رمزگذاری و رمزگشایی را بسیار کم میکند. بدیهی است که از محیط ابری برای پشتیبانی گیری ثانویه استفاده میشود. در هر بار دادههای وارد شده توسط بانک اطلاعاتی در قالب فیلدهای مختلف ذخیره شده و با روشهای منحصر بفرد باهم ترکیب شده و نهایتا باعث افزایش امنیت دادهها گردیده است.
1-1 مقدمه
موسسه ملی استاندارد و فنآوری[1]، رایانش ابری را به صورت زیر تعریف میکند: “رایانش ابری مدلی برای فعالسازی آسان و راحت دسترسی در شبکه مورد تقاضا به یک منبع مشترک از منابع رایانش قابل پیکربندی (به عنوان مثال شبکهها، سرورها، ذخیره سازی، برنامههای کاربردی و خدمات) است که میتواند به سرعت و با حداقل تلاش مدیریتی یا تراکنش ارائه دهنده سرویس نظارت و منتشر شود” [1]. این مدل ابری دسترس پذیری را گسترش داده و دارای پنج ویژگی اساسی از جمله خدمات خودی مورد تقاضا، دسترسی به شبکه گسترده، ادغام منابع، کشش سریع و خدمات اندازهگیری شده و سه مدل خدمات از جمله IaaS، PaaS و SaaS است که در آن SaaS یک سرویس ارائه شده به مشتری بر حسب برنامههای کاربردی در حال اجرا در زیرساختهای رایانش ابری میزبانی شده توسط ارائه دهندگان خدمات PaaS است. PaaS به خدماتی اشاره دارد که محیط یکپارچه با سطح بالا برای طراحی، ساخت، اجرا، تست، استقرار و به روز رسانی برنامههای کاربردی ایجاد شده توسط مشتری و با استفاده از زبان و ابزار توسعه یعنی جاوا، پایتون، نت و غیره است که توسط ارائه دهندگان خدمات به زیرساخت ابری ارائه میشود. IaaS اشاره به خدماتی دارد که به کاربران ارائه شده است و قدرت پردازش، ذخیرهسازی، شبکه و سایر منابع رایانش اساسی را ارائه میدهد و کاربران میتوانند در هر نرمافزار ی از جمله سیستم عامل و برنامههای کاربردی، چهار مدل استقرار از جمله ابر خصوصی، ابر عمومی، ابر ترکیبی و ابر جامعه را استقرار و اجرا کنند.
رایانش ابری اساسا منبعی است که میتوانید بصورت آنلاین برای حفظ پلت فرم کسب و کارتان استفاده کنید در حالی که در مورد سایر داراییهای اساسی در مورد کسب و کارتان نگران هستید. رایانش ابری اساسا نحوه برآورد معیارهای توسعهدهندگان برای نرمافزار IT توسط خودشان را تغییر میدهد. مجازیسازی ویژگی مهمیدر فنآوری ابری است که باعث جدایی نرمافزار از سخت افزار میشود. کاربران میتوانند برنامههای کاربردی خود را در “ماشینهای مجازی” بدون نگرانی از شغل پس زمینه اجرا کنند. بنابراین رایانش ابری، به سازمانها کمک خواهد کرد که تا از فشار به روز رسانی سخت افزار و نرمافزار رها شوند [2].
رایانش ابری با یک الگوی جدید برای ارائه زیرساختهای محاسبات همراه است. این الگو محل این زیرساخت را به منظور کاهش هزینههای مربوط به مدیریت سخت افزار و نرمافزار منابع به شبکه جابجا میکند. ابر توجه جامعه فنآوری اطلاعات و ارتباطات[2] را با توجه به ظهور مجموعهای از خدمات با ویژگیهای مشترک بخود جلب میکند، که توسط بازیگران مهم صنعت ارائه میشود. به هر حال، برخی از فن آوریهای موجود که بر مفهوم ابری توجه دارند (مانند مجازی سازی، رایانش ابزای و رایانش توزیعی) چیز جدیدی نیستند [3].
رایانش ابری یک مدل ارائه و دسترسی به خدمات است که در آن منابعِ مقیاس پذیر بصورت پویا و مجازیشده به عنوان یک سرویس بر روی اینترنت ارائه شده است. هدف کلی از رایانش ابری ارائه خدمات رایانش مورد تقاضا با قابلیت اطمینان بالا، مقیاسپذیری و در دسترس بودن در محیطهای توزیع شده است. کیفیت سرویس[3] قابل اعتماد یکی از الزامات مهم برای یک محیط رایانش ابری است. QoS را میتوان بر حسب توافقهای سطح خدمات (SLA) تعریف کرد که ویژگیهایی از قبیل حداقل توان، ماکزیمم زمان پاسخ و یا تاخیر تحویل داده شده توسط سیستم مستقر را توصیف میکند [4].
تمام الزامات QoS، مانند توان، زمان پاسخ و مصرف توان، بطور عمده وابسته به مکانیزم کارآمد و موثر بهره برداری از منابع است. بهره برداری موثر از منابع بطور مستقیم از مکانیزم تخصیص منابع کارآمد مشتق شده است. رایانش ابری مفهوم ارائه منابع مجازی به چندین کاربر در یک زمان است. از اینرو، محیط رایانش ابری نیز یک مکانیزم منابع خود تطبیقی قدرتمند برای قابل اعتماد کردن آن لازم دارد[5].
«پردازش ابری» يا «پردازش انبوه» یک فناوری جدید است که بهتازگی از طرف شرکتهاي مختلف از جمله: مايکروسافت، گوگل، آمازون و آيبيام عرضه شده است. در این سیستم به جای نصب چندین نرمافزار بر روی چند رايانه، تنها یک نرمافزار، یک بار اجرا و بارگذاری میشود و تمامیافراد از طریق یک خدمات بر خط[4] به آن دسترسی پیدا میکنند. به این پروسه «پردازش ابری» یا در اصطلاح Cloud Computing میگویند.
پيشبيني مرکز خبریInfoWorld بر اين اساس است که طي يک دهه آتي، دنیای IT بر آن خواهد شد تا تمرکز اصلي خود را بر خدمات اينترنتي ابر[5] متمرکز کند. از اين رو، حرکت به سمت پردازش در ابرها طي پنج سال آينده آغاز خواهد شد. در حال حاضر، برخي خدمات بر اساس اين سياستها عرضه ميشوند که از جمله آنها ميتوان به EC2 شرکت آمازون اشاره کرد. در نهايت، ظهور پردازش ابري باعث خواهد شد نياز به پردازش در شرکتها کاهش يابد.
پردازش ابری مجموعهای ازمنابع مجازی و مقیاس پذیر است که قابلیت ارائه خدمات مورد نیاز کاربران با پرداخت براساس میزان استفاده آنها ازسرویسها میباشد درحقیقت مجموعهای از خدمات شبکه است که میتواند از طریق راههای ساده و فراگیر در دسترس کاربران قرار گیرد[1]. پردازش ابری توسعه محاسبه شبکه، محاسبه موازی و محاسبه توزیعی است. آن یک الگوی جدید از محاسبه تجاری است. در مقایسه با محاسبه شبکه، پردازش ابری ویژگیهای جدیدی دارد مانند:
- محاسبه شبکه ترکیب عمومیمنابع توزیع شده، و توزیع ناهمگون منابع است؛ محاسبه ابری منابع داده محور با مقیاس بزرگ است که خیلی متمرکز هستند. به علاوه، تکنولوژی مجازی سازی ناهمگن بودن را در محاسبه ابری مخفی مینماید
- شبکه عموماً در محاسبه علم و برای حل مشکل دامنه هدف خاص بکار میرود؛ پردازش ابری طرح کاربر محور است که سرویسهای متغیر برای برآورد نیازهای کاربران متفاوت فراهم مینماید. آن خیلی تجاری شده است.
- منابع در محاسبه ابری با استفاده از تکنولوژی مجازی سازی با منابع مجازی انجام داده میشوند. این موجب فرایند تخصیص منابع آن میشود، این تعامل با وظایف کاربران و غیره متفاوت با محاسبه شبکه است.
مکانیسم اصلی پردازش ابری مخابره وظایف محاسبه به منبع است که از محاسبهگرهای زیادی تشکیل میشود. آن کاربردهای زیادی را بدست آوردن قدرت محاسبه، ذخیرهسازی و انواع سرویسهای نرمافزاری طبق نیازهایشان قادر میسازد. تکنولوژی تجاری سازی مطابق با محاسبه ابری ساختار ابری بین ویژگیهای جدیدی قرار گرفته است. برای مثال، آن پیچیدگی زمانبندی برنامه پردازش ابری را از طریق مجازی سازی منابع به لایه ماشین مجازی واگذار میکند. به علاوه، تعدادی از ویژگیهای جدید به زمانبندی برنامه به وجود میآورد، مانند اینکه محاسبه ابری توجه زیادی به واضح بودن تخصیص منابع مینماید. فناوری اطلاعات و ارتباطات[6] یک بخش جدایی ناپذیر از فرایندهای کسب و کار است.
سرویس ذخیرهسازی ابر یک زیر ساخت درحال ظهور است که پلت فرمها را به عنوان یک سرویس (PaaS) ارائه میدهد، در صنعت ذخیرهسازی ساده آمازون (آمازون S3) به عنوان بهترین مرجع از خدمات ذخیرهسازی ابر در نظر گرفته شده است.Amazon S3 انعطاف پذیری مجازی و فضای ذخیرهسازی نامحدود را فراهم میکند.
چندین ویژگی از Amazon S3 را به شرح زیر خلاصه کردیم:
- کاربران باکتهایی ایجاد میکنند که میتواند شامل اشیاء دلخواه به اندازه 5 ترا بایت باشد.
- کاربران تمام اشیای خود را آپلود یا دانلود میکنند، هر یک تا 5 گیگا بایت در هر عملیات و اشیاها در هر باکت بوسیله کلید منحصر بفرد که به کاربر اختصاص داده شده است از طریق رابطهای RSET و SOAP شناسایی میشود.
- درخواستهای اشیا از یک طرح HTTP سفارش شده براساس یک کد تصدیق پیام درهم ساز[7] استفاده میکند.
- سازگاری نهایی را نگه میدارد، بنابراین کاربران ممکن نیست جدید ترین محتوای خود را از یک شی خیلی زودتر دریافت کنند بعد از این که رونویسی شود[3].
در فصل دوم درباره آشنایی و تعاریف اولیه پردازش ابری و امنیت داده بحث میکنیم. در فصل سوم معماری و امنیت ذخیره سازی را مورد بحث و بررسی قرار میدهیم. در فصل چهارم نرمافزار امنيتی بر مبنای فناوری پردازشابری و نوآوریهای جدید در زمینه امنیت ابر و روشهای جلوگیری از نفوذ و… را در این پایان نامه به کار بردیم. در فصل پنجم نیز به الگوریتم های که برای بالا بردن امنیت داده ها ابداع کردیم، می پردازیم. برای امنیت دادهها از چند مکانیسم استفاده شده و برای این پایان نامه ما الگوریتمیرا پیشنهاد دادیم، چون که در ابر ما نمیدانیم اطلاعات در کجا و دست چه کسی قرار دارد، ما را براین وا داشت که دادههای مهم شرکت را کد شده داخل ابر کپی کنیم و اگر دست کسی هم افتاد نتواند به محتوای آن دسترسی پیدا کند.
این روش به این خاطر ساده هست، که زمان و حافظه کمتری را استفاده میکند. چون اصلیترین اساس رمزگذاری حجم و سرعت کدگذاری و کدگشایی اطلاعات هست، که برای رمزنگاری خود اختصاص دادیم، برای این که نفوذگران با استفاده از روشهای آمارگیری فراوانی کلمات را نتواند بدست بیاورند، از جدولهایی استفاده کردیم که تکرار را بصوت یکسان در میآورد و روشهایی را به آن اضافه کردیم، که آنها را گمراه میکند. چند روش قدیمی را باهم ادغام کردیم، که نتوانند با سورسها و یا توابعی که قبلا از آن برای رمزگشایی استفاده میکنند، دیگر در اینجا قابل استفاده نباشد. ما به این دلیل این روش کوچک خود را با الگوریتمهای بزرگ رمزنگاری ترکیب میکنیم، تا در تست کردن روشهای رمزنگاری آنهارا گمراه کنیم. مثلا اگر آنها بتواند کلید و با یکی از روشهای رمزنگاری دادهای را رمزگشایی کنند و با جداول ما مقایسه کنند در مییابند که اشتباهی رمزگشایی نموده اند و باعث دلسردی از انجام کدگشایی میشود.
رمز DES یک رمز بلوک متقارن است که دارای 56 بیت کلید بوده و در هر بلوک 64بیت داده را رمز میکند. روش پیشنهادی ما نیز یک رمز بلوک متقارن است که دارای 56 بیت کلید بوده و بر اساس DES بنا شده است. با توجه به یکسان بودن طول کلید در روش ما و روش DES، امنیت کلید در دو روش یکسان خواهد بود. با اینحال روش ما بدلیل تعداد دورهای کمتر، دارای سرعت بهتری نسبت به DES است. ما برای ارائه روش جدید، دو تغییر در الگوریتم DES اعمال کرده ایم که منجر میشود هم زیرکلیدهای مراحل و هم خروجی تابع F در هر دور (در حالتی که کلید در دو روش یکسان باشد)، نسبت به DES تغییر پیدا کنید. در روش پیشنهادی ما بجای 16 دور، از 2 دور استفاده میکنیم.
1-2 بیان مسئله
امنیت اطلاعات یکی از اساسیترین اصول هر اجتماعی بویژه جامعه ماست. یکی از بزرگترین مشکلات ما در حوزه فناوری اطلاعات نداشتن سخت افزار و نرم افزار بومی است و این امر موجبات بروز مشکلاتی نظیر شنود اطلاعات تبادلی توسط حمله کنندگان را فراهم می آورد. همانطور که همگی میدانیم در 8 سال دفاع مقدس ایران در اثر نداشتن دانش امنیت اطلاعات و استفاده از سخت افزارهای غیر بومی متحمل لطمات گاه بسیار سنگین و جبران ناپذیری شد. آیا ما باید همچنان با دنباله روی از دانش بیگانه و استفاده از ادوات و سخت افزار های تولیدی آنها این مسیر را ادامه دهیم یا راه دیگری وجود دارد؟
روش ما بصورتی هست که هر بار اطلاعات ما با یک الگوریتم رمزنگاری میشود، اگر یکی از الگوریتمهای ما کشف شد، در بار دوم به روش دیگری رمزنگاری میشود و الگوریتم ما از دید کاربران مخفی هست. در روش ارائه شده امنیت بیشتر میشود.
هدف ما
از این رو بر آن شدیم تا با ساخت یک الگوریتم بومی، ایمن و سریع بتوانیم با راحتی و آسودگی خاطر از خدمات رایگان ارائه شده استفاده نموده و سعی کنیم تا حد امکان از دادن اطلاعات به دشمنان این آب و خاک جلوگیری نماییم. از انجایی که اینترنت و نرم افزارها از تولیدات خارج هستند و رایگان در اختیار ما قرار دارند ما به شک انداخت که چرا این نرم افزارهای بزرگ رایگان در اختیار ما قرار دارد. بررسی هایی که روی این نرم افزارها به عمل آمده نشان میدهد ابزاری برای جاسوسی هستند، و هرانچه که تایپ میکنیم مستقیما به مبدا ارسال میشود. روشی که ما برای امن کردن دادهها در این پایان نامه ارایه دادیم به اینصورت هست که یک شبکه نظیر به نظیر ایجاد میکنیم و دادهها در یک رایانه کاربر که به اینترنت وصل نیستند وارد شده، از طریق شبکهP2P [6-9]در سرور اصلی ذخیره شده و سپس پشیبان نرم افزار در گوگل درایو یا کلود ذخیره میشود. از شبکههای نظیر به نظیر برای امن کردن دادهها و سرعت ارسال دادهها استفاده میکنیم. چون اگه هر سیستمی به تنهایی ارسال و دریافت در ابر را انجام دهد باعث ترافیک و از دست دادن اطلاعات مهم شرکتها میشود.
قرار دادن دادههای امن شده در ابر با استفاده از ترکیب چندین الگوریتم
مقدمه
ما برای رمزنگاری دادههایی که در ابر نگهداری میکنیم، دنبال یک روش رمزنگاری مناسبی هستیم که ضمن داشتن امنیت خوب، ساده باشد. الگوریتم رمزنگاری تنها برای خود ما شناخته شده است و برای دیگران مخفی میباشد. با توجه به اینکه هدف ما رمزگذاری دادهها و ارسال آنها به ابر و بازیابی دادههای رمزشده از ابر میباشد، لذا رمزکننده و بازکننده ی بستهها خود ما هستیم. بنابراین نیازی به رمزنگاری نامتقارن نیست و ما باید یک مکانیزم رمزنگاری متقارن در نظر بگیریم.
رمزگذاری JAE (Jafar Alinezhad Encode)
از اینکه در ابر ما نمیدانیم اطلاعات ما کجا و دست چه کسانی قرار میگیرد، ما را براین وا داشت که دادههای مهم شرکت را کد شده داخل ابر کپی کنیم بطوری که اگر دست کسی هم افتاد نتواند به محتوای آن دسترسی پیدا کند. برای رسید به این هدف از الگوریتم ترکیبی و منحصربهفردی استفاده کردهایم که در ذیل به تشریح آن میپردازیم.
مراحل ساخت جداول حروف رمزنگاری
در جدول 5-1 حروفاتی که اگر حرفی بین کلمه بار دوم تکرار شود از عددی که به آن اختصاص داده شده، بجای آن حروف استفاده میشود تا فراوانی داده یکسان شود. برای این منظور ما از جدول 6-2 فراوانیهای زبان انگلیسی استفاده کردیم، که فراوانیهای حروفات زبان انگلیسی را بر حسب بیشترین تعداد تکرار نشان میدهد.
در جدول بالا فراوانیهای زبان انگلیسی را نمایش میدهد که ما فقط 5 تا از آنهایی که بیشترین تکرار را داشتن بر حسب فرمول جدول 5-2، بصورت کران بالای برای آن در نظر گرفتیم چونکه عددهای 7.5 و 7.0 را بتوانیم گِرد کنیم، از این رابطه استفاده میکنیم.
نتیجه گیری
محاسبات ابری امروزه یکی از بزرگترین دغدغه های حوزه فناوری اطلاعات به شمار رفته و به سرعت در حال جایگزین شدن بجای محاسبات توسط رایانه های شخصی است، به طوری که اکنون هر فردی حتی به وسیله ی تلفن همراه خود امکان استفاده از این فناوری را دارد.
محاسبات شخصی یک تحول در صنعت IT به وجود آورده است. آن سیستمهای کامپیوتر بزرگ و مینی کامپیوترهای خانگی برای نیازهای محاسباتی شخصی جایگذین کرده است. پردازش ابری را پشت مرکزهای داده بزرگ که محاسبات به عنوان یک سرویس سودمند عمل میکنند میبرد. ذخیرهسازی همیشه یک نقش مهم برای همه انواع نیازهای محاسباتی بازی میکند. دستگاههای ذخیرهسازی که بیش از این یک راه طولانی از کارت پانچ شده تا ذخیرهسازی شده آمدهاند. ذخیرهسازی ابری قابلیت تغییر همه سناریوهای پشتیبانی داده و ذخیرهسازی را دارد.
پردازش ابری انقلابی در نحوه استفاده، مدیریت سرویسها و منابع میباشد. اما این تحول با مشکلات جدید همراه شده است. در این پایان نامه برخی از تهدیدهای امنیتی ابر به همراه راه حلهای ارائه شده توسط CSA مورد بررسی قرار گرفت. و در پایان دو راهکار برخورد با تهدیدها معرفی شد. باید به این نکته توجه داشت که در به دست آوردن شناخت قابلیتهای پردازش ابری با مسائل مختلفی از جمله امنیت روبرو هستیم که قبل از پیادهسازی مزایای آن باید تصمیماتی جدی برای مسائل مربوط به آن در نظر گرفته شود.
برای امنیت دادهها ما آنها را با روش منحصربهفردی که ارائه دادیم، کد کردیم. چون نمیدانیم اطلاعات ما دست چه کشورها یا افرادی قرار میگیرد، آنها با در دست داشتن الگوریتمهای پیشرفته اطلاعات را کد میکنند و تابعهایی که دارند میتواند با فراخوانی آنها باز هم کدگشایی کنند. به همین خاطر ما الگوریتم خودمان را توصیه میکنیم استفاده شود.
در ادامه ما روش خلاصهای از الگوریتم DES را پیشنهاد دادیم که در آن بر خلاف DES که 16 دور اجرا می شود، برای کاهش زمان مصرفی و داشتن امنیت و پیچیدگی نسبتا مناسب، 2 دور از DES اجرا میکند. ما هم در نحوه تولید زیرکلید مراحل و هم در فرآیند اجرای هر دور تغییراتی را اعمال کردیم تا الگوریتم نیز تغییر کند و چون الگوریتم فقط در اختیار ما قرار دارد، شناسایی الگوریتم و کشف کلید سخت خواهد شد.
ما آزمایشهایی انجام دادیم و این آزمایشات نشان دادند الگوریتم ما نسبت به روش DES در زمان مصرفی برای رمزگشایی و رمزگذاری بسیار بهتر است. ما این آزمایشات را به ازای تعداد کاراکترهای مختلف از 50 تا 10000 کاراکتر انجام دادیم و نتایج بدست آمده را مورد تجزیه و تحلیل قرار دادیم. آزمایشات بدست آمده نشان دادند که زمان لازم برای رمزگشایی و رمزگذاری در روش ما و نیز در روش DES تقریبا یکسان است و این صحت الگوریتم را اثبات می کند.
در ادامه ما روش پیشنهادی را گسترش داده و با 128 بیت کلید طراحی کردیم که در آن 64 بیت اول وارد دور اول و 64 بیت بعدی وارد دور دوم می شود. عملیات دورها مثل قبل است و تغییری ندارد. با توجه به اینکه تعداد بیت های کلید در اینجا بیشتر شده است، امنیت بیشتر می شود و امکان کشف کلید سخت تر میشود.
در نهایت باید متذکر شویم هیچگاه نمی توان گفت الگوریتم پیشنهادی به قطعیت ایمن ترین و سریعترین الگوریتم موجود است. زیرا امنیت یک امر نسبی بوده و روز به روز در حال توسعه است البته باید بدانیم مهمترین خاصیت این الگوریتم بومی بودن آن است.
حمایت از طرح های ابداعی بومی در زمینه فناوری های پیشرفته ما را به استفاده از خدمات ارائه شده توسط بیگانگان بی نیاز کرده و حتی در صورت استفاده از آن ها می توان با خیالی آسوده از ایمن بودن آن ها مطمئن بود.
[1] NIST
[2] ICT
[3] Qos
[4] online services
[5] Cloud
[6] ICT
[7] HMAC( Hash Message Authentication Code)