هر بار که صفحهای باز میکنید، پیامی ارسال میکنید یا اطلاعاتی منتقل میشود، بستههای داده از شبکههای مختلف عبور میکنند. این مسیر طولانی در معرض شنود، دستکاری و حمله است. IPsec یکی از پایهایترین فناوریهایی است که این مسیر را ایمن نگه میدارد و پشت بسیاری از VPNها، سیستمهای بانکی و ارتباطات سازمانی پنهان است.
IPsec چیست؟
پروتکل IPsec که مخفف Internet Protocol Security است، مجموعهای از پروتکلها و الگوریتمهاست که برای ایمنسازی ارتباطات در لایه شبکه (Layer 3) طراحی شده. این پروتکل توسط گروه IETF در دهه ۱۹۹۰ توسعه یافت با هدف اصلی فراهمکردن احراز هویت و رمزگذاری برای بستههای IP.
مفهوم Packet یا بسته را بدانید: هر اطلاعاتی که از طریق اینترنت منتقل میشود به قطعات کوچکتری به نام بسته تقسیم میشود. هر بسته مسیر خودش را میپیماید و در مقصد دوباره جمع میشوند. IPsec همین بستهها را قبل از ارسال رمزگذاری و احراز هویت میکند.
IPsec برای چه مواردی استفاده میشود؟
این پروتکل در سناریوهای متعددی به کار میرود:
- محافظت از تراکنشهای مالی: اطلاعات حساب بانکی، تراکنشهای آنلاین و سوابق پزشکی از جمله دادههایی هستند که با IPsec محافظت میشوند.
- VPN سازمانی: وقتی کارمندی از خانه به شبکه شرکت وصل میشود، اغلب از VPN مبتنی بر IPsec استفاده میکند.
- ارتباط بین دفاتر: Site-to-Site VPN که دو شعبه یک شرکت را از طریق اینترنت عمومی به هم متصل میکند، معمولاً با IPsec پیادهسازی میشود.
- امنیت مسیریابی: روترهایی که دادههای مسیریابی را از طریق اینترنت عمومی ارسال میکنند میتوانند با IPsec این ارتباط را رمزگذاری کنند.
پروتکلهای اصلی IPsec
IPsec از سه پروتکل اصلی تشکیل شده است که هر کدام نقش متفاوتی دارند:
AH یا Authentication Header
این پروتکل احراز هویت بستههای IP را فراهم میکند. یک امضای دیجیتال به بسته اضافه میشود که گیرنده میتواند با آن مطمئن شود بسته از منبع اصلی آمده و در مسیر دستکاری نشده. AH رمزگذاری نمیکند؛ فقط صحت داده را تضمین میکند. برای مقابله با حملات Replay هم سرویس ضدپخشمجدد ارائه میدهد.
ESP یا Encapsulating Security Payload
ESP هم احراز هویت میکند و هم رمزگذاری. محتوای بسته IP را با الگوریتمهایی مثل AES-256 رمزگذاری میکند. در اکثر پیادهسازیهای امروزی، ESP به تنهایی استفاده میشود چون هم رمزگذاری دارد هم احراز هویت.
IKE یا Internet Key Exchange
IKE پروتکلی است که دو طرف ارتباط را قادر میسازد یک کانال امن برای تبادل کلیدهای رمزگذاری بسازند. بدون IKE، مشکل «چطور کلید رمزگذاری را امن منتقل کنیم؟» حلنشده میماند. IKE در دو مرحله کار میکند:
- IKE Phase 1: یک کانال امن بین دو میزبان ایجاد میکند. در اینجا هویتها احراز میشوند و یک SA (Security Association) اصلی برقرار میشود.
- IKE Phase 2: با استفاده از کانال ایجادشده در مرحله اول، SA واقعی برای تبادل دادهها مذاکره میشود. نوع الگوریتم رمزگذاری، طول کلید و مدت اعتبار SA در این مرحله تعیین میشوند.
نحوه کارکرد IPsec مرحله به مرحله
شناسایی ترافیک نیازمند محافظت
ابتدا Policy IPsec مشخص میکند کدام ترافیک باید امن شود. مثلاً ممکن است تصمیم بگیرید تمام ترافیک به یک آدرس IP خاص از IPsec استفاده کند.
مذاکره و برقراری SA
وقتی یک بسته شناسایی شد که نیاز به IPsec دارد، میزبان فرستنده شروع به مذاکره IKE میکند. در این مذاکره الگوریتم رمزگذاری، الگوریتم احراز هویت و مدت اعتبار SA توافق میشود.
رمزگذاری و ارسال
پس از برقراری SA، بستهها رمزگذاری و با یک Header IPsec به شبکه ارسال میشوند. ESP معمولاً هم دادهها را رمزگذاری میکند هم یک MAC (Message Authentication Code) برای احراز صحت اضافه میکند.
دریافت و رمزگشایی
گیرنده Header IPsec را میبیند، SA مناسب را پیدا میکند، صحت بسته را تأیید میکند و داده را رمزگشایی میکند.
پایان SA
SA یک مدت اعتبار دارد (مثلاً ۸ ساعت یا ۴ گیگابایت داده). وقتی منقضی شد، کلیدها از بین میروند و برای ارتباط جدید باید مذاکره جدید IKE انجام شود.
حالتهای عملکرد IPsec
IPsec در دو حالت کار میکند:
حالت انتقال (Transport Mode): فقط Payload بسته IP رمزگذاری میشود. Header اصلی IP دستنخورده میماند. این حالت برای ارتباط مستقیم بین دو میزبان استفاده میشود.
حالت تونل (Tunnel Mode): کل بسته IP اصلی رمزگذاری شده و داخل یک بسته IP جدید قرار میگیرد. این روش در VPN استفاده میشود چون مقصد واقعی هم پنهان میماند.
IPsec در VPN چطور کار میکند؟
VPN یک شبکه خصوصی مجازی است که روی شبکه عمومی (اینترنت) ایجاد میشود. IPsec در VPN به این صورت عمل میکند:
- دستگاه کاربر و سرور VPN از طریق IKE یک SA ایجاد میکنند.
- تمام ترافیک کاربر رمزگذاری شده و به سرور VPN ارسال میشود.
- سرور VPN ترافیک را رمزگشایی و به مقصد واقعی هدایت میکند.
- پاسخ از مقصد به سرور VPN برمیگردد، دوباره رمزگذاری میشود و به کاربر ارسال میشود.
IPsec/IKEv2 یکی از سریعترین و امنترین پروتکلهای VPN است و در سیستمهای عامل iOS، Android و ویندوز به صورت بومی پشتیبانی میشود.
مقایسه IPsec با SSL/TLS
IPsec در لایه شبکه (Layer 3) کار میکند و تمام ترافیک IP را ایمن میکند. SSL/TLS در لایه اپلیکیشن کار میکند و فقط ترافیک یک اپلیکیشن خاص را ایمن میکند. VPNهای مبتنی بر SSL (مثل OpenVPN) نیاز به نرمافزار client دارند اما از فایروالها بهتر عبور میکنند. IPsec کارایی بهتری در ترافیک حجیم دارد و در اغلب روترهای سازمانی به صورت سختافزاری پشتیبانی میشود.
IPsec در مقابل WireGuard: مقایسه دو رویکرد
WireGuard یک پروتکل VPN نسبتاً جدید است که در سالهای اخیر محبوبیت زیادی کسب کرده. در مقایسه با IPsec:
- کد: WireGuard تنها حدود ۴۰۰۰ خط کد دارد در حالی که IPsec/strongSwan صدها هزار خط دارد. کد کمتر یعنی سطح حمله کمتر.
- سرعت: WireGuard به دلیل طراحی سادهتر اغلب سریعتر است.
- انعطاف: IPsec تنوع الگوریتمی بیشتری دارد و در محیطهای سازمانی با تجهیزات متنوع بهتر کار میکند.
- پشتیبانی: IPsec به صورت بومی در اکثر روترهای سازمانی پشتیبانی میشود، WireGuard این پشتیبانی گسترده را ندارد.
برای محیطهای سازمانی بزرگ که به تجهیزات متعدد متصل هستند، IPsec همچنان انتخاب اول است. برای سرورهای شخصی یا تیمهای کوچک، WireGuard میتواند گزینه جذابتری باشد.
سوالات متداول
IPsec با چه پورتهایی کار میکند؟
IPsec از پروتکلهای UDP و ESP استفاده میکند. IKE روی UDP پورت ۵۰۰ کار میکند. وقتی NAT در مسیر است، NAT-T از UDP پورت ۴۵۰۰ استفاده میکند. پروتکل ESP (IP Protocol 50) و AH (IP Protocol 51) هم پروتکلهای لایه IP هستند، نه پورت TCP/UDP. برای عبور IPsec از فایروال باید هر سه (UDP 500، UDP 4500 و Protocol 50) باز باشند.
تفاوت IKEv1 و IKEv2 چیست؟
IKEv2 نسخه جدیدتر است و مزایای قابلتوجهی دارد: سریعتر، سادهتر و امنتر. پشتیبانی از MOBIKE در IKEv2 به این معناست که وقتی دستگاه شما از Wi-Fi به شبکه موبایل سوئیچ میکند، اتصال VPN قطع نمیشود. اکثر پیادهسازیهای جدید از IKEv2 استفاده میکنند.
آیا IPsec قابل هک است؟
پروتکل خودش با پیادهسازی صحیح بسیار امن است. اما ضعفهای اجرایی مثل استفاده از Pre-Shared Key ساده، الگوریتمهای قدیمی مثل DES یا 3DES، یا پیکربندی نادرست میتوانند آسیبپذیری ایجاد کنند. توصیه میشود از AES-256 با SHA-256 یا SHA-384 استفاده شود.
آیا همه فایروالها از IPsec پشتیبانی میکنند؟
اکثر فایروالهای سازمانی بله. اما برخی فایروالهای خانگی ممکن است بعضی پورتهای مورد نیاز IPsec (UDP 500، UDP 4500) را مسدود کنند. IPsec Passthrough یا NAT-T برای این مشکل طراحی شده است.
فرق IPsec VPN با MPLS چیست؟
MPLS یک فناوری شبکه سطح پایینتر است که معمولاً توسط ISPها ارائه میشود و پهنای باند اختصاصی با تضمین کیفیت سرویس دارد. IPsec VPN روی اینترنت عمومی کار میکند و ارزانتر است اما کیفیت سرویس تضمینشده ندارد. برای اتصال دفاتر شعبه به دفتر مرکزی، IPsec VPN اغلب گزینه مقرونبهصرفهتری است.
جمعبندی
پیکربندی ابتدایی IPsec در لینوکس
اگر میخواهید IPsec را در محیط لینوکس تجربه کنید، ابزار strongSwan یکی از پرکاربردترین گزینههاست. نصب آن روی Ubuntu/Debian ساده است:
sudo apt-get install strongswan strongswan-pki libcharon-extra-plugins
فایل اصلی پیکربندی در /etc/ipsec.conf قرار دارد. یک تونل ساده Site-to-Site در این فایل چنین تعریف میشود:
conn my-tunnel
left=%defaultroute
leftid=@site1
right=203.0.113.1
rightid=@site2
ike=aes256-sha256-modp2048!
esp=aes256-sha256!
auto=start
در اینجا پارامتر ike الگوریتم مورد استفاده در مرحله IKE را مشخص میکند و esp الگوریتم رمزگذاری دادههای واقعی را. استفاده از AES-256 با SHA-256 و گروه Diffie-Hellman 2048 بیتی ترکیب امن و مدرنی است.
نقاط ضعف IPsec که باید بدانید
هیچ فناوریای بینقص نیست و درک محدودیتها به همان اندازه درک قابلیتها اهمیت دارد. IPsec هم محدودیتهایی دارد که باید از آنها آگاه باشید تا پیادهسازی درستی داشته باشید:
- پیچیدگی پیکربندی: IPsec در مقایسه با SSL VPN پیچیدگی بیشتری در راهاندازی دارد. یک اشتباه کوچک در پیکربندی میتواند سیستم را آسیبپذیر کند.
- مشکل با NAT: بعضی پیادهسازیهای IPsec با ترجمه آدرس شبکه (NAT) مشکل دارند که با NAT-T حل میشود.
- عملکرد در شبکههای پرترافیک: رمزگذاری و رمزگشایی در حجم بالا به پردازنده فشار میآورد که با کارتهای شبکه با شتابدهنده سختافزاری برطرف میشود.
- الگوریتمهای قدیمی: IPsec با الگوریتمهای قدیمی مثل DES یا MD5 که دیگر امن نیستند هم کار میکند. پیکربندی درست برای اجبار به استفاده از الگوریتمهای مدرن ضروری است.
جمعبندی
IPsec یکی از ستونهای امنیت شبکههای مدرن است. با سه پروتکل AH، ESP و IKE و دو حالت Tunnel و Transport، ابزاری انعطافپذیر برای ایمنسازی ارتباطات در سطح شبکه فراهم میکند. از VPNهای سازمانی گرفته تا ارتباط امن بین دیتاسنترها، IPsec در پسزمینه زیرساختهای دیجیتالی که هر روز استفاده میکنیم، کار میکند. درک نحوه کارکرد آن به هر متخصص شبکهای کمک میکند تا زیرساختهای امنتری طراحی کند و در مواجهه با تهدیدات بهتر واکنش نشان دهد. در صبا هاست تمام تلاشمان را نمودیم به صورت ساده در رابطه با پروتکل IPsec برای شما مطالبی را شرح دهیم.