IPSec چیست؟ معرفی الگوریتم ها و روشهای احراز هویت و رمزنگاری

يك VPN مسيري امن را در بطن يك شبكه عمومي و صد البته غير امن، ايجاد مي‌كند. اين مكانيسم، راهكاري براي شركت‌ها مي‌باشد تا فارغ از هزينه بالاي خطوط اختصاصي (Lease line)، بتوانند ارتباط بين كاربران و دفاتر خود را در مكان‌هاي مختلف جغرافيايي، برقرار كنند.در بيشتر مواقع VPN، راهكاريست براي ايجاد مسيري امن،به منظور اشتراك گذاري ايميل‌ها، پرينترها، اسناد و سيستم‌هاي يك شركت در دل بزگترين شبكه عمومي جهان يعني اينترنت.اگر بخواهيم اهداف اصلي در استفاده از تكنولوژي VPN را نام ببريم، مي‌توانيم آن‌ها را در دوسته اصلي طبقه بندي نماييم:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
  • Client VPNsها: ارتباط بين كاربران خانگي يا رومينگ يك دفتر/شعبه را برقرار مي‌كند.
  • Site-to-Site VPNها: ارتباط بين دفاترشعبات با دفترشعبه اصلي برقرار مي‌كند.

IPSec چيست؟

IPSec، كوتاه شده عبارت IP Security است و مجموعه‌اي از پروتكل‌ها، استانداردها و الگوريتم‌ها به منظور امن كردن ترافيك تحت يك شبكه نا مطمئن مثل اينترنت مي‌باشد.IOS هاي سيسكو و فايروال‌هاي PIX هم IPSec را پشتيباني مي‌كنند.IPSec چهارسرويس اصلي را ارائه مي‌كند:

  • محرمانگي ___ با استفاده از رمزنگاري، از سرقت اطلاعات جلوگيري مي‌كند.
  • يكپارچگي___ با استفاده از الگوريتم هشينگ (Hashing) از عدم دستكاري يا تغير در ترافيك اطمينان حاصل مي‌كند.
  • تصديق اعتبار (Authentication)___ هويت ارسال كننده ديتا را با استفاده از pre-shared key ها يا يك CA78ررسي مي‎كند.
  • ضد تكرار(Anti-replay)___ از تكرار بسته‌هاي رمز شده با استفاده از تخصيص يك شماره ترتيب‌دهي(sequencing number) منحصر بفرد، جلوگيري مي‌كند.

استاندارد IPSec در RFC شماره 2401، توضيح داده شده است.

محرمانگي و رمزنگاري در IPSec

ديتاي ارسال شده بر روي اينترنت اگر بصورت غير رمز شده (clear-text) باشد، بسادگي رهگيري شده و به سرقت مي‌رود. بخاطر همين موضوع، اطلاعات حساس بايد در حين عبور از يك شبكه يا دومين نامطمئن رمز نگاري شوند.كليدها (Keys) مقادير توليد شده‌اي هستند كه هم براي رمزنگاري ديتا بكار مي‌روند و هم براي باز كردن رمز آن‌ها. كليدي كه رشته مقادير آن طولاني‌تر باشد، قوي‌تر و امن‌تر است. طول يك كليد بر حسب بيت اندازه‌گيري مي‌شود.دو نوع از كليدهايي كه وجود دارند:

  • كليد هاي متقارن (Symmetric) كه در رمز كردن و در رمزگشايي ديتا كاربرد دارد. نكته مورد توجه در مورد اين كليد اينست كه همان كليدي كه بسته را در دستگاه فرستنده رمز مي‌كند، در طرف گيرنده نيز بسته را رمزگشايي مي‌كند. رمزنگاري با استفاده از كليد متقارن تاثير گذار است ولي در محيط‌هاي بزرگ جواب نمي‌دهد.كليدهاي متقارن قبل از جابجايي ديتا بايد روي هركدام از ماشين هاي مبداء و مقصد نصب گردند كه با روش هاي مختلفي(ناكارا و نا امن) از جمله ايميل، sneaker-net و گاهي اوقات snail-mail اين كار انجام مي‌شود.هر ماشين در شبكه به كليد متقارن ماشين ديگر نياز دارد.
  • كليدهاي نامتقارن (Asymmetric keys) كه براي رمزنگاري به كليدهاي متفاوتي نياز دارد؛ كليد عمومي و كليد خصوصي. كليدهاي عمومي آزادانه به منظور رمزنگاري ديتاهاي جابجا شده، بين ماشين‌هاي شبكه مبادله مي‌شوند. اين در حالي است كه كليدهاي خصوصي هرگز مبادله نمي‌شوند.


