آشنایی با IPSEC
آی پی سک IPSec یا Internet Protocol security عبارت است از مجموعهای از چندین پروتکل که برای ایمنسازی پروتکل اینترنت در ارتباطات بوسیله احراز هویت و رمزگذاری در هربسته(packet) در یک سیر داده به کار میرود. این پروتکل محصول مشترک مایکروسافت و سیسکو سیستمز میباشد که در نوع خود جالب توجه است. IPSec بطور گسترده در تکنولوژی VPN جهت احراز هویت، محرمانگی، یکپارچگی و مدیریت کلید در شبکه های مبتنی بر IP، مورد استفاده قرار میگیرد. آی پی سک امنیت ارتباطات را در بطن شبکه با کمک سرویس های امن رمزنگاری برقرار میکند. برای عملکرد صحیح و کامل IPSec، هر دو طرف فرستنده و گیرنده باید یک کلید عمومی را به اشتراک بگذارند که بواسطه استفاده از پروتکل “مدیریت کلید” عملی میشود. این پروتکل به گیرنده این اجازه را میدهد تا یک کلید عمومی را بدست آورده و فرستنده را بر اساس امضای دیجیتال احراز هویت نماید.مزایایی که IPSec برای یک ارتباط به ارمغان میآورد، شامل موارد زیر میباشد:
محافظت از حمله replay
محرمانگی اطلاعات (رمزنگاری)
یکپارچکی اطلاعات
احراز منبع و منشاء اطلاعات
احراز هویت در لایه Network
آی پی سک بر خلاف دیگر پروتکلهای امنیتی نظیر SSL, TSL, SSH که در لایه انتقال (لایه ۴) به بالا قرار دارند در لایه شبکه یا همان لایه ۳ مدل مرجع OSI کار میکند یعنی لایه که آی پی در آن قرار دارد که باعث انعطاف بیشتر اینپروتکل میشود بهطوریکه میتواند از پروتکلهای لایه ۴ محافظت کند.مزیت بعدی IPsec به نسبت بقیه پروتکلهای امنیتی نظیر اس اس ال این است که: نیازی نیست که برنامه بر طبق این پروتکل طراحی شود.
خانواده پروتکل آی پی سک IPSec شامل دو پروتکل است. یعنی سرآیند احراز هویت یا AH یا همانauthentication header وESP هر دوی این پروتکلها از آی پی سک مستقل خواهد بود.
پروتکل AH
بطور خلاصه پروتکل AH در واقع تأمینکننده سرویسهای امنیتی زیر خواهد بود:
تمامیت داده ارسالی
تصدیق هویت مبدأ داده ارسالی
رد بستههای دوباره ارسال شده
این پروتکل برای تمامیت داده ارسالی از HMAC استفاده میکند و برای انجام این کار مبنای کارش را مبتنی بر کلید سری قرار میدهد که payload پکت و بخشهایی تغییرناپذیر سرآیند IP شبیه IP آدرس خواهد بود. بعد از اینکار این پروتکل سرآیند خودش را به آن اضافه میکند در شکل زیرسرآیندها و فیلدهای AH نمایش داده شدهاست.
سرآیند AH،۲۴ بایت طول دارد. حال به توضیح فیلدهای این پروتکل میپردازیم.
۱. اولین فیلد همان Next Header میباشد. این فیلد پروتکلهای بعدی را تعیین میکند. در حالت Tunnel یک دیتاگرام کامل IP کپسوله میشود بنابراین مقدار این فیلد برابر ۴ است. وقتی که کپسوله کردن یک دیتا گرام TCP در حالت انتقال (transport mode) باشد، مقدار این فیلد برابر ۶ خواهد شد
فیلد payload length همانطوریکه از نامش پیداست طول payload را تعیین میکند.
فیلد Reserved از دو بایت تشکیل شدهاست. برای آینده در نظر گرفته شدهاست.
۴. فیلد security parameter Index یا SPI از ۳۲ بیت تشکیل شدهاست. این فیلد از SA تشکیل شده که جهت باز کردن پکتهای کپسوله شده بکار میرود. نهایتاً ۹۶ بیت نیز جهت نگهداری احراز هویت پیام Hash یا (HMAC) بکار میرود.
۵.HMAC حفاظت تمامیت دادهٔ ارسالی را برعهده دارد. زیرا فقط نقاط نظیر به نظیر از کلید سری اطلاع دارند که توسط HMAC بوجود آمده و توسط همان چک میشود. چون پروتکل HA حفاظت دیتاگرام 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 میباشد که به جهت حفاظت از تهاجمات دادههای بازگشتی استفاده میشود.
سومین فیلد همان بردار مقدار اولیه یا IV یا همان initial vector میباشد. این فیلد نیز برای پردازش رمزنگاری بکار میرود. الگوریتمهای رمزنگاری متقارن اگر از IV استفاده نکنند، مورد تهاجم متوالی روی پکت قرار میگیرد. IV این اطمینان را میدهد تا دو مشخصه Payload روی دو Payload رمز شده مختلف قرار گیرد.
پردازش رمزنگاری در IPSec در دو بلوک رمز (Cipher) بکار میرود؛ بنابراین اگر طول Payloadها تک تک باشند. Payload, IPSec ها را به شکل لایه لایه قرار میدهد؛ و از اینرو طول این لایهها همواره در حال اضافه شدن است. طول لایه (Pad length) ۲ بایت است.
فیلد بعدی که همان Next header میباشد، سرآیند بعدی را مشخص میکند.
این پروتکل HMAC است که مانند پروتکل HA از تمامیت و سلامت دادههای ارسالی حفاظت میکند. فقط این سرآیند است که میتواند به Payload اعتبار دهد. سرآیند IP شامل پروسه محاسبه نمیباشد.
NAT هیچ ارتباطی به کار ESP ندارد و این بخش هنوز هم ممکن است بخشی از آی پی سک باشد و با آن ترکیب گردد. برگردان نشانی شبکه پیمایشی (NAT-Traversal) راه حلی است در کپسوله کردن پکتهای ESP به همراه پکتهای UDP.
مود های IPSec :
IP Sec در دو مود Tunnel و Transport عمل میکند. استفاده از هریک از این روش ها بسته به نیاز های شبکه و نحوه پیاده سازی این پروتکل است.
IP Sec Tunnel Mode
این روش به عنوان روش پیش فرض می باشد. در این حالت تمامی پکت ها و بصورت کامل از Tunnel عبور میکنند. در این روش ، آی پی سک پکت را دریافت کرده، بسته بندی میکند و بعد از اضافه کردن Header های لازمه، آن را به سمت دیگر Tunnel ارسال میکند.
این روش بطور معمول در بین Gateway ها نظیر روتر های سیسکو، دستگاه های فایروال ASA و بسیاری از دستگاه ها، و یا در بین ایستگاه های نهایی و Gateway ها که حکم پروکسی و یا هاست را برای آن ایستگاه نهایی بازی میکند. در واقع Tunnel برای رمز نگاری ترافیک بین Gateway ها بکار میرود. برای مثال دو روتر سیسکو که در بستر اینترنت بوسیله Tunnel باهم در ارتباط هستند. در این روش هر یک از Gateway ها نقش دروازه ایمن برای شبکه LAN که در پس خود دارند محسوب میشوند و میتوانند یک ارتباط ایمن در بین اماکن دور ایجاد نمایند.
از نمونه دیگر برای IPSEC Tunnel میتوان به ارتباط یک Cisco VPN Client و یک فایروال اشاره کرد. کلاینت به Gateway متصل می شود و تانل برقرار میشود. ترافیک از سمت کاربر رمز نگاری شده، و پس از کپسوله شدن در داخل یک IP Packet جدید، به انتهای دیگر تانل ارسال میگردد. وقتی که Gateway پکت جدید را دریافت میکند، آن را رمز گشایی کرده و پکت اصلی را به داخل شبکه و یا فرد مورد نظر میرساند. در روش Tunnel، یک IPsec Header از نوع AH و یا ESP در بین لایه های IP و Protocol اضافه میشود. روش ESP در بین تانل ها رایج تر است.
IP Sec Transport Mode
در این روش، ارتباط بین نقاطی پایانی با یکدیگر بصورت ایمن برقرار میشوند. برای مثال ارتباط بین یک Client و یک Server و یا یک گروه کاری و یک gateway در صورتیکه gateway به عنوان Host در نظر گرفته میشود. یک مثال خوب برای این مساله میتواند Telnet رمز نگاری شده و یا RDP(remote Desktop) به یک سرور و یا هاست باشد.
در روش Transport تشکیل یافته از هدر TCP و UDP به علاوه هدر AH یا ESP می باشد. در این روش اطلاعات مورد نظر که به Payload معروف هستند کپسوله میشوند و بقیه اطلاعات در پکت دست نخورده باقی میمانند. هدر IP در این روش دست نخورده باقی میماند بجز لایه پروتکل که با هدر ESP و یا AH تغییر میکند. در ادامه پروتکل اصلی در تریلر پکت ذخیره میشود و در هنگام رمزگشایی به پکت برگشت داده میشود.
این روش بیشتر در مواردی استفاده میشود که روش های Tunneling دیگری نظیر GRE در حال استفاده است. از این روش برای ایمن کردن ارتباط در این تانل ها استفاده میشود.
در شکل زیر دیاگرام روش IPsec Transport نشان داده میشود. همانطور که میبیند، IP Header اصلی به سمت جلو و ابتدای پکت هدایت میشود تا اطمینان حاصل کند که رمزنگاری بر هدر اصلی پکت تاثیری نداشته و تنها بر پروتکل اثر میکند.