AAA شامل سه بخش Authentication (احراز هویت یا تایید اعتبار)، Authorization (تعیین مجوز یا سطح دسترسی) و Accounting (جمع آوری گزارش از فعالیت کاربران) می ­باشد. مکانیزمی است که به کمک آن می ­توان امنیت شبکه را ساده ­تر پیاده سازی نمود. این مکانیزم دارای یک دیتابیس متمرکز امن، برای نگهداری نام کاربری، کلمه عبور تمام کاربران، Log های ایجاد شده و غیره است.

Authentication: این بخش وظیفه تایید ­هویت کاربران را بر عهده دارد و اجازه دسترسی کاربر به منابع شبکه را با پرسیدن برخی از مدارک معتبر مانند نام کاربری و رمز عبور مشخص می کند. در یک شبکه برای دسترسی مدیر شبکه به روتر ها، سوئیچ ها و سایر دستگاه ها، سه روش امکان پذیر است:  اتصال به صورت مستقیم با استفاده از کابل کنسول، اتصال به صورت Remote با استفاده از پورت AUX و یا با استفاده از پروتکل هایی نظیر Telnet و SSH که در این صورت نیاز به یک آدرس آی پی خواهد بود. بنابراین این احتمال وجود دارد تا یک کاربر غیر مجاز نیز بتواند به آن دستگاه دسترسی پیدا کند. در نتیجه برای اتصال به دستگاه های شبکه از طریق کابل کنسول و یا از طریق Remote، نیاز به اقدامات امنیتی برای احراز هویت کاربران می باشد.

Authorization: کاربران دارای سطوح دسترسی متفاوت به منابع و دستگاه های شبکه می باشند. این بخش برای مشخص کردن سطح دسترسی کاربران به کار می ­رود و این امکان را فراهم می کند تا پس از دسترسی کاربر به منابع شبکه از طریق Authentication، سیاست های مربوط به سطح دسترسی به منابع شبکه اجرا شود. پس از تایید اعتبار موفق، با استفاده از مجوز مشخص می شود کاربر به چه منابعی اجازه دسترسی دارد و عملیاتی که می تواند انجام دهد کدام است.

به عنوان مثال، اگر یک مهندس شبکه (که نباید به همه منابع دسترسی داشته باشد) بخواهد به دستگاه شبکه (مانند روتر و …) دسترسی پیدا کند، سرپرست می تواند یک View ایجاد کند که اجازه می دهد تا آن کاربر تنها دستورات خاصی را بتواند اجرا نماید. مدیر شبکه می تواند از روش های متفاوتی مانند دیتابیس داخلی دستگاه و یا یک سرور خارجی از راه دور، برای تعیین مجوز و دسترسی کاربر استفاده کند.

Accounting: بعد از انجام Authentication و Authorization، کاربر به شبکه دسترسی پیدا می­ کند و شروع به استفاده از منابع و سرویس های شبکه می­ کند. این بخش وظیفه نظارت و ضبط وقایع انجام شده توسط کاربر در هنگام دسترسی به منابع و سرویس ها را بر عهده دارد و گزارش آن ها را تهیه می کند. همچنین در این بخش می توان بر مدت زمان دسترسی کاربر به شبکه نیز نظارت داشت.

بنابراین AAA یک Framework استاندارد است که به منظور کنترل افراد مجاز در شبکه برای استفاده از منابع (از طریق Authentication)، اقداماتی که آن ها مجاز به انجام آن هستند (از طریق Authorization) و جمع آوری Log از اقدامات انجام شده توسط کاربران هنگام دسترسی به شبکه (از طریق Accounting) استفاده می شود و در نهایت منجر به تامین سطح امنیت بالاتر در شبکه خواهد شد.

کاربرد AAA

Admin Access or Device Access: زمانی که مدیر یا Admin شبکه بخواهد از طریق کنسول، Telnet ،SSH به دستگاه ­های شبکه (مانند: روتر و …) متصل شود.

Network Access: زمانی که کاربر شبکه بخواهد به شبکه متصل شود تا از سرویس­ های موجود در شبکه استفاده کند.

اجزای AAA

Supplicant: ادمین یا کاربر شبکه که تقاضای اتصال به دستگاه ها یا سرویس های شبکه را دارد.