فرض كنيد كه دو روتر A و B داريم. در اين سناريو از زيرساخت كليد عمومي و كليد خصوصي استفاده كرده‌ايم:

  • هردوروتر A و B كليدهاي خصوصي خاص خودشان را دارند.
  • هردوروتر A و B كليدهاي عمومي خاص خود را مبادله مي‌كنند.
  • هنگامي كه روتر B ديتايي را به مقصد روترA رمزنگاري مي‌كند، از كليدعمومي روترA براي اينكار استفاده مي‌كند و بلعكس.
  • روترA ديتا را با استفاده از كليد خصوصي خود رمزگشايي مي‌كند.

توجه داشته باشيد كه فقط كليد خصوصي مي‌تواند ديتا را رمزگشايي كند؛ بنابراين اگر در حين تبادل ديتا براي كليد عمومي و اطلاعات اتفاقي بيافتد، محرمانگي آن‌ها تضمين شده است.

الگوریتم تبادل کلید دیفی هلمن یا DiffiHellman

عمومي‌ترين استانداري‌ست كه به منظور ايجاد و تبادل كليدها دربطن رسانه‌هاي ناامن استفاده مي‌شود. D-H براي رمزنگاري ديتا بكار نمي‌رود بلكه نقش آن توليد كليدهايي است كه براي رمزنگاري و رمزگشايي ديتا بكار مي‌رود. استاندارد‌هاي پركاربرد و عمومي مختلفي مثل SSL، SSH و IPSec از تبادل كليد با استاندارد D-H استفاده مي‌كنند.كليدهاي عمومي توليد شده بدنه اصلي ديتا را با استفاده از يكي از چند الگوريتم رمزنگاري زير رمز مي‌كنند:

  • DES یا Data Encryption Standard كه يك الگوريتم 56 بيتي است.
  • 3DES یا Triple Data Encryption Standard كه يك الگوريتم 168 بيتي است.
  • AES یا Advanced Encryption Standard يك الگوريتم 128، 192 يا 256 بيتي است.
  • Blowfish توانايي توليد الگوريتم تا حداكثر 448 بيت را دارد.

علاوه بر اين قدرت اين كليد توليد شده بر حسب يكي از سه گروه استاندارد D-H برآورد مي‌شود:

  • گروه 1 ــــ كليدهاي 768 بيتي توليد مي‌كند.
  • گروه 2 ــــ كليدهاي 1024 بيتي توليد مي‌كند.
  • گروه 5 ــــ كليدهاي 2048 بيتي توليد مي‌كند.

يكپارچگي اطلاعات و هشينگ

ديتايي كه از طريق اينترنت منتقل مي‌شود فقط در معرض خطر دزديده شدن قرار ندارد بلكه مي‌تواند در بين راه آلوده شود يا تغير كند.الگوريتم هشينگ با محاسبه و تخصيص يك مقدار هش خاص به هر بسته‌اي كه ارسال مي‌شود، با اين موضوع مقابله مي‌كند. هنگامي كه ديتا با موفقيت به مقصد رسيد، مجددا الگوريتم هش روي آن محاسبه و اجرا مي‌شود. اگر مقدار بدست آمده با مقدار هشي كه در فرستنده به آن اختصاص داده شده بود، همسان نبود، به منزله اينست كه ديتا در طول مسير تغير كرده يا دستكاري شده است.

