پروتکل اینترنت نسخه ۶: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
برچسب: نیازمند بازبینی |
برچسبها: ویرایش همراه ویرایش از وبگاه همراه |
||
خط ۱۸:
امروزه این پروتکل یکی از مورد توجهترین پروتکلهای امنیتی محسوب میشود و از جمله اینکه هر دو شرکت بزرگ Cisco و Microsoft در محصولات خود پشتیبانی از IPSec را گنجاندهاند...
== پروتکل IPSec از دیدگاه شبکهIPSec ==
این پروتکل در لایه ۳ عمل میکند و شامل پروتکلهای AH و ESP میباشد. IPSec از AH به منظور هویتشناسی و جامعیت مبدا بدون استفاده از رمزنگاری بهره میگیرد، درحالیکه ESP هویتشناسی و جامعیت مبدا را به کمک رمزنگاری فراهم میآورد. پروتکل IPSec دارای دو مد عملیاتی انتقال و تونل است.
در مد انتقال مکانیزم رمز نگاری روی قسمت دادهای بسته IP اعمال میشود و سرآیند بسته IP تغییر نخواهد کرد. بنابراین مبدا و مقصد نهایی بسته ممکن است توسط افراد غیر مجاز مشاهده شود، اما چون در این مد سرآیند لایه ۴ رمزنگاری شدهاست، اطلاع دقیق از نوع و کیفیت بسته ارسالی برای کابران غیر مجاز امکانپذیر نخواهد بود. معمولاً از این مد زمانی استفاده میشود که هم مبدا و هم مقصد پروتکل IPSec را پشتیبانی نماید. در مد تونل، تمامی بسته IP رمزنگاری میشود و سپس یک سرآیند جدید به بسته رمزنگاری شده الحاق میگردد. از این مد زمانی استفاده میشود که یک یا هر دو طرف اتصال IPSec دروازههای امنیتی باشند که از این پروتکل حمایت میکنند، در حالی که مبدا و مقصد اصلی که در پشت این دروازهها قرار دارند پروتکل IPSec را پشتیبانی نمیکنند. در این حالت مبدا و مقصد اصلی بستهها از دید کاربران غیر مجاز پنهان خواهد ماند.
== پروتکلهای IPSec ==
خانواده پروتکل IPSec شامل دو پروتکل است. یعنی سرآیند احراز هویت یا AH (Authentication Header) وESP هر دوی این پروتکلها از IPSec مستقل خواهد بود.
این پروتکل از متد ESP جهت کپسوله استفاده میکند.
== پروتکل AH ==
بطور خلاصه پروتکل AH در واقع تأمین کنندة سرویسهای امنیتی زیر خواهد بود:
۱.تمامیت داده ارسالی
۲.احراز هویت مبدا داده ارسالی
۳. نادیده گرفتن بستههای دوباره ارسال شده
این پروتکل برای تمامیت داده ارسالی از HMAC استفاده میکند و برای انجام این کار مبنای کارش مبتنی بر کلید سری است که payload بسته و بخشهایی تغییر ناپذیر سرآیند IP شبیه IP آدرس خواهد بود. بعد از این کار این پروتکل سرآیند خودش را به آن اضافه میکند در شکل زیر سرآیندها و فیلدهای AH نمایش داده شدهاست.
سرآیند AH،24 بایت طول دارد. حال به توضیح فیلدهای این پروتکل میپردازیم.
# اولین فیلد همان Next Headerمی باشد. این فیلد پروتکلهای بعدی را تعیین میکند. در حالت Tunnel یک دیتاگرام کامل IP کپسوله میشود بنابراین مقدار این فیلد برابر ۴ است. وقتی که کپسوله کردن یک دیتا گرام TCP در حالت انتقالmode) (Transport باشد، مقدار این فیلد برابر ۶ خواهد شد
# فیلدpayload length همانطوریکه از نامش پیداست طول payload را تعیین میکند.
# فیلد Reserved از دو بایت تشکیل شدهاست.برای آینده در نظر گرفته شدهاست.
# فیلد security parameter Index یا SPI از ۳۲ بیت تشکیل شدهاست. این فیلد از SA تشکیل شده که جهت بازکردن پکتهای کپسوله شده بکار میرود. نهایتاً ۹۶ بیت نیز جهت نگهداری احراز هویت پیام Hash یا (HMAC) بکار میرود.
# HMAC حفاظت تمامیت دادهٔ ارسالی را برعهده دارد. زیرا فقط نقاط نظیر به نظیر از کلید سری اطلاع دارند که توسط HMAC بوجود آمده و توسط همان چک میشود.
چون پروتکل AH حفاظت دیتاگرام IP شامل بخشهای تغییر ناپذیری مثل IP آدرسها نیز هست، پروتکل AH اجازه ترجمه آدرس شبکه را نمیدهد. NAT یا ترجمه آدرس شبکه در فیلد IP آدرس دیگری (که معمولاً IP آدرس بعداً میباشد) قرار میگیرد. وبه این جهت تغییر بعدی HMAC معتبر نخواهد بود. در شکل زیر حالتهای انتقال و تونل در پروتکل AH به نمایش در آمدهاست.همان طور که میبینید این پروتکل در این دو حالت ارتباط امن بین دو نقطه انتهائی که در دو شبکه مجزا قرار دارند را فراهم میآورد، همچنین ارتباط امن بین دو نقطه در یک شبکه داخلی و یک نقطه انتهائی و یک مسیر یاب یا حفاظ دیواره آتش(Firewall) را ممکن میسازد.
== پروتکل (Encapsulation Security Payload(ESP ==
پروتکل ESP سرویسهای امنیتی زیر را ارائه میکند:
# محرمانگی
# احراز هویت مبدا داده ارسالی
# رد بستههای دوباره ارسال شده
در واقع پروتکل ESP هم امنیت تمامیت داده (سلامت دادههای ارسالی) پکتهایی که از HMAC استفاده میکنند را تامین کنید و هم محرمانگی از طریق اصول رمزنگاری (Encryption principle ) بکار گرفته شده .بعد از رمزنگاری پکت و محاسبات مربوط به HMAC، سرآیند ESP محاسبه و به پکت اضافه میشود. سرآیند ESP شامل دو بخش است که مطابق شکل زیر نمایش داده شدهاست.
# اولین ۳۲ بیت سرآیند ESP همان SPI است که درSA بکار گرفته شده و جهت بازگشایی پکت کپسوله شده ESP بکار میرود.
# دومین فیلد همان شماره توالی یا Sequence Number میباشد که به جهت حفاظت از تهاجمات دادههای بازگشتی استفاده میشود.
# سومین فیلد همان بردار مقدار اولیه یاInitialization Vector (IV) میباشد. این فیلد نیز برای پردازش رمزنگاری بکار میرود. الگوریتمهای رمزنگاری متقارن اگر از IV استفاده نکنند، مورد تهاجم متوالی روی پکت قرار میگیرد. IV این اطمینان را میدهد تا دو مشخصه Payload روی دو Payload رمز شده مختلف قرار گیرد. پردازش رمزنگاری در IPSec در دو بلوک رمز (Cipher) بکار میرود. بنابراین اگر طول Payloadها تک تک باشند. Payload , IPSecها را به شکل لایه لایه قرار میدهد. و از اینرو طول این لایهها همواره در حال اضافه شدن است. طول لایه (Pad length) 2 بایت است.
# فیلد بعدی که همان Next header میباشد، سرآیند بعدی را مشخص میکند.
# این پروتکل HMAC است که مانند پروتکل HA از تمامیت و سلامت دادههای ارسالی حفاظت میکند. فقط این سرآیند است که میتواند به Payload اعتبار دهد. سرآیند IP شامل پروسه محاسبه نمیباشد.
NAT هیچ ارتباطی به کار ESP ندارد و این بخش هنوز هم ممکن است بخشی از IPSec باشد و با آن ترکیب گردد. NAT پیمایشی (NAT-Traversal ) راه حلی است در کپسوله کردن پکتهای ESP به همراه پکتهای UDP. در شکل زیر حالتهای انتقال و تونل در پروتکلESP به نمایش در آمدهاست.
همان طور که میبینید این پروتکل در این دو حالت ارتباط امن بین دو نقطه انتهائی که در دو شبکه مجزا قرار دارند را فراهم میآورد، همچنین ارتباط امن بین دو نقطه در یک شبکه داخلی و یک نقطه انتهائی و یک مسیر یاب یا حفاظ دیواره آتش(Firewall) را ممکن میسازد.
== پروتکل IKE ==
IKE پروتکلی است که چندین مسئله مهم در ارتباط امن را تنظیم میکند. احراز هویت نقاط نظیر و کلید تبادلی متقارن. این پروتکل مجمع امنیت (SA) را ایجاد کرده و درSAD یا پایگاه مجمع امنیت (Security Association data base ) قرار میدهد. IKE پروتکلی است که عموماً نیازمند فضای کاربر فوق العادهای است و روی سیستمهای عامل پیاده سازی نمیشود. پروتکل IKE، از پورت شماره UDP/500 استفاده میکنند.
IKE از دو مرحله تشکیل شدهاست. اولین مرحله همان تشکیل مجمع امنیت مدیریت کلید (Internet Security Association and key) یا (ISAKMP SA) میباشد. در مرحله دوم ISAKMPSA، برای مذاکره و تنظیم IPSec , SA بکار میرود. احراز هویت مرحله اول نقاط نظیر معمولاً بر مبنای کلیدهای پیش اشتراک شده (Per shared Keys )، کلیدهای RSA و گواهینامه X509 بوجود میآید.
مرحله اول از دوحالت پشتیبانی مینماید. حالت اصلی (main mode) و حالت تهاجمی (aggressive mode) این دو حالت نقاط نظیر را احراز هویت کرده و ISAKMP SA را تنظیم مینمایند. در حالت تهاجمی تنها نصف تعداد پیامها در این مورد تحت پوشش قرار میگیرد. به هر حال این خود یک اشکال محسوب میشود، زیرا این حالت نمیتواند از هویت نقاط نظیر پشتیبانی حفاظت نماید و از این جهت است که این حالت با داشتن کلید پیش اشتراکی (PSK) مستعد حملات میان راهی (man-in-the-middle) خواهد بود. از طرف دیگر تنها منظور از حالت تهاجمی همین است.
در حالت اصلی نه تنهااز کلید پیش شرط مختلف نمیتواند پشتیبانی نمایدبلکه نقاط نظیر به نظیر را نیز نمیشناسد. در حالت تهاجمی که از حفاظت هویت افراد / نقاط حمایت نمیکند و هویت کاربران انتهایی را چنین شفاف انتقال میدهد. بنابراین نقاط نظیر هر چیز را خواهد دانست پیش از آنکه احراز هویتی در مورد جا و کلیدهای پیش شرط بتواند بکار برد.
در مرحله دوم پروتکل IKE که SAهای پیشنهادی تبادل میشوند و توافقاتی بر پایه ISAKMP SA برای SA انجام خواهد شد. ISAKMP SA احراز هویت برای حفاظت از تهاجمات میان راهی را تهیه میبیند. دومین مرحله از حالت سریع استفاده میکند.
معمولاً دو نقطه نظیر روی SAKMP SA با هم مذاکره و توافق میکنند که هر دو طرف معمولاً روی چندین مذاکره (حداقل ۲ تا) بطور غیر مستقیم توافق کنند.
== مفاهیم اساسی ==
با استفاده از پروتکل IPsec شما میتوانید پنهان کردن دادهها، صحت دادهها، اعتبار یا سندیت و Anti Reply Protection را برای ترافیک شبکه به صورت زیر ایجاد کنید:
-ایجاد امنیت انتها به انتها از کاربر به کارگزار، از کارگزار به کارگزار و از کاربر به کاربر در مد انتقال IPSec
-ایجاد دسترسی راه دور امن از کاربر به دروازه بر روی اینترنت با استفاده از پروتکل تونل سازی لایه ۲ (L2TP) امن شده بوسیله IPSec .
-IPSec یک ااتصال دروازه به دروازه امن را روی WAN اختصاصی یا یک اتصال تحت اینترنت با استفاده از تونل L2TP/IPSec یا مد تونل IPSec فراهم میکند. (مد تونل IPSec برای کار با VPN دسترسی راه دور طراحی نشدهاست. )
سیستمعامل WIN2000 پیکربندی و مدیریت امنیت شبکه را بوسیله IP Security آسان کردهاست.
== SSL چیست؟ ==
(SSL یا Secure Socket Layer) راهحلی جهت برقراری ارتباطات ایمن میان یک سرویسدهنده و یک سرویسگیرندهاست که توسط شرکت Netscape ارائه شدهاست. در واقع SSL پروتکلی است که پایینتر از لایه کاربرد (لایه ۴ از مدل TCP/IP) و بالاتر از لایه انتقال (لایه سوم از مدل TCP/IP) قرار میگیرد. مزیت استفاده از این پروتکل بهرهگیری از موارد امنیتی تعبیه شده آن برای امن کردن پروتکلهای غیرامن لایه کاربردی نظیرHTTP ،LDAP ،IMAP و... میباشد که براساس آن الگوریتمهای رمزنگاری بر روی دادههای خام (plain text) که قرار است از یک کانال ارتباطی غیرامن مثل اینترنت عبور کنند، اعمال میشود و محرمانه ماندن دادهها را در طول کانال انتقال تضمین میکند.
به بیان دیگر شرکتی که صلاحیت صدور و اعطاء گواهیهای دیجیتال SSL را دارد برای هر کدام از دو طرفی که قرار است ارتباطات میان شبکهای امن داشته باشند، گواهیهای مخصوص سرویسدهنده و سرویسگیرنده را صادر میکند و با مکانیزمهای احراز هویت خاص خود، هویت هر کدام از طرفین را برای طرف مقابل تأیید میکند، البته غیر از اینکار میبایست تضمین کند که اگر اطلاعات حین انتقال مورد سرقت قرار گرفت، برای رباینده قابل درک و استفاده نباشد که اینکار را با کمک الگوریتمهای رمزنگاری و کلیدهای رمزنگاری نامتقارن و متقارن انجام میدهد.
== ملزومات یک ارتباط مبتنی بر پروتکل امنیتی SSL ==
برای داشتن ارتباطات امن مبتنی بر SSL عموماً به دو نوع گواهی دیجیتال SSL یکی برای سرویسدهنده و دیگری برای سرویسگیرنده و یک مرکز صدور و اعطای گواهینامه دیجیتال یا CA نیاز میباشد. وظیفه CA این است که هویت طرفین ارتباط، نشانیها، حسابهای بانکی و تاریخ انقضای گواهینامه را بداند و براساس آنها هویتها را تعیین نماید.
== اجزای پروتکل SSL ==
پروتکل SSL دارای دو زیر پروتکل تحت عناوین زیر میباشد.
# SSL Record Protocol که نوع قالببندی دادههای ارسالی را تعیین میکند.
# SSL Handshake Protocol که براساس قالب تعیین شده در پروتکل قبلی، مقدمات ارسال دادهها میان سرویسدهندهها و سرویسگیرندههای مبتنی بر SSL را تهیه میکند.
بخشبندی پروتکل SSL به دو زیر پروتکل دارای مزایای چندی است. ازجمله:
اول: در ابتدای کار و طی مراحل اولیه ارتباط (Handshake) هویت سرویسدهنده برای سرویسگیرنده مشخص میگردد.
دوم: در همان ابتدای شروع مبادلات، سرویسدهنده و گیرنده بر سر نوع الگوریتم رمزنگاری تبادلی توافق میکنند.
سوم: در صورت لزوم، هویت سرویس گیرنده نیز برای سرویسدهنده احراز میگردد.
چهارم: در صورت استفاده از تکنیکهای رمزنگاری مبتنی بر کلید عمومی، میتوانند کلیدهای اشتراکی مخفی را ایجاد نمایند.
پنجم: ارتباطات بر مبنای SSL رمزنگاری میشوند.الگوریتمهای رمزنگاری پشتیبانی شده درSSL
در استانداردSSL، از اغلب الگورتیمهای عمومی رمزنگاری و مبادلات کلید (Key Exchcenge Algorithm) نظیر DES ،DSA ،KEA ، MD5، RC2،RC4، RSA و RSA Key Exchauge ،SHA-1 ،Skipjack و 3DES پشتیبانی میشود و بسته به اینکه نرمافزارهای سمت سرویسدهنده و سرویسدهنده نیز از موارد مذکور پشتیبانی نمایید، ارتباطاتSSL میتواند براساس هر کدام این از الگوریتمها صورت پذیرد. البته بسته به طول کلید مورد استفاده در الگوریتم و قدرت ذاتی الگوریتم میتوان آنها را در ردههای مختلفی قرار دارد که توصیه میشود با توجه به سناریوهای موردنظر، از الگوریتمهای قویتر نظیر 3DES با طول کلید ۱۶۸ بیت برای رمزنگاری دادهها و همچنین الگوریتم 1-SHA برای مکانیزمهای تأیید پیغام 5 MD استفاده شود و یا اینکه اگر امنیت در این حد موردنیاز نبود، میتوان در مواردی خاص از الگوریتم رمزنگاری 4 RC با طول کلید ۴۰ بیت و الگوریتم تأیید پیغام 5 MD استفاده نمود. (شکل زیر)
== نحوه عملکرد داخلی پروتکلSSL ==
همانطور که میدانید SSL میتواند از ترکیب رمزنگاری متقارن و نامتقارن استفاده کند. رمزنگاری کلید متقارن سریعتر از رمزنگاری کلیدعمومی است و از طرف دیگر رمزنگاری کلید عمومی تکنیکهای احراز هویت قویتری را ارایه میکند. یک جلسه SSL Session) SSL) با یک تبادل پیغام ساده تحت عنوان SSL Handshake شروع میشود. این پیغام اولیه به سرویسدهنده این امکان را میدهد تا خودش را به سرویسدهنده دارای کلید عمومی معرفی نماید و سپس به سرویسگیرنده و سرویسدهنده این اجازه را میدهد که یک کلید متقارن را ایجاد نمایند که برای رمزنگاریها و رمزگشایی سریعتر در جریان ادامه مبادلات مورد استفاده قرار میگیرد. گامهایی که قبل از برگزاری این جلسه انجام میشوند براساس الگوریتم RSA Key Exchange عبارتند از:
- سرویس گیرنده، نسخه SSL مورد استفاده خود، تنظیمات اولیه درباره نحوه رمزگذاری و یک داده تصادفی را برای شروع درخواست یک ارتباط امن مبتنی بر SSL به سمت سرویسدهنده ارسال میکند.
- سرویسدهنده نیز در پاسخ نسخه SSL مورد استفاده خود، تنظیمات رمزگذاری و داده تصادفی تولید شده توسط خود را به سرویسگیرنده میفرستد و همچنین سرویسدهنده گواهینامه خود را نیز برای سرویسگیرنده ارسال میکند و اگر سرویسگیرنده از سرویسدهنده، درخواستی داشت که نیازمند احراز هویت سرویسگیرنده بود، آن را نیز از سرویسگیرنده درخواست میکند.
- سپس سرویسگیرنده با استفاده از اطلاعاتی که از سرویسدهنده مجاز در خود دارد، دادهها را بررسی میکند و اگر سرویسدهنده مذکور تأیید هویت شد، وارد مرحله بعدی میشود و در غیراینصورت با پیغام هشداری به کاربر، ادامه عملیات قطع میگردد.
- سرویسگیرنده یک مقدار به نام Secret Premaster را برای شروع جلسه ایجاد میکند و آن را با استفاده از کلید عمومی (که اطلاعات آن معمولاً در سرویسدهنده موجود است) رمزنگاری میکند و این مقدار رمز شده را به سرویسدهنده ارسال میکند.
- اگر سرویسدهنده به گواهینامه سرویسگیرنده نیاز داشت میبایست در این گام برای سرویسدهنده ارسال شود و اگر سرویسگیرنده نتواند هویت خود را به سرویسدهنده اثبات کند، ارتباط در همینجا قطع میشود.
- به محض اینکه هویت سرویسگیرنده برای سرویسدهنده احراز شد، سرویسدهنده با استفاده از کلید اختصاصی خودش مقدار Premaster Secret را رمزگشایی میکند و سپس اقدام به تهیه مقداری به نام Master Secret مینماید.
- هم سرویسدهنده و هم سرویسگیرنده با استفاده از مقدار master Secret کلید جلسه (Session Key) را تولید میکنند که در واقع کلید متقارن مورد استفاده در عمل رمزنگاری و رمزگشایی دادهها حین انتقال اطلاعات است و در این مرحله به نوعی جامعیت دادها بررسی میشود.
- سرویسگیرنده پیغامی را به سرویسدهنده میفرستد تا به او اطلاع دهد، داده بعدی که توسط سرویسگیرنده ارسال میشود به وسیله کلید جلسه رمزنگاری خواهد شد و در ادامه، پیغام رمز شده نیز ارسال میشود تا سرویسدهنده از پایان یافتن Handshake سمت سرویسگیرنده مطلع شود.
- سرویسدهنده پیغامی را به سرویسگیرنده ارسال میکند تا او را از پایان Handshake سمت سرویسدهنده آگاه نماید و همچنین این که داده بعدی که ارسال خواهد شد توسط کلید جلسه رمز میشود.
- در این مرحله SSL Handshake تمام میشود و از این به بعد جلسه SSL شروع میشود و هر دو عضو سرویسدهنده و گیرنده شروع به رمزنگاری و رمزگشایی و ارسال دادهها میکنند. (همانند شکل فوق)
== حملات تأثیرگذار برSSL ==
SSL نیز از حملات و نفوذهای مختلف در امان نیست. بعضی از حملات متداولی که براین پروتکل واقع میشود عبارتند ازTraffic Analysis : یا تحلیل ترافیک، حملات Certification Injection و حملات از نوع Man in the middle.
== SSH چیست؟ ==
به عنوان یک تعریف بسیار ساده میتوان [[پوسته ایمن|SSH]] را این گونه بیان کرد :
SSH یک روش قدرتمند و پر استفاده و البته نرمافزاری است که برای دستیابی به امنیت شبکه طراحی شدهاست. هربار که دادهای از طرف کامپیوتر به شبکه فرستاده میشود، به صورت خودکار توسط SSH کدگذاری میشود. هنگامی که داده به مقصد خود میرسد به صورت خودکار کدگشایی میشود. نتیجهای که خواهد داشت کدگذاری نامرئی خواهد بود. بدین صورت کاربران نهایی درگیر پروسه کدگذاری و کدگشایی نخواهند شد و از ارتباط امن خود میتوانند به خوبی استفاده کنند.
امنیت سیستم کدگذاری SSH با استفاده از الگوریتمهای پیچیده و مدرن تضمین میشود. تا آنجا که امروزه در سیستمهای حیاتی و بسیار حساس از این سیستم استفاده میشود. به صورت معمول محصولاتی که از SSH استفاده میکنند از دو بخش خادم و مخدوم ( Client/Server ) تشکیل میشوند. Clientها با استفاده از تنظیمات سرور مربوطه به آن وصل میشوند و سرور وظیفه تایید هویت و قبول و یا رد ارتباط را به عهده دارد.
نکته : باید توجه داشته باشید تشابه نام Secure Shell با محیطهایی مانند Bourne shell و یا C Shell نشان دهنده این نیست که SSH نیز محیطی است که وظیفه تفسیر فرامین برای سیستمعامل را بر عهده دارد.
با اینکه SSH تمامی مشکلات را حل نخواهد کرد، اما در مورد بسیاری از موارد میتواند راه حل مناسبی باشد. برخی از این موارد عبارتند از :
* یک پروتکل خادم/مخدوم امن برای کدگذاری و انتقال دادهها در شبکه.
* تعیین هویت کاربران به وسیله کلمه عبور ، host ، public key و یا استفاده از Kerberos،PGP و یا PAM
* قابلیت امن کردن برنامههای ناامن شبکه مانند Telnet ، FTP و در کل هر برنامهای که بر اساس پروتکل TCP/IP بنا شدهاست.
* بدون هیچ تغییر در استفاده کاربر نهایی ( End User ) پیاده شده و قابلیت پیاده سازی بر روی بیشتر سیستمعاملها را دارد.
== منابع و مراجع ==
|