|
|
|||||||
ชื่อเรื่อง: การติดตั้งและใช้งาน
Kerberos
เรียบเรียงโดย: สิริพร จิตต์เจริญธรรม
และ เลอศักดิ์ ลิ้มวิวัฒน์กุล
เรียบเรียงเมื่อ: 28 มิถุนายน 2547
กล่าวนำ
การพิสูจน์ตัวตนในระบบเครือข่ายถือได้ว่าเป็นกระบวนการที่มีความสำคัญที่สุดในการป้องกันระบบเครือข่ายให้ปลอดภัย ซึ่ง Kerberos เป็นโพรโตคอลในการพิสูจน์ตัวตนบนระบบเครือข่ายอีกประเภทหนึ่ง โดยใช้การเข้ารหัสในรูปแบบของกุญแจลับเพื่อพิสูจน์ตัวตนของผู้ใช้ต่อระบบและจัดเป็นระบบการพิสูจน์ตัวตนแบบ Single Sign-On แบบโอเพนซอร์ส
เอกสารฉบับนี้อธิบายถึงการติดตั้ง Kerberos เวอร์ชัน 5 (Version 5 Release1.2.7) บนระบบปฏิบัติการ Linux Red Hat 9.0 จุดประสงค์ของเอกสารฉบับนี้คือการศึกษาระบบการทำงานของ Kerberos เพื่อนำไปประยุกต์ใช้กับระบบจริงและปรับใช้ตามความเหมาะสมขององค์กร
เอกสารฉบับนี้กล่าวถึงการพิสูจน์ตัวตนแบบ Kerberos ซึ่งในการพิสูจน์ตัวตนแบบ Kerberos นั้นผู้ใช้ควรมีความรู้เกี่ยวกับ คำศัพท์เฉพาะ และ ความสัมพันธ์ระหว่างโดเมนเนมและ REALM ของ Kerberos เพื่อให้ง่ายต่อการทำความเข้าใจระบบการทำงานของ Kerberos มากยิ่งขึ้น ในขั้นตอนก่อนการติดตั้ง Kerberos ต้องทำ การตั้งเวลาของเซิร์ฟเวอร์ภายใน REALM เพื่อให้สามารถตรวจสอบได้ภายหลังว่าการล็อกอินเข้าใช้งานของผู้ใช้เกิดขึ้นตามเวลาใดบ้าง จากนั้นจะกล่าวถึง กระบวนการทำงานของ Kerberos ขั้นตอนการติดตั้ง Kerberos 5 ของ Kerberos Server (KDC) Application Server และ Client รวมทั้ง ตัวอย่างการใช้งาน และตารางเปรียบเทียบข้อดีและข้อเสียของ Kerberos
สำหรับรายละเอียดของการพิสูจน์ตัวตนโดยละเอียดสามารถหาอ่านเพิ่มเติมได้ในเอกสารเผยแพร่เรื่องความรู้เบื้องต้นเกี่ยวกับการพิสูจน์ตัวตน
Kerberos คือ โพรโตคอลการพิสูจน์ตัวตนบนระบบเครือข่าย Kerberos พัฒนาโดย Massachusetts Institute of Technology หรือ MIT เพื่อใช้ในการแก้ปัญหาความไม่ปลอดภัยของการพิสูจน์ตัวตนแบบเดิมที่มีการส่งรหัสผ่านบนเครือข่ายโดยที่ไม่มีการเข้ารหัสข้อมูล ซึ่งทำให้ข้อมูลรหัสผ่านอาจถูกดักจับได้
คำศัพท์ที่เกี่ยวข้องกับการใช้งาน Kerberos (Kerberos Terminology)
| ciphertext | ข้อมูลที่ผ่านการเข้ารหัส |
| Client | ผู้ใช้ โฮสต์ หรือ โปรแกรมประยุกต์ ที่สามารถขอ Kerberos ticket จาก Kerberos Server ได้ |
| REALM | คือชื่อกลุ่มระบบเครือข่ายที่ใช้การพิสูจน์ตัวตนแบบ Kerberos ประกอบด้วย Kerberos server (KDCs) และ client |
| principal |
ชื่อบัญชีผู้ใช้หรือชื่อบริการสำหรับใช้ในการพิสูจน์ตัวตนบนระบบ Kerberos ได้ รูปแบบของ principal จะประกอบด้วย primary/instance@REALM
ชนิดของ principal อาจแบ่งออกได้เป็น 3 แบบด้วยกันคือ
|
| Kerberos ticket หรือ ticket |
คือหลักฐานทางอิเล็กทรอนิกส์ที่ใช้ในการพิสูจน์ตัวตนตามที่ได้มีการกล่าวอ้างจริงบนระบบ Kerberos ticket จะได้รับมาจาก Kerberos server ก็ต่อเมื่อผู้ใช้มี principal และรหัสผ่านที่ถูกต้องตาม Kerberos database บน Kerberos server |
| key | กุญแจลับ สำหรับใช้ในการเข้ารหัสและถอดรหัสข้อมูล |
| Kerberos server หรือ Key Distribution Center (KDC) |
เซิร์ฟเวอร์ที่ทำหน้าที่ในการจำหน่าย Kerberos ticket ภายในประกอบด้วย |
| Authentication Service (AS) | ส่วนประกอบภายในของ Kerberos server ทำหน้าที่ในการพิสูจน์ตัวตนของผู้ใช้ก่อนการเข้าใช้บริการ |
| Ticket Granting Service (TGS) | ส่วนประกอบภายในของ Kerberos server ที่ทำหน้าที่ในการจำหน่าย Kerberos ticket เพื่อให้ผู้ใช้นำไปใช้กับบริการที่ต้องการ |
| Kerberos database | คือฐานข้อมูลของ Kerberos ที่อยู่บน KDC ทำหน้าที่ในการเก็บ principal รหัสผ่าน และข้อมูลที่เกี่ยวกับควบคุมดูแลของ principal ทั้งหมดบน REALM |
| Ticket Granting Ticket (TGT) | คือ ticket ที่ผู้ใช้ได้รับในการพิสูจน์ตัวตนกับระบบ Kerberos เพื่อนำไปใช้ในการขอ Service ticket กับ KDC เพื่อขอใช้บริการอื่นๆ |
| Service ticket |
คือ ticket สำหรับการขอเข้าใช้บริการบน Application server โดยจะได้มาจากการนำ TGT ที่ได้จากขั้นตอนการพิสูจน์ตัวตนผู้ใช้งานมาเข้ารหัสด้วยรหัสผ่านของบริการบน Application server ที่ต้องการเข้าใช้บริการและเข้ารหัสอีกครั้งด้วยรหัสผ่านของผู้ใช้ ก่อนที่ผู้ใช้จะนำไปใช้จะต้องถอดรหัสด้วยรหัสผ่านของผู้ใช้ออกมาก่อน เพื่อให้ได้ Service ticket ที่เข้ารหัสด้วยรหัสผ่านของบริการของบริการบน Application server ซึ่งจะถูกถอดรหัสโดยบริการบน Application server อีกครั้งก่อนที่การใช้งานบริการจะสามารถเกิดขึ้นได้ตามรูปที่ 2 |
| Application server |
เซิร์ฟเวอร์ที่ให้บริการในระบบเครือข่ายเช่น telnet หรือ ftp โดยสนับสนุนการพิสูจน์ตัวตนผ่าน Kerberos หรือใช้ Kerberos ticket ในการพิสูจน์ตัวตนได้ หรือเรียกว่าเป็น Kerberized program หรือ Kerberized service แทนได้เช่นเดียวกัน |
| Key tables หรือ Keytabs |
การที่ Application server สามารถใช้การพิสูจน์ตัวตนผ่านระบบ Kerberos ได้อย่างปลอดภัยนั้นจะใช้การเข้ารหัสในการติดต่อระหว่าง Application server และ Kerberos server และทุกๆ บริการบน Application server จะมีรหัสผ่านที่สร้างและจัดการโดยระบบ Kerberos เองเพื่อให้บริการบน Application server ทำการพิสูจน์ตัวตนเหมือนเป็นผู้ใช้บนระบบคนหนึ่งโดยข้อมูลของรหัสผ่านจะจัดเก็บใน Key tables รหัสผ่านของบริการใช้ในการเข้ารหัส Service ticket และเก็บไว้ในไฟล์ Key tables บนระบบโดย
โดยปกติจะทำการสร้างไฟล์ Key tables บน KDC จากนั้นจะทำการสำเนาไปไว้บน Application server ทุกเครื่องเพื่อให้มีรหัสผ่านของบริการเดียวกันทั้งระบบ |
| Single Sign-On หรือ SSO | การพิสูจน์ตัวตนเพียงครั้งเดียวแต่สามารถเข้าใช้บริการของเซิร์ฟเวอร์ได้มากกว่าหนึ่งบริการ เป็นการลดการส่งข้อมูลรหัสผ่านบนเครือข่าย ข้อด้อยคือความซับซ้อนของระบบจะมากขึ้น และต้องการแอพพลิเคชันที่สนับสนุนการทำงานของระบบ |
ความสัมพันธ์ระหว่างโดเมนเนมและ REALM ของ Kerberos
REALM คือกลุ่มของเครือข่ายที่ให้บริการภายใต้ Key Distribution Centers หรือ KDC เดียวกัน เพื่อให้ง่ายในการนำไปใช้งานมักจะตั้งชื่อเป็นตัวอักษรใหญ่ทั้งหมด เพื่อให้แตกต่างกับโดเมนเนมของเครื่องภายในเครือข่าย
โดยปกติเซิร์ฟเวอร์จะมีโดเมนเนมที่สัมพันธ์กับหมายเลขไอพีแอดเดรสเพื่อช่วยในการระบุชื่อของเครื่องภายในเครือข่าย เมื่อนำมาใช้งานภายใต้ Kerberos การแทนกลุ่มของเครื่องภายในเครือข่ายที่ดูแลโดยฐานข้อมูล Kerberos เดียวกันหรือ REALM เดียวกันนั้นมักจะตั้งชื่อ REALM ให้สอดคล้องกับโดเมนเนมเดิมที่ใช้งานอยู่แล้วเช่น เครื่องภายในโดเมนเนม example.com จะอยู่ภายใน Kerberos Realm เป็น EXAMPLE.COM หรือกล่าวในอีกนัยหนึ่งว่า REALM ชื่อ EXAMPLE.COM จัดเป็นกลุ่มของเซิร์ฟเวอร์ที่สามารถใช้การพิสูจน์ตัวตนผ่าน Kerberos ซึ่งโดยปกติมักจะประกอบไปด้วยเครื่องไคลเอ็นต์ (Client) ทำการพิสูจน์ตัวตนกับ Kerberos Server ก่อนจะนำ Ticket ไปยื่นใช้กับ Application Server ซึ่งเครื่องทั้งสามเครื่องดังกล่าวจัดว่าอยู่ใน Realm เดียวกัน
ยกตัวอย่างเช่นใน Kerberos REALM ที่มีชื่อเป็น EXAMPLE.COM อยู่ภายใต้โดเมนเนมเป็น example.com และแต่ละเครื่องภายในโดเมนประกอบไปด้วย เครื่องไคลเอ็นต์มีชื่อเป็น client.example.com ส่วนเครื่อง Kerberos Server ชื่อว่า kerberos.example.com ส่วนเครื่อง Application Server มีชื่อเป็น server.example.com เป็นต้น
เพื่อให้สามารถแยกความแตกต่างระหว่างโดเมนเนมและ REALM การตั้งชื่อของ REALM มักจะตั้งเป็นตัวอักษรใหญ่เช่น EXAMPLE.COM ข้อพึงระวังคือการตั้งชื่อ REALM บน Kerberos แยกความแตกต่างระหว่างตัวอักษรใหญ่และเล็ก (Case sensitive) คือ EXAMPLE.COM จะแตกต่างกับ example.com ถึงแม้ว่าจะไม่มีข้อกำหนดในการตั้งชื่อ REALM ให้เป็นตัวอักษรใหญ่หรือเล็ก แต่ MIT ผู้พัฒนา Kerberos ได้แนะนำว่าควรเป็นตัวอักษรใหญ่ทั้งหมดเพื่อป้องกันความสับสนในการใช้งาน
การตั้งเวลาของเซิร์ฟเวอร์ภายใน REALM
เนื่องจากการพิสูจน์ตัวตนของ Kerberos ประกอบไปด้วยเครื่องมากกว่าหนึ่งเครื่อง การตั้งเวลาบนเครื่องจัดเป็นภาระของผู้ดูแลระบบ อย่างน้อย Kerberos Server และ Application Server ควรจะมีเวลาภายในเครื่องเท่ากัน เพื่อให้สามารถตรวจสอบได้ภายหลังว่าการล็อกอินเข้าใช้งานของผู้ใช้เกิดขึ้นตามเวลาใดบ้าง
การตั้งเวลาให้ตรงกันนั้น สามารถทำได้ผ่าน Network Time Protocol หรือ NTP โดยทำการรับข้อมูลค่าเวลาจากเซิร์ฟเวอร์ให้บริการเวลาที่มีอยู่ทั่วโลก บนระบบยูนิกซ์สามารถใช้งานผ่านโปรแกรม ntp
ในประเทศไทยเองมีเซิร์ฟเวอร์ให้บริการเวลาโดยรับค่าจากดาวเทียมที่โคจรรอบโลกคือ clock.nectec.or.th และหารายละเอียดเพิ่มเติมได้ที่ http://www.ntp.org

