IPsec یا Internet Protocol Security مجموعه ای از پروتکل ها و الگوریتم ها برای ایمن سازی داده هایی است که از طریق اینترنت یا هر شبکه عمومی منتقل می شوند. گروه IETF، پروتکل های IPsec را در اواسط دهه 1990 توسعه داد تا امنیت لایه IP را از طریق احراز هویت و رمزگذاری IP network packets فراهم کند.
packet یا بسته، به مقدار مشخصی داده گفته می شود که بین مبدا و مقصد در اینترنت یا هر شبکه دیگری هدایت می شود. network packets یا بسته های شبکه، مقدار کمی از داده ها هستند که در سطح شبکه TCP/IP عبور می کنند. به عنوان مثال، ایمیل ها و صفحات وب از بسته های شبکه برای ارسال و دریافت اطلاعات از کاربر استفاده می کنند. هدف یک بسته شبکه ارسال اطلاعات به طور مطمئن است، بنابراین لازم نیست داده ها به صورت یک بسته بزرگ واحد ارسال شوند.
IPsec در آغاز فعالیت خود دو پروتکل کاربردی برای ایمن سازی بسته های IP به نام های AH) Authentication Header) و ESP) Encapsulating Security Payload) را معرفی کرد. پروتکل AH یکپارچگی داده ها و سرویس anti-replay را فراهم می کند. پروتکل ESP نیز داده ها را رمزگذاری و احراز هویت می نماید.
anti-replay با جلوگیری از رهگیری بسته های پیام توسط هکرها و قرار دادن بسته های تغییر یافته در میان داده های در حال انتقال بین رایانه مبدا و مقصد، امنیت را تضمین می کند.
همچنین IPsec شامل پروتکل (Internet Key Exchange (IKE می شود که با تولید کلید های مشترک، برای ایجاد یک انجمن امنیتی که به اصطلاح (SA) نامیده می شود، تلاش می کند. SA ها با مذاکره در خصوص انتخاب پروتکل های امنیتی مورد استفاده میان دو شبکه، در انجام فرآیند رمزگذاری و رمزگشایی کاربرد دارند. روتر یا فایروال خاصی که بین دو شبکه قرار دارد، معمولاً روند مذاکره SA را کنترل می کند.
IPsec برای چه موردی استفاده می شود؟
IPsec برای محافظت از اطلاعات مهم، مانند معاملات مالی، سوابق پزشکی و ارتباطات شرکتی در زمان انتقال از طریق شبکه استفاده می شود. همچنین برای ایمن سازی شبکه های خصوصی مجازی (VPN) كاربرد دارد که در آن تمام داده های ارسال شده بین دو نقطه را رمزگذاری می کند. علاوه بر این، IPsec می تواند داده های لایه اپلیکیشن (application layer) را رمزگذاری کرده و امنیت روتر هایی که اطلاعات مسیریابی را از طریق اینترنت عمومی ارسال می کنند، فراهم کند. از IPsec می توان برای تأیید اعتبار بدون رمز گذاری نیز استفاده کرد، به عنوان مثال، تأیید اعتبار داده هایی که از یک فرستنده شناخته شده ارسال شده اند.
در لایه های اپلیکیشن یا انتقال مدل (Open Systems Interconnection (OSI بدون استفاده از IPsec نیز می توان داده ها را به صورت ایمن انتقال داد. در لایه اپلیکیشن، پروتکل (Hypertext Transfer Protocol Secure (HTTPS و در لایه انتقال، پروتکل (Transport Layer Security (TLS رمزگذاری را اجرا می کنند. با این وجود، رمزگذاری و احراز هویت در این لایه ها، احتمال افشای داده ها و رهگیری اطلاعات پروتکل توسط مهاجمان را افزایش می دهد.
تصویر (1)
پروتکل های IPsec
IPsec بسته های داده ای را که از طریق شبکه های مبتنی بر IPv4 و IPv6 ارسال می شوند، احراز هویت و رمزگذاری می کند. هدر های پروتکل IPsec در هدر آی پی یک بسته قرار می گیرند و نحوه پردازش داده های یک بسته از جمله مسیریابی و تحویل آن در شبکه را تعریف می کنند. IPsec چندین مولفه از جمله اطلاعات امنیتی و یک یا چند الگوریتم رمزنگاری را به هدر IP اضافه می نماید.
پروتکل های IPsec از استانداری به نام (Request for Comments (RFC برای توسعه الزامات امنیتی شبکه استفاده می کنند. استانداردهای RFC اطلاعات مهمی را برای ایجاد، مدیریت و نگهداری شبکه به کاربران در سراسر اینترنت ارائه می کند.
تصویر (2)
پروتکل های اصلی IPsec شامل موارد زیر می شوند:
- IP AH: این پروتکل یکپارچگی داده ها و خدمات حفاظت در انتقال را فراهم می کند. AH به بسته IP اضافه می شود تا اطلاعات مربوط به احراز هویت را ارائه کند و از تصرف اطلاعات جلوگیری نماید.
- IP ESP: پروتکل ESP احراز هویت، یکپارچگی و محرمانگی را از طریق رمزگذاری بسته های IP فراهم می کند.
- IKE: پروتکلی است كه دو سیستم یا دستگاه را قادر می سازد یك كانال ارتباطی ایمن را در یك شبكه غیرقابل اعتماد ایجاد كنند. این پروتکل از یک سری کلید تبادل برای ایجاد یک تونل امن بین سرویس گیرنده و سرور استفاده می کند که از طریق آن تونل می توانند داده های رمزگذاری شده را ارسال کنند.
- ISAKMP) Internet Security Association and Key Management Protocol): این پروتکل چارچوبی برای ایجاد کلید، احراز هویت و پارامتر های SA برای تبادل امن بسته ها در لایه IP است. به عبارت دیگر، ISAKMP پارامترهای امنیتی را برای نحوه ارتباط دو سیستم یا میزبان با یکدیگر تعریف می کند. هر SA اتصال را در یک جهت، از یک میزبان به سمت دیگر تعریف می کند. SA شامل تمام ویژگی های اتصال، از جمله الگوریتم رمزنگاری، حالت IPsec، کلید رمزگذاری و سایر پارامترهای مربوط به انتقال داده برای اتصال است.
IPsec از بسیاری پروتکل های دیگر مانند الگوریتم های امضای دیجیتال و سایر پروتکل هایی که در IKE Document، یا RFC 6071 درج شده، استفاده می کند.
IPsec چگونه کار می کند؟
5 مرحله اصلی در نحوه عملکرد IPsec وجود دارد که به شرح زیر است:
- تشخیص میزبان: فرآیند IPsec زمانی آغاز می شود که یک سیستم میزبان تشخیص دهد، یک بسته نیاز به محافظت دارد و می بایست از طریق پروتکل IPsec منتقل شود. این بسته ها برای IPsec به عنوان "ترافیک جالب" در نظر گرفته می شوند و باعث ایجاد پروتکل های امنیتی می گردند. با استفاده از این پروتکل، در بسته های خروجی، رمزگذاری و احراز هویت مناسب اعمال می شود و وقتی یک بسته ورودی به عنوان ترافیک جالب تشخیص داده شود، سیستم میزبان عملیات احراز هویت و تایید رمزگذاری آنرا انجام می دهد.
- مذاکره یا مرحله IKE 1: در مرحله دوم میزبان ها از IPsec برای مذاکره در مورد سیاست هایی که می خواهند در مدار امن به کار ببرند، استفاده می کنند. آنها همچنین یکدیگر را شناسایی و احراز هویت می کنند و یک کانال امن میان همدیگر ایجاد می نمایند که برای مذاکره در مورد نوع رمزگذاری و احراز هویت داده هایی که از طریق پروتکل IPsec ارسال می شوند، کاربرد دارد. این روند مذاکره در هر دو حالت اصلی و تهاجمی انجام می شود.
- در حالت اصلی، میزبان شروع به ارسال session های پیشنهادی می کند که الگوریتم های رمزگذاری و نحوه احراز هویت ترجیحی آن را نشان می دهد. این مذاکرات تا زمان توافق هر دو میزبان و راه اندازی IKE SA برای مشخص کردن نوع مدار IPsec مورد استفاده، ادامه دارد. این روش ایمن تر از حالت تهاجمی است، زیرا یک تونل امن برای تبادل اطلاعات ایجاد می کند.
- در حالت تهاجمی، میزبان آغاز کننده اجازه مذاکره را نمی دهد و IKE SA را مشخص می کند. اعلام پذیرش توسط میزبان پاسخ دهنده، session را تأیید می کند. با استفاده از این روش، میزبان ها می توانند مدار IPsec را سریعتر تنظیم کنند.
- مدار IPsec یا مرحله IKE 2: در مرحله سوم، مدار IPsec در کانال ایمن سازی شده ای که در مرحله 1 IKE ایجاده شده بود، مورد استفاده قرار می گیرد. میزبان های IPsec در مورد نوع الگوریتمی که در طول انتقال اطلاعات استفاده خواهند کرد، مذاکره می کنند. همچنین در مورد کلیدهای رمزگذاری و رمزگشایی که قصد استفاده از آنها برای ارسال و دریافت داده ها به شبکه محافظت شده را دارند، توافق کرده و آنها را با هم مبادله می کنند. میزبانها همچنین cryptographic nonces را که اعداد تصادفی برای تأیید اعتبار session ها هستند، رد و بدل می کنند.
- انتقال IPsec: در مرحله چهارم، میزبان ها داده های واقعی را از طریق تونل ایمنی که ایجاد کرده اند رد و بدل می کنند. در حین انتقال از پارامتر های IPsec SA که در مراحل قبل تنظیم کرده بودند برای رمزگذاری و رمزگشایی بسته ها استفاده می کنند.
- پایان IPsec: در نهایت تونل IPsec بسته می شود. معمولاً بعد از عبور تعداد بایت مشخصی از طریق تونل IPsec یا پایان زمان session، میزبان ها با هم ارتباط برقرار می کنند و خاتمه اتفاق می افتد. پس از خاتمه، میزبان ها کلیدهای خصوصی استفاده شده در حین انتقال داده را از بین می برند.
چگونه از IPsec در VPN استفاده می شود؟
VPN اساساً یک شبکه خصوصی است که در یک شبکه عمومی اجرا می شود. هر کسی که به VPN متصل شود، می تواند به این شبکه خصوصی دسترسی داشته باشد. VPN معمولاً در مشاغل مورد استفاده قرار می گیرد، تا کارمندان بتوانند از راه دور به شبکه خصوصی شرکتی خود دسترسی پیدا کنند.
IPsec معمولاً برای ایمن سازی VPN استفاده می شود. در حالی که VPN یک شبکه خصوصی بین رایانه کاربر و سرور VPN ایجاد می کند. پروتکل های IPsec یک شبکه ایمن را برای محافظت از داده های VPN در برابر دسترسی خارجی، ایجاد می کنند. VPN را می توان با استفاده از یکی از دو حالت IPsec تنظیم کرد: حالت تونل و حالت حمل و نقل.
معرفی انواع حالت های IPsec
به زبان ساده، حالت حمل و نقل (transport mode)، داده ها را زمانی که از یک دستگاه به دستگاه دیگر منتقل می شوند (معمولا در یک session)، ایمن می کند. در مقابل، حالت تونل (tunnel mode) کل مسیر داده را از نقطه A به نقطه B امن می کند بدون اینکه به دستگاه های موجود در میان آن دو نقطه توجه کند.
حالت تونل: حالت tunnel که معمولاً بین درگاه دو شبکه استفاده می شود، به میزبان هایی که پشت یکی از درگاه ها هستند، اجازه می دهد تا با میزبان های پشت دروازه دیگر به صورت ایمن ارتباط برقرار کنند. به عنوان مثال، اگر شرکتی یک شعبه اصلی و چند شعبه فرعی داشته باشد که دارای درگاه های امن به عنوان پروکسی IPsec برای میزبان ها باشد، هر کاربری که از سیستم یک دفتر شعبه فرعی استفاده می کند، می تواند به طور ایمن با هر سیستم در دفتر اصلی ارتباط برقرار کند. تونل IPsec بین دو میزبان درگاه ایجاد شده است، اما این تونل می تواند ترافیک ایجاد شده از سایر میزبان های داخل شبکه را نیز محافظت نماید. حالت تونل برای تنظیم مکانیزمی برای محافظت از تمام ترافیک بین دو شبکه، در انتقال از میان میزبان های متفاوت در هر دو طرف، مفید است.
تصویر (3)
حالت حمل و نقل: حالت حمل و نقل مدار IPsec زمانی است که دو میزبان اتصال مستقیم IPsec VPN را برقرار می کنند. به عنوان مثال، این نوع مدار IPsec ممکن است برای ایجاد دسترسی یک تکنسین پشتیبانی فناوری اطلاعات (IT) جهت ورود به یک سرور از راه دور و انجام کارهای تعمیر و نگهداری، تنظیم شده باشد. حالت حمل و نقل IPsec در مواردی استفاده می شود که یک میزبان نیاز به تعامل با میزبان دیگر داشته باشد. این دو میزبان مستقیماً با مدار IPsec مذاکره می کنند و مدار معمولاً پس از اتمام جلسه بسته می شود.
مقایسه IPsec VPN و SSL VPN
Secure Socket Layer) SSL VPN) روش دیگری برای ایمن سازی اتصال شبکه عمومی است. بسته به موقعیت و شرایط امنیتی می توان از این دو VPN به صورت همزمان و یا جداگانه استفاده کرد.
با استفاده از IPsec VPN، بسته های Ip هنگام ورود و خروج از درگاه IPsec در شبکه های خصوصی یا میزبانها و شبکه های از راه دور، محافظت می شوند. در مقابل SSL VPN از ترافیک در حال حرکت بین کاربران از راه دور و درگاه SSL، محافظت می کند. IPsec VPN ها از تمام برنامه های مبتنی بر IP پشتیبانی می کنند، در حالی که SSL VPN ها فقط از برنامه های مبتنی بر مرورگر پشتیبانی می کنند، البته با سفارشی سازی آنها امکان پشتیبانی از برنامه های دیگر نیز وجود دارد.