Hashed Message Authentication Code یا HMAC

در اجراي عملكرد هشينگ كاربرد دارد. HMAC هنگام محاسبه مقدار هش از يك كليد محرمانه استفاده مي‌كند؛ بنابراين هكرها ديگر نمي‌توانند بسته را دستكاري كنند يا تغير دهند و سپس مجددا مقدار صحيح هش را محاسبه كنند. بطور گسترده از دو نوع الگوريتم HMAC استفاده مي‌شود:

  • HMAC-MD5 یا Message-Digest 5 كليدهاي هش 128 بيتي توليد مي‌كند.
  • HMAC-SHA1 یا Secure Hash Algorithm كليدهاي هش 160 بيتي توليد مي‌كند.

Authentication یا احراز هویت

نگراني ديگري كه هميشه از بابت فرستادن ديتا از طريق اينترنت وجود دارد، مبداء اطلاعات مي‌باشد. اين امكان وجود دارد تا كسي هويت يا آدرس فرستنده را جعل كرده يا خود را بجاي آن جا بزند.

در مورد يك ارتباط برقرار شده VPN بر پايه IPSec، هردوطرف ارتباط بايد هويتشان مورد بررسي قرار بگيرد.( Authenticate). براي اجراي اين هدف هم از Pre-shared key و هم از RSA Digital signature استفاده مي‌شود.هنگام استفاده از Pre-shared key، يك رشته متني محرمانه در هردوطرف ارتباط براي تشخيص هويت يكديگر مورد استفاده قرار مي‌گيرد. اين رشته بايد از قبل مورد توافق طرفين باشد و درهردوطرف اين رشته يكسان باشد. سپس اين رشته بصورت يك امضاي ديجيتالي، هش مي‌شود.اما هنگام استفاده از RSA Digital signature از يك CA بمنظور ايجاد امضاي ديجيتال استفاده مي‌شود.بهرحال هركدام از گزينه هاي بالا كه بخواهند مورد استفاده قرار بگيرند بايد قبل از تشكيل ارتباط VPN، بدرستي تنظيم شده باشند.

Certificate Authorities

دو روشي گفته شده براي بررسي تشخيص هويت دوطرف ارتباط IPSec گفته شد را به ياد آوريد.گفتيم كه هنگام استفاده از RSA Digital signature از يك CA بمنظور ايجاد امضاي ديجيتال استفاده مي‌شود. اين روش نسبت به Pre-shared key بنا به مطالبي كه در ذيل به آن‌ها اشاره مي‌كنيم بهتر است.فرايند عملكرد يك مجوز بصورت زير است:

  • در مرحله نخست، سيستم مهمان يك مجوز خالي يا امضا نشده را ايجاد مي‌كند و سپس آن را براي ‍CA ارسال مي‌كند. اين مجوز امضاء نشده در بردارنده ID سيستم مهمان است. اين ارتباط در سايه امنيت موجود توسط كليدهاي عمومي و خصوصي D-H، صورت مي‌پذيرد.
  • در مرحله بعد CA يك هش رمز شده كه بايد بر روي مجوز خالي آن را اعمال كند ،محاسبه مي‌كند. بنابراين مجوز امضاء نشده ما اكنون صاحب يك امضاي معتبر ديجيتال از CA است. حال وقت آن است كه اين مجوز كه اكنون براي خود اعتبار دارد به سيستم مبداء يا همان سيستم مهمان برگردانده شود و تا زماني كه اعتبار دارد يا پاك نشده است، در آنجا ذخيره مي‌گردد.
  • حال سيستم مهمان سناريوي ما با در دست داشتن يك مجوز امضاء شده و معتبر مي‌تواند آن را به همراه كليدهاي متناظرش به هر سيستم مشابه بر پايه ارتباط VPN كه تشخيص هويت اساس آن ارتباط است، بفرستد.

به ياد داشته باشيد امضاءهاي ديجيتالي و سرورهاي CA به منظور رمزنگاري ديتا بكار نمي‌روند. در مقابل مي‌توان گفت اساس كار امضاهاي ديجيتالي احراز هويت كليدهاي يك سيستم است. در واقع مجوز ديجيتالي براي يك كليد به منزله مهر تائيدي بر هويت آن است.لازم به ذكر نيست كه تمام حرف هاي گفته شده درباره هويت دادن CA به يك مجوز از طريق امضاي ديجيتالي در صورتي مي‌تواند برقرار باشد كه خود آن CA نيز اعتماد و اعتبار كافي را داشته باشد. از جمله CA هاي صاحب نام در اين زمينه مي‌توان به VeriSign و Entrust اشاره كرد.سخت افزارهاي سيسكو بر پايه سيستم عامل IOS، چندين CA را پشتيباني مي‌كنند:

  • Microsoft Windows Certificate Services
  • Entrust
  • VeriSign

جداي از برند CA اي كه انتخاب مي‌شود، خود CA انتخاب شده بايد SCEP (Simple Certificate Enrollment Protocol) را براي كار كردن در محيط IOS سخت افزارهاي سيسكو، پشتيباني كند.

The IPSEC Protocols یا پروتکل های IPSec

IPSec با استفاده از يكي از دو پروتكل زير، ديتاي سپرده شده به خود را امن مي‌كند:

  • Authentication Header یا AH
  • Encapsulation Security Payload یا ESP

Authentication Header یا AH يا همان IP protocol 51، محرمانگي ديتا را حفظ نمي‌كند وهيچ ديتايي را به هيچ عنوان رمز نمي‌كند. در مقابل اين عيوب بزرگي كه دارد فقط به شما در زمينه بررسي هويت و يكپارچكي ديتا سرويس ارائه مي‌كند. بخاطر اين‌كه AH عمل رمزنگاري را انجام نمي‌دهد، استاندارد سريعتري نسبت به ESP بشمار مي‌آيد.AH براي اطمينان از يكپارچكي بسته از يك الگوريتم هش براي محاسبه مقدار هش در بدنه اصلي (Payload) و هدر آن استفاده مي‌كند. همين موضوع سراغاز بسياري از مشكلات مانند كار نكردن در بين سيستم‌هاي NAT شده است.در واقع اتفاقي كه رخ مي‌دهد اينست كه NAT، هدر آي‌پي يك بسته را در حين خواندن تغير مي‌دهد اما مقدار هش تغير نمي‌كند. همين كافي است كه سيستم دريافت كننده بسته را دستكاري شده فرض كرده و آن را مرجوع نمايد.

Encapsulation Security Payload یا ESP يا IP protocol 50 سرويس‌هاي محرمانگي، احراز هويت و يكپارچكي را باهم بشما ارائه مي‌كند. بنابراين ESP به علت انجام رمزنگاري بسيار امن‌تر از AH است.علاوه بر مزيت‌هاي گفته شده، ESP نيز همانند AH از يك الگوريتم هش براي يكپارچگي ديتا استفاده مي‌كند. به علت آن‌كه در فرايند ESP، هدر آي‌پي بسته شامل هش نمي‌شود، بنابراين در اكثر مواقع، سيستم هاي NAT شده ESP را پشتيباني مي‌كنند. اين نكته نيز قابل ذكر است كه ESP و AH اگرچه در اكثر مواقع به عنوان دو مكانيزم مختلف بطور جداگانه مورد استفاده قرار مي‌گيرند، اما بصورت تركيبي نيز مي‌توانند با هم فعاليت داشته باشند.

Transport & Tunnel Modes

