پروتکل امنیت در لایه شبکه IPSec

در پشته پروتکل TCP/IP هر لایه دارای یک یا چند پروتکل می باشد که هر پروتکل وظیفه خاصی را در آن لایه انجام می دهد, بر همین اساس جهت ایجاد امنیت هر لایه بنا به اصول طراحی زیر پروتکلها ، یک یا چند پروتکل امنیتی تعبیه شده است.مطابق اصول طراحی زیر لایه هر لایه وظیفه ای را بر عهده دارد که منحصر بفرد می باشد و در هر لایه نیز هر پروتکل می تواند بنا به قرارداد عملیات خاصی را برعهده بگیرد .بر همین اساس امنیت در لایه شبکه بر عهده IPSec می باشد. از این پروتکل بطور وسیعی درشبکه های مجازی خصوصی Virtal Private Network ) VPN برای دفاترمربوط به یک شرکت یا سازمان و اساساً ایجاد ارتباط امن بین دو یا چند سازمان بکار می رود . امنیت شبکه های مجازی خصوصی((VPN از چند روش امکان پذیر می باشد که عبارت اند از استفاده از دیواره آتش ، IPsec , AAA Server و کپسوله سازی.

در ادامه جزوه ای آموزشی و به زبان ساده از IPsec در 13 صفحه به همراه نحوه فعال سازی در روترهای ارائه خواهد شد


اما روش IPsec به علت امن بودن ، پایداری بالا ،ارزان بودن ،انعطاف پذیر بودن و مدیریت بالا، مورد توجه قرار گرفته است. این پروتکل شامل مباحث :

سرآیند احراز هویت (Authentication Header(AH:  که بحث پیرامون فرمت بسته ها و مسائل عمومی مربوط به استفاده از AH برای احراز هویت بسته می پردازد. (لینک توضیحات)
▪الگوریتم رمزنگاری (Encryption Algorithm ) :که به نحوی رمزنگاری های مختلف در پروتکل (Encapsulation Security Payload(ESP می پردازد.  (لینک توضیحات)
الگوریتم احراز هویت که نحوه استفاده از الگوریتمهای احراز هویت مختلف در ESP , AH (اختیاری) را بیان می دارد.
مدیریت کلید(Key Management ) :که به مسائل مربوط به مدیریت کلید می پردازد.
ارتباط بین دامنه ای (Domain of Inter Predation ): یا مطالب مربوط به ارتباط بین قسمت های مختلف مانند شناسه های استفاده شده برای الگوریتم ها و پارامترهایی از قبیل طول عمر کلید. 


پروتکل IPSec خود شامل اجزاء تشکیل دهنده قراردادها و نحوی تامل بین آنهاست.در پروتکل IPSecسرویسهای امنیتی در دو قرارداد ESP , AH تدارک دیده شده اند .این سرویسهای امنیتی شامل  :کنترل دسترسی (Access Control ) ،صحت و درستی (Integrity) ، احراز هویت مبدا داده (Data Origin Authentication ) ، رد بسته های دوباره ارسال شده (Anti Replay ) ، محرمانگی (confidentially) ، محرمانگی جریان ترافیک بصورت محدود  خواهند بود.

 
این سرویسها در سه نوع ترکیب IPSec ارتباط فراهم آمده اند:
پروتکلهای ESP , AH فقط بصورت رمزنگاری (Encryption) و ESP بصورت Encryption و احراز هویت (Authentication).
IPSec یک پروتکل توسعه یافته روی پروتکل IP است که جهت امنیت IP تهیه شده است. این پروتکل از دو پروتکل AHوESP برای اطمینان بیشتر روی احراز هویت،تمامیت داده ها(سلامت داده) و محرمانگی استفاده می کند. این پروتکل می تواند،هم امنیت درلایه شبکه و هم امنیت در پروتکلهای لایه بالاتر در حالت Transport Modeرا برقرار سازد. این پروتکل از دو حالت Tunnel و Transport جهت اعمال سرویسهای امنیتی استفاده می کنند، یعنی برای امنیت لایه شبکه از حالت mode Tunnel استفاده می کند و برای امنیت لایه های بالاتر از حالت انتقال یا mode Transport استفاده می نماید.
درحالت Tunneling ؛دیتاگرام IP بطور کامل توسط دیتاگرامIP جدیدی کپسوله شده و آنرا برای پروتکل IPSec بکار می برد. ولی در حالت Transport فقط payload دیتاگرام بوسیله پروتکل IPSec فیلد سرآیند IPSec و سرآیندIP و فیلدهای لایه های بالایی درج (inserting) می شود.
مزایای حالت Tunnel این است که آدرسها معمولاً آدرس Gateway هاست که پس از بازگشایی آدرس واقعی بدست می آید و این موضوع از حملات شبکه جلوگیری می کند و مزیت دوم آن است که بسته بیرونی، یک بسته IP همانند بقیه بسته هاست و قابلیت مسیریابی دارد.
در حالت Transport احراز هویت بصورت مستقیم بین Server و سرویس گیرنده (Client)توسط کلید متقارن مشترک انجام میگیرد. در این حالت که الزاماً دو کامپیوتر در یک LAN قرار ندارند. اما در حالت Tunnel، سرویس گیرنده هویت خود را به Gateway اثبات می کند. در هر دو روش هر یک حالت خودشان (Transport mode Manuel mode) را از طریق SA استخراج کرده و مورد استفاده قرار می دهند.
●حالت های انتقال و تونل در AH
قرارداد AH در بسته IP برای حفاظت ازتمامیت داده های تبادلی دیتاگرام IP ، IPSec از کدهای هَش احراز هویت پیام hash (Hash Message Authentication Code- )  و یا با اختصار HMAC استفاده می کند. برای استفاده از HMAC،پروتکلهای IPSec از الگوریتم های hash ؛SHA برای محاسبات یک hash مبنا روی یک کلید سری(secret key) و محتویات دیتاگرام IP استفاده می کند.بنابراین این کدهای هش احراز هویت پیام hash هم در سرآیند پروتکل IPSec و هم در پکت های دریافتی که بتواند این کدها را چک نماید که در واقع می تواند به کلید سری دسترسی داشته باشد،قرار می گیرد. برای ارائه سرویس محرمانگی دیتاگرام IP ،پروتکلهای IPSec از استانداردهای الگوریتم رمزنگاری متقارن (Symmetric Encryption Algorithm ) استفاده می کنند. IPSec از استانداردهای NULL ، DESاستفاده خواهد کرد. امروزه معمولاً یکی از الگوریتم های قوی مثل Blowfish , AES,۳DES را بکار می برد.
IPSec برای دفاع وحفاظت از تهاجمات داده های تبادلی(Denial of services) ،از روش پنجرهٔ اسلایدی sliding windows استفاده می کند. در این روش هر پکت یک شمارهٔ توالی(sequence number) را به خود اختصاص می دهد و اگر عدد آن پکت به همراه یک windowsیا newer درست شده باشد، در این صورت پکت قدیمی بلافاصله دور انداخته (dispatched) می شود(این روش همچنین برای حفاظت از تهاجمات میانه راه پاسخ (The– of- middle Response Attach) نیز دوباره بکار می آید یعنی حفاظت از مهاجمانی که پکت های اصلی را ثبت کرده و بعد از چند لحظه تأخیر و احتمالاً تغییر دادن آن، ارسال می دارند.
برای کپسوله کردن و بازگشائی این یک پکت کپسوله شده ، با استفاده ازروشهای ذخیرهٔ سازی، کلیدهای سری،الگوریتم هاIP و آدرسها درگیر در تبادلات اینترنتی را ذخیره نمایند و بکار میگیرد. همهٔ این پارامترهای مورد نیاز جهت حفاظت دیتاگرامIP درجایی بنام مجمع امنیتی یا SA ها ذخیره می شوند. این مجمع امنیتی به نوبت در پایگاه دادهٔ مجمع امنیتی(security association database ) یا (SAD) ذخیره می شوند.
مجمع امنیتی (SA) دارای سه پارامتر یگانه (یکتا-یکه) است که شامل :
۱-شاخص پارامتر امنیت :(Security Parameter Index) این پارامتر ۳۲ بیتی ارزش محلی داشته. این پارامتربهمراه ESP , AH حمل می شود تا سیستم دریافت کننده بتواند SA مربوط به آن را انتخاب نماید.
۲-مشخصه پارامتر امنیت (security Parameter Identifier (SPI :این پارامتر نوع پروتکل امنیتی SA را تعیین می کند، AH یا ESP طبیعتاً این مشخصه بطور همزمان هر دو پروتکل را بهمراه ندارد.
۳-آدرس مقصد : IP ، این آدرس اساساً آدرس یک نقطه انتهایی یا یک شبکه (روتر، حفاظ) خواهد بود.
با این تفاصیل، بطور کاملتر و ریزتر مجمع امنیتی یا SA شامل اطلاعات و پارامترهای زیر است:
۱-آدرس مبداءو مقصد مربوط به سرآیند IPSec.اینها IP آدرسهای پکت های نظیر به نظیر مبداء و مقصد حفاظت شده توسط IPSec می باشند.
۲-الگوریتم و کلید سری بکار برده شده در   ESP Information و  AH Informantion  


برخی پایگاه ذخیره سازی SA ها،اطلاعات بیشتری را نیز ذخیره می کنند که شامل:
۳-حالت های اصلی انتقال بسته Transport یا Tunnel
۴-اندازه Sliding windows جهت حفاظت از تهاجمات بازگشتی (replay attach)
۵-زمان حیات (life time (SA ها .فاصله زمانی است که پس از آن SA باید پایان یابد یا باSA جدیدی عوض شود.
۶-حالت ویژه پروتکل IPSec که در این پارامتر علاوه بر حالتهای Transport , Tunnel ، حالت wildcard نیز مشخص می شود.
Sequence Number caurter-۹ که یک پارامتر ۳۲ بیتی که در سرآیند ESP,AH بعنوان فیلد شمارهٔ سریال قراردارد.
sequence caunter cnerflow-۱۰ یک شمارشگر که سرریز در شماره سریال را ثبت می کند و تعیین اینکه بسته های بعدی SA ارسال شود یا خیر؟
۱۱-Path Maximum Transportation limit یا ماکزیمم بسته ای که در مسیر قابل انتقال است.
از آنجائیکه IP آدرس مبدأ و مقصد توسط خود SA ها تعریف می شوند. حفاظت از مسیر دو طرفه کامل IPSec بطور مستقیم فقط برای یک طرف امکان پذیر خواهد بود. برای اینکه بتوانیم حفاظت هر دو طرف را انجام دهیم نیازمند دو مجمع امنیتی غیر مستقیم (indirection ) خواهیم بود. SA ها فقط چگونگی حفاظت توسط IPSec را تعریف می کنند:
اطلاعات مقررات امنیتی راجع به هر پکت در مقررات امنیتی (Security Policy) تعریف شده است که در پایگاه ذخیره کنندهٔ مقررات امنیتی (Database Security Policy ) ثبت ونگهداری می شود.
SP یامقررات امنیتی شامل اطلاعات زیر است:
۱-آدرس مبدأ و مقصد پکت های حفاظت شده. در حالت Transport این آدرسها درست همان آدرسهای مبدأ و مقصد SA است.
۲-پروتکل و پورت حفاظت شده . برخی IPSecها اجاره نمی دهند یک پروتکل به خصوص حفاظت شود. در این حالت تمام تبادلات ارسال و دریافت بین IP آدرسهای ذکر شده حفاظت می شوند.
۳-مجمع امنیتی(SA) (Security Associate ) برای حفاظت پکت ها مورد استفاده قرار می گردد.
تنظیم دستی SA ها همواره دچار خطا و بی دقت است. از سوی دیگر کلید سری و الگوریتم های رمزنگاری مابین همه نقاط شبکه اختصاصی مجازی (VPN) باید به اشتراک گذاشته شود. به خصوص برای مدیران سیستم , تبادل کلید مسئله بحرانی خواهد کرد. بطور مثال اینکه چطور می توانیم تشخیص دادهیم هیچ عملیات رمزنگاری انجام نمی شود تا در آن هنگام تبادل کلید متقارن سری انجام گیرد یکی از همین مسائل است.برای حل این مشکل پروتکل تبادل کلید اینترنت (Internet Key Exchange) پیاده سازی شده است . این پروتکل احراز هویت، برای نقاط نظیر اولین گام خواهد بود. دومین گام ایجاد SA و کلید سری متقارن جهت انتخاب و بکارگیری کلی تبادلی دیفن هیلمن(Diffle – Hellman key exchange ) خواهد بود.پروتکلIKE برای اطمینان از محرمانگی بطور دوره ای بدقت کلید سری را دوباره دریافت می دارد.●پروتکلهای IPSec
خانواده پروتکل IPSec شامل دو پروتکل است. یعنی سرآیند احراز هویت AH- ESP هر دوی این پروتکل ها از IPSec مستقل خواهد بود. 


●پروتکل AH
بطور خلاصه پروتکل AH در واقع تأمین کنندهٔ سرویسهای امنیتی زیر خواهد بود:
۱.تمامیت دادهء ارسالی
۲.احراز هویت مبدا داده ارسالی
۳.رد بسته های دوباره ارسال شده
این پروتکل برای تمامیت داده ارسالی از HMAC استفاده میکند و برای انجام این کار مبنای کارش را مبتنی بر کلید سری قرار می دهد که payload پکت و بخشهایی تغییر ناپذیر سرآیند IP شبیه IP آدرس خواهد بود. بعد از اینکار این پروتکل سرآیند خودش را به آن اضافه می کند.
سرآیند AH،۲۴ بایت طول دارد. حال به توضیح فیلدهای این پروتکل می پردازیم.
۱.اولین فیلد همان Next Headerمی باشد. این فیلد پروتکلهای بعدی را تعیین می کند. در حالت Tunnel یک دیتاگرام کامل IP کپسوله می شود بنابراین مقدار این فیلد برابر ۴ است. وقتی که کپسوله کردن یک دیتا گرام TCP در حالت انتقالmode) (Transport باشد، مقدار این فیلد برابر ۶ خواهد شد.
۲.فیلدpayload length همانطوریکه از نامش پیداست طول payload را تعیین می کند.
۳.فیلد Reserved از دو بایت تشکیل شده است.برای آینده در نظر گرفته شده است.
۴.فیلد security parameter Index یا SPI از ۳۲ بیت تشکیل شده است. این فیلد از SA تشکیل شده که جهت باز کردن پکت های کپسوله شده بکار می رود. نهایتاً ۹۶ بیت نیز جهت نگهداری احراز هویت پیام Hash یا (HMAC) بکار می رود.
۵.HMAC حفاظت تمامیت دادهء ارسالی را برعهده دارد. زیرا فقط نقاط نظیر به نظیر از کلید سری اطلاع دارند که توسط HMAC بوجود آمده و توسط همان چک میشود.
چون پروتکل HA حفاظت دیتاگرام IP شامل بخشهای تغییر ناپذیری مثل IP آدرسها نیز هست، پروتکل HA اجازه ترجمه آدرس شبکه را نمی دهد. NAT یا ترجمه آدرس شبکه در فیلد IP آدرس دیگری (که معمولاً IP آدرس بعدا می باشد) قرار می گیرد. وبه این جهت تغییر بعدی HMAC معتبر نخواهد بود. این پروتکل در این دو حالت ارتباط امن بین دو نقطه انتهائی که در دو شبکه مجزا قرار دارند را فراهم می آورد ،همچنین ارتباط امن بین دو نقطه در یک شبکه داخلی و یک نقطه انتهائی و یک مسیر یاب یا حفاظ دیواره آتش(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 در دو بلوک رمز (Chiper) بکار می رود. بنابراین اگر طول Payload ها تک تک باشند. Payload , IPSec ها را به شکل لایه لایه قرار میدهد. و از اینرو طول این لایه ها همواره در حال اضافه شدن است. طول لایه  Pad length-   ۲ بایت است.
۴.فیلد بعدی که همان Next header می باشد، سرآیند بعدی را مشخص می کند.
۵. این پروتکل HMAC است که مانند پروتکل HA از تمامیت و سلامت داده های ارسالی حفاظت میکند. فقط این سرآیند است که می تواند به Payload اعتبار دهد. سرآیند IP شامل پروسه محاسبه نمی باشد.
NAT هیچ دخلی به کار ESP ندارد و این بخش هنوز هم ممکن است بخشی از IPSec باشد و با آن ترکیب گردد. NAT پیمایشی (NAT-Traversal) راه حلی است در کپسوله کردن پکت‌های ESP به همراه پکت های UDP. 


  این پروتکل در این دو حالت ارتباط امن بین دو نقطه انتهائی که در دو شبکه مجزا قرار دارند را فراهم می آورد ،همچنین ارتباط امن بین دو نقطه در یک شبکه داخلی و یک نقطه انتهائی و یک مسیر یاب یا حفاظ دیواره آتش(Firewall) را ممکن می سازد.
●پروتکل IKE
IKE پروتکلی است که چندین مسئله مهم در ارتباط امن را تنظیم می کند. احراز هویت نقاط نظیر و کلید تبادلی متقارن. این پروتکل مجمع امنیت (SA) را ایجاد کرده و درSAD یا پایگاه مجمع امنیت (Security Association data base ) قرار میدهد. IKE پروتکلی است که عموماً نیازمند فضای کاربر فوق العاده ای است و روی سیستم های عامل پیاده سازی نمی شود. پروتکل IKE، از پورت شماره UDP/۵۰۰ استفاده می کنند.
IKE از دو مرحله تشکیل شده است. اولین مرحله همان تشکیل مجمع امنیت مدیریت کلید (Internet Security Association and key) یا (ISAKMP SA) می باشد. در مرحله دوم ISAKMPSA ، برای مذاکره و تنظیم IPSec , SA بکار می رود.
احراز هویت مرحله اول نقاط نظیر معمولاً بر مبنای کلیدهای پیش اشتراک شده (Per shared Keys )، کلیدهای RSA و گواهینامه X۵۰۹ بوجود می آید.
مرحله اول از دوحالت پشتیبانی مینماید. حالت اصلی (main mode) و حالت تهاجمی (aggressive mode) این دو حالت نقاط نظیر را احراز هویت کرده و ISAKMP SA را تنظیم می نمایند. در حالت تهاجمی تنها نصف تعداد پیامها در این مورد تحت پوشش قرار میگیرد. به هر حال این خود یک اشکال محسوب می شود، زیرا این حالت نمی تواند از هویت نقاط نظیر پشتیبانی حفاظت نماید و از این جهت است که این حالت با داشتن کلید پیش اشتراکی (PSK) مستعد حملات میان راهی (man-in-the-middle) خواهد بود. از طرف دیگر تنها منظور از حالت تهاجمی همین است.
در حالت اصلی نه تنهااز کلید پیش شرط مختلف نمی تواند پشتیبانی نمایدبلکه نقاط نظیر به نظیر را نیز نمی شناسد. در حالت تهاجمی که از حفاظت هویت افراد / نقاط حمایت نمی کند و هویت کاربران انتهایی را چنین شفاف انتقال میدهد. بنابراین نقاط نظیر هر چیز را خواهد دانست پیش از آنکه احراز هویتی در مورد جا و کلیدهای پیش شرط بتواند بکار برد.
در مرحله دوم پروتکل IKE که SA های پیشنهادی تبادل می شوند و توافقاتی بر پایه ISAKMP SA برای SA انجام خواهد شد. ISAKMP SA احراز هویت برای حفاظت از تهاجمات میان راهی را تهیه می بیند. دومین مرحله از حالت سریع استفاده می کند.معمولاً دو نقطه نظیر روی SAKMP SA با هم مذاکره و توافق می کنند که هر دو طرف معمولاً روی چندین مذاکره (حداقل ۲ تا) بطور غیر مستقیم توافق کنند

نویسنده : سید محمد حسینی منبع : سایت اطلاع رسانی امنیت اطلاعات ایران

لینکستان برای مطالعه بیشتر:

لینک یک Pdf کامل و به زبان ساده از مفهوم IPSEC و راه اندازی ان در میکروتیک و سیسکو -13 صفحه - 1 مگ

لینک دوم:IPSec چیست و چه ساختاری دارد؟
لینک سوم:مروری بر IPSec