Understanding VPN, structure and function
شنایی با VPN، ساختار و عملکرد آن
شبکهٔ خصوصی مجازی به طور عمده برای ایجاد ارتباط بین شعبههای مختلف شرکتها و یا فعالیت از راه دور مورد استفاده قرار میگیرد.
با تحولات عظیم در عرصه ارتباطات، اغلب سازمانها و موسسات ارائهدهندهی کالا و خدمات که در گذشته بسیار محدود و منطقهای مسائل رادنبال میکردند، امروزه بیش از گذشته نیازمند تفکر در سطح جهانی برای ارائه خدمات و کالای تولیده شده را دارند. به عبارت دیگر، تفکرات منطقهای و محلی حاکم بر فعالیتهای تجاری جای خود را به تفکرات جهانی و سراسری دادهاند. امروزه سازمانهای زیادی وجود دارند که در سطح یک کشور دارای دفاتر فعال و حتی درسطح دنیا دارای دفاتر متفاوتی میباشند. تمام سازمانهای فوق بهدنبال یک روش سریع، ایمن و قابل اعتماد بمنظور برقراری ارتباط با دفاتر و نمایندگیهای خود در اقصی نقاط یک کشور و یا در سطح دنیا هستند.
شبکههای رایانهای به شکل گستردهای در سازمانهاوشرکتهای اداری و تجاری مورد استفاده قرار میگیرند. اگر یک شرکت از نظر جغرافیایی و در فضای کوچک متمرکز باشد، ارتباطات بین بخشهای مختلف آنرا میتوان با یک شبکهی محلی برقرار کرد. اما برای یک شرکت بزرگ که دارای فضای گسترده جغرافیایی وشعب مختلف در نقاط مختلف یک کشور و یا در نقاط مختلف دنیا است واین بخشها یا شعب نیاز دارند که با هم ارتباطاتِ اطلاعاتیِ امن داشته باشند، بایستی یک شبکهی گستردهٔ خصوصی بین نقاط آن ایجاد گردد. شبکههای اینترانت که فقط محدود به یک سازمان یا یک شرکت میباشند، به دلیل محدودیتهای گسترشی نمیتوانند چندین سازمان یا شرکت را تحت پوشش قرار دهند. شبکههای گسترده نیز که با خطوط استیجاری راهاندازی میشوند، در واقع شبکههای گستردهٔ امنی هستند که بین مراکز سازمانهاایجاد شدهاند. پیادهسازی این شبکهها علیرغم درصد پایین بهرهوری، نیاز به هزینه زیادی دارد زیرا این شبکهها به دلیل عدم اشتراک منابع با دیگران، هزینه مواقع عدم استفاده از منابع را نیز بایستی پرداخت کنند. راهحل غلبه بر این مشکلات، راهاندازی یک ویپیان است.
فرستادن حجم زیادی از داده از یک رایانه به رایانه دیگر مثلاً در بههنگامرسانی بانک اطلاعاتی یک مشکل شناختهشده و قدیمی است. انجام این کار از طریق ایمیل به دلیل محدودیت گنجایش سرویسدهندهگان ایمیل نشدنی است.
استفاده از FTP هم به سرویسدهنده مربوطه و همچنین ذخیرهسازی موقت روی فضای اینترنت نیاز دارد که قابل اطمینان نیست.
اما اگر دو کامپیوتر در دو جای مختلف به اینترنت متصل باشند میتوان از طریق سرویس به اشتراکگذاری فایل در ویندوز بسادگی فایلها را رد و بدل نمود. در این حالت، کاربران میتوانند به دیسک سخت کامپیوترهای دیگر همچون دیسک سخت کامپیوتر خودشان دسترسی داشته باشند. به این ترتیب بسیاری از راههای خرابکاری برای نفوذکنندگان بسته میشود.
مدیران شبکهای که بیش از اندازه وسواس داشته و محتاط هستند میتوانند VPN را حتی روی شبکه محلی هم پیاده کنند. اگر چه نفوذ کنندگان میتوانند به کمک برنامههای Packet sniffer جریان دادهها را دنبال کنند اما بدون داشتن کلید رمز نمیتوانند آنها را بخوانند.
فرض نمائید در جزیرهای در اقیانوسی بزرگ، زندگی میکنید. هزاران جزیره در اطراف جزیره شما وجود دارد. برخی از جزایر نزدیک و برخی دیگر دارای مسافت طولانی با جزیرهی شما میباشند. متداولترین روش بمنظور مسافرت به جزیره دیگر، استفاده از یک کشتی مسافربری است. مسافرت با کشتی مسافربری، بمنزله عدم وجود امنیت است، بدین معنی که هر کاری را که شما انجام دهید، توسط سایر مسافرین قابل مشاهده خواهد بود.
سازمانها و موسسات متعددی از رویکرد فوق (استفاده از خطوط اختصاصی) استفاده می نمایند. مهمترین عامل در این زمینه وجود امنیت واطمینان برای برقراری ارتباط هر یک سازمانهای مورد نظر با یکدیگر است. در صورتیکه مسافت ادارات و یاشعب یک سازمان از یکدیگر بسیار دور باشد، هزینه مربوط به برقرای ارتباط نیز افزایش خواهدیافت.
با توجه به مقایسه انجام شده در مثال فرضی، می توان گفت که بااستفاده از VPN به هر یک از ساکنین جزیره یک زیردریائی داده می شود.
زیردریائی فوق دارای ویژگی های متفاوت زیر است:
دارای سرعت بالااست.
هدایت آن ساده است.
قادر به استتار(مخفی نمودن) شما از سایر زیردریاییهاوکشتیهااست.
قابل اعتماداست.
پس از تامین اولین زیردریائی، افزودن امکانات جانبی و حتی یک زیردریائی دیگر مقرون به صرفه خواهد بود.
در مدل یاد شده، باوجود ترافیک در اقیانوس، هر یک از ساکنین دوجزیره قادر به تردد در طول مسیر در زمان دلخواه خود با رعایت مسائل ایمنی میباشند. مثال فوق بیانگر تحوه عملکرد VPN است. هر یک از کاربران از راه دور شبکه قادر به برقراری ارتباطی امن و مطمئن بااستفاده از یک محیط انتقال عمومی (نظیراینترنت) با شبکه محلی موجود در سازمان خود خواهند بود. توسعه یک VPN (افزایش تعداد کاربران از راه دور و یا افزایش مکانهای مورد نظر) بمراتب آسانتر از شبکههایی است که از خطوط اختصاصی استفاده می نمایند. قابلیت توسعه فراگیر از مهمترین ویژگیهای یک VPN نسبت به خطوط اختصاصی است.
با توجه به اینکه در یک شبکه VPN به عوامل متفاوتی نظیر: امنیت، اعتمادپذیری، مدیریت شبکه و سیاست نیاز خواهد بود. استفاده از VPN برای یک سازمان دارای مزایای متعددی است:
بهبود وضعیت امنیت
کاهش هزینههای عملیاتی در مقایسه با روشهای سنتی نظیرWAN
کاهش زمان ارسال و حمل اطلاعات برای کاربران از راه دور
بهبود بهره وری
توپولوژی آسان ،...است.
VPN نسبت به شبکههای پیادهسازی شده با خطوط استیجاری، در پیادهسازی و استفاده، هزینه کمتری صرف میکند. اضافه و کم کردن گرهها یا شبکههای محلی به ویپیان، به خاطر ساختار آن، با هزینه کمتری امکانپذیر است. در صورت نیاز به تغییر همبندی شبکهٔ خصوصی، نیازی به راهاندازی مجدد فیزیکی شبکه نیست و به صورت نرمافزاری، همبندی شبکه قابل تغییر است.
تبادل دادهها روی اینترنت چندان ایمن نیست. تقریباً هر کسی که در جای مناسب قرار داشته باشد میتواند جریان دادهها را زیر نظر گرفته و از آنها سوء استفاده کند. شبکههای شخصی مجازی یا ویپیانها کار نفوذ را برای خرابکاران خیلی سخت میکنند.
شبکههای VPN به منظور تامین امنیت (داده ها و ارتباطات) از روشهای متعددی استفاده می نمایند، از جمله:
دیوار آتش
رمزنگاری
IPSec
کارساز AAA
دیوار آتش
رمزنگاری
رمزنگاری فرآیندی است که بااستفاده از آن کامپیوتر مبداءاطلاعاتی رمزشده را برای کامپیوتر دیگر ارسال می نماید. سایر کامپیوترهای مجاز قادر به رمزگشائی اطلاعات ارسالی خواهند بود. بدین ترتیب پس از ارسال اطلاعات توسط فرستنده، دریافت کنندگان، قبل ازاستفاده ازاطلاعات میبایست اقدام به رمزگشائی اطلاعات ارسال شده نمایند.
سیستمهای رمزنگاری در کامپیوتر به دو گروه عمده تقسیم میگردد:
در رمز نگاری کلید متقارن هر یک از کامپیوترها دارای یک کلید رمز (کد) بوده که بااستفاده ازآن قادر به رمزنگاری یک بسته اطلاعاتی قبل از ارسال در شبکه برای کامپیوتر دیگر میباشند. در روش فوق میبایست در ابتدا نسبت به کامپیوترهایی که قصد برقراری و ارسال اطلاعات برای یکدیگر را دارند، آگاهی کامل وجود داشته باشد. هر یک از کامپیوترهای شرکت کننده در مبادله اطلاعاتی می بایست دارای کلید رمز مشابه بمنظور رمزگشایی اطلاعات باشند. بمنظور رمزنگاری اطلاعات ارسالی نیز از کلید فوق استفاده خواهد شد.
برای مثال فرض کنید قصد ارسال یک پیام رمز شده برای یکی از دوستان خود را داشته باشید. بدین منظور از یک الگوریتم خاص برای رمزنگاری استفاده میشود. در الگوریتم فوق هر حرف به دوحرف بعداز خود تبدیل میگردد. (حرف A به حرف C، حرف B به حرف D و...). پس از رمزنمودن پیام و ارسال آن، میبایست دریافت کننده پیام به این حقیقت واقف باشد که برای رمزگشائی پیام ارسال شده، هر حرف باید به دو حرف قبل از خود تبدیل گردد. در چنین حالتی میبایست به دوست امین خود، واقعیت فوق (کلید رمز) گفته شود. در صورتیکه پیام فوق توسط افراد دیگری دریافت گردد، بدلیل عدم آگاهی از کلید، آنان قادر به رمزگشایی و استفاده از پیام ارسال شده نخواهند بود.
رمزنگاری کلید عمومی
در رمزنگاری عمومی از ترکیب یک کلید خصوصی و یک کلید عمومی استفاده میشود. کلید خصوصی صرفاً برای کامپیوتر شما (ارسال کننده) قابل شناسایی و استفاده است. کلید عمومی توسط کامپیوتر شما در اختیار تمام کامپیوترهای دیگری که قصد ارتباط با آن را داشته باشند گذاشته میشود. بمنظور رمزگشائی یک پیام رمز شده، یک کامپیوتر می بایست با استفاده از کلید عمومی (ارائه شده توسط کامپیوتر ارسال کننده) و کلید خصوصی مربوط به خود اقدام به رمزگشائی پیام ارسالی نماید. یکی از متداولترین ابزارهای رمزنگاری کلید عمومی، روشی با نام پیجیپی است. با استفاده از این روش میتوان اقدام به رمزنگاری اطلاعات دلخواه خود نمود.
IPSec
پروتکل IPSec یکی از امکانات موجود برای ایجاد امنیت در ارسال و دریافت اطلاعات میباشد. قابلیت این روش در مقایسه با الگوریتمهای رمزنگاری بمراتب بیشتر است. پروتکل فوق دارای دو روش رمزنگاری است: Tunnel ، Transport. در روش tunel، هدر و Payload رمز شده درحالیکه در روش transport صرفاً payload رمز میگردد. پروتکل فوق قادر به رمزنگاری اطلاعات بین دستگاههای متفاوت است:
روتر به روتر
فایروال به روتر
کامپیوتر به روتر
کامپیوتر به سرویسدهنده
جزئیات IP-Sec
Ipsec برخلافPPTP و L2TP روی لایه شبکه یعنی لایه سوم کار میکند.این پروتکل دادههایی که باید فرستاده شود را همراه با همه اطلاعات جانبی مانند گیرنده و پیغامهای وضعیت رمز گذاری کرده و به آن یک IP Header معمولی اضافه کرده و به آن سوی تونل می فرستد.
کامپیوتری که در آن سو قرار دارد IP Header را جدا کرده، دادهها را رمز گشایی کرده و آن را به کامپیوتر مقصد می فرستد .Ipsec را میتوان با دو شیوه Tunneling پیکر بندی کرد.در این شیوه انتخاب اختیاری تونل، سرویس گیرنده نخست یک ارتباط معمولی با اینترنت برقرار میکند و سپس از این مسیر برای ایجاد اتصال مجازی به کامپیوتر مقصد استفاده میکند . برای این منظور، باید روی کامپیوتر سرویس گیرنده پروتکل تونل نصب شده باشد.معمولاً کاربر اینترنت است که به اینترنت وصل میشود.اما کامپیوترهای درون LAN هم می توانند یک ارتباط VPN برقرا کنند.از آنجا که ارتباط IP از پیش موجود است تنها برقرار کردن ارتباط VPN کافی است.
در شیوه تونل اجباری، سرویس گیرنده نباید تونل را ایجاد کند بلکه این کار به عهده فراهم ساز است.سرویس گیرنده تنها باید به ISP وصل شود.تونل به طور خودکار از فراهم ساز تا ایستگاه مقصد وجود دارد.البته برای این کار باید همانگیهای لازم با ISPانجام بگیرد.
Ipsec از طریق AH مطمئن میشود که Packet های دریافتی از سوی فرستنده واقعی نه از سوی یک نفوذ کننده( که قصد رخنه دارد) رسیده و محتویات شان تغییر نکرده.AH اطلاعات مربوط به تعیین اعتبار و یک شماره توالی در خود دارد تا از حملات Replay جلوگیری کند.اما AH رمز گذاری نمیشود.رمز گذاری از طریق Encapsulation Security Header یا ESH انجام میگیرد.در این شیوه دادههای اصلی رمز گذاری شده و VPNاطلاعاتی رااز طریق ESH ارسال میکند.
ESH همچنین کارکرد هایی برای تعیین اعتبار و خطایابی دارد. به این ترتیب دیگر به AH نیازی نیست .برای رمز گذاری و تعیین اعتبار روش مشخص و ثابتی وجود ندارد اما با این همه ، IETF برای حفظ سازگاری میان محصولات مختلف، الگوریتمهای اجباری برای پیاده سازی Ipsec تدارک دیده.برای نمونه میتوان به MD۵،DES یا Secure Hash Algorithm اشاره کرد.
مهمترین استانداردها و روش هایی که در Ipsec به کار میروند عبارتنداز:
رمز گذاری Public Key برای ثبت و اطمینان از کلیدهای مبادله شده و همچنین اطمینان از هویت ایستگاههای سهیم در ارتباط.
الگوریتمهای رمز گذاری مانند DES برای اطمینان از درستی دادههای انتقالی.
الگوریتمهای درهم ریزی ( Hash) برای تعیین اعتبار تک تک Packet ها.
امضاهای دیجیتال برای تعیین اعتبارهای دیجیتالی.
Ipsec بدون تونل
در این حالت برخلاف حالت Tunneling همه IP packet رمز گذاری و دوباره بسته بندی نمیشود.بجای آن، تنها دادههای اصلی رمزگذاری میشوند و Header همراه با آدرسهای فرستنده و گیرنده باقی می ماند.این باعث میشود که دادههای سرباز ( Overhead ) کمتری جابجا شوند و بخشی از پهنای باند آزاد شود . اما روشن است که در این وضعیت، خرابکاران میتوانند به مبدا و مقصد دادهها پی ببرند . از آنجا که در مدل OSI دادهها از لایه ۳ به بالا رمز گذاری میشوند خرابکاران متوجه نمیشوند که این دادهها به ارتباط با سرویس دهنده Mail مربوط میشود یا به چیز دیگر.
جریان یک ارتباط Ipsec
بیش از آن که دو کامپیوتر بتواننداز طریق Ipsec دادهها را میان خود جابجا کنند باید یکسری کارها انجام شود.
سپس الگوریتم را مشخص میکنند، مثلاً DEC برای رمزگذاری و MD5 برای خطایابی.
در گام بعدی، کلیدها را میان خود مبادله میکنند.
یکی برای ارتباط A و B و یکی برای ارتباط B به A .اگر یکی از کامپیوترها بخواهد در حالت محافظت شده دادهها را منتقل کند نخست شیوه رمز گذاری مورد توافق با کامپیوتر دیگر را بررسی کرده و آن شیوه را روی دادهها اعمال میکند.سپس SPI را در Header نوشته و Packet را به سوی مقصد می فرستد.
اگر چه Ipsec فرض را بر این می گذارد که توافقی برای ایمنی دادهها وجود دارد اما خودش برای ایجاد این توافق نمیتواند کاری انجام بدهد .
Ipsec در این کار به IKE تکیه میکند که کارکردی همچون IKMP دارد. برای ایجاد SA هر دو کامپیوتر باید نخست تعیین اعتبار شوند.
در حال حاضر برای این کار از راههای زیر استفاده میشود:
امضاء دیجیتال: در این شیوه، هر کامپیوتر یک رشته داده را علامت گذاری( امضاء ) کرده و به کامپیوتر مقصد می فرستد.در حال حاضر برای این کار از روشهای RSA و DSS استفاده میشود . برای امنیت بخشیدن به تبادل دادهها باید هر دو سر ارتباط نخست بر سر یک یک کلید به توافق برسند که برای تبادل دادهها به کار میرود . برای این منظور میتوان همان کلید به دست آمده از طریق Diffie Hellman را به کاربرد که سریع تر است یا یک کلید دیگر ساخت که مطمئن تر است .
سرویس دهندگان AAA بمنظور ایجادامنیت بالا در محیطهای ویپیان از نوع دستیابی از راه دور استفاده میگردند. زمانیکه کاربران با استفاده از خط تلفن به سیستم متصل میشوند، سرویس دهنده AAA درخواست آنها را اخذ و عملیات زیر را انجام خواهد داد:
شما مجاز به انجام چه کاری هستید؟ ( مجوز،Authorization)
چه کارهائی را انجام داده اید؟ (حسابداری،Accounting)
انواع VPN
دو نوع عمده شبکهٔ VPN وجود دارد:
به این نوع از شبکهها وی پی دی ان ( VPDN مخفف عبارت Virtual private dial-up network) نیز گفته میشود. در VPDN از مدل ارتباطی کاربر به یک شبکه محلی (User to LAN) استفاده میگردد. سازمان هایی که از مدل فوق استفاده میکنند به دنبال ایجاد تسهیلات لازم برای ارتباط پرسنل یا به طور عام کاربران راه دور هستند تا بتوانند از هر مکانی به شبکهٔ سازمان متصل شوند.
درمدل فوق یک سازمان با توجه به سیاستهای موجود، قادر به اتصال چندین سایت ثابت ازطریق یک شبکه عمومی نظیر اینترنت است.
شبکههای VPN که از این روش استفاده می نمایند، خود دارای انواع مختلفی هستند:
در صورتیکه سازمانی دارای یک و یا بیش از یک محل (راه دور) بوده و تمایل به الحاق آنها در یک شبکه اختصاصی داشته باشد، میتواند یک ویپیان مبتنی بر اینترانت را به منظور برقرای ارتباط هر یک از شبکههای محلی بایکدیگر ایجاد کند.
مبتنی بر Extranet:
در مواردیکه سازمانی در تعامل اطلاعاتی بسیار نزدیک با سازمان دیگر باشد، میتواند یک Extranet VPN را به منظور ارتباط شبکههای محلی هر یک از سازمانها ایجاد کند. در چنین حالتی سازمانهای متعدد قادر به فعالیت در یک محیط اشتراکی خواهند بود.
استفاده از VPN برای یک سازمان دارای مزایای متعددی است، از جمله: گسترش محدوه جغرافیائی ارتباطی، بهبود وضعیت امنیت، کاهش هزینههای عملیاتی در مقایسه با روشهای سنتی WAN، کاهش زمان ارسال و حمل اطلاعات برای کاربران از راه دور، بهبود بهرهوری، توپولوژی آسان و...
VPN دو رایانه یا دو شبکه را به کمک یک شبکه دیگر که به عنوان مسیر انتقال به کار می گیرد به هم متصل میکند. برای نمونه میتوان دو رایانه یکی در تهران، و دیگری در مشهد که در فضای اینترنت به یک شبکه وصل شدهاند اشاره کرد. ویپیان از نگاه کاربر کاملاً مانند یک شبکه محلی به نظر می رسد. برای پیاده سازی چنین چیزی، ویپیان به هر کاربر یک ارتباط آیپی مجازی میدهد.
قرار تونل زنی نقطه به نقطه (Point to point Tunneling protocol یا PPTP) که برای انتقال NetBEUI روی یک شبکه بر پایه IP مناسب است.
آیپیسک که برای انتقال دادههای آیپی روی یک شبکه بر پایه آیپی مناسب است.
اکثر شبکههای VPN بمنظورایجاد یک شبکه اختصاصی با قابلیت دستیابی از طریق اینترنت ازامکان تونل زنی (Tunneling) استفاده می نمایند. در روش فوق تمام بسته اطلاعاتی در یک بسته دیگر قرار گرفته واز طریق شبکه ارسال خواهد شد. پروتکل مربوط به بسته اطلاعاتی خارجی (پوسته) توسط شبکه و دو نفطه(ورود و خروج بسته اطلاعاتی) قابل فهم میباشد. دو نقظه فوق را اینترفیسهای تونل می گویند.
تونلزنی مستلزم استفاده از سه پروتکل است:
پروتکل کپسولهسازی: از پروتکلهائی نظیر IPSec ،L2F ،PPTP ،L2TP یا GRE استفاده میگردد.
پروتکل مسافر: از پروتکلهائی نظیر IPX ،IP یا NetBeui بمنظورانتقال دادههای اولیه استفاده میشود.
با استفاده از روش تونل زنی میتوان عملیات جالبی را انجام داد. مثلاً میتوان از بستهای اطلاعاتی که پروتکل اینترنت را حمایت نمیکند (نظیر NetBeui) درون یک بسته اطلاعاتی IP استفاده و آن را از طریق اینترنت ارسال نمود و یا میتوان یک بسته اطلاعاتی را که از یک آدرس IP غیر قابل روت (اختصاصی)استفاده مینماید، درون یک بسته اطلاعاتی که از آدرسهای معتبر IP استفاده میکند، مستقر و از طریق اینترنت ارسال نمود.
پروتکل IPSec، قابل استفاده در دو نوع شبکه VPN (سایت به سایت و دستیابی از راه دور) است.اینترفیسهای تونل میبایست دارای امکانات حمایتی از IPSec باشند.
هر یک از پروتکلهای زیر با استفاده از ساختار اولیه PPP ایجاد و توسط شبکههای VPN دستیابی از راه دور استفاده می گردند:
تونلزنی را میتوان روی دو لایه از لایههای OSI پیاده کرد. PPTP و L2TP از لایه ۲ یعنی پیوند داده استفاده کرده و دادهها را در قالب Frameهای پروتکل نقطه به نقطه (PPP) بسته بندی میکنند. دراین حالت میتوان از ویژگیهای PPP همچون تعیین اعتبار کاربر، تخصیص آدرس پویا (مانند DHCP)، فشرده سازی دادهها یا رمز گذاری دادهها بهره برد.
پروتکل L2F توسط سیسکو ایجاد شده است. در این پروتکل از مدلهای تعیین اعتبار کاربر که توسط PPP حمایت شدهاند استفاده شده است.
پروتکل تونلزنی نقطه به نقطه
پروتکل L2TP با همکاری چندین شرکت ایجاد شده است. این پروتکل از ویژگیهای PPTP و L2F استفاده کرده است. پروتکل L2TP بصورت کامل IPSec را حمایت میکند.
از پروتکل فوق بمنظور ایجاد تونل بین موارد زیر استفاده میگردد:
سرویس گیرنده و روتر
NAS و روتر
روتر و روتر
VPN در ایران
اگرچه VPN کاربردهای بسیاری دارد، اما یکی از کاربردهای اصلی آن در ایران، استفاده جهت گذر از فیلترینگ است.