هركدام از دو پروتكل IPSec AH و ESP مي‌توانند در دو حالت مختلف عمل كنند:

  • Transport mode: هدرهاي اصلي آي‌پي دست نخورده باقي مي‌مانند. اين حالت براي امن كردن ارتباطات از يك سيستم به يك سيستم ديگر كاربرد دارد.
  • Tunnel mode: تمام بسته هش و/يا رمزنگاري مي‌شود كه شامل بدنه اصلي بسته به انضمام هر هدر اصلي آن است. به علت آن كه تمام هدرهاي اصلي هش و يا رمزنگاري مي‌شوند بنابراين يك هدر آي‌پي موقتي در حين انتقال به بسته اضافه مي‌شود. اين حالت براي كاناليزه كردن از يك سايت به سايت ديگر كاربرد دارد.


IKE and IPSEC Security Associations

نقاط متناظر يك ارتباط VPN تحت IPSec بين خود يك SA(Security Association) برقرار مي‌كنند. SA ماهيتا "قاعده" حاكم بين دو سر يك كانال VPN است. يك SA كانال مجازي يكطرفه‌اي بين دو سر كانال VPN است. بنابراين براي آن كه ارتباط كامل رخ دهد، دو SA بايد برقرار گردند؛ در هر جهت ارتباط يك SA.قبل از آن كه SA بخواهد ايجاد گردد، پارامترهاي زيادي بين دو سر ارتباط بايد اصطلاحا مذاكره و توافق شود. همچنين كليدها در هردوطرف ايجاد و بين طرفين مبادله مي‌گردند.پروتكل IKE (Internet Key Exchange) فرايند مذاكرات را بر روي UDP پورت 500، كنترل مي‌كند. مجموعه قوانين IKE به منظور آغاز مذاكرات پارامترهاي مختلف، ايجاد مي‌گردد. اين پارامترها شامل موارد ذيل هستند:

  • الگوريتم كدگذاري (مثل DES،3DES يا AES)
  • الگوريتم هش (مثل MD5 يا SHA-1)
  • شيوه احراز هويت ( مثل Shared keyها و يا RSA Signature)
  • گروه D-H براي ايجاد و به اشتراك گذاري كليدها
  • عمر SA كه بر حسب ثانيه يا كيلوبايت فرستاده شده است.

قواعد IKE معمولا اشاره‌اي به قواعد كلي ISAKMP یا Internet Security Association and Key Management Protocol دارند. چندين قانون IKE مي‌توانند بطور همزمان روي يك كانال VPN اجرا شوند. در حين فرايند مذاكرات، دو طرف ارتباط ليستي از قوانين IKE تنظيم شده از خودشان را به اشتراك مي‌گذارند. SA زماني مي‌تواند برقرار گردد كه قوانين يكساني در هر دو طرف ارتباط حاكم باشد.فرايند مذاكرات در دو فاز صورت مي‌پذيرد:

  • كانال ابتدايي بين دو طرف ايجاد مي‌گردد ( اشاره به IKE يا ISAKMP SA). دوطرف احراز هويت شده و كدگذاري و الگوريتم‌هاي هش بين آن‌ها مذاكره مي‌شود. همچنين كليدها بر اساس مجموعه قوانين IKE تبادل مي‌شوند. دو حالت در مذاكرات فاز اول مي‌تواند رخ دهد:
  1. حالت اصلي: كند است اما امن‌تر است.
  2. حالت تهاجمي: سريعتر است ولي امنيت كمتري دارد.
  • كانال IPSec كه حاوي جزئيات پارامترهاي AH يا ESP براي امن كردن ديتا است، ايجاد مي‌گردد.

در فاز اول پارامترها درباره خود كانال ايجاد شده مذاكرات انجام ميدادند (تبادل كليدها) ولي در فاز دوم مذاكرات پيرامون گذر ديتا از اين كانال است.


نظرات