AAA-Client: دستگاهی است که بین Supplicant و AAA-Server قرار می­ گیرد و تایید هویت را به AAA-Server ارسال می­ کند و بر اساس پاسخ سرور به کاربر اجازه ورود و یا مانع از آن می شود. این نقش توسط دستگاه ­هایی مانند روتر، سوئیچ و … انجام می شود. شایان ذکر است که AAA-Client با نام ­های Authenticator ،Network Access Device –  NAD و Policy Enforcement Point PEP نیز شناخته می ­شود.

AAA-Server: در خواست ارسال شده توسط AAA-Client را با دیتابیس خود بررسی و نتیجه را به AAA-Client اعلام می­ کند و این تصمیم را می گیرد که کاربر اجازه دسترسی به منابع شبکه را داشته باشد یا خیر. قابل ذکر است که AAA-Server با نام Authentication Server نیز شناخته می شود.

AAA

AAA

AAA برای ارتباط Supplicant با AAA-Client از مجموعه پروتکل های خانواده Extensible Authentication Protocol EAP استفاده می­ کند.

همچنین برای ارتباط AAA-Client با AAA-Server از دو نوع پروتکل امنیتی زیر استفاده می­ کند:

RADIUS: پروتکل استاندارد که ارتباط آن از نوع UDP است که به صورت پیش فرض از شماره پورت های 1812/1813 و یا 1645/1646 استفاده می کند و فقط کلمه عبور را رمزگذاری می ­کند. این پروتکل Authentication و Authorization را به عنوان یک سرویس در هم ادغام می­ کند و فقط جهت کنترل دسترسی کاربران مورد استفاده قرار می ­گیرد. در نتیجه برای Network Access مناسب است.

+TACACS: پروتکل انحصاری سیسکو که ارتباط آن از نوع TCP است که به صورت پیش فرض از شماره پورت 49 استفاده می کند. این پروتکل تمام بسته را رمزنگاری کرده و همچنین سه بخش AAA را به صورت جداگانه انجام می ­دهد. در نتیجه برای Admin Access مناسب است.

پیاده سازی AAA

 همانطور که بالاتر اشاره شد AAA را می توان با استفاده از دیتابیس داخلی دستگاه (مانند: روتر و …) یا با استفاده از یک سرور خارجی پیاده سازی کرد.

دیتابیس داخلی دستگاه: در صورت استفاده از پیکربندی داخلی روتر یا سوئیچ برای پیاده سازی AAA، در ابتدا باید کاربران را برای تایید اعتبار ایجاد کرده و سپس مجوز سطح دسترسی برای کاربران فراهم شود.

سرور خارجی: این روشی متداول است که در بیشتر موارد استفاده می شود. در این روش بسته به مقیاس شبکه از یک یا چند سرور خارجی مانند Identity Services Engine ISE استفاده می شود که می­ تواند بر روی Appliance های Secure Network Server SNS سیسکو یا به صورت Virtual بر روی VMware نصب شود.

تفاوت بین پروتکل RADIUS و +TACACS

  • پروتکل RADIUS، اولین بار در سال 1991 توسط شرکت Livingston Enterprises Inc توسعه داده شد که بعد ها با Alcatel Lucent ادغام شد. سپس با تبدیل RADIUS به یک استاندارد IETF، تمامی Vendor ها از RADIUS پشتیبانی می کنند. +TACACS دیگر پروتکل AAA است که توسط سیسکو در سال 1984 برای وزارت دفاع ایالات متحده توسعه داده شد. شایان ذکر است در سال های اخیر این پروتکل نیز به یک استاندارد IETF تبدیل شده است.
  • در RADIUS فرایند Authentication و Authorization با هم ادغام شده است و فرایند Accounting آن به صورت مستقل صورت می گیرد در +TACACS هر سه فرایند Authentication، Authorization و Accounting به صورت مستقل از هم انجام می شود.
  • RADIUS بر بستر UDP و +TACACS بر بستر TCP می باشد.
  • RADIUS به صورت پیش فرض برای فرایند Authentication و Authorization خود که هم زمان انجام می شوند، از پورت های 1812 و یا 1645 و برای فرایند Accounting خود از پورت های 1813 و یا 1646 استفاده می کند. +TACACS برای هر سه فرایند خود یعنی Authentication، Authorization و Accounting به صورت پیش فرض از پورت 49 استفاده می کند.
  • RADIUS تنها رمز عبور (Password) را رمز گذاری (Encrypt) می کند و سایر اطلاعات نظیر نام کاربری، اطلاعات Accounting و… رمز گذاری نمی شوند و به صورت Clear-Text ارسال می شوند. +TACACS تمامی بسته ها را رمزگذاری می کند.
  •  RADIUS برای Network Access و +TACACS برای Device Admin طراحی شده است.

مزیت های +TACACS نسبت به RADIUS

  • از آن جا که +TACACS از TCP استفاده می کند، بنابراین از RADIUS قابل اطمینان تر است.
  • در +TACACS، دو فرایند Authentication و Authorization از یکدیگر مستقل هستند، لذا +TACACS کنترل بیشتری را در مورد مجوز دستورات انجام می دهد و امکان تعیین سطح دسترسی به صورت Command-By-Command در سوئیچ ها و روتر ها، وجود خواهد داشت. به همین دلیل است که از +TACACS برای کاربرد های Device Admin استفاده می شود.
  • اما در RADIUS فرایند های Authentication و Authorization ادغام شده است و Authorization تنها در ابتدای برقراری ارتباط به همراه Authentication صورت می گیرد، لذا RADIUS، به صورت پیش فرض در فرایند Authorization خود هیچ گونه مجوز برای تعیین سطح دسترسی به صورت Command-By-Command را پشتیبانی نمی کند. شایان ذکر است، بعضی از Vendor ها با افزودن برخی Attribute های اختصاصی (VSA) خود، تا حد کمی مجوز تعیین سطح دسترسی برای اجرای بعضی دستورات را فراهم می کنند.

  • همچنین با توجه به اینکه تمامی محتوای بسته های AAA در +TACACS رمزگذاری می شوند، این پروتکل از امنیت بیشتری نسبت به RADIUS برخوردار است.

مزیت های RADIUS نسبت به +TACACS

  • از آن جا که RADIUS یک پروتکل مبتنی بر UDP است و همچنین Authorization همزمان با Authentication ارسال می شود، این پروتکل سربار کمتری در شبکه و بر روی Resource دستگاه ها خواهد داشت. اما به دلیل آنکه +TACACS یک پروتکل مبتنی بر TCP بوده و همچنین امکان برخورداری از یک Authentication و چندین Authorization در یک Session را دارد، سربار بیشتری در شبکه خواهد داشت.
  • RADIUS از مکانیزم های Authentication مبتنی بر EAP Extensible Authentication Protocol پشتیبانی می کند در نتیجه می توان از Dot1x در RADIUS استفاده کرد در حالی که +TACACS از مکانیزم های Authentication مبتنی بر EAP Extensible Authentication Protocol پشتیبانی نمی کند و نمی توان از Dot1x در +TACACS استفاده کرد.

در جدول زیر مقایسه این دو پروتکل به صورت مختصر آورده شده است :

RADIUS +TACACS
یک پروتکل استاندارد می باشد در ابتدا توسط شرکت سیسکو توسعه داده شد و تنها روی تجهیزات سیسکو پشتیبانی می شد، اما در حال حاضر یک پروتکل استاندارد می باشد
فرایند هایAuthentication و Authorization با هم ادغام شده اند و هم زمان صورت می گیرند فرایند های Authentication ،Authorization و Accountability  مستقل از هم صورت می گیرند
از UDP به عنوان پروتکل لایه Transport استفاده می کند از TCP به عنوان پروتکل لایه Transport استفاده می کند
از پورت های UDP، 1812 و 1813 / 1645 و 1646 استفاده می کند از پورت TCP شماره 49 استفاده می کند
فقط رمز عبور رمزگذاری می شود ولی  اطلاعات دیگر مانند نام کاربری، اطلاعات Accounting و … رمزگذاری نمی شوند تمام محتوای بسته های AAA رمزگذاری می شوند. در نتیجه امن تر است
برای کاربرد Network Access مناسب می باشد برای کاربرد Device Administration استفاده می شود
در فرایند Authorization خود هیچگونه مجوز برای تعیین سطح دسترسی به صورت Command-By-Command را پشتیبانی نمی کند امکان تعیین سطح دسترسی به صورت Command-By-Command در سوئیچ ها و روتر ها، وجود خواهد داشت
یک پروتکل Light-weight است که منابع کمتری مصرف می کند یک پروتکل Heavy-weight است که منابع بیشتری را مصرف می کند
از مکانیزم های Authentication مبتنی برEAP  پشتیبانی می کند در نتیجه می توان از Dot1x در RADIUS استفاده کرد از مکانیزم های Authentication مبتنی برEAP  پشتیبانی نمی کند و  نمی توان از Dot1x در +TACACS استفاده کرد