مدل AAA چیست؟
امروزه مبحث اعتبارسنجی در شبکهها به یکی از مهمترین مباحث تبدیل شده است. کاربران از طریق دستگاههای مختلف به دادههای شبکه و منابع آن دسترسی پیدا میکنند. این اتفاق از طریق طیف وسیعی از سختافزارها رخ میدهد. سوئیچهای اترنت، اکسسپوینتهای Wi-Fi، VPN سرورها، اجازهی دسترسی به شبکه را فراهم میکنند. این دستگاهها که دسترسی کاربران به شبکه را برقرار میکنند، (NAS (Network Access Server نامیده میشوند. از طرفی لازم است که دستگاههای NAS کاربران را کنترل و سطحی از امنیت را فراهم کنند. این لزوم معمولا تحت عناوین Authentication، Authorization و Accounting یا مدل AAA تعریف میشوند. AAA (بخوانید Triple A) یک مدل معماری است که میتوان برای پیادهسازیهای خاص آن را به کار برد. در این مقاله به بررسی مدل AAA و پروتکل Radius میپردازیم.
در این مطلب برای بیان مثالهای خود از شخصیت های آلیس و آیزاک استفاده میکنیم. آلیس کاربری است که میخواهد به آیزاک که یک ISP است متصل شود.
احراز هویت (Authentication)
احراز هویت نخستین گام برای دسترسی به شبکه و سرویسهای آن است. فرآیند احراز هویت بیان میکند که آیا مدارکی که آلیس ارائه کرده مورد قبول است یا خیر؟
معمولترین راه برای ارائهی مدرک (Credential) جهت احراز هویت نام کاربری و کلمهی عبور است. راههای دیگری مانند توکنهای یکبارمصرف، گواهینامهها، PIN Numberها و یا حتی مشخصههای بایومتریک نیز وجود دارد.
بعد از اینکه احراز هویت با موفقیت به اتمام رسید نشستی آغار میشود و این نشست تا زمانی که ارتباط با شبکه خاتمه یابد طول میکشد. شکل زیر فرآیند احراز هویت با مثال ملموس کار با دستگاه خودپرداز را نشان میدهد. این فرآیند به شما اجازه میدهد به شبکهی بانک متصل شوید.
سطح دسترسی (Authorization)
سطح دسترسی به این معنا است که آیزاک میزان دسترسی به منابع را کنترل میکند. بعد از این که آلیس عملیات احراز هویت را انجام داد، آیزاک میتواند محدودیتهای مشخصی یا سطوح دسترسی خاصی برای آلیس ایجاد کند. برای مثال آیزاک میتواند تعیین کند که آلیس با چه دستگاه یا وسیلهای به شبکه متصل شود. تعداد نشستهای باز آلیس را محدود کند و یا اینکه یک آدرس IP از پیش تعیین شده به آلیس بدهد و فقط اجازهی عبور ترافیک مشخصی را به آن بدهد.
تعیین سطوح دسترسی معمولا بر اساس یک منطقی صورت میپذیرد. به عنوان مثال اگر آلیس عضو گروه دانشجویان است، پس اجازهی دسترسی به اینترنت در ساعتهای کاری به او داده نمیشود. این منطق میتواند بر اساس پارامترهای بسیاری باشد. تصمیمگیریها برای Authorization میتواند بر اساس “عضویت در گروه NASای که از طریق آن به شبکه متصل هستید” و یا حتی “زمان و ساعت دسترسی به منابع” باشد.
اگر به مثال خودپرداز بانک برگردیم، ملاحظه میکنید که اگر آلیس درخواست برداشت مبلغی بیشتر از میزان موجودی حسابش را کند، آیزاک او را محدود به موجودی حسابش میکند و اجازه برداشت بیشتر به او نمیدهد.
حسابرسی (Accounting)
Accounting یعنی محاسبهی میزان استفاده از منابع. پس از این که آیزاک آلیس را شناخت (Authentication) و کنترلهای لازم را روی نشست آن اعمال کرد (Authorization)، او میتواند میزان استفادهی آلیس را محاسبه کند. Accounting فرآیند مداوم اندازهگیری میزان استفاده از منابع است. دادههای حسابرسی به آیزاک اجازه میدهد صورت حساب آلیس را بدست بیاورد. دادههای حسابرسی فقط برای محاسبهی صورت حساب نیست و میتوان از این دادهها برای برنامهریزیهای آینده، ارزیابی و نظارت بهره برد.
در شکل زیر ملاحظه میکنید که آلیس صورت حساب هفتهی قبل خود را درخواست میکند. آیزاک در جواب مقادیر صورت حساب هفتهی قبل را بر حسب روزهای هفته به آلیس برمیگرداند.
پروتکل Radius
از پروتکل Radius برای فراهم کردن AAA روی TCP/IP استفاده میشود. کلمهی Radius مخفف شدهی عبارت Remote Access Dial In User Service است. پشتیبانی از پروتکل Radius و استانداردهایش متاثر از نیازمندیهای سازندگان NASها است. Radius در مکانهای مختلفی استفاده میشود؛ از شبکههای موبایل که میلیونها کاربر دارند تا استارتآپهای کوچک. ISPها و مدیران شبکه باید با Radius آشنا باشند، چون در دستگاههای مختلفی از آن استفاده میشود تا دسترسی به شبکهی TCP/IP کنترل شود. در زیر مثالهایی آورده شده است:
- فایروالی با سرویس VPN میتواند از Radius استفاده کند.
- اکسسپوینت Wi-Fi با رمزنگاری WPA-2-Enterprise درگیر Radius است.
- زمانی که آلیس از طریق مخابرات و با زیرساخت DSL به شبکه متصل میشود، مخابرات از طریق Radius میتواند بررسی کند که آیا آلیس میتواند به اینترنت متصل شود یا نه.
پروتکل Radius در RFC2865 بیان شده است اما مبحث accounting در آن وجود ندارد، این مبحث در RFC2866 بیان شده است.
پروتکل Radius یک پروتکل client/server است که از UDP برای برقرار کردن ارتباط استفاده میکند. استفاده از UDP بجای TCP نشان میدهد که ارتباطات سختگیرانه نیستند. یک جریان معمولی از داده بین کلاینت و سرور شامل یک درخواست از سوی کلاینت است و به دنبال آن یک جواب از سوی سرور است. این موضوع باعث میشود که Radius یک پروتکل سبک باشد و کارایی بسیاری در شبکههای کند داشته باشد. قبل از برقراری ارتباط موفق بین کلاینت و سرور، در هر کدام باید یک عبارت امنیتی مشترک تعریف شود. از این عبارت برای احراز هویت کلاینت استفاده میشود. در شکل زیر ملاحظه میکنید که NAS مانند یک Radius کلاینت عمل میکند.