Xem mẫu

  1. Chương IV: GIAO THỨC RADIUS Coù hai giao thöùc RADIUS moâ taû veà: [Giao thöùc RADIUS1] Xaùc nhaän quyeàn (authentication), phaân quyeàn (authorization),  thoâng tin caáu hình giöõa maùy chuû quaûn lyù truy caäp maïng (Network Access Server - NAS) maø coù caùc yeâu caàu caàn xaùc nhaän vaø maùy chuû xaùc nhaän quyeàn duøng chung (Shared Authentication Server). [Giao thöùc RADIUS2] Thoâng tin veà taøi khoaûn giöõa NAS vaø maùy chuû quaûn lyù taøi khoaûn  duøng chung (Shared Accounting Server).  RADIUS được xây dựng dựa trên giao thức lớp transport nào? Moät caâu hoûi thöôøng ñöôïc ñaët ra laø taïi sao RADIUS laïi söû duïng giao thöùc UDP thay vì TCP ô û lôùp transport. UDP ñöôïc choïn vì moät soá chæ tieâu kyõ thuaät nghieâm ngaët ñöôïc ñaët ra. RADIUS thaät ra laø moät giao dòch (transaction) ñöôïc xaây döïng döïa treân giao thöùc coù caùc tính chaát chính nhö sau: 1. Neáu nhö yeâu caàu (request) gôûi tôùi maùy chuû xaùc nhaän quyeàn sô caáp (primary authentication server) thaát baïi, thì yeâu caàu naøy phaûi ñöôïc gôûi tôùi maùy chuû sô caáp (secondary server). Ñeå thöïc hieän yeâu caàu naøy, moät baûn sao yeâu caàu phaûi ñöôïc löu treân lôùp transport ñeå cho pheùp vieäc truyeàn luaân phieân. Ñieàu naøy coù nghóa laø phaûi coù timers cho vieäc truyeàn laïi (retransmission). 33
  2. 2. Caùc ñoøi hoûi veà thôøi gian cuûa RADIUS raát khaùc bieät so vôùi TCP. Moät maët, RADIUS khoâng yeâu caàu "caâu traû lôøi" (responsive) veà vieäc doø tìm döõ lieäu bò maát. User saún saøng chôø trong nhieàu giaây ñeå cho vieäc xaùc nhaän quyeàn (authentication) ñöôïc hoaøn taát. Vieäc truyeàn laïi thöôøng xaûy ra ñoái vôùi TCP döïa treân thôøi gian truyeàn nhaän trung bình (average round trip time) khoâng caàn thieát nöõa, keå caû thôøi gian hao toán cho vieäc nhaän bieát phaûn hoài veà (acknowledge ment overhead). Maët khaùc, user khoâng theå chôø ñôïi quaù laâu trong nhieàu phuùt cho vieäc xaùc nhaän quyeàn. Vieäc phaûi chôø quaù hai phuùt ñeå döõ lieäu ñöôïc truyeàn ñi tin caäy laø khoâng höõu ích. Vieäc söû duïng luaân phieân nhanh choùng server seõ cho pheùp user truy caäp ñöôïc vaøo maïng tröôùc khi hoï "boû cuoäc". 3. Traïng thaùi raát töï do cuûa RADIUS ñaõ ñôn giaûn hoùa vieäc söû duïng UDP. Caùc clients vaø servers coù theå ñaêng kyù vaøo hoaëc ra khoûi maïng; Heä thoáng bò khôûi ñoäng laïi vì moät lyù do naøo ñoù; Nguoàn ñieän bò maát… Caùc söï kieän baát thöôøng (anomalous events) naøy noùi chung seõ khoâng gaây nguy hieåm neáu nhö coù nhöõng timeouts toát vaø xaùc ñònh ñöôïc caùc caàu noái TCP ñaõ bò ñöùt. Tuy nhieân UDP hoaøn toaøn boû qua caùc söï coá ñaët bieät naøy; Caùc clients vaø servers coù theå môû moät "chuyeán vaän chuyeån döõ lieäu" UPD ngay laäp töùc vaø ñeå noù töï nhieân truyeàn treân maïng vôùi caùc söï kieän coù theå coù. 4. UPD ñôn giaûn hoùa vieäc thöïc hieän (implementation) server. Ôû nhöõng phieân baûn tröôùc, server ñöôïc thöïc hieän ñôn luoàng (single threaded), coù nghóa laø moãi luùc chæ coù 1 yeâu caàu ñöôïc nhaän, xöû lyù vaø traû veà. Ñieàu naøy khoâng theå quaûn lyù ñöôïc trong moâi tröôøng kyõ thuaät an toaøn quay voøng (back-end security mechanism) duøng thôøi gian thöïc (real-time) (1 hoaëc nhieàu giaây). Haøng ñôïi yeâu caàu cuûa server seõ bò ñaày, vaø trong moät moâi tröôøng coù haøng traêm ngöôøi ñöôïc yeâu caàu xaùc nhaän quyeàn trong moãi phuùt, thôøi gian qu an voøng cuûa yeâu caàu (request turn- 34
  3. around time) seõ lôùn hôn nhieàu so vôùi thôøi gian maø user mong ñôïi (Vieäc tìm tieáp trong moät cô sôû döõ lieäu hoaëc treân moät DNS chieám maát treân 30 giaây). Do vaäy, giaûi phaùp ñöôïc choïn laø thöïc hieän server cheá ñoä ña luoàng (multi-threaded) vôùi UDP. Nhöõng quaù trình (processes) ñoäc laäp seõ ñöôïc sinh ra (spowned out) treân server öùng vôùi moãi yeâu caàu (request) vaø nhöõng quaù trình naøy seõ traû lôøi tröïc tieáp vôùi caùc NAS khaùch baèng goùi UDP tôùi lôùp truyeàn daãn chính (original transport) cuûa client. II. Giao thức RADIUS1: 1. Cơ chế hoạt động (operation) Khi moät client ñöôïc ñònh caáu hình ñeå söû duïng RADIUS, thì baát cöù user naøo cuûa client ñeàu g iôùi thieäu nhöõng thoâng tin xaùc nhaän quyeàn (authentication information) vôùi client. Ñoù coù theå laø daáu nhaéc leänh ñaêng kyù vaøo maïng (login prompt) yeâu caàu user nhaäp teân vaø maät khaåu vaøo. User coù theå löïa choïn vieäc söû duïng protocol thích hôïp ñeå thöïc hieän giôùi th ieäu nhöõng thoâng tin naøy baèng caùc goùi döõ lieäu (packets), chaúng haïn nhö PPP (Point to Point Protocol). Moãi laàn client nhaän ñöôïc thoâng tin nhö vaäy, noù coù theå choïn duøng RADIUS ñeå xaùc nhaän quyeàn. Client seõ taïo ra moät "yeâu caàu truy caäp" (Access-Request) chöùa caùc thuoäc tính nhö teân, maät khaåu cuûa user, soá hieäu (ID) cuûa client vaø soá hieäu coång (port ID) maø user seõ truy caä p vaøo. Maät khaåu khi nhaäp vaøo seõ ñöôïc aån (phöông phaùp döïa treân giaûi thuaät RSA Message D igest Algorithm MD5). "Yeâu caàu truy caäp" (Access-Request) seõ ñöôïc göûi cho RADIUS thoâng qua maïng. Neáu khoâng coù traû lôøi trong moät khoaûng thôøi gian quy öôùc thì yeâu caàu seõ ñöôïc göûi laïi. Client cuõng coù theå chuyeån (forward) yeâu caàu cho caùc server döï phoøng trong tröôøng hôïp server chính bò taét hoaëc hö hoûng hoaëc hoaït ñoäng theo kieåu round-robin. 35
  4. Moãi khi RADIUS server nhaän ñöôïc yeâu caàu, noù seõ xaùc nhaän client gôûi. Nhöõng yeâu caàu töø c aùc client naøo khoâng chia seõ thoâng tin baûo maät (shared secret) vôùi RADIUS seõ khoâng ñöôïc xaùc nhaän vaø traû lôøi (silently discarded). Neáu client laø hôïp leä, RADIUS server seõ tìm kieám tron g cô sôû döõ lieäu (CSDL) user coù cuøng teân trong yeâu caàu. Chæ muïc cuûa user (use r entry) trong CSDL seõ chöùa danh saùch caùc ñoøi hoûi caàn thieát cho pheùp user truy caäp vaøo maïng. RADIUS luoân lu oân xaùc nhaän maät khaåu cuûa user vaø coù theå caû soá hieäu cuûa client vaø port maø user ñöôïc pheùp truy caäp. RADIUS server coù theå yeâu caàu caùc server khaùc xaùc nhaän yeâu caàu. Luùc ñoù RADIUS ñoùng vai troø cuûa moät client. Neáu baát cöù ñieàu kieän naøo khoâng ñöôïc thoûa, RADIUS server seõ gôûi moät traû lôøi "töø choái truy caäp" (Access-Reject) bieåu thò raèng yeâu caàu cuûa user laø khoâng hôïp leä. Server coù theå keøm moät thoâng baùo daïng vaên baûn (text message) trong Access-Reject ñeå client coù theå hieån thò cho user. Khoâng coù moät thuoäc tính naøo khaùc ñöôïc pheùp chöa trong Access-Reject. Neáu taát caû caùc ñieàu kieän ñeàu ñöôïc thoûa vaø RADIUS server muoán ñöa ra moät yeâu caàu ñoøi hoûi user phaûi traû lôøi, thì RADIUS seõ gôûi moät traû lôøi "ñoøi hoûi truy caäp" (Access-Challenge), noù coù theå döôùi daïng moät thoâng baùo daïng vaên baûn ñöôïc hieån thò cho user bôûi client hoaëc laø moät thuoäc tính traïng thaùi (State attribute). Client seõ nhaän Access-Challenge, vaø neáu noù ñöôïc trang bò challenge/response, noù seõ hieån thò thoâng baùo nhaéc nhôû user traû lôøi yeâu caàu. Sau ñoù clien t seõ göûi laïi (re-submit) "yeâu caàu truy caäp" goác (original Access-Request) vôùi moät soá hieäu yeâu caàu (request ID) môùi, nhöng thuoäc tính teân - maät khaåu ñöôïc laáy töø thoâng tin vöøa môùi nhaäp vaøo, vaø keøm luoân caû thuoäc tính traïng thaùi töø Access-Challenge. RADIUS server coù theå traû lôøi "yeâu caàu truy caäp" môùi baèng "chaáp nhaän truy caäp" (Access-Accept), "töø choái truy caäp" (Access- Reject) hoaëc moät "ñoøi hoûi truy caäp" (Access-Challenge) khaùc. Neáu cuoái cuøng taát caû caùc ñieàu kieän ñöôïc thoûa, thì danh saùch caùc giaù trò caáu hình cho user ñöôïc 36
  5. ñaët vaøo traû lôøi "chaáp nhaän truy caäp" (Access-Accept). Caùc giaù trò naøy bao goàm kieåu cuûa dòch vuï (ví duï: SLIP, PPP, Login user) vaø caùc giaù trò caàn thieát ñeå caáp phaùt dòch vuï naøy. Tæ duï nhö ñoái vôùi SLIP hay PPP, caùc giaù trò naøy coù theå laø ñaïi chæ IP, ñòa chæ maïng con (subnet mask) , MTU, phöông phaùp neùn vaø soá hieäu loïc goùi (filtering packet ID). Ôû cheá ñoä kyù töï (character mode), caùc giaù trò naøy coù theå laø giao thöùc (protocol) vaø teân maùy chuû (host). 2. Dạng của gói (packet format) Moät caùch chính xaùc, moät goùi RADIUS ñöôïc bao boïc trong tröôøng döõ lieäu cuûa goùi UDP (UDP data field), vaø tröôøng ñòa chæ ñích (UDP Destination Port fiel d) coù soá hieäu coång laø 1645. Khi goùi traû lôøi ñöôïc taïo ra, soá hieäu coång cuûa ñòa chæ nguoàn vaø ñích ñöôïc baûo löu. Moät goùi döõ lieäu cuûa RADIUS ñöôïc ñònh daïng nhö sau (caùc tröôøng ñöôïc gôûi ñi töø traùi sang phaûi). 0123 01234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ || | Authenticator | || || 37
  6. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attributes ... +-+-+-+-+-+-+-+-+-+-+-+-+- a. Tröôøng maõ (code): 1 byte Xaùc ñònh kieåu cuûa goùi RADIUS. Goùi coù maõ khoâng hôïp leä seõ khoâng ñöôïc xaùc nhaän vaø traû lôøi (silently discarded). (decimal) 1 Access-Request 2 Access-Accept 3 Access-Reject 4 Accounting-Request 5 Accounting-Response 1. Access-Challenge 12 Status-Server (experimental - thöïc teá) 1. Status-Client (experimental - thöïc teá) 1. Reserved (döï tröõ) 3 38
  7. Accounting-Request/ Accounting-Response seõ ñöôïc trình baøy ôû giao thöùc RADIUS2. b. Trường danh hiệu (Identifier): 1 byte Duøng so truøng yeâu caàu (request) vaø traû lôøi (reply). c. Trường độ dài (length): 2 bytes Bieåu thò ñoä daøi cuûa goùi bao goàm caùc tröôøng maõ (co de), danh hieäu (identifier), ñoä daøi (length), xaùc nhaän (authenticator), thuoäc tính (attribute). Nhöõng byte naèm ngoaøi khoaûng quy ñònh bôûi tröôøng length seõ ñöôïc coi laø nhöõng byte thöøa, vaø seõ bò boû qua khi nhaän. Neáu goùi ngaén hôn giaù trò tröôøng length, noù seõ khoâng ñöôïc xaùc nhaän vaø traû lôøi (silently discarded). Giaù trò nhoû nhaát cuûa tröôøng length laø 20, giaù trò lôùn nhaát laø 4096. d. Trường xác nhận (authentication): 16 bytes Giaù trò cuûa tröôøng xaùc nhaän ñöôïc duøng ñeå xaùc nhaän söï traû lôøi töø RADIUS server vaø noù ñöôïc duøng trong thuaät toaùn aån maät khaåu (password hiding algorithm). MSB (the most significant byte) seõ ñöôïc gôûi tröôùc. Boä xaùc nhaän yeâu caàu (Request Authenticator)  Trong caùc goùi "yeâu caàu truy caäp" (Access-Request), giaù trò cuûa tröôøng xaùc nhaän (authenticator field) laø moät soá ngaãu nhieân 16 byte ñöôïc goïi laø boä xaùc nhaän yeâu caàu (request authenticator). Giaù trò naøy phaûi khoâng theå ñöôïc döï ñoaùn tröôùc (unpredictab le) vaø duy nhaát (unique) trong suoát thôøi gian soáng cuûa "thoâng tin bí maät" (secret) (maät khaåu duøng chung giöõa client vaø RADIUS server); Vì neáu coù söï laëp laïi cuûa giaù trò naøy coù nghóa laø mo ät nhaân vaät naøo ñoù (attaker) coù theå traû lôøi caâu hoûi naøy khoâng caàn söï xaùc nhaän cuûa RADIUS 39
  8. server. Do ñoù boä xaùc nhaän yeâu caàu neân coù giaù trò toaøn cuïc (global) vaø duy nhaát theo thô øi gian (temporal uniqueness). Maëc duø giao thöùc RADIUS khoâng coù khaû naêng ngaên caûn söï nghe leùn phieân xaùc nhaän (authenticated session) qua ñöôøng daây, nhöng vieäc sinh ra caùc giaù trò khoâng theå döï ñoaùn tröôùc cho boä xaùc nhaän yeâu caàu coù theå haïn cheá raát nhieàu söï kie än naøy. NAS vaø RADIUS server chia seû "thoâng tin bí maät". Thoâng tin bí maät duøng chung naøy coù ñöôïc sau khi giaù trò cuûa "boä xaùc nhaän yeâu caàu" ñöôïc ñöa vaøo boä baêm moät chieàu MD5 (one-way MD5 hash) ñeå taïo ra moät giaù trò soá 16 byte. Giaù trò naøy ñöôïc XOR vôùi maät khaåu maø user nhaäp vaøo, keát quaû seõ ñöôïc ñaët vaøo thuoäc tính User-Password trong goùi Access- Request. Tröôøng xaùc nhaän trong goùi "traû lôøi" (Response Authenticator)  Giaù trò cuûa tröôøng xaùc nhaän (authenticator field) trong caùc goùi Access-Request, Access- Reject, Access-Challenge ñöôïc goïi laø boä xaùc nhaän traû lôøi (Response Authenticator). Giaù trò naøy ñöôïc tính bôûi baêm moät chieàu MD5 chuoãi caùc byte cuûa caùc tröôøng maõ, danh hieäu, ño ä daøi, xaùc nhaän cuûa goùi "yeâu caàu truy caäp", vaø coäng theâm caùc thuoäc tính traû lôøi vaø thoâng tin bí maät duøng chung. ResponseAuth= MD5(Code+ID+Length+RequestAuth+Attributes+Secret) b. Trường thuộc tính (Attributes) Coù nhöõng thuoäc tính coù nhieàu phieân baûn (instances). Nhöõng thuoäc tính cuøng loaïi ñöôïc g iöõ nguyeân thöù töï. Ñoái vôùi moãi loaïi goùi chæ cho pheùp caùc thuoäc tính nhaát ñònh maø thoâi. 3. Kieåu cuûa goùi (packet types) Kieåu cuûa goùi ñöôïc xaùc ñònh bôûi tröôøng maõ (code field) chieám byte ñaàu tieân cuûa goùi RADIUS. 3.1- Goùi "yeâu caàu truy caäp" (Access-Request) 40
  9. Goùi Access-Request ñöôïc gôûi tôùi RADIUS server. Noù chuyeân chôû thoâng tin duøng ñeå xaùc ñònh xem user coù ñöôïc pheùp truy caäp vaøo NAS vaø caùc dòch vuï ñöôïc chæ ñònh hay khoâng. Tröôøng maõ cuûa goùi phaûi coù giaù trò 1. Goùi Access-Request phaûi chöùa thuoäc tính User-Name, User- Password hoaëc CHAP-Password , vaø coù theå chöùa caùc thuoäc tính NAS-IP-Address, NAS- Identifier, NAS-Port, NAS-Port-Type. Tröôøng danh hieäu (Identifier field) phaûi ñöôïc thay ñoåi khi noäi dung cuûa tröôøng thuoäc tính bò thay ñoåi hoaëc laø ñaõ nhaän ñöôïc traû lôøi hôïp leä cho yeâu caàu tröôùc ñoù. Trong tröôøng hôïp phaûi gôûi laïi goùi (retransmission), tröôøng danh hieäu khoâng ñöôïc thay ñoåi. 3.2- Goùi "chaáp nhaän truy caäp" (Access-Accept) Goùi Access-Accept ñöôïc gôûi traû bôûi RADIUS server khi taát caû caùc giaù trò thuoäc tính cuûa goùi Access-Request . Noù cung caáp thoâng tin caáu hình caàn thieát ñeå caáp phaùt caùc dòch vuï cho user. Tröôøng maõ cuûa goùi phaûi coù giaù trò 2. Goùi Access-Accept nhaän ñöôïc ôû NAS phaûi coù tröôøng danh hieäu truøng khôùp vôùi goùi Access-Request töông öùng ñaõ gôûi tröôùc ñoù vaø phaûi coù tröôøng xaùc nhaän (Response Authenticator) phuø hôïp vôùi thoâng tin bí maät duøng chung (shared secret). 3.3- Goùi "töø choái truy caäp" (Access-Reject) Goùi Access-Reject ñöôïc gôûi traû töø RADIUS server khi coù giaù trò thuoäc tính khoâng ñöôïc thoûa. Tröôøng maõ cuûa goùi phaûi coù giaù trò 3. Goùi coù theå chöùa 1 hoaëc nhieàu thuoäc tính Repl y-Message vôùi moät thoâng baùo daïng vaên baûn maø NAS seõ hieån thò noù vôùi user. Tröôøng danh hieäu cuûa goùi Access-Reject chính laø baûn sao cuûa goùi Access-Request töông öùng. 3.4- Goùi "ñoøi hoûi truy caäp" (Access-Challenge) Goùi Access-Challenge ñöôïc RADIUS server gôûi ñeán user ñoøi hoûi theâm thoâng tin caàn thieát maø user phaûi traû lôøi. Tröôøng maõ cuûa goùi phaûi coù giaù trò 11. Goùi coù theå chöùa 1 hoaëc nhieàu thuoäc tính Reply-Message vaø coù theå coù 1 thuoäc tính State. Caùc thuoäc tính khaùc khoâng ñöôïc xuaát hieän 41
  10. trong goùi Access-Challenge. Tröôøng danh hieäu cuûa goùi Access-Challenge phaûi truøng khôùp vôùi goùi Access-Request töông öùng ñaõ gôûi tröôùc ñoù vaø phaûi coù tröôøng xaùc nhaän (Response Authenticator) phuø hôïp vôùi thoâng tin bí maät duøng chung (shared secret). Neáu NAS khoâng ñöôïc trang bò challenge/response thì goùi Access-Challenge nhaän ñöôïc seõ coi nhö laø goùi Access- Reject. Neáu NAS ñöôïc trang bò chöùc naêng challenge /response vaø goùi Access-Challenge nhaän ñöôïc laø hôïp leä thì NAS seõ hieån thò thoâng baùo vaø yeâu caàu user traû lôøi thoâng tin maø RAD IUS server yeâu caàu. Sau ñoù NAS seõ gôûi goùi Access-Request goác nhöng vôùi danh hieäu yeâu caàu (request ID) vaø xaùc nhaän yeâu caàu (request authenticator) môùi, ñoàng thôøi thuoäc tính User - Password cuõng ñöôïc thay theá bôûi thoâng tin traû lôøi cuûa user (ñaõ ñöôïc maõ hoùa) vaø coù theå bao goàm caû thuoäc tính State töø goùi Access-Challenge. 4. Caùc thuoäc tính (attributes) Caùc thuoäc tính cuûa RADIUS, chöùa trong caùc goùi yeâu caàu-traû lôøi, mang thoâng tin xaùc nhaän quyeàn, phaân quyeàn, caáu hình caàn thieát ñeå caáp phaùt caùc dòch vuï cho user. Giaù trò tröôøng ñoä daøi cuûa goùi RADIUS seõ quy ñònh ñieåm keát thuùc cuûa caùc thuoäc tính trong goùi. Daïng cuûa thuoäc tính nhö sau: 012 012345678901234567890 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Type | Length | Value ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 42
  11. Tröôøng kieåu (Type): 1 byte  Ñaëc tröng cho 256 loaïi thuoäc tính coù giaù trò töø 0 ñeán 255. Ñaây laø nhöõng con soá quy öôùc (tham khaûo theâm trong taøi lieäu draft-ietf-radius-radius-05). RADIUS server vaø client coù theå boû qua caùc thuoäc tính coù kieåu khoâng xaùc ñònh. Ví duï: Kieåu Moâ taû 1 User-Name 2 User-Password 3 CHAP-Password 4 NAS-IP-Address 5 NAS-Port 6 Service-Type 7 Framed-Protocol 8 Framed-IP-Address 9 Framed-IP-Netmask 10 Framed-Routing 11 Filter-Id 12 Framed-MTU 43
  12. ……………. Tröôøng ñoä daøi (Length): 1 byte  Bieåu thò ñoä daøi cuûa thuoäc tính cho caùc tröôøng kieåu, ñoä daøi vaø giaù trò. Neáu thuoäc tính trong goùi Access-Request coù tröôøng ñoä daøi khoâng hôïp leä thì RADIUS server seõ traû veà goùi Access-Reject. Neáu thuoäc tính trong caùc goùi Access-Reject, Access-Accept, Access-Challenge coù tröôøng ñoä daøi khoâng hôïp leä thì NAS client seõ xem nhö laø goùi Access-Reject hoaëc laø khoâng xaùc nhaän vaø traû lôøi (silently discarded). Tröôøng giaù trò (Value):  Daïng vaø chieàu daøi cuûa tröôøng giaù trò ñöôïc xaùc ñònh bôûi tröôøng Kieåu (Type field) vaø tröôøng ñoä daøi (Length field). Coù 4 loaïi döõ lieäu cho tröôøng giaù trò nhö sau: Loaïi döõ lieäu ñoä daøi String 0-253 bytes Address 32 bits, MSB ñöùng tröôùc Interger 32 bits, MSB ñöùng tröôùc Time 32 bits, MSB ñöùng tröôùc. (Tính töø 00:00:00 GMT 1/1/1970). 5. Ví duï Daïng goùi cuï theå khi user telnet ñeán moät maùy chuû chæ ra (specified host) seõ nhö theá naøo? Giaû söû NAS coù ñòa chæ laø 199.200.201.9 gôûi moät goùi UDP daïng Access-Request tôùi  RADIUS server cho user teân jerry ñaêng kyù truy caäp taïi port 4 coù daïng nhö sau: 44
  13. Code = 1 (Access-Request) ID = 0 Request Authenticator = soá 16 byte ngaãu nhieân Attributes : User-Name = "jerry" User-Password = [maät khaåu16 byte XOR MD5("thoâng tin bí maät chung", "boä xaùc nhaän quyeàn")] NAS-IP-Address = 199.200.201.9 NAS-Port = 4 Giaû söû RADIUS server xaùc nhaän quyeàn cuûa jerry vaø gôûi moät goùi UDP daïng Access-  Accept tôùi NAS ñeå baùo cho NAS haõy telnet jerry tôùi maùy chuû 199.200.201.4 . Code = 2 (Access-Accept) ID = 0 (gioáng nhö trong Access-Request) Response Authenticator = [16 byte baêm MD-5 (code=2, Id=0, Request Authenticator cuûa yeâu caàu ôû treân, caùc thoäc tính traû lôøi, "thoâng tin bí maät duøng chung"] Attributes: Service-Type = Login-User Login-Service = Telnet 45
  14. Login-Host = 199.200.201.4 III. Giao thức RADIUS2: 1. Cơ chế hoạt động (operation) Khi client ñöôïc caøi ñaët ñeå söû duïng RADIUS Accounting, thì luùc baét ñaàu caáp phaùt dòch vuï client seõ sinh ra moät goùi "baét ñaàu caáp phaùt taøi khoaûn" (Accounting Start packet) moâ taû kieåu cuûa dòch vuï seõ ñöôïc caáp phaùt vaø user seõ ñöôïc caáp phaùt dòch vuï ñoù; sau ñoù göûi goùi naø y ñeán RADIUS Accounting server maø tôùi löôït noù seõ göûi laïi moät thoâng baùo nhaän bieát (acknowledgement) laø goùi ñaõ ñöôïc nhaän. Luùc keát thuùc caáp phaùt dòch vuï client seõ sinh ra m oät goùi "keát thuùc caáp phaùt taøi khoaûn" (Accounting Stop packet) moâ taû kieåu cuûa dòch vuï ñaõ ñö ôïc caáp phaùt vaø caùc thoâng tin thoáng keâ coù theå loïc löïa nhö thôøi gian troâi qua (elapsed time), caùc byte nhaäp/xuaát (input / output bytes), caùc goùi nhaäp/xuaát (input/output packets); sau ñoù göûi goùi naøy ñeán RADIUS Accounting server maø tôùi löôït noù seõ göûi laïi moät thoâng baùo n haän bieát (acknowledgement) laø goùi ñaõ ñöôïc nhaän. "Yeâu caàu caáp phaùt taøi khoaûn" (Accounting-Request) [cuûa caû hai loaïi Start vaø Stop] ñöôïc göûi cho RADIUS Accounting server qua maïng. Thöôøng thì client seõ tieáp tuïc coá gaéng göûi goùi Accounting-Request sau moä khoaûng thôøi gian nhaát ñònh cho tôùi khi noù nhaän ñöôïc phaûn hoài (acknkowledgement). Client coù theå gôûi tieáp (forward) cho caùc server khaùc trong tröôøng hôïp server chính bò taét h oaëc hoûng. Trong tröôøng hôïp naøy RADIUS Accounting server ñoùng vai troø cuûa moät client. 1. Dạng gói (Packet format) Gioáng nhö giao thöùc RADIUS1, coù 4 tröôøng Code, Length, Authenticator, Attributes vaø chæ khaùc ôû noäi dung theå hieän. Tröôøng Code chæ coù hai giaù trò 4 vaø 5 ñaëc tröng cho hai kieåu goùi "yeâu caàu caáp phaùt taøi khoaûn" 46
  15. (Accouting Request) vaø "traû lôøi caáp phaùt taøi khoaûn" (Accounting Response). Caùc thuoäc tính hôïp leä trong caùc goùi RADIUS daïng Access-Request, Access-Accept seõ hôïp leä trong caùc goùi Accounting-Request, tröø moät soá thuoäc tính khoâng theå hieän dieän nhö: User- Password, CHAP-Password, Reply-Message, State. Moät soá thuoäc tính phaûi luoân coù maët trong goùi Accounting-Request nhö: NAS-IP-Address, NAS-Identifier vaø moät soá thuoäc tính khaùc neân coù maët nhö: NAS-Port, NAS-Port-Type. Moät soá chi tieát cuï theå khaùc coù theå tham khaûo theâm trong taøi lieäu draft -ietf-radius-accounting- 05 hoaëc http://www.ascend.com hoaëc http://www.livingston.com IV. Phương pháp mã hóa (encryption) và giải mã (decryption) dùng trong RADIUS. Thuoäc tính User-Password chöùa trong caùc goùi Access-Request hoaëc Access-Challenge, ñaëc tröng cho maät khaåu (password) cuûa user, seõ ñöôïc aån trong khi truyeàn tôùi RADIUS server. Maät khaåu seõ ñöôïc theâm vaøo caùc kyù töï NULL sao cho ñoä daøi laø boäi cuûa 16 byte. Baêm MD5 moät chieàu (One-way MD5 hash) seõ ñöôïc xaây döïng töø chuoãi caùc byte cuûa "thoâng tin bí maät chung" (shared secret) giöõa NAS - RADIUS server vaø tröôøng xaùc nhaän yeâu caàu (Request authenticator). Giaù trò tính ñöôïc seõ ñöôïc XOR vôùi ñoaïn 16 byte ñaàu tieân cuûa maät khaåu, keá t quaû seõ ñöôïc ñaët vaøo 16 byte ñaàu tieân cuûa tröôøng giaù t rò kieåu string cuûa thuoäc tính User- Password. Neáu password daøi hôn 16 kyù töï thì giaù trò baêm thöù hai ñöôïc tính töø chuoãi caùc by te tieáp theo cuûa "thoâng tin bí maät chung" vaø keát quaû cuûa xor laàn tröôùc. Giaù trò baêm coù ñöô ïc seõ ñöôïc XOR vôùi 16 byte tieáp theo cuûa maät khaåu, keát quaû seõ ñöôïc ñaët vaøo 16 byte tieáp theo cuûa tröôøng giaù trò kieåu string cuûa thuoäc tính User-Password. Quaù trình cöù tieáp dieãn cho tôùi khi heát caùc ñoaïn (segment) ñöôïc chia cuûa maät khaåu (toái ña laø 128 kyù töï). Phöông phaùp duøng ôû ñaây coù theå tham khaûo chi tieát hôn trong taøi lieäu Network Security cuûa Kaufman, Perlman vaø Speciner ñöôïc moâ taû ngaén goïn nhö sau: 47
  16. Giaû söû goïi "thoâng tin bí maät duøng chung" (shared secret) laø S, giaù trò cuûa tröôøng xaùc ñònh yeâu caàu (Request Authenticator) 128 bits laø RA. Chia maät khaåu (password) ñaõ ñöôïc laáp ñaày (padding) bôûi caùc kyù töï NULL (neáu caàn) thaønh caùc phaàn con (chunks) p1, p2,…. Goïi caùc khoá i maät maõ daïng vaên baûn (ciphertext blocks) laø c(1), c(2),… vaø caùc giaù trò trung gian laø b1,b2,… Daáu + laø pheùp coäng chuoãi (concatenation). b1 = MD5(S + RA) c(1) = p1 xor b1 b2 = MD5(S + c(1)) c(2) = p2 xor b2 …………………… bi = MD5(S + c(i-1)) c(i) = pi xor bi Khi goùi RADIUS ñöôïc nhaän, quaù trình seõ dieãn ra ngöôïc laïi ñeå laáy laïi giaù trò thöïc cuûa maät khaåu. V. Cài đặt RADIUS và sử dụng 1. Cài đặt: - Download maõ nguoàn: maõ nguoàn cuûa chöông trình RADIUS ñöôïc laáy töø ñòa chæ ftp://ftp.gams.at/radiusd-2_4_23_6_ver2.tar.gz. Caáu truùc thö muïc cuûa RADIUS nhö sau: - radcheck - phaàn kieåm tra RADIUS ( töông töï leänh ping) - radiusd - thöïc thi RADIUS Server. 48
  17. - radpwtst - phaàn kieåm tra RADIUS Client. - dnscheck - phaàn kieåm tra aùnh xaï DNS. - /raddb goàm caùc file sau: authfile: file aùnh xaï kieåu authenticate clients : file chöùa caùc thoâng tin client nhö ñòa chæ IP cuûa client vaø khoaù Key ñeå aùnh xaï. Users: file chöùa thoâng tin veà user. dictionary: file chöùa caùc thoâng tin ñònh nghóa bôûi radiusd - /radacct chöùa caùc record accounting theo daïng RADIUS. - Sau khi uncompress file neâu treân , soaïn laïi Makefile cho ñuùng caáu hình cuûa heä ñieàu haønh ñang söû duïng ví duï Linux. Boû tham soá -DNOSHADOW neáu trong thö muïc /usr/include ñaõ coù file shadow.h Duøng leänh Make all ñeå dòch chöông trình. - Söûa ñoåi vaø theâm caùc thoâng soá trong file clients, users, authfile. Ví duï: döôùi ñaây laø caùc thoâng soá ñaõ ñöôïc söûa chöõa khi caøi ñaët RADIUS treân heä ñieàu haønh Linux 4.2 File clients: #Client Name Key user/authfile prefix #---------------- --------------- -------------------- 49
  18. 9. testingabc123 File Authfile: DEFAULT_RADIUS_SERVER lnsrv.quantic.ac.vn #Realm [(alias[,alias])] [-prot] Type REALM/DNS address Filter ID #----------------------- ------- ---- ----------------- --------- # Authentication requests for realm "umich.edu" which contain CHAP # protocol information are handled by the first entry. Non-CHAP # requests for umich.edu are all handled by the second entry. quantic.ac.vn UNIX-PW # This entry says to pass requests with authentication realm names # which didn't appear in this file along to another RADIUS server. DEFAULT RADIUS lnsrv.quantic.ac.vn File Users quanticPassword = "abc123", Authentication-Type = Unix-PW Service-Type = Login, 50
  19. Login-Service = Telnet, Login-IP-Host = 199.200.201.9, Login-TCP-Port = 23 dien Password = "dien", Authentication-Type = Unix-PW Service-Type = Login, Login-Service = Telnet, Login-IP-Host = 199.200.201.9, Login-TCP-Port = 23 test Password = "abc123" Service-Type = Framed, Framed-Protocol = PPP, Framed-IP-Address = 199.200.201.9 DEFAULT Authentication-Type = Realm Filter-Id = "unlim" 51
  20. File /etc/inetd.conf radius dgram udp wait root /usr/local/sbin/radiusd radiusd File /etc/services radius 1645/udp # radius deamon radacct 1646/udp # radius accounting deamon 2. Sử dụng: - Khôûi ñoäng Radius Server. cd /usr/local/sbin ./radiusd -d /usr/local/etc/raddb -p 1645 -x -x& - Kieåm tra Radius Server coù hoaït ñoäng khoâng: cd /usr/local/sbin ./radcheck –d /usr/local/etc/raddb –p 1645 –x (ví duï lnsrv.quantic.ac.vn) - Kieåm tra Radius client ./radpwtst –d /usr/local/etc/radd –p 1645 –s lns.quantic.ac.vn –u PPP –w abc123 –x test ./radpwtst –d /usr/local/etc/radd –p 1645 –s lns.quantic.ac.vn –w abc123 –x quantic 52
nguon tai.lieu . vn