آی‌پی‌سک

IPsec یا همان Internet Protocol security عبارت است از مجموعه‌ای از چندین پروتکل که برای ایمن‌سازی پروتکل اینترنت در ارتباطات بوسیله احراز هویت و رمزگذاری در هر بسته(packet) در یک سیر داده به کار می‌رود. این پروتکل محصول مشترک مایکروسافت و سیسکو سیستمز می‌باشد که در نوع خود جالب توجه است.
مزایا
IPsec بر خلاف دیگر پروتکلهای امنیتی نظیر SSL, TSL, SSH که در لایه انتقال (لایه ۴) به بالا قرار دارند در لایه شبکه یا همان لایه ۳ مدل مرجع OSI کار می‌کند یعنی لایه که آی پی در آن قرار دارد که باعث انعطاف بیشتر این پروتکل می‌شود به‌طوری‌که می‌تواند از پروتکل‌های لایه ۴ نظیر تی سی پی و یو دی پی محافظت کند.
مزیت بعدی IPsec به نسبت بقیه پروتکلهای امنیتی نظیر اس اس ال این است که: نیازی نیست که برنامه بر طبق این پروتکل طراحی شود.
ساختار
خانواده پروتکل IPSec شامل دو پروتکل است. یعنی سرآیند احراز هویت یا AH یا همان authentication header وESP هر دوی این پروتکل‌ها از IPSec مستقل خواهد بود.
پروتکل AH
بطور خلاصه پروتکل AH در واقع تامین‌کننده سرویس‌های امنیتی زیر خواهد بود:
تمامیت داده ارسالی
تصدیق هویت مبدا داده ارسالی
رد بسته‌های دوباره ارسال شده
این پروتکل برای تمامیت داده ارسالی از HMAC استفاده می‌کند و برای انجام این کار مبنای کارش را مبتنی بر کلید سری قرار می‌دهد که payload پکت و بخش‌هایی تغییرناپذیر سرآیند IP شبیه IP آدرس خواهد بود. بعد از اینکار این پروتکل سرآیند خودش را به آن اضافه می‌کند در شکل زیرسرآیندها و فیلدهای AH نمایش داده شده‌است.
۰–۷ بیت
۸–۱۵ بیت
۱۶–۲۳ بیت
۲۴–۳۱ بیت
next header
Payload طول
رزرو
Security parameters index SPI
Sequence number
Authentication data (متغیر)
سرآیند 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 شامل دو بخش است که مطابق شکل زیر نمایش داده شده‌است.
۰–۷ بیت
۸–۱۵ بیت
۱۶–۲۳ بیت
۲۴–۳۱ بیت
Security parameters index
Sequence number
Payload data (متغیر)
لاگذاری (۲۵۵–۰ بایت)
Pad Length
Next Header
Authentication Data (متغیر)
۱. اولین ۳۲ بیت سرآیند 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 ندارد و این بخش هنوز هم ممکن است بخشی از IPSec باشد و با آن ترکیب گردد. برگردان نشانی شبکه پیمایشی (NAT-Traversal) راه حلی است در کپسوله کردن پکت‌های ESP به همراه پکت‌های UDP. در شکل زیر حالتهای انتقال و تونل در پروتکلESP به نمایش درآمده‌است.
همان‌طور که می‌بینید این پروتکل در این دو حالت ارتباط امن بین دو نقطه انتهائی که در دو شبکه مجزا قرار دارند را فراهم می‌آورد، همچنین ارتباط امن بین دو نقطه در یک شبکه داخلی و یک نقطه انتهائی و یک مسیر یاب یا حفاظ دیواره آتش (Firewall) را ممکن می‌سازد.
انجمن امنیتی
معماری امنیتی با استفاده از مفهوم انجمن امنیتی (security association) مبنایی یرای ایجاد توابع امنیتی در IP است. انجمن امنیتی یک بسته ساده از الگوریتم‌ها و پارامترها (مثل کلیدها) ست که در رمزگذاری و احرازهویت یک جریان خاص در یک جهت استفاده می‌شود؛ بنابراین در ترافیک‌های دوطرفه از یک جفت انجمن امنیتی، برای امن کردن استفاده می‌شود. انجمن امنیتی با استفاده از انجمن امنیت اینترنت و پروتوکل مدیریت کلید (ISAKMP) ایجاد شده‌است. ISAKMP توسط پیکربندی دستی و با رمزهای مشترک قبلی پیاده‌سازی می‌شود.
در مالتی کست، انجمن امنیتی برای گروه فراهم می‌شود و Duplicate در تمام گیرنده‌های مجاز گروه اتفاق می‌افتد. ممکن است برای یک گروه بیش از یک انجمن امنیتی با استفاده از SPIsهای مختلف وجود داشته باشد که در نتیجه سطوح امنیتی مختلفی در یک گروه ایجاد می‌کند.
حالت‌های عمل
IPSEC می‌تواند حالت انتقال هاست به هاست را در شبکه و درمد تونل پیاده‌سازی کند.
حالت انتقال
در مد انتقال تنها پیلود بسته‌های IP معمولا به صورت رمزگذاری شده یا معتبر است از آنجایی که هدر IP نه تغییر داده شده و نه رمز شده‌است، با این حال زمانی که هدر احراز هویت می‌شود، IP آدرس را نمی‌تواند ترجمه کند که این مقدار hash بی‌اعتبار است. لایه انتقال و لایه کاربرد معمولا به وسیله hash امن می‌شوند؛ بنابراین آن‌ها نمی‌توانند به هیچ وجه تغییر پیدا کنند (به عنوان مثال با ترجمه شماره پورت).
حالت تونل
در مد تونل تمام بسته‌های اطلاعاتی IP رمزگذاری و احراز هویت می‌شوند. پس از آن در یک بسته IP جدید با یک سرآیند جدید کپسوله می‌شوند.
حالت تونل برای ایجاد شبکه خصوصی مجازی در ارتباطات شبکه به شبکه (به عنوان مثال بین روتر و لینک سایت)، ارتباطات هاست به شبکه (مانند دسترسی به کاربر از راه دور) و ارتباطات هاست به هاست (مانند چت خصوصی) استفاده می‌شود.
الگوریتم‌های رمزنگاری
الگوریتم‌های رمزنگاری تعریف شده برای استفاده با IPSEC شامل:
SHA1-HAMC برای حفاظت از صداقت و صحت
CBC-TRIPLE DES برای محرمانگی
AES برای قابلیت اعتماد
پیاده‌سازی‌های نرم‌افزار
پیاده‌سازی‌های موجود IPSEC معمولا شامل AH,ESP و IKE V2 می‌باشد. پیاده‌سازی IPSEC موجود روی سیستم عامل‌های شبه یونیکس، مانند سولاریس یا لینوکس معمولا شامل PF-KEY V2 هستند.
وضعیت استانداردها
IPSEC معمولا در ارتباط با IP V6 توسعه داده شد و در اصل در تمام پیاده‌سازی‌های استاندارد از IPV6، IPSEC مورد نیاز است.
IPSEC برای پیاده‌سازی IPV4 اختیاری است و در IPV4 اغلب برای ایمن‌سازی ترافیک مورد استفاده قرار می‌گیرد. پروتوکل IPSEC در اصل در RFC 182 و RFC 1829 تعریف شد که در سال ۱۹۹۵ منشر شد. در سال ۱۹۹۸ این اسناد توسط RFC 2401 و RFC 2412 با جزییات مهندسی ناسازگار جایگزین شدند اگرچه از لحاظ مفهومی یکسان بودند. IP SEC نسل سوم استانداردهاست.