سلام به آرسسی های عزیز و کسانی که به مباحث شبکه علاقه مند هستند. در این بحث به بررسی یکی از نماد های امنیت در شبکه خواهیم پرداخت. در دوره +Security این بحث به طور مفصل مورد بررسی قرار میگیرد و یکی از پایه ای ترین مفاهیم در سری مطالب امنیت است که در هرجایی میتوانید ردی از آن را مشاهده کنید. دقت و درک صحیح مفهوم IPSec و مفاهیم مشابه لازمه شروع موفق سری دوره های امنیت خواهد بود.
آشنایی اولیه با IPSec
IPSec مخفف و کوتاه شده عبارت IP Security است که به مجموعه ای از پروتکل ها اشاره کرده و تبادل امن بسته ها در لایه IP را پشتیبانی میکند. IPSec بطور گسترده در تکنولوژی VPN جهت احراز هویت، محرمانگی، یکپارچگی و مدیریت کلید در شبکه های مبتنی بر IP، مورد استفاده قرار میگیرد. IPSec امنیت ارتباطات را در بطن شبکه با کمک سرویس های امن رمزنگاری برقرار میکند. برای عملکرد صحیح و کامل IPSec، هر دو طرف فرستنده و گیرنده باید یک کلید عمومی را به اشتراک بگذارند که بواسطه استفاده از پروتکل “مدیریت کلید” عملی میشود. این پروتکل به گیرنده این اجازه را میدهد تا یک کلید عمومی را بدست آورده و فرستنده را بر اساس امضای دیجیتال احراز هویت نماید. مزایایی که IPSec برای یک ارتباط به ارمغان میآورد، شامل موارد زیر میباشد:
- محافظت از حمله replay
- محرمانگی اطلاعات (رمزنگاری)
- یکپارچکی اطلاعات
- احراز منبع و منشاء اطلاعات
- احراز هویت در لایه Network
انواع حالات IPSec
حالات IPSec مرتبط با عملکرد دو پروتکل مرکزی اش است؛ (Encapsulating Security Payload (ESP و (Authentication Header(AH. هر دوی این پروتکل ها امنیت را با اضافه کردن دیتاگرام به هدر تأمین میکنند. تفاوت بین این دو روش در نحوه رمزنگاری کردن بخشی از دیتاگرام است که محافظت شده. IPSec دو حالت از رمزنگاری را پشتیبانی میکند؛ حالت Transport و حالت tunnel.
حالت Transport
در این حالت، IPSec هر بسته را در پیلود بدون دست زدن به هدر رمزنگاری میکند. این روش، ESP(Encapsulation Security Payload) هم نامیده میشود. در این روش هر دو طرف ارتباط احراز هویت شده و همچنین امکان رمزنگاری انتقال دیتا نیز وجود دارد. این حالت کاملا با NAT نیز سازگاری دارد؛ بنابراین برای ایجاد سرویس های VPN در شبکه های NAT مورد استفاده قرار میگیرد.
حالت Tunnel
در این حالت، IPSec هم پیلود و هم هدر را رمزنگاری میکند. بنابراین این حالت به نظر امن تر میرسد. حالت Tunnel به (AH(Authentication Header نیز معروف است. اطلاعات رمز شده در طرف گیرنده توسط سیستمی سازگار با IPSec، رمزگشایی میشود. از آنجایی که در حالت Tunnel هدر بسته IP، رمز میشود، NAT نمیتواند بر روی IP Header بازنویسی کند، بنابراین در NAT سرویسهای VPN ایجاد نمیشوند.
معماری IPSec
IPSec سرویس های امن را در لایه شبکه پیشنهاد میدهد و همین باعث آزادی عمل در انتخاب پروتکل های امنیتی مورد نیاز و تعین الگوریتم مورد استفاده در سرویس ها است. برای ایجاد سرویس های درخواستی، اگر لازم باشد باید کلیدهای رمزنگاری مرتبط را نیز مورد استفاده قرار داد. سرویس های امنیتی که توسط IPSec ارائه میشود، شامل: کنترل دسترسی، احراز هویت منشاء اطلاعات، یکپارچگی، پروتکل anti-replay و محرمانگی اطلاعات است. برای استفاده از این سرویس ها، IPSec از دو ترافیک پروتکل های امنیتی AH و ESP و پروتکل های مدیریت کلید رمزنگاری بهمراه فرآیندهای متناظرشان استفاده میکند. در ادامه ساختار پروتکل IPSec را در قالب معماری آن شاهد خواهیم بود:
- نکته: Anti-replay یکی از زیر پروتکل های IPSec است که مهمترین وظیفه ان کاهش احتمال تزریق یا دستکاری اطلاعات مبادله شده توسط نفوذگران است. این پروتکل بصورت غیر مستقیم امنیت را در یک ارتباط بین دو نود شبکه برقرار میکند.
- (Encapsulating Security Payload (ESP: این شیوه به صورت عام در ارائه سرویس هایی مثل رمزنگاری و احراز هویت مورد استفاده قرار میگیرد.
- (Authentication Header (AH : این روش فقط سرویس احراز هویت دیتاگرام را ایجاد کرده و رمزنگاری را ارائه نمیکند.
- DOI : فرمت دهی payload، انواع تبادلات دیتا و نامگذاری اطلاعات امنیتی مثل الگوریتم رمزنگاری یا قوانین امنیتی را تعریف میکند. ISAKMP طوری طراحی شده است که علاوه بر لایه IP، سرویس های امنیتی را در دیگر لایه ها نیز پشتیبانی نماید. بنابراین IPSec نیاز به یک DOI خاص خودش دارد.
- (ISAKMP (Internet Security Association and Key Management Protocol:این پروتکل یکی از کلیدی ترین پروتکل های موجود در IPSec است که امنیت لازم را در ارتباطات مختلف بر روی اینترنت مثل ارتباطات دولتی، خصوصی و تجاری با ترکیب مفاهیم امنیتی از احراز هویت، مدیریت کلید و ارتباطات امنیتی برقرار میسازد.
- Policy:Policy عنصر کلیدی ای است که تعین میکند دو موجودیت میتوانند با یکدیگر ارتباط برقرار کنند یا خیر. اگر آن ها بتوانند با یکدیگر ارتباط بگیرند، تعین میکند که چه نوع تبدیلی باید انجام پذیرد. اگر Policy بدرستی تعریف نشده باشد، ممکن است منجر به عدم ارتباط دو موجودیت شود.
احراز هویت و محرمانگی در IPSec
IPSec از دو روش امنیتی مختلف برای احراز هویت و محرمانگی اطلاعات استفاده میکند:
(Authentication Header (AH
این روش صحت هویت اطلاعات فرستنده را چک میکند. بعبارتی این روش ایجاد یکپارچگی و احراز هویت فرستنده اطلاعات را برای دیتاگرام تامین کرده و محافظی در برابر حملات replay است. در IPSec، احراز هویت دیتا به دو شیوه مختلف صورت میپذیرد: یکپارچگی اطلاعات و احراز هویت فرستنده اطلاعات. اگرچه احراز هویت فرستنده اطلاعات خود به یکپارچگی اطلاعات در مرحله بالاتر وابسته است اما میتواند به یکپارچگی اطلاعات و یا هر دوی مفاهیم اشاره داشته باشد:
- یکپارچگی اطلاعات: عدم دستکاری و تغیر در اطلاعات را بررسی میکند.
- احراز هویت فرستنده اطلاعات: بررسی میکند که اطلاعات واقعا از مبداء مورد نظر ارسال شده باشد.
(Encapsulation Security Payload (ESP
علاوه بر فرآیندهای احراز هویت، یکپارچگی و حفاظت در برابر حملات replay، روش ESP محرمانگی (رمزنگاری) را نیز تضمین میکند. این روش میتواند به تنهایی مورد استفاده قرار گیرد و یا با روش AH بصورت پیوسته و در ادامه آن عمل کند. این روش تنها از IP data payload با تنظیمات پیش فرضش محافظت میکند. در حالت Tunnel، این روش میتواند از هردوی payload و هدر IP محافظت کند.
عناصر تشکیل دهنده IPSec
IPSec از عناصر زیر تشکیل شده است:
- IPDec Driver: نرم افزاریست که مراحل عملکردی پروتکل را که شامل رمزکردن، رمزگشایی، احراز هویت و تشخصی بسته است را انجام میدهد.
- Internet Key Exchange (IKE): IKE یک پروتکل IPSec است که کلیدهای امنیتی را برای IPSec و دیگر پروتکل ها ایجاد میکند.
- (Internet Security Association Key Management Protocol (ISAKMP: یک پروتکل IPSec است که به دو کامپیوتر این اجازه را میدهد تا با اطلاعات رمز شده بهمراه تنظیمات معمول آن با هم ارتباط برقرار کنند. علاوه بر این، ISAKMP تبادل کلیدها را نیز امن میکند.
- Oakley: پروتکلی است که از الگوریتم Diffie-Hellman برای ایجاد یک کلید اصلی و همچنین کلیدی که خاص هر session است استفاده میکند.
- IPSec Policy Agent: سری مجموعه هایی از ویندوز سرور 2000 است که تنظیمات پالیسی IPSec را از اکتیو دایرکتوری جمع اوری کرده و در تنظیمات ساختاری هنگام استارت آپ آن را اعمال میکند.
پیادهسازی IPSec
—
پیاده سازی IPSec شامل تکراری از عناصرمختلف IPSec، اینترفیس های ایجاد شده توسط عناصر و فرآیند ورود و خروج بسته هاست. معمولا پیاده سازی IPSec بر حسب نوع پلت فرم متفاوت است. در اینجا درباره پیاده سازی IPSec ای بحث خواهد شد که وابسته به نوع سیستم عامل استفاده شده است. اکثرا پیاده سازی های IPSec، مجموعه ای از عناصر را تعریف میکنند که شامل: پروتکل های اصلی IPSec، SADB، SPD، Manual keying، ISAKMP/IKE، SA Management و Policy Management است. به عنوان یک اجرا کننده IPSec، باید از نام و نوع عملکر این عناصر مطلع باشید.
- پروتکلهای اصلی IPSec: که شامل پیاده سازی ESP و AH است. در این پیاده سازی، هدرها امنیت بسته ها را توسط فرآیند داخلی با SPD و SADB تامین میکنند.در این روش، fragmentation و PMTU نیز قابل اجرا شدن هستند.
- SADB: این عنصر لیست (SA (Security Association های اکتیو را در هر دو مسیر ورودی و خروجی نگهداری میکند. SADB چه بصورت دستی و چه به کمک یک مدیریت کلید اتوماتیک مثل IKE، SA های معمول را پشتیبانی میکند.
- SPD: امنیت بسته را در هر دو مسیر ورودی و خروجی تعین میکند. به منظور بررسی امنیت اعمال شده روی بسته با ساختار امنیتی در پالیسی، عناصر پروتکل مرکزی IPSec، با SPD مشورت میکنند. مشابها در فرآیند پردازش خروجی بسته، پروتکل مرکزی IPSec با SPD برای تعین اینکه آیا بسته خارج شده نیاز به امنیت دارد یا خیر، مشورت میکند.
- Internet Key Exchange: معمولا بصورت یک فرآیند در سطح کاربر در تمامی سیستم های عامل بیان میشود اما در خود سیستم عامل ها بصورت پیش فرض قرار داده نشده است. در روترها ( به عنوان یک نود در شبکه) که در ن ها سیستم عامل نیز قرار داده شده است، هیچ تفاوتی بیت فضای کاربر و فضای کرنل وجود ندارد. هسته مرکزی پالیسی در دوحالت IKE را فراخوانی میکند؛ زمانی که پالیسی نقش یک SA را بازی میکند و یا زمانی که بسته نرم افزاری SA وجود دارد اما SA برقرار نشده است. متقابلا زمانی که ارتباط امن مورد نیاز باشد نیز IKE فراخوانی خواهد شد.
- Policy and SA management: نرم افزارهایی برای مدیریت پالیسی و SA استفاده میشوند.