รูปที่ 1 กระบวนการการพิสูจน์ตัวตนต่อระบบ
(กดที่รูปเพื่อดูรูปขยายใหญ่)
เมื่อผู้ใช้ต้องการจะเข้าใช้ Application server สามารถทำได้โดย

รูปที่ 2 กระบวนการขอรับบริการ
(กดที่รูปเพื่อดูรูปขยายใหญ่)
ข้อดีของ TGT คือผู้ใช้ไม่จำเป็นต้องกรอกรหัสผ่านทุกครั้งที่ต้องการจะเข้าใช้ Application server และที่สำคัญคือ TGT มีอายุการใช้งาน โดยทั่วไปจะถูกตั้งให้มีอายุ 10 ชั่วโมง เมื่อ TGT หมดอายุผู้ใช้ต้องทำการขอ TGT เพื่อขอเข้าใช้บริการใหม่
การนำระบบ Kerberos มาใช้จะเพิ่มความสะดวกในการพิสูจน์ตัวตนได้มากขึ้น มักเรียกการใช้งาน Kerberos ว่าเป็นระบบ Single Sign-On หรือเป็นการใช้บริการของระบบทั้งหมดได้ด้วยการพิสูจน์ตัวตนเพียงครั้งเดียว
ขั้นตอนการติดตั้ง Kerberos Server (KDC) บนระบบปฏิบัติการ Red Hat Linux 9.0
สามารถสรุปเป็นขั้นตอนย่อยๆได้ดังนี้
|
ก่อนที่จะทำการติดตั้ง Kerberos V5 นั้นต้องให้แน่ใจว่าได้ทำการจัดการ DNS และตั้งเวลาให้กับเครื่องเซิร์ฟเวอร์ภายใน REALM เรียบร้อยแล้ว จากนั้นปฏิบัติตามขั้นตอนโดยละเอียดดังนี้
| [libdefaults] |
ประกอบด้วยค่าพารามิเตอร์ภายใน Kerberos server ค่าพารามิเตอร์ที่มีความจำเป็นมีดังต่อไปนี้
|
|
| [realms] |
ประกอบด้วยรายชื่อของ REALM จะประกอบด้วยตัวแปรที่ใช้อธิบายคุณสมบัติเฉพาะของ REALM ที่สำคัญมีดังนี้
|
|
| [domain_realm] |
กำหนดความสัมพันธ์ระหว่างโดเมนเนมและ Kerberos REALM เพราะว่าในการพิสูจน์ตัวตนแบบ Keberos นั้น Client จำเป็นต้องรู้ว่า Kerberos realm ที่ให้บริการนั้นอยู่ที่ไหน เพื่อที่จะได้ติดต่อกับ KDC ได้ ในการกำหนดสามารถทำได้ดังใน ตัวอย่างไฟล์ krb5.conf ในส่วนของ [domain_realm] ซึ่งรูปแบบในการทำมีดังนี้
เช่น
|
|
| [logging] |
ในหมวดนี้จะระบุที่เก็บไฟล์ที่บันทึกหรือล็อกของ Kerberos server และ Admin server
|
| [kdcdefaults] |
ประกอบด้วยค่าการทำงานโดยทั่วไปของ KDC
|
|
| [realms] |
ประกอบด้วยไฟล์ต่างๆ ที่เกี่ยวข้องกับข้อมูลเฉพาะของ KDC ของ REALM
|
|
| [logging] | ในหมวดนี้จะระบุที่เก็บไฟล์ที่บันทึกหรือล็อกของ Kerberos server และ Admin server |
| พารามิเตอร์ | ความหมาย |
| -s |
ใช้สำหรับสร้าง stash ไฟล์ ขึ้นมา stash ไฟล์ คือไฟล์ที่กำหนดรหัสผ่านหลักหรือ master key ของ Kerberos database และได้ทำการเข้ารหัสและเก็บไว้บน Kerberos server ไฟล์ใช้ในการพิสูจน์ตัวตนของ KDC โดยอัตโนมัติก่อนเริ่มรัน kadmind และ krb5kdc daemons |
kdc# /usr/kerberos/sbin/kdb5_util
create -s
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'DELUFE.TEST',
master key name 'K/M@DELUFE.TEST'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: ThCEiyFut!
Re-enter KDC database master key to verify: ThCEiyFut!
kdc#
จากคำสั่งนี้จะทำการสร้างไฟล์ 5 ไฟล์ไว้ที่ไดเรกทอรี /var/kerberos/krb5kdc/ ตามที่ได้กำหนดไว้ในไฟล์ kdc.conf
| การใช้งาน |
ไฟล์ |
| ไฟล์ฐานข้อมูลของ Kerberos database |
principal.db และ principal.ok |
| ไฟล์ฐานข้อมูลของผู้ดูแลระบบ Kerberos | principal.kadm5 |
| lock ไฟล์ของฐานข้อมูลผู้ดูแลระบบ | principal.kadm5.lock |
| stash ไฟล์ | .k5stash |
| ACL | Description |
| a | สามารถเพิ่ม principals หรือ policies |
| A | ไม่สามารถเพิ่ม principals หรือ policies |
| d | สามารถลบ principals หรือ policies |
| D | ไม่สามารถลบ principals หรือ policies |
| m | สามารถเปลี่ยนแปลง principals หรือ policies |
| M | ไม่สามารถเปลี่ยนแปลง principals หรือ policies |
| c | สามารถเปลี่ยนรหัสผ่านของ principals |
| C | ไม่สามารถเปลี่ยนรหัสผ่านของ principals |
| i | สามารถเข้าไปดูข้อมูลในฐานข้อมูล |
| I | ไม่สามารถเข้าไปดูข้อมูลในฐานข้อมูล |
| l | สามารถดูบัญชีรายชื่อของ principals หรือ policies |
| L | ไม่สามารถดูบัญชีรายชื่อของ principals หรือ policies |
| * | สามารถกระทำการใดๆ ก๊ได้ |
| x | สามารถกระทำการใดๆ ก๊ได้ เช่นเดียวกับ * |
โดยมีรูปแบบดังนี้
|
Kerberos principal ACL optional target principal |
ตัวอย่างเช่น การอนุญาตให้ principal "joeadmin@DELUFE.TEST" สามารถ เพิ่ม ดูบัญชีรายชื่อของ principal หรือเข้าไปดูข้อมูลในฐานข้อมูลของทุก principal ที่มี instance เป็น root ต้องเพิ่มข้อมูลในไฟล์ kadm5.acl ดังต่อไปนี้
|
joeadmin@DELUFE.TEST ali */root@DELUFE.TEST |
การให้ principal ที่มี instance เป็น admin ได้รับอนุญาตให้สามารถจัดการทุกอย่างให้ฐานข้อมูลได้ ทำได้โดยใส่เครื่องหมาย ดอกจันทร์ (*) (*/admin@REALM) ตัวอย่างเช่น
|
*/admin@DELUFE.TEST * |
kdc# /usr/kerberos/sbin/kadmin.local
Authenticating as principal root/admin@DELUFE.TEST with password.
kadmin.local: addprinc admin/admin
WARNING: no policy specified for admin/admin@DELUFE.TEST; defaulting to
no policy
Enter password for principal "admin/admin@DELUFE.TEST": ThCEiyFut!
Re-enter password for principal "admin/admin@DELUFE.TEST": ThCEiyFut!
Principal "admin/admin@DELUFE.TEST" created.
kadmin.local: quit
kdc#
| พารามิเตอร์ | ความหมาย |
| -k |
ใช้เพื่อกำหนดไดเรกทอรีให้ไฟล์ที่เก็บ Key table ของ admin ตามที่ได้ระบุไว้ในไฟล์ kdc.conf ในที่นี้ ktadd จะทำการจัดเก็บข้อมูลของ Key table ไว้ที่ไดเรกทอรี /var/kerberos/krb5kdc/kadm5.keytab ถ้าไม่ได้ใช้พารามิเตอร์นี้คำสั่ง ktadd จะทำการเก็บค่าของ Key table ตามค่าดีฟอลต์คือ /etc/krb5/krb5.keytab |
เริ่มต้นการทำงานของ Kerberos server และ Kerberos Admin server
kdc# /etc/init.d/krb5kdc start
Starting Kerberos 5 KDC:
[ OK
]
kdc# /etc/init.d/kadmin start
Starting Kerberos 5 Admin Server:
[ OK ]
| พารามิเตอร์ | ความหมาย |
| -randkey |
คือการตั้งค่ารหัสผ่านของ principal นั้นให้เป็นค่า random |
kdc# kadmin
Authenticating as principal admin/admin@DELUFE.TEST with password.
Enter password: ThCEiyFut!
kadmin: addprinc -randkey host/server.thaicert.nectec.or.th
WARNING: no policy specified for host/server.thaicert.nectec.or.th@DELUFE.TEST;
defaulting to no policy
Principal "host/server.thaicert.nectec.or.th@DELIFE.TEST" created.
kadmin:
kadmin: ktadd host/server.thaicert.nectec.or.th
Entry for principal host/server.thaicert.nectec.or.th with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/server.thaicert.nectec.or.th with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
kadmin: quit
ขั้นตอนการติดตั้ง Application Server บนระบบปฏิบัติการ Red Hat Linux 9.0
server# adduser angel
kadmin: addprinc angel
WARNING: no policy specified for angel@DELUFE.TEST; defaulting to no policy
Enter password for principal "angel@DELUFE.TEST": @NGuyco2ME
Re-enter password for principal "angel@DELUFE.TEST": @NGuyco2ME
Principal "angel@DELUFE.TEST" created.
kadmin: quit
kdc# vi /etc/xinetd.d/krb5-telnet
| # default: off # description: The kerberized telnet server accepts normal telnet sessions, \ # but can also use Kerberos 5 authentication. service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/kerberos/sbin/telnetd log_on_failure += USERID } |
kdc# /etc/init.d/xinetd start
Starting xinetd: [ OK ]
ขั้นตอนการติดตั้ง Client บนระบบปฏิบัติการ Red Hat Linux 9.0
client# kinit angel
Password for angel@DELUFE.TEST: @NGuyco2ME
client#
สามารถตรวจสอบว่าได้รับ ticket หรือไม่ด้วยคำสั่ง klist
client# klist
หากต้องการลบ ticket ด้วยคำสั่ง kdestroy
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: angel@DELUFE.TEST
Valid starting Expires Service principal
05/26/04 14:32:51 05/27/04 00:32:51 krbtgt/DELUFE.TEST@DELUFE.TEST
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
client# kdestroy
client# klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
client# kpasswd angel
Old password for angel: @NGuyco2ME
New Password for angel: HECo4ASK.
Verifying, please re-enter New Password for angel: HECo4ASK.
Password changed.
คำสั่ง telnet มีพารามิเตอร์ในการเข้าใช้งานกับ Application server
พารามิเตอร์ ความหมาย -a คือ telnet จะล็อกอินโดยอัตโนมัติถ้ามีชื่อผู้ใช้ที่ได้ตรงกับบน ticket
-f หรือ --forward คือการส่งต่อสำเนาของ ticket ของผู้ใช้ไปที่ Application server -x หรือ --encrypt คือการให้มีการเข้ารหัส -l ใช้เพื่อระบุชื่อผู้ใช้ เช่นเมื่อต้องการ telnet ไปยังเครื่อง server โดยใช้บัญชีผู้ใช้เป็น angel
client# telnet -a -f -x -l angel server
Trying 192.168.x.x...
Connected to server.thaicert.nectec.or.th (192.168.x.x).
Escape character is '^]'.
Waiting for encryption to be negotiated...
[ Kerberos V5 accepts you as ``angel@DELUFE.TEST'' ]
done.
Last login: Wed May 26 08:47:29 from client
server$
ตารางเปรียบเทียบข้อดีและข้อเสียของ Kerberos
|
|
|
|
|
บทสรุป
Kerberos เป็นโพรโตคอลในการพิสูจน์ตัวตนบนระบบเครือข่าย ปัญหาสำคัญของการใช้ระบบ Kerberos คือมีความซับซ้อนยุ่งยากในการนำมาใช้งาน เนื่องจากเซิร์ฟเวอร์ Kerberos ต้องเก็บกุญแจของผู้ใช้ทุกคนที่เข้ามาในระบบ ถ้ามีการขยายระบบให้ใหญ่มากขึ้น มีการกระจายตัวมากกว่าหนึ่งจุด ย่อมส่งผลเสียต่อการใช้งานระบบโดยรวม แต่การนำระบบ Kerberos มาใช้จะเพิ่มความสะดวกและปลอดภัยในการพิสูจน์ตัวตนได้มากขึ้นเพราะว่าเป็นระบบ Single Sign-On แบบหนึ่ง คือการเข้าถึงการใช้บริการของระบบทั้งหมดได้ด้วยการพิสูจน์ตัวตนเพียงครั้งเดียวและ Kerberos ได้มีการใช้ Ticket แทนการพิสูจน์ตัวตนแบบเดิมที่ส่งรหัสผ่านที่ไม่ผ่านการเข้ารหัสไปบนระบบเครือข่าย
เอกสารอ้างอิง
[1] The Massachusetts Institute of Technology, Kerberos V5 Installation Guide:
http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.6/doc/install.html
[2] The Massachusetts Institute of Technology, Kerberos V5 System Administrator's
Guide: http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.6/doc/admin.html
[3] The Massachusetts Institute of Technology, Kerberos V5 UNIX User's Guide:
http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.6/doc/user-guide.html
[4] The Massachusetts Institute of Technology, Frequently Asked Questions about
Kerberos: http://www.cmf.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html
[5] Red Hat Linux 9: Red Hat Linux Reference Guide: http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/ch-kerberos.html
[6] Pam Todaro, "An Overview of the Kerberos Authentication Protocol",
SANS Reading Room, 14 October 2003
[7] Jose L. Marquez, "Kerberos: Secure Authentication", SANS Reading
Room 2001
[8] สิริพร จิตต์เจริญธรรม, เสาวภา ปานจันทร์, เลอศักดิ์ ลิ้มวิวัฒน์กุล, "ความรู้เบื้องต้นเกี่ยวกับการพิสูจน์ตัวตน"
http://www.thaicert.nectec.or.th/paper/authen/authentication_guide.php
| Home
|| เอกสารเผยแพร่ || Authentication
ThaiCERT Disclaimer | Copyright © 2001 ThaiCERT(NECTEC). All rights reserved. |