پروتکل ipsec چیست و چه کاربردی دارد
با وجود خطراتی که هر لحظه اطلاعات را در بستر شبکه تهدید میکنند، داشتن ارتباطی امن و ارسال بستههای اطلاعاتی به صورت خصوصی و ایمن از اهمیت بالایی برخوردار است. این امکان با استفاده از پروتکل IPSEC فراهم میشود.
IP Sec پروتکل ایجاد ارتباط امن در لایه IP است
برای آشنایی کامل با پروتکل IPSEC، مزایا و نحوه تنظیم آن ادامه مطلب را مطالعه کنید.
فهرست محتوا
Ipsec چیست؟
IPSec یا IP Security مجموعهای از پروتکلها میباشد که وظیفه تبادل اطلاعات امن را در لایه سوم یا همان لایه IP برعهده دارند.
بیشترین کاربرد IPSec، احراز هویت، محرمانگی، یکپارچگی و مدیریت کلید برای شبکههایی که در لایه 3 فعالیت دارند و در تکنولوژی vpn هستند میباشد. IPSec امنیت لازم برای تبادل اطلاعات در سطح شبکه را فراهم میکند و این کار را از طریق پروتکل مدیریت کلید انجام میدهد. به این صورت که فرستنده و گیرنده بسته اطلاعاتی، هر دو یک کلید عمومی را به اشتراک گذاشته و به واسطه آن تبادل اطلاعات امن میکنند. پروتکل کلید عمومی به گیرنده مجوز یافتن کلید عمومی را داده و فرستنده را براساس امضای دیجیتال احراز هویت مینماید.
پیشنهاد مطالعه: آی پی گوشی چیست
مزایایی استفاده از IPSec
- محرمانگی اطلاعات ( استفاده از روش رمزنگاری)
- یکپارچگی اطلاعات
- احراز هویت در لایه شبکه
- احراز منبع و منشاء اطلاعات
- محافظت از حمله replay
پیشنهاد مطالعه: انواع پروتکل های شبکه
پورت آی پی سک
پورتهای استاندارد مورد استفاده توسط IPSec به شرح زیر هستند:
پورت UDP 500 برای پروتکل (Internet Key Exchange) سرنام ISAKMP/IKE برای مذاکره کلید (Key Exchange) استفاده میشود.
پورت UDP 4500 برای پروتکل NAT-T سرنام (Network Address Translation – Traversal) که برای ایجاد تونل IPSec از طریق دستگاههای NAT مورد استفاده قرار میگیرد، کاربرد دارد.
پورت ESP سرنام (Encapsulating Security Payload) که در اصل یک پروتکل بالادستی است و معمولا از پورتهای تصادفی استفاده میکند، پورت دیگری است که توسط IPSec مورد استفاده قرار میگیرد.
در عمل، پورتهای مورد استفاده ممکن است با تنظیمات خاصی تغییر کنند و ممکن است در برخی سناریوها از پورتهای دیگری استفاده شود، اما پورتهای فوق به عنوان پورتهای استاندارد برای IPSec شناخته میشوند.
شناسه IPSec
IPSec مخفف (Internet Protocol Security) یک پروتکل امنیتی است که تامین امنیت در ارتباطات شبکه از طریق اینترنت استفاده میشود. IPSec از شناسههای زیر برای این منظور استفاده میکند:
SPI سرنام (Security Parameter Index): یک شناسه ۳۲ بیتی است که به صورت یکتا برای تمایز بین ترافیک مختلف در یک ارتباط IPSec استفاده میشود. هر بسته IPSec دارای یک SPI است که در هنگام پردازش توسط سرور و یا دستگاه دریافتکننده استفاده میشود.
IPSec Security Associations: شامل اطلاعات امنیتی مربوط به یک ارتباط IPSec است و برای شناسایی و تامین امنیت دادهها استفاده میشود. هر SA دارای دو SPI است: یک SPI برای ترافیک ورودی و یک SPI برای ترافیک خروجی است. این SPIها برای تشخیص و رمزگشایی پکتهای دریافت و ارسال شده استفاده میشوند.
IKE SPI سرنام IKE (Internet Key Exchange) SPI: یک شناسه ۳۲ بیتی است که در فرآیند مذاکره کلید بین دو دستگاه کاربرد دارد. هر دستگاه در فرآیند برقراری اتصال IPSec یک SPI IKE برای تعیین مذاکره کلید استفاده میکند.
نکته مهمی که باید در این زمینه به آن دقت کنید این است که شناسههای IPSec معمولا به صورت دستهای از بیتها یا اعداد هستند که توسط دستگاههای مربوطه استفاده میشوند.
انواع IPSec
همانگونه که اشاره کردیم،IPSec یک پروتکل امنیتی است که برای تامین امنیت ارتباطات شبکه از طریق اینترنت استفاده میشود. IPSec شامل دو بخش اصلی است که AH سرنام (Authentication Header) و ESP سرنام (Encapsulating Security Payload) نام دارند. هر دو این بخشها به صورت جداگانه یا همزمان قابل استفاده هستند. عملکرد این بخشها به شرح زیر است:
AH سرنامAuthentication Header : برای ارائه اعتبار و امنیت دادهها استفاده میشود. این بخش امضا دیجیتالی را بر روی بستههای IP اعمال میکند تا اطمینان حاصل شود که دادهها تغییر نکردهاند و از منبع معتبری فرستاده شدهاند. AH از الگوریتمهای هش و متن باز (مانند HMAC) برای ایجاد امضا استفاده میکند.
ESP سرنامEncapsulating Security Payload : برای حفظ حریم خصوصی و امنیت دادهها استفاده میشود. این بخش از الگوریتمهای رمزنگاری (مانند AES، 3DES) برای رمزگشایی و رمزنگاری دادهها استفاده میکند. همچنین، ESP میتواند امضا دیجیتالی را نیز بر روی دادهها اعمال کند (مشابه AH) تا اعتبار دادهها را تضمین کند.
به طور کلی، IPSec در دو زمینه زیر مورد استفاده قرار میگیرد:
Tunnel Mode: در این حالت، بستههای IP کامل رمزگشایی و رمزنگاری میشوند و در بستههای جدیدی با سرآیند IPSec قرار میگیرند. این حالت معمولا برای ایجاد تونل امن بین دو شبکه مورد استفاده قرار میگیرد.
Transport Mode: در این حالت، فقط بخشهای دادهای (Payload) بستههای IP رمزگشایی و رمزنگاری میشوند و سرآیند IPSec به آنها افزوده نمیشود. این حالت معمولا برای برقراری ارتباط امن بین دو دستگاه مورد استفاده قرار میگیرد.
در IPSec، AH و ESP میتوانند به صورت جداگانه یا همزمان استفاده شوند. در صورت استفاده همزمان، AH قبل از ESP اعمال میشود و تضمین میکند که دادهها تغییر نکردهاند و سپس ESP اعمال میشود تا آنها را رمزگشایی و رمزنگاری کند.
کلید مشترک IPSec
پروتکل IPSec برای تبادل امن اطلاعات از کلیدهای امنیتی استفاده میکند. در ادامه توضیحات کاملی در خصوص کلیدهای این پروتکل و کاربرد آنها ارائه خواهیم داد.
- Key exchange: کلید رشتهای از حروف تصادفی است که برای رمزگذاری و رمزگشایی بستههای اطلاعاتی مورد استفاده قرار میگیرد. برای استفاده از پروتکل IPSec وجود کلید الزامی است.
- IPSec کلیدهایی را با key exchange بین دستگاههای فرستنده و گیرنده تنظیم میکند به نحوی که هر دستگاه امکان رمزگشایی پیام دستگاه دیگری را داشته باشد.
- Packet headers and trailers: دادههایی که در سطح شبکه ارسال میشوند به قسمتهای کوچکی به نام پکت تبدیل شده که این پکتها دارای دو قسمت هستند بخش Payload که دادههای واقعی هستند و بخش header که شامل اطلاعات راهنما برای دستگاه گیرنده است. در این میان IPSec چند header شامل اطلاعات رمزگذاری و احراز هویت به بستههای در حال ارسال اضافه میکند. IPSec چندین trailer نیز اضافه میکند تا به جای این که قبل از هر payload قرار گیرد، بعد از آن قرار گیرد.
- Authentication: هر پکت اطلاعاتی که موفق به دریافت تاییدیه اعتبار از IPSec شود نشان اصالت خود را دریافت کرده و مشخص میشود این بسته از منبعی مطمئن ارسال شده است.
- Encryption: پروتکل IPSec دادهها و header هر پکت را رمزگذاری میکند. (البته به شرط استفاده از حالت Transport) این عملیات سبب میشود تا دادههای ارسالی از روش IPSec خصوصی و ایمن بمانند.
- Transmission: برای ارسال بستههای اطاعاتی IPSec از پروتکل Transport استفاده میشود. ترافیک ایجاد شده توسط بستههای IPSec با ترافیک IP متفاوت است و معمولا از UDP به عنوان پروتکل Transport استفاده میشود.
- Transmission Control Protocol: وظیفه برقراری ارتباط اختصاصی بین دستگاهها را برعهده دارد و همچنین تضمین میکند که تمام بستهها به مقصد برسند.
- Decryption: در مقصد پکتهای دریافتی رمزگشایی میشوند و برنامههایی مانند مرورگرها میتوانند از دادههای دریافت شده، استفاده کنند.
راه اندازی IPSec
برای پیاده سازی IPSEC باید در مورد عناصر آن بیشتر بدانید. IPSEC شامل 5 عنصر زیر است :
- پروتکلهای اصلی IPSec: پیاده سازی ESP و AH هستند، در این نوع پیاده سازی header ها توسط فرآیند داخلی با SPD و SADB امنیت بستهها را تامین میکنند.
- SADB: وظیفه نگهداری لیست SAهای فعال را در مسیرهای ورودی و خروجی برعهده دارد و با کمک مدیریت کلید اتوماتیک مثل IKE یا به صورت دستی از SA های معمول پشتیبانی میکند.
- SPD: تعیین کننده امنیت بسته در هر دو مسیر ورودی و خروجی است. برای بررسی امنیت بسته با ساختار امنیتی در پالیسی، عناصر پروتکل مرکزی IPSEC، با SPD مشورت میکنند. از طرفی هم در فرآیند پردازش خروجی بسته پروتکل مرکزی IPSec با SPD برای تعیین نیاز بسته خروجی به امنیت، مشورت میکند.
- Internet Key Exchange: فرآیندی امنیتی در سطح کاربر و برای تمام سیستم عاملهاست. اما جزو پیش فرضهای سیستم عامل نیست فقط در روترها بصورت پیش فرض به عنوان یک نود در شبکه وجود دارد. وظیفه فراخوانی هسته مرکزی پالیسی در دو حالت IKE را برای زمانی که ارتباط امن نیاز است برعهده دارد.
- Policy and SA management: مجموعه نرم افزاری برای مدیریت پالیسی و SA
سرویس IPSec
استاندارد مورد استفاده پروتکل IPSec استاندارد RFC (Request for Comments) است که برای توسعه الزامات امنیتی شبکه کاربرد دارد، RFC اطلاعات مهمی مربوط به ایجاد و مدیریت و نگهداری شبکه به کاربران در تمام شبکه اینترنت ارائه میدهد. پروتکلهای اصلی IPSec شامل موارد زیر هستند:
- IP HA: این پروتکل وظیفه فراهم کردن یکپارچگی دادهها و خدمات حفاظت در انتقال را برعهده دارد. AH به بسته اطلاعاتی افزوده شده تا اطلاعات مربوط به احراز هویت را ارائه کند و از تصرف اطلاعات جلوگیری کند.
- IP ESP: با روش رمزگذاری بستههای اطلاعاتی امکان احراز هویت، یکپارچگی و محرمانگی را فراهم میکند.
- IKE: پروتکلی است که امکان ایجاد کانال ارتباطی امن را در بستر شبکهای غیرقابل اعتماد برای دو دستگاه فرستنده و گیرنده فراهم میکند. . این پروتکل از تعدادی کلید تبادل برای ایجاد یک تونل امن بین سرویس گیرنده و سرور استفاده میکند که از طریق آن تونل میتوانند دادههای رمزگذاری شده را ارسال کنند.
- ISAKMP) Internet Security Association and Key Management Protocol): اصلیترین پروتکل برای ایجاد کلید، احراز هویت و پارامترهای SA برای تبادل امن بستهها در لایه IP است. در واقع ISAKMP پارامترهای امنیتی را برای نحوه ارتباط دو سیستم یا میزبان با یکدیگر تعریف میکند. هر SA اتصال را در یک جهت، از یک میزبان به سمت دیگر تعریف میکند. SA شامل تمام ویژگیهای اتصال، از جمله الگوریتم رمزنگاری، حالت IPsec، کلید رمزگذاری و سایر پارامترهای مربوط به انتقال داده برای اتصال است.
نحوه کار IPSec
نحوه کارکرد پروتکل IPSec به شرح زیر است:
مذاکره کلید (Key Exchange): در ابتدا، دو طرف (مانند دو دستگاه یا دو سرور) که قصد برقراری ارتباط امن با یکدیگر را دارند، باید کلیدهای امنیتی را مبادله کنند. برای این کار، اغلب از پروتکل IKE سرنام (Internet Key Exchange) استفاده میشود. در این فرآیند، دو طرف مذاکره کلید، تبادل اطلاعات امنیتی و توافق بر روی الگوریتمهای رمزنگاری و امضاگذاری را انجام میدهند تا بتوانند از کلیدهای مشابه برای رمزگشایی و رمزنگاری دادهها استفاده کنند.
انجمن امنیتی (Security Associations): پس از مذاکره کلید، هر دستگاه یا سرور یک یا چند (SA) سرنام Security Association را برای ارتباط با دیگر ایجاد میکنند. SA شامل اطلاعات امنیتی مربوط به ارتباط است که شامل الگوریتمهای رمزنگاری و امضاگذاری، کلیدهای رمزنگاری و سایر پارامترهای امنیتی است. هر SA دارای یک (SPI) سرنام Security Parameter Index است که برای شناسایی ترافیک ورودی و خروجی استفاده میشود.
رمزگشایی و رمزنگاری (Encryption and Decryption): پس از ایجاد SA، دادههایی که باید از یک طرف به طرف دیگر ارسال شوند، رمزگشایی و رمزنگاری میشوند. این کار توسط بخشهای IPSec به نام (AH) سرنامAuthentication Header و (ESP) سرنام Encapsulating Security Payload انجام میشود. AH مسئول امضاگذاری دادهها و تضمین اعتبار آنها است، در حالی که ESP مسئول رمزنگاری و حفظ حریم خصوصی دادهها است.
ترافیک IPSec: پس از رمزگشایی و رمزنگاری، بستههای IPSec ایجاد شده که شامل دادههای رمزگشایی و رمزنگاری شده است که از طریق شبکه ارسال میشوند. این بستهها معمولا به عنوان بستههای IP معمولی بدون هیچ تغییری در ویژگیهای آدرسدهی و سرویسهای شبکه ارسال میشوند.
راه اندازی و تنظیم IPSec
- برای تنظیم IPSEC باید به تنظیمات Group Policy ورود کنید.
- در کنسول Group Policy Management روی نام Forest کلیک کنید تا زیرشاخههای آن نمایش داده شود.
- روی Domains کلیک کنید، نام دامنه مورد نظر را انتخاب کنید.
- وارد تنظیمات Default Domain Policy شوید. راست کلیک کرده و گزینه Edit را بزنید.
- برای دسترسی به پالیسیهای IPSEC به مسیر زیر در داخل این کنسول بروید تا تصویر زیر را مشاهده کنید.
Computer configuration>policies>windows Setting>security setting>IP Security policies on Active Directory
در این کنسول سه پالیسی در سطحهای متفاوت امنیتی در دسترس قرار دارد
- میتوانید از پالیسیهای موجود استفاده کنید و آنها را بر اساس نیاز خود تنظیم یا اینکه با راست کلیک کردن در این بخش و انتخاب گزینه Create IP Security Policy مطابق تصویرزیر اقدام به ایجاد یک پالیسی جدید کنید.
- در حالت معمول برای اینکه از این پالیسیها استفاده کنید، میتوانید بر روی آنها راست کلیک و از گزینه Assign استفاده کنید.
- در این حالت پالیسی برای Domain اعمال میشود. اگر بخواهید این پالیسی را لغو کنید مانند تصویرزیر دوباره روی پالیسی مورد نظر راست کلیک و گزینه Un-assign را انتخاب کنید.
IPSec Identifier چیست؟
IPSec Identifier به عنوان یک مفهوم عمومی در IPSec استفاده میشود و به هویت یک موجودیت (مانند دستگاه یا کاربر) در فرآیندهای مربوط به IPSec اشاره دارد. Identifier برای شناسایی و تفاوت قائل شدن میان انواع مختلف هویتها در IPSec استفاده میشود. در IPSec، هویتها ممکن است با استفاده از مقادیر مختلفی شناسایی شوند، اعم از نشانی IP، نام کاربری، شناسه یکتا و غیره. این مقادیر بسته به سناریوهای مورد استفاده و نوع پیادهسازی IPSec ممکن است متفاوت باشند.
به عنوان مثال، در پروتکل IKE که برای مذاکره کلید در IPSec استفاده میشود، میتوان از سه نوع Identifier به شرح زیر استفاده کرد:
IP Address: هویت با استفاده از نشانی IP دستگاه تعیین میشود. در این حالت، هویت به صورت آدرس IP دستگاه مقصد مشخص میشود.
پیشنهاد مطالعه : آیپی چیست؟
FQDN سرنام Fully Qualified Domain Name: هویت با استفاده از نام کامل دامنه (FQDN) تعیین میشود. به عنوان مثال، example.com.
User FQDN: هویت با استفاده از نام کاربری و نام کامل دامنه (FQDN) تعیین میشود. به عنوان مثال، [email protected].
با استفاده از این Identifiers، میتوان هویتها را در فرآیندهای مختلف مانند مذاکره کلید، تعیین سیاستهای امنیتی و مدیریت شناسهها در IPSec مشخص کرد.