نويسنده : كيانوش مراديان
kianoushm@sgnec.net
مدير واحد طراحي شبكه
شركت همكاران سيستم



افزايش تعداد سرورهاي شبكه در پي راه اندازي سرويس هاي مختلف، Data Base هاي مختلف كاربران و سياست هاي متنوع، دسترسي افراد را به منابع مختلف ايجاد خواهد كرد بطوريكه پس از مدتي جهت اضافه كردن كاربر جديد به سيستم، نياز به تعريف آن در چندين سرور وجود خواهد داشت. اين پراكندگي و لزوم اعمال سياست هاي متمركز ،مديران شبكه را ناچار به اتخاذ تدابيري مؤثرتر مي كند لذا تعريف و پياده سازي AAA Server يكي از اين تدبيرهاست كه بر دسترسي كاربران به منابع شبكه ، مديريت مستقيم و متمركز نظارت خواهد داشت.

AAA Server يك برنامه نرم افزاري سرور است كهامكان دسترسي كاربران را با منابع كامپيوتري شبكه برقرار مي كند. اين برنامه براي شبكه هاي Enterprise سرويس هاي Authentication ، Authorization و Accounting را فراهم مي آورد. در واقع AAA Server با دسترسي شبكه ، سرورهاي Gateway ، Database ها و جدول هاي اطلاعاتي كاربران در تعامل است . پروتكل استانداردي كه اجازه ارتباط دستگاه ها و نرم افزارهاي مختلف را با AAA Server مي دهد RADIUS مي باشد ( Remote Authentication Dial-In User Service(.
RADIUS يك پروتكل ارتباطي با ساختار Client-Server است همچنين آن را مي توان سرويسي نرم افزاري ناميد كه ارتباط سرورهاي دسترسي از راه دور را با سرور مركزي جهت authentication كاربران تلفني و authorize دسترسي آن ها به سيستم يا سرويسي خاص فراهم مي آورد. RADIUS امكان گرد آوري اطلاعات كاربران شبكه را با Database مركزي فراهم مي آورد و اين Database بين سرورهاي دسترسي راه دور به اشتراك گذارده شده است و اين خاصيت ، امنيت بهتر و سياست گذاري دامين را در پي خواهد داشت. امروزه RADIUS بطور گسترده در مديريت دسترسي به سرويس هاي شبكه كاربرد يافته است لذا استانداردي را در جهت تبادل اطلاعات بين سرورهاي دسترسي شبكه و AAA Server فراهم آورده است.
Authentication ، Authorization و Accounting اصطلاحاتي در يك چهارچوب هستند كه در كنترل هوشمند دسترسي كاربران نقش ايفا مي كنند و پيشبرد سياست گذاري ، اصلاح كاربرد و تهيه اطلاعات مورد نياز جهت راه اندازي سرويس ها از فايده هاي ديگر آن است. اين پردازش هاي تركيبي براي مديريت شبكه و امنيت آن كاملا ضروري هستند.

RADIUS يا TACACS+
اين دو از پروتكل هاي رايج احراز هويت هستند كه بطور عمده در شبكه هاي كامپيوتري مورد استفاده قرار مي گيرند. پردازش هاي توضيح داده شده در اين نوشتار مبتني بر RADIUSخواهد بود اما در جهت آشنايي خوانندگان، گريزي بر TACACS+ و مقايسه آن با RADIUS خواهم زد.
TACACS بيشتر در تنظيمات روترهاي شبكه با مكانيزم هاي متنوع Authentication نظير DES(Data Encryption STANDARD) و OTP (One Time password) مورد استفاده قرار مي گيرد همچنين قادر است تا 16 مرحله دسترسي را پشتيباني كند نيز مي تواند اجازه دسترسي به سرويس هاي مختلف شبكه را نظير PPP ، Shell ، Standard Login و . . .فراهم آورد. AAA Server اي كه از TACACS+ جهت Authentication استفاده مي كند بيشتر به عنوان يك Proxy Server براي روترهاي Cisco و NAS ها عمل مي كند. TACACS+ از پاكت هاي TCP كه Connection oriented مي باشد استفاده مي كند.
RADIUS توسط شركت Livingston به عنوان استاندارد Authentication ايجاد شد و بيشتر جهت ISP هاي بزرگ كاربرد دارد. در قياس با TACACS+ ، RADIUSCPU و RAM كمتري را اشغال مي كند. RADIUS از پاكت هاي اطلاعاتي UDP كه Connection less مي باشد استفاده مي كند.

RADIUS
  • <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l0 level1 lfo1" dir=rtl class=MsoNormal>از UDP استفاده مي كند <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l0 level1 lfo1" dir=rtl class=MsoNormal>رمزنگاري را فقط هنگامي درخواست دسترسي انجام مي دهد <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l0 level1 lfo1" dir=rtl class=MsoNormal>Authentication و Authorization را با هم انجام مي دهد <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l0 level1 lfo1" dir=rtl class=MsoNormal>استانداردي صنعتي است كه توسط شركت livingston ايجاد شده است <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l0 level1 lfo1" dir=rtl class=MsoNormal>برخي از پروتكل ها نظير ARA ، NASI و X.25 PAD را پشتيباني نمي كند.
  • نحوه اجراي دستورات را روي روترها سنجش نمي كند

TACACS+
  • <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l1 level1 lfo2" dir=rtl class=MsoNormal>از TCP استفاده مي كند <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l1 level1 lfo2" dir=rtl class=MsoNormal>رمزنگاري را در درون Packet انجام مي دهد و امنيت بالاتري دارد <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l1 level1 lfo2" dir=rtl class=MsoNormal>عمليات Authentication ، Authorizationو Accounting را بطور مجزا انجام مي دهد <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l1 level1 lfo2" dir=rtl class=MsoNormal>از سرويس هاي ايجاد شده Cisco است <LI style="TEXT-ALIGN: justify; MARGIN: 0in 0.5in 0pt 0in; unicode-bidi: embed; DIRECTION: rtl; tab-stops: list .5in; mso-list: l1 level1 lfo2" dir=rtl class=MsoNormal>كليه پروتكل ها را پشتيباني مي كند
  • دستورات روترها را از دو طريق كنترل مي كند Per User و Per group

عمليات پردازش AAA Server :
به عنوان اولين پردازش ، Authentication راهي را جهت تشخيص هويت كاربران فراهم مي آورد كه بطور معمول اينكار با وارد كردن كلمه كاربري و كلمه عبور صحيح قبل از برقراري دسترسي خاص صورت مي گيرد.
AAA Server مشخصات كاربر را با Data Base مركزي خود مقايسه كرده و درصورتيكه تطبيق داشته باشد دسترسي داده مي شود و درغير اينصورت دسترسي denied خواهد شد. در شبكه هاي خصوصي يا عمومي نظير اينترنت Authentication با استفاده ازpassword logon صورت مي گيرد. دانستن كلمه عبور درواقع دسترسي كاربر را به منابع مورد نيازش گارانتي مي كند. از نقص هاي اين سيستم مي توان به ***يده شدن كلمه عبور ، اتفاقي لو رفتن و فراموش كردن آن اشاره كرد به همين دليل كسب و كار اينترنتي و معاملات بانكي و ساير فعاليت هاي مهم روي اينترنت و شبكه نياز به پردازش هايي ديگر (به غير از Authentication) خواهند داشت. استفاده از Digital Certification كه توسط Certificate Authority يا CA مورد سنجش قرار مي گيرد بخشي از ساختار كليد عمومي است كه امروزه تبديل به استاندارد Authentication روي اينترنت شده است.
پيرو Authentication صورت گرفته شده Authorization جهت انجام وظيفه هاي خاص پس از Login به سيستم صورت مي گيرد. به عنوان مثال كاربر تصميم به اجراي دستوراتي روي سيستم دارد. پردازش Authorization مشخص مي كند كه آيا كاربر اجازه اجراي آن دستورات خاص را دارد يا خير. به بيان ساده تر Authorization پردازشي است براي كاربر كه سياست هايي خاص را در رابطه با نوع فعاليت ، كيفيت ، منابع و سرويس ها برقرار مي كند. معمولا Authorization همراه با Authentication صورت مي گيرد. درواقع
Authorization پردازشي است كه به كاربر اجازه انجام دادن كاري و يا داشتن چيزي را مي دهد. در سيستم هاي كامپيوتري چند كاربره ، سرپرست سيستم براي سيستم مشخص مي كند كه چه كاربراني اجازه دسترسي به سيستم را دارند و حدود دسترسي آن ها چقدر است. به عنوان مثال به چه دايركتوري دسترسي دارند، زمان دسترسي او چقدر است و يا حجم رسانه قابل ذخيره سازي او چه مقدار است و ...
وقتي كاربر به سيستم عامل يا برنامه كاربردي Login مي كند، سيستم يا نرم افزار بايد مشخص كند كه چه منابعي بايد به آن كاربر طي يك Session تخصيص داده شود.
قسمت آخر چهارچوب AAA ، Accounting مي باشد كه ميزان استفاده كاربر را در طول دسترسي مشخص مي كند. Accounting مشخص مي كند كه كاربر مجوز استفاده از چه مدت و به چه مقدار اطلاعات در طول برقراري يك Session را دارد.
AAA Server درخواست ايستگاه كاري را مبني بر استفاده از منابع شبكه دريافت مي كند و سعي در Authenticate كاربر مي نمايد سپس حدود دسترسي كاربر را به ايستگاه كاري ارسال مي نمايد. AAA Server ممكن است بصورت محلي Authentication را انجام دهد و يا اينكه مانند يك Proxy عمل كرده و درخواست را به AAA Server ديگري انتقال دهد. پس از Forward كردن درخواست اين سرور انتقال اطلاعات را بين سرور دسترسي شبكه و AAA Server ادامه مي دهد. در انتها ميزان دسترسي كاربر با توجه به تنظيمات قبلي لحاظ مي شود.

مفهوم دسترسي
دسترسي يا Access يعني دستيابي ساده به آنچه كه مورد نيازمان است. Data Access يعني توانايي دستيابي به اطلاعات ويژه مورد نيازمان (كه معمولا با اجازه دادن سيستم صورت مي گيرد). دسترسي Web يعني اينكه بتوانيم به شبكه جهاني وب از طريق يك ايجاد كننده دسترسي به اينترنت يا ISP وصل شده و از آن استفاده كنيم. دسترسي به اطلاعات معمولا در دو قالب فقط خواندني و خواندني/نوشتني انجام مي پذيرد.

روش هاي Authentication :
درزير به برخي از روش هاي مرسوم Authentication اشاره شده است :

1- Password Authentication Protocol(PAP)
روش Authentication ساده اي براي برقراري يك ارتباط است. كلمه عبور بصورت Clear Tex بين كاربر و ايستگاه كاري مبادله مي شود و هنگاميكه براي Authentication با RADIUS استفاده شود پيغام بين سرور وايستگاه كاري جهت برقراري يك ارتباط PPP مبادله مي شود.

2- Challenge Handshake Authentication Protocol (CHAP)
روش قوي تري است كه جهت Authentication بين ايستگاه كاري و سرور استفاده مي شود. در اين روش قبل از ارسال درخواست دسترسي ، اطلاعات اوليه كاربر ميان ايستگاه كاري و سرور NAS يا Network Access Server رد و بدل شده و بعد از تصديق هويت ، درخواست به AAA Server منتقل مي شود.

3- Microsoft Challenge Handshake Authentication Protocol (MS-CHAP)
پروتكلي است كه شركت ميكروسافت با توجه به روش CHAP براي ايجاد ارتباط امن ايستگاه هاي كاري دور خود ايجاد كرده است. درحالت كلي MSCHAP مشابه CHAPاست.تفاوت اين پروتكل را مي توان در دو مورد خلاصه كرد. اين پروتكل برپايه Encryption و الگوريتم hash كه توسط شبكه هاي ويندوزي ايجاد مي شود عمل مي نمايد و همچنين پاسخ اوليه كه توسط MS-CHAP براي Authentication ايجاد مي شود كاملا منطبق بر سيستم عامل ويندوز است.

4- Extensible Authentication Protocol(EAP)
روش بسيار امن براي Authentication با انعطاف پذيري بيشتر است و قادر است با الگوريتم هاي مختلفي نظير MD5 كار كند. همچنين EAP مي تواند در قالب پروتكل هاي ديگر، Encapsulate شود لذا كاربرد آن وسيعتر از CHAP و PAP خواهد شد.

نتيجه سخن :
استفاده از راهكارهاي جديد مديريت شبكه و آسان نمودن پردازش هاي تكراري از اهداف استفاده از AAA Server است كه هدف از آن مديريت دسترسي متمركز افراد به منابع شبكه است لذا در اين راستا از سرويس هاي RADIUS و TACACS+ استفاده مي شود.
Authentication ، Authorization و Accounting پردازش هايي هستند كه جهت احراز هويت كاربر شبكه و ميزان و وضعيت دسترسي او به منابع مختلف انجام مي شوند.