VPN یک شبکه خصوصی را از طریق شبکههای عمومی مانند اینترنت گسترش میدهد. مثلاً فرض کنید که شبکه خصوصی شرکتی در داخل ساختمان آن شرکت محدود شده و برای دسترسی به آن باید به داخل ساختمان برویم. اما در مواقعی ما دسترسی فیزیکی به آن مکان را نداریم ولی باید به شبکه خصوصی آن جا وصل شده و با آن کار کنیم.
همانطور که گفته شد، ویپیان ها از شبکه عمومی اینترنت استفاده میکنند. اما شبکه اینترنت امن نیست. در ارتباطات ویپیانی دو عمل اصلی برای فراهم کردن امنیت انجام میشود:
تونلینگ (Tunneling) که تانلینگ نیز گفته میشود، روشی است که در آن میتوانیم از پروتکلهایی که اغلب پشتیبانی نمیشوند، استفاده کنیم. برای مثال با استفاده از تونل زنی میتوانیم از پروتکل اینترنت (Internet Protocol یا IP) استفاده کنیم تا پروتکل دیگری را به عنوان بخش داده در بستههای IP ارسال کنیم.
برای درک بهتر بگذارید یک مثال بزنم: فرض کنید دو ترمینال باربری (پایانه) وجود دارد که از یکی قصد ارسال ابزاری را داریم که هم خروجی ترمینال مبدا و هم ورودی ترمینال مقصد جلوی آن را میگیرد. در این ترمینالها فقط بستههایی به شکل مربع، مستطیل و لوزی قابل شناسایی بوده و مجوز خروج/ورود را دارند. حال کافیست ابزار مورد نظرمان را در داخل یک بسته مربع شکلی قرار دهیم تا از ترمینال مبدا ارسال شده و در ترمینال مقصد نیز بدون مشکل دریافت شود سپس در ترمینال مقصد فردی آنها را تحویل گرفته و از بسته خارج میکند.
دادههای بین کلاینت و سرور همگی رمزگذاری میشوند تا از درک و دسترسی محتوای اصلی توسط فرد سوم جلوگیری شود. علاوه بر این، اطلاعات با چکسامهایی (امضا های دیجیتالی) علامت گذاری میشوند تا اگر در این بین اطلاعات توسط فرد سومی تغییر داده شوند، مقصد از آن مطلع شود. یعنی به اطلاعات قابلیت محرمانگی و یکپارچگی را میدهد.
برای درک بهتر بگذارید یک مثال بزنم: فرض کنید فرد A به B از طریق تلفن ثابت زنگ زده است. اگر در این میان یک فرد باشد که از سیم تلفن یک اتصال دیگر برای خودش بسازد، قادر خواهد بود که صحبتهای هر دو طرف را بشوند، برخی از آنها را بلاک کند یا حتی تغییرشان دهد. حال ما ارتباط بین A و B را رمزگذاری میکنیم بطوری که فقط با استفاده از یک کلید خاص بشود آنها را رمزگشایی کرد. حال حتی اگر فرد میانی به اطلاعات گوش دهد، چیزی نخواهد فهمید! از طرفی چون ارتباط با قراردادهای خاصی امن شده، اگر آنها را تغییر دهد، افراد از آنها مطلع شده و خواهند فهمید که اطلاعات را به درستی دریافت نکرده اند.
در VPN نیز اطلاعات باید رمزگذاری شوند تا امکان Sniff و حملاتی مثل Man-in-the-middle وجود نداشته باشد.
در ایجاد یک کانکشن VPN، از پروتکلهای مختلفی میتوانیم استفاده کنیم که مزایا و معایب متفاوتی دارند. این پروتکلها عبارت اند از:
یکی از رایج ترین و البته ضعیف ترین پروتکلهایی است که در ارتباطات VPN استفاده میشود. PPTP مخفف Point-to-Point Tunneling Protocol است که برای تونلینگ استفاده شده و توسط پروتکل MPPE رمزگذاری میشود.
این پروتکل آسیب پذیریهای امنیتی مختلفی دارد که ارتباط و دادههای ارسالی را در خطر لو رفتن قرار میدهد ولی چون در اکثر سیستم عاملها تعبیه میشود و از طرفی استفاده از آن آسان است، به یکی از رایج ترین پروتکلها تبدیل شده. در یک کلام، از PPTP استفاده نکنید!
اوپن ویپیان پروتکل امنی است که از OpenSSL و SSL/TLS برای رمزگذاری استفاده میکند. این پروتکل قابلیت کانفیگ فراوانی داشته و اگر از الگوریتم AES استفاده شود، یکی از قوی ترین پروتکلهای VPN خواهد بود.
چون این پروتکل بصورت تعبیه شده در سیستم عاملهای رایج پشتیبانی نمیشود، برای استفاده از آن باید یک برنامه جانبی بر روی سیستم خود نصب کنید. استفاده از این پروتکل پیشنهاد میشود ولی نسبت به SSTP کمی کم ثبات تر است.
مخفف Internet Protocol Security بوده و پروتکلی برای امن کردن شبکه عمومی اینترنت است. این پروتکل علاوه بر قابلیت رمزگذاری، میتواند تونل نیز بزند. این پروتکل در دوحالت Transport Mode که فقط اطلاعات موجود در قسمت داده بسته IP را رمزگذاری میکند و حالت Tunnel Mode که کل بسته IP (داده و سربرگ (هدر)) را رمزگذاری میکند. این پروتکل در کانکشنهای VPN در کنار پروتکل L2TP کار میکند.
L2TP مخفف Layer 2 Tunneling بوده، برای تونلینگ استفاده میشود، بر پایه PPP بوده و قابلیت رمزگذاری ندارد. با این حال در ترکیب با IPSec میتواند بسیار مناسب باشد.
ترکیب پروتکل L2TP/IPSec در سیستم عاملهای جدید بصورت تعبیه شده پشتیبانی میشود. یعنی راه اندازی آن آسان بوده و از طرفی امنیت بالایی هم دارد. ولی چون قابلیت کانفیگ یا پیکربندی زیادی ندارد نسبت به OpenVPN در رده پایین تری قرار میگیرد.
مخفف Secure Socket Tunneling Protocol بوده و پروتکلی برای تونلینگ است با اینحال در کنار پروتکل SSL برای رمزگذاری، برای کانکشنهای VPN بسیار مناسب است. SSTP از ویندوز ویستا سرویس پک ۱ به بعد بصورت تعبیه شده توسط این سیستم عاملها پشتیبانی میشود و به دلیل همین پشتیبانی اغلب بهتر از OpenVPN است. با کانفیگ کردن این پروتکل برای استفاده از رمزگذاری AES یک کانکشن قوی خواهید داشت. استفاده از SSTP بیشتر از سایر پروتکلها پیشنهاد میشود.
ویژگیهای یک vpn خوب به صورت زیر است: