شنبه, ۸ اردیبهشت, ۱۴۰۳ / 27 April, 2024
مجله ویستا

شبکه مخصوصی مجازی Virtual Private Network


شبکه مخصوصی مجازی Virtual Private Network
قصد داریم در چند قسمت با زبانی ساده مروری بر شبكه های خصوصی مجازی یا VPN داشته باشیم تا دوستان با این مقوله آشنایی بیشتری كسب كرده و احیاناً از آن استفاده كنند . در قسمت اول ، مفاهیم VPN را بررسی می كنیم و در قسمت های بعدی پیاده سازی و مزایا و معایب آن را شرح خواهیم داد .
بیایید با هم ببینیم چیزی از VPN سر در می آوریم یا نه . ابتدا كمی به سالهای قبل بر می گردیم و شبكه های كامپیوتری اغلب محدود به یك محدوده ی جغرافیایی بسیار كوچك بودند ، مثلاً ساختمان یك شركت یا چندین ساختمان مربوط به یك سازمان كه مجاور هم بودند و كاربری آنها هم محدود به انتقال فایل بود .
در واقع می توان شبكه های كامپیوتری اولیه را « شبكه ی خصوصی داده » یا Private Data Network نامید . چرا كه هیچ ارتباط بیرونی برای شبكه وجود نداشت و امكان نشت داده ها تقریباً غیر ممكن بود ، مگر اینكه یك ارتباط فیزیكی از بیرون با شبكه برقرار می شد .
به مرور و با رشد و توسعه ی شركت ها و سازمان ها و پیشرفت های به دست آمده در دنیای كامپیوتر ، امكان برقراری ارتباط شبكه ای در فواصل طولانی تر به وجود آمده و باعث گردید تا شركت ها به منظور ارتباط دفاتر مختلف با یكدیگر ؛ از خطوط اجاره ای استفاده كنند .
این روش راهكار مناسبی ارایه می كند . چرا كه امنیت بالایی را فراهم می آورد ولی دو مشكل عمده در سر راه آن وجود دارد :
۱. برای برقراری ارتباط و استفاده از خطوط اجاره ای هزینه ی بالایی مورد نیاز است .
۲. قابلیت انعطاف آن پایین است . یعنی در صورت اضافه شدن یك نقطه ارتباطی جدید ، عملیات متعددی جهت راه اندازی ارتباط آن نقطه به مركز باید انجام شود . شكل زیر نمونه ای از یك شبكه ی خصوصی را نمایش می دهد .
اما به مرور زمان نوع دیگری از شبكه های كامپیوتری ایجاد شد كه اصطلاحاً به آنها « شبكه ی عمومی داده » یا Public Data Network گفته می شود در این نوع شبكه خط خصوصی یا اجازه ای وجود ندارد بلكه بستری ایجاد شده و افراد مختلف می توانند از آن برای مقاصد گوناگون استفاده كنند .
مهمترین نمونه شبكه های داده عمومی اینترنت است .
هزینه نسبتاً پایین و قابلیت انعطاف مناسب اینترنت كم كم باعث شد شركت ها و سازمان های مختلف وسوسه شوند تا به جای استفاده از خطوط اختصاصی و اجاره ای ، از بستر اینترنت برای برقراری ارتباط بین دفاتر مختلف خود استفاده كنند .
به دلیل استفاده عمومی امنیت در « شبكه عمومی داده » در مقایسه با « شبكه های خصوصی داده » پایین تر است ، ولی در مقابل هزینه پایین تر و قابلیت انعطاف بالاتر برگ برنده « شبكه های عمومی داده » می باشد . شكل زیر استفاده از شبكه اینترنت برای ارتباط دفاتر مختلف یك شركت را نشان می دهد .
اما هر مشكلی راه حلی دارد و برای ایجاد امنیت بیشتر در شبكه های عمومی داده نیز روش های مختلفی ارایه شد كه VPN نیز یكی از آنهاست . VPN یا شبكه خصوصی مجازی همانطور كه از نام آن بر می آید در واقع یك توهم است . چی ؟ توهم !! خوب اجازه بدهید تا دقیق تر درباره ی VPN صحبت كنیم تا تكلیف روشن شود .
مشكل از آنجا بوجود می آید كه شبكه اینترنت یك شبكه عمومی و بسیار گسترده است كه در آن مسیر مشخص و ثابتی برای ارتباط بین دو نقطه وجود ندارد .
یعنی به راحتی ممكن است در بین راه مقصد عوض شود و داده ها به جای مقصد واقعی به مقصد دیگری منتقل شوند و یا از مسیری عبور كنند كه متجاوزین بتوانند به راحتی داده ها را دریافت نمایند و احیاناً از آن سوء استفاده كنند .
خوب حالا چه چیزی پیشنهاد می كنید ؟
۱. روشی برای شناسایی مقصد و تعیین اعتبار مقصد .
۲. روشی برای رمز كردن داده ها تا اگر كس دیگری به اطلاع دست پیدا كرد نتواند از آن استفاده كند .
بله كاملاً درست است در حقیقت دو نكته بالا اساس كاركرد VPN می باشد .
●VPN و تونل :
معمولاً هر جا صحبت از VPN می باشد اصطلاح تونل و تونل زدن Tunneling نیز به گوش می رسد . استفاده از كلمه تونل كمی گمراه كننده است ، چون اكثر افراد فكر می كنند كه VPN در اینترنت یك تونل یا در واقع یك مسیر ثابت و دائمی بین مبدأ و مقصد ایجاد می كند كه تا پایان ارتباط بر جای خواهد ماند ، در حالی كه این طور نیست . پروتكل lP یكی از اركان اصلی تبال اطلاعات در اینترنت است .
داده ها به منظور انتقال در شبكه اینترنت به بسته هایی تقسیم می شوند كه در اصطلاح به آنها Lp Packet گفته می شود . ساختار یك lp Packet را به طور ساده می توان به شكل زیر نمایش داد .
VPN نیز از پروتكل lP استفاده می كند . پس VPN تغییری در كاركرد اینترنت ایجاد نمی كند ، بلكه از امكانات موجود به روش خود استفاده می كند و بسته های lP را طوری تغییر می دهد تا نقایص موجود را پوشش دهد .
پس مطابق با آنچه در اینترنت حاكم است اطلاعات با توجه به ترافیك موجود ممكن است از مسیر های مختلفی عبور كنند و آن چیزی كه باعث استفاده از كلمه تونل می شود این است كه طی یك ارتباط ، مبدأ و مقصد ، شناسایی و تعیین اعتبار می شوند و اطلاعات به جز گیرنده ی واقعی برای سایر دریافت كنندگان قابل استفاده نخواهد بود .
برای ادامه ی مطلب لازم است درباره ی تكنولوژی رمز گذاری و تعیین هویت مطالبی عنوان شود.
●رمز گذاری ( Encryption ) و كلید ها ( Keys ) :
در مطالب بالا گفتیم كه در VPN اطلاعات فقط برای گیرنده ی واقعی قابل استفاده می باشد ، چرا ؟ چون اطلاعات قبل از ارسال با استفاده از الگوریتم ها رمز گذاری Clear_text و بعد از رمز گذاری Clear_text نامیده می شود .
یك الگوریتم رمز گذاری Encryption Algorithm در واقع رابطه ی بین اطلاعات اصلی و اطلاعات رمز شده را بیان می كند .
در روزهای اولیه ی استفاده از VPN ؛ شركت های مختلف هر كدام الگوریتم رمز گذاری مخصوص به خود را به كار می بردند . بدین ترتیب با لو رفتن الگوریتم مربوطه اطلاعات رمز شده ی آن شركت نیز در دسترس می بود .
همین مسئله باعث شد كه به مرور تهیه الگوریتم های رمز گذاری به صورت تخصصی دنبال شود و در نهایت الگوریتم های خوش تعریف كه از آزمایش های متعددی عبور كرده بودند جایگزین الگوریتم های مختلفی كه توسط شركت ها ارائه می شد ، كردند .
مثلاً الگوریتم استاندارد رمز گذاری داده یا DES یكی از این الگوریتم ها است . اما چگونه همه از یك الگوریتم استفاده می كنند ولی اطلاعات رمز شده به وسیله ی یك فرد ، توسط دیگران قابل استفاده نیست ؟ بله كلید ها در این بین نقش اصلی را بازی می كنند .
كلید ها اساس رمز گذاری هستند ، در واقع یك كلید یك كد مخفی است كه الگوریتم رمز گذاری از آن برای ایجاد یك Clear_text منحصر بفرد استفاده می كند . برای درك بهتر مطلب ، فرض كنید با دوست خود به بازار رفته و هر كدام یك كیف سامسونت خریداری می كنید كه دارای یك قفل رمز دار ۳ رقمی می باشد ، درست است كه هر دو كیف از قفل مشابهی استفاده می كنند ولی هر كدام از شما می تواند رمز مخصوص به خود را تولید كرده و به عنوان كلید باز گشایی قفل استفاده نماید .
البته كلید ها در VPN به سادگی قفل كیف های سامسونت نیستند . مهمترین پارامتر در امنیت یك كلید ، طول كلید است . در واقع هر چه طول یك كلید بیشتر باشد تركیب های مختلفی كه می توان برای آن ایجاد كرد بیشتر بوده و كشف رمز آن متشكل تر خواهد بود . برای درك بهتر به جدول زیر توجه كنید :
همانطور كه ملاحظه می كنید اگر از یك كلید ۱۶ بیتی ( هر bit را به عنوان یكی از ارقام در قفل كیف های سامسونت در نظر بگیرید ) استفاده كنید فرد متجاوز باید حداكثر ۶۵۵۳۶حال را آزمایش كند تا به جواب برسید ، ولی اگر از یك كلید ۵۶ بیتی استفاده كنید زمانی بسیار طولانی برای رسیدن به جواب لازم خواهد بود .
البته با استفاده از امكانات مخصوص و كامپیوتر های پیشرفته این كار در مدت كوتاهی امكان پذیر است .
الگوریتم DES از یك كلید ۵۶ بیتی استفاده می كند كه ركورد بازگشایی آن در حدود ۱۲ ثانیه می باشد . ( البته با كامپیوتر های پیشرفته و توسط افراد متخصص ) الگوریتم ۳DES كه مدل بهینه سازی شده DES می باشد از سه كلید ۵۶ بیتی یعنی ۱۶۸ بیت به صورت DES استفاده می كند ، یعنی ابتدا با یك كلید ۵۶ بیتی اطلاعات رمز می شود ، سپس با یك كلید ۵۶ بیتی دیگر از رمز خراج می شود كه این اطلاعات اصلاً شبیه به اطلاعات اصلی نیست و دوباره با یك كلید ۵۶ بیتی دیگر رمز گذاری می شود . بدین ترتیب كشف رمز بسیار مشكل خواهد بود .
اما توجه داشته باشید كه استفاده از كلید با طول بیشتر مستلزم پردازش بیشتری نیز می باشد ، پس منابع بیشتری از سیستم را استفاده می كند .
آیا راه دیگری برای بالا بردن امنیت كلید ها به جای افزایش طول كلید پیشنهاد می كنید ؟ بله ، می توانیم از كلیدی با طول كمتر استفاده كنیم ولی در فواصل كوتاه كلید را عوض كنیم كه حتی اگر كسی كلید را كشف كرده نتواند از آن استفاده كند .
● كلید ها به دو صورت در الگوریتم های مختلف به كار می روند :
۱. متقارن Symmetrical :
در روش متقارن از یك كلید برای رمز گذاری و رمز گشایی رمز استفاده می شود این كلید باید در هر دو انتهای ارتباط موجود باشد در واقع در ابتدای برقراری ارتبط این كلید Public Key تبادل می شود . به این كلید گفته می شود .
۲. نامتقارن Asymmetrical :
در روش نامتقارن از یك كلید برای رمز گذاری و از كلید برای بازگشایی رمز استفاده می شود . در اصطلاح به این كلید ها Public Key ، Private Key گفته می شود .
در عمل فرض كنید قصد داریم بین دو نقطه A و B تبادل اطلاعات داشته باشیم . A ، B هر كدام Private Key و Public Key مخصوص به خود را دارند . در شروع ارتباط Public Key خود را برای B ارسال كرده و اعلام می كند كه B بسته های ارسالی برای A را با آن كلید رمز گذاری كند این بسته ها فقط با Private Key مربوط به A كه فقط در اختیار A می باشد قابل رمز گشایی است . همین مطالب درباره B نیز صادق است . روش نامتقارن امنیت بیشتری را فراهم می كند ولی امكانات بیشتری هم لازم دارد .
●عیین هویت Authentication :
همانطور كه مشاهده كردید یكی از قسمت های یك بسته ی lP شامل آدرس گیرنده / فرستنده و یك قسمت دیگر مربوط به داده ها بود تعیین هویت شامل دو بخش است .
● User/System Authentication
User/System Authenticationدر این بخش بررسی می شود كه آیا فرستنده داده ها همان كسی است كه ادعا می كند یا خیر . با در نظر گرفتن دو نقطه B ، A روش كار به صورت زیر خواهد بود :
وقتی B داده هایی را دریافت می كند كه فرستنده آن A باشد ، یك عدد تصادفی تولید كرده و آن را با كلید عمومی A رمز گذاری می كندكه فقط A می تواند آن را رمز گشایی كند .
سپس A بسته ارسالی از طرف B را دریافت كرده و آن را بازگشایی می كند ، بعد مجدداً آن را با كلید عمومی B رمز گذاری كرده و برای B ارسال می كند . B بسته ی دریافتی را رمز گشایی می كند و اگر همان عدد تصادفی كه ارسال كرده بود به دست آمد از صحت هویت فرستنده یعنی A مطمئن می شود .
● Data Authentication
ممكن است در بین راه اطلاعات موجود در بخش Data یك بسته دست كاری شود . در VPN برای شناسایی این مورد از الگوریتم hash استفاده می شود ، یعنی در فرستنده با یك عدد تصدفی یا ثابت ، الگوریتم hash روی داده ها اعمال شده و یك مقدار به دست می آید . این مقدار به دست آمده همراه بسته ارسال می شود . در گیرنده بعد از رمز گشایی ؛ الگوریتم hash برای روی بخش Data بسته اعمال می شود و مقداری به دست می آید كه اگر این مقدار با مقدار ارسالی برابر بود صحت اطلاعات مشخص می شود .
منبع : مرکز اطلاع رسانی خانواده شمیم


همچنین مشاهده کنید