Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máy tính
hoạt động trên những đường truyền không an toàn được công khai từ năm
1989. Giao thức Kerberos có khả năng chống lại việc nghe lén hay gửi lại các
gói tin cũ và đảm bảo tính toàn vẹn của dữ liệu. Mục tiêu khi thiết kế giao thức
này là nhằm vào mô hình client - server và đảm bảo nhận thực cho cả 2 chiều.
Tên của giao thức Kerberos được lấy từ tên của con chó ba đầu Cerberus canh
gác cổng địa ngục trong thần thoại Hy Lạp
Các hệ điều hành Windows 2000, Windows XP và Windows Server 2003 và
sau này sử dụng một phiên bản Kerberos làm phương pháp mặc định để xác
th ực.
Hệ điều hành Mac OS X cũng sử dụng Kerberos trong các phiên bản Clients
và Server của mình
28 trang |
Chia sẻ: oanh_nt | Lượt xem: 1759 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Đề tài Information security giao thức xác thực kerberos, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
TPHCM
KHOA CÔNG NGHỆ THÔNG TIN II
-----[\ [\-----
ĐỀ TÀI:
INFORMATION SECURITY
GIAO THỨC XÁC THỰC KERBEROS
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HCM
KHOA CÔNG NGHỆ THÔNG TIN II
Đề tài:
INFORMATION SECURITY
GIAO THỨC XÁC THỰC KERBEROS
Giáo viên hướng dẫn: Thầy Lê Phúc
Thành viên nhóm:
Nguyễn Duy Cường 406170004
Thân Đoàn Đăng Hải 406170018
PTIT_D06THA1
2 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Kerberos
I. Tổng quan
II. Lịch sử phát triển
III. Một số khái niệm
IV. Mô hình Kerberos
V. Cơ chế hoạt động
VI. Cài đặt Kerberos
VII. Kerberos 5
VIII. Securiry
IX. Ưu nhược điểm của Kerberos
X. Trust Relationship
PTIT_D06THA1
3 | G i a o t h ứ c x á c t h ự c K e r b e r o s
I.Tổng quan:
Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máy tính
hoạt động trên những đường truyền không an toàn được công khai từ năm
1989. Giao thức Kerberos có khả năng chống lại việc nghe lén hay gửi lại các
gói tin cũ và đảm bảo tính toàn vẹn của dữ liệu. Mục tiêu khi thiết kế giao thức
này là nhằm vào mô hình client - server và đảm bảo nhận thực cho cả 2 chiều.
Tên của giao thức Kerberos được lấy từ tên của con chó ba đầu Cerberus canh
gác cổng địa ngục trong thần thoại Hy Lạp
Các hệ điều hành Windows 2000, Windows XP và Windows Server 2003 và
sau này sử dụng một phiên bản Kerberos làm phương pháp mặc định để xác
thực.
Hệ điều hành Mac OS X cũng sử dụng Kerberos trong các phiên bản Clients
và Server của mình.
II.Lịch sử phát triển:
Học viện kỹ thuật Massachusetts (MIT) phát triển Kerberos
để bảo vệ các dịch vụ mạng cung cấp bởi dự án Athena
Giao thức đã được phát triển dưới nhiều phiên bản, trong đó các phiên bản từ
1 đến 3 chỉ dùng trong nội bộ MIT.
Các tác giả chính của phiên bản 4, Steve Miller và Clifford Neuman, đã xuất
bản giao thức ra công chúng vào cuối thập niên 1980, mặc dù mục đích chính
của họ là chỉ phục vụ cho dự án Athena.
Phiên bản 5, do John Kohl và Clifford Neuman thiết kế, xuất hiện trong tài
liệu (RFC1510) RFC 1510 - The Kerberos Network Authentication Service
(V5) vào năm 1993 (được thay thế bởi RFC 4120 vào năm 2005 - RFC 4120 -
The Kerberos Network Authentication Service (V5) với mục đích sửa lỗi của
phiên bản 4.
III.Một số khái niệm :
Realm , Principal, instance :
* Realm: là một trường hay một lĩnh vực, nó tương tự như 1 domain nhưng
không phải 1 domain
* Instance: phần chú thích bổ sung thêm
* Principal:
Mỗi thực thể chứa trong bộ cài đặt Kerberos, bao gồm cả người dùng cá nhân,
máy tính, và các dịch vụ đang chạy trên máy chủ, có một principal liên kết với
nó. Mỗi principal liên kết với một khoá dài hạn. Khóa này có thể là một mật
khẩu hay cụm từ mật khẩu. Các principal là tên duy nhất trên toàn cầu. Để
thực hiện việc này, principal được chia thành một cấu trúc thứ bậc.
Mỗi principal bắt đầu với một tên người dùng hoặc tên dịch vụ. Tên người
dùng hoặc tên dịch vụ này phụ thuộc tùy vào các instance khác nhau. Instance
được sử dụng trong hai tình huống: dịch vụ cho principal , và để tạo principal
đặc biệt cho việc sử dụng quản trị. Ví dụ, các quản trị viên có thể có hai lãnh
PTIT_D06THA1
4 | G i a o t h ứ c x á c t h ự c K e r b e r o s
đạo: một là sử dụng hằng ngày, và một người (một admin "chính") để sử dụng
chỉ khi có các nhu cầu đặc quyền quản trị cao.
Ví dụ tên người dùng và các tùy chọn, kết hợp với nhau, tạo thành một thực
thể duy nhất trong một realm nhất định. Mỗi trình ứng dụng Kerberos định
nghĩa một realm quản trị để kiểm soát, điều đó để phân biệt với tất cả các trình
ứng dụng Kerberos khác. Kerberos định nghĩa nó như là tên của realm. Theo
quy ước, các realm của Kerberos có một DNS domain là 1 domain được
chuyển đổi sang chữ hoa.Ví dụ ptit.org trở thành PTIT.ORG
Ví dụ:
Duy Cường là 1 sinh viên của lớp IT của trường PTIT có domain name là
ptit.org thì principal mà Kerberos gán cho Cườnglà: cuong@IT.PTIT.ORG
Trong đó IT.PTIT.ORG la Realm, không có instance.
*Đối với Kerberos 4:
có 2 cấu trúc:
+ Username[/instance]@REALM
+ Service/fully-qualified-domain-name@REALM
Đăng Hải là 1 sinh viên của lớp IT nằm trong ban quản trị của trường PTIT có
domain name: ptit.org thì principal mà Kerberos gán cho Đăng Hải là:
hai.admin@IT.PTIT.ORG
Ví dụ này cũng như ví dụ trên chỉ khác là có thêm trường instance la admin.
*Đối với Kerberos 5:
Trong thực tế có 1 số trường hợp 2 máy có cùng tên host nhưng ma ở 2
domain khác nhau.Ví dụ, bạn Đăng Hải ở tổ 1 và bạn Hồng Hải ở tổ 2 của
cùng lớp cùng trường.
Ta giả sử bạn Đăng Hải thuộc domain it.ptit.org còn bạn Hồng Hải thuộc
domain it.ptit.edu .Và 2 bạn đều thuộc cùng 1 realm la IT.PTIT.ORG
Vậy đối với Kerberos 4 thì 2 bạn này có cùng principal là hai@IT.PTIT.ORG
Trước thực trạng này , người ta đã cho ra đời Kerberos 5, có 2 cấu trúc :
- Username[/instance]@REALM
- Service/fully-qualified-domain-name@REALM
Bây giờ đối với ví dụ trên ta có :
+ Đối với bạn Đăng Hải : hai/it.ptit.org@IT.PTIT.ORG
+ Đối với bạn Hồng Hải : hai/it.ptit.edu@IT.PTIT.ORG
KDC – Key Distribution Center: Trung tâm phân phối khóa.
Key Distribution Center cuả Kerberos(KDC), là một phần của hệ thống
Kerberos. Trên lý thuyết KDC bao gồm ba thành phần:
- Database của tất cả các principal và các khóa đã mã hóa của nó để gia nhập
- Anthentication Server
- Ticket Granting Server.
Người ta thường gom chúng lại trong một chương trình duy nhất và chạy cùng
nhau trong một process duy nhất.
Trong 1 realm của Kerberos phải có ít nhất một KDC. Khi nhu cầu đòi hỏi
chạy 1 KDC trên 1 máy bình thường, người ta khuyên rằng nên dùng 1 KDC
PTIT_D06THA1
5 | G i a o t h ứ c x á c t h ự c K e r b e r o s
riêng biệt. Vì nếu hệ thống mạng có nhiều KDC kết nối nhau thì tất cả các dữ
liệu quan trọng, bao gồm các key của các principal trong realm của bạn, đều
có trên mỗi KDC trong mạng,điều đó có nghĩa là có nhiều nguy cơ bị tấn công
hơn.Ngoài ra, để cho người dùng xác thực thành công đến Kerberos-kích hoạt
dịch vụ, ít nhất một KDC phải được hoạt động mọi lúc.
Mỗi Key Distribution Center chứa 1 database của tất cả các principal có trong
realm này, cũng như các bí mật liên quan của nó. Phần mềm KDC chứa hầu
hết các thong tin bổ sung của các principal trong database này, chẳng hạn như
thời gian sống của mật khẩu, mật khẩu thay đổi lần cuối cùng là gì, và nhiều
thứ khác nữa. Windows 2000 và 2003 giữ cơ sở dữ liệu này trong Active
Directory(chứa trong LDAP).
Trong một realm có thể chứa nhiều Kerberos KDC , database trên mỗi KDC
phải được đồng bộ hóa để đảm bảo thống nhất xác thực. Nếu một máy chủ có
dữ liệu để lâu thì sẽ rất dễ thất bại khi tìm cách hợp pháp để xác thực với máy
chủ đó, vì nó không update bản sao của các cơ sở dữ liệu của Kerberos. Không
có phương pháp tiêu chuẩn đồng bộ hóa được xác định bằng giao thức
Kerberos, do đó các nhà cung cấp đã tạo ra các giao thức bản sao riêng của họ
SS – Service Server: Máy chủ dịch vụ - mail server, File server,
application server.
Bất kỳ một Server cung cấp dịch vụ nào đều có thể là Service Server
AS-Authentication Server:Máy chủ xác thực
Khi 1 user muốn tham gia vào 1 realm của Kerberos thì thay vì user phải xác
thực với KDC thì phải xác thực với AS
Khi nhận yêu cầu tham gia hệ thống Kerberos của 1 client, AS kiểm tra nhân
dạnh của người yêu cầu có nằm trong cơ sở dữ liệu của mình không. Nếu có
thì AS gửi 2 gói tin sau tới người sử dụng:
Gói tin A: "Khóa phiên TGS/máy khách" được mật mã hóa với khóa bí mật
của người sử dụng.
Gói tin B: "Vé chấp thuận" (bao gồm chỉ danh người sử dụng (ID), địa chỉ
mạng của người sử dụng, thời hạn của vé và "Khóa phiên TGS/máy khách")
được mật mã hóa với khóa bí mật của TGS.
TGS-Ticket Granting Server:Máy chủ cấp phát vé
TGS là bộ phận nhận vé chấp thuận TGT từ user.TGS có nhiệm vụ kiểm tra
các vé TGT có giá trị không bằng cách kiểm tra xem nó có được mã hóa bởi
key với key của TGT server Kerberos không.Nếu đúng thì gửi cho user vé
dịch vụ mà user muốn sử dụng.
Ticket:
Vé được cấp bởi TGS và máy chủ ứng dụng, cung cấp sự chứng thực cho máy
chủ ứng dụng hoặc tài nguyên.
Một vé Kerberos là một cấu trúc dữ liệu được mã hóa do KDC tạo ra để share
1 key đã mã hóa của 1 phiên duy nhất.Vé tạo ra có 2 mục đích : xác nhận danh
tính của người tham gia và khởi tạo 1 khóa ngắn hạn để 2 bên có thể giao tiếp
an toàn (gọi la khóa phiên).
Các trường chính mà mọi vé của Kerberos đều có là:
- Yêu cầu tên của principal
PTIT_D06THA1
6 | G i a o t h ứ c x á c t h ự c K e r b e r o s
- Dịch vụ của principal có tên này là gì
- Khi nào thì vé có hiệu lực,khi nào vé hết hiệu lực(Timestamp,Lifetime)
- Danh sách IP mà vé có thể được dùng từ đó
- Chia sẻ khóa bí mật (session key) của user/ ứng dụng truyền thong
1 vé được tạo bởi KDC được mã hóa để đảm bảo rằng những người không có
khóa không mở được nó để chỉnh sửa,như là tăng lifetime của nó lên hoặc tên
định danh của client principal
Bởi vì Kerberos chỉ xác thực 1 lần khi đăng nhập nên sau khi đăng nhập thì
bất kỳ ai ngồi trên máy đó đều có thể tham gia vào hệ thống Kerberos.Vì
vậy,vé trong Kerberos có lifetime ngắn , khoảng từ 10-24h .Điều này thuận
tiện cho viêc đăng nhập 1 lần trong ngày làm việc của user, hạn chế việc tấn
công lấy mất dữ liệu quan trọng.
Seasion Key: được sử dụng cho 1 seasion giữa client và server.
Ticket cache:
Tất cả các vé của Kerberos đều được lưu trong 1 file nằm trong bộ nhớ cache
gọi là Credential cache .Microsoft và Apple đã lựa chọn phương án này.Khi
đăng nhập vào hệ thống Kerberos thì các vé được lưu trong bộ nhớ cache và
khi đăng xuất thì mọi thứ được xóa hết. Các thông tin chứa trong cache gồm :
user principal, các vé mà user có trong suốt phiên đăng nhập của họ.VD:
$ klist
Ticket cache: FILE:/tmp/krb5cc_502_auJKaJ
Default principal: jgarman@WEDGIE.ORG
Valid starting Expires Service principal
09/10/02 01:48:12 09/10/02 11:48:12
krbtgt/WEDGIE.ORG@WEDGIE.ORG
09/10/02 01:48:14 09/10/02 11:48:12 host/cfs.wedgie.org@WEDGIE.ORG
09/10/02 04:20:42 09/10/02 11:48:12 host/web.wedgie.org@WEDGIE.ORG
Trong ví dụ này, bộ nhớ cache cho user principal của
jgarman@WEDGIE.ORG được lưu trong tập tin / tmp/krb5cc_502_auJKaJ.
Credential cache chỉ có thể được kết hợp với một user principal tại một thời
gian, nếu ta muốn truy cập các dịch vụ với một principal của jgarman / admin
@ WEDGIE.ORG, ta đã có thể phá hủy vé hiện tại của mình và tái đăng nhập
để Kerberos theo jgarman / admin@WEDGIE.ORG.
IV.Mô hình Kerberos tiêu biểu :
Dưới đây là mô hình hệ thống Kerberos tiêu biểu mà chúng ta thường thấy hiện
nay,bao gồm :
- Client hay user
- Thiết bị truyền thông : router,switch,hub,….
- Kerberos System : AS , TGS, database
- Server cung cấp dịch vụ :Mail server, may in,……
PTIT_D06THA1
7 | G i a o t h ứ c x á c t h ự c K e r b e r o s
V.Cơ chế hoạt động:
Hoạt động nói chung:
Sau đây là mô tả một phiên giao dịch (giản lược) của Kerberos. Trong đó: AS
= Máy chủ nhận thực (authentication server), TGS = Máy chủ cấp vé (ticket
granting server), SS = Máy chủ dịch vụ (service server).
Một cách vắn tắt: người sử dụng nhận thực mình với máy chủ nhận thực AS,
sau đó chứng minh với máy chủ cấp vé TGS rằng mình đã được nhận thực để
nhận vé, cuối cùng chứng minh với máy chủ dịch vụ SS rằng mình đã được
chấp thuận để sử dụng dịch vụ.
1. Người sử dụng nhập tên và mật khẩu tại máy tính của mình (máy khách).
2. Phần mềm máy khách thực hiện hàm băm một chiều trên mật khẩu nhận
được. Kết quả sẽ được dùng làm khóa bí mật của người sử dụng.
3. Phần mềm máy khách gửi một gói tin (không mật mã hóa) tới máy chủ dịch
vụ AS để yêu cầu dịch vụ. Nội dung của gói tin đại ý: "người dùng XYZ muốn
sử dụng dịch vụ". Cần chú ý là cả khoá bí mật lẫn mật khẩu đều không được
gửi tới AS.
4. AS kiểm tra nhân dạnh của người yêu cầu có nằm trong cơ sở dữ liệu của
mình không. Nếu có thì AS gửi 2 gói tin sau tới người sử dụng:
Gói tin A: "Khóa phiên TGS/máy khách" được mật mã hóa với khóa bí mật
của người sử dụng.
Gói tin B: "Vé chấp thuận" (bao gồm chỉ danh người sử dụng (ID), địa chỉ
mạng của người sử dụng, thời hạn của vé và "Khóa phiên TGS/máy khách")
được mật mã hóa với khóa bí mật của TGS.
5. Khi nhận được 2 gói tin trên, phần mềm máy khách giải mã gói tin A để có
khóa phiên với TGS. (Người sử dụng không thể giải mã được gói tin B vì nó
được mã hóa với khóa bí mật của TGS). Tại thời điểm này, người dùng có thể
PTIT_D06THA1
8 | G i a o t h ứ c x á c t h ự c K e r b e r o s
nhận thực mình với TGS.
6. Khi yêu cầu dịch vụ, người sử dụng gửi 2 gói tin sau tới TGS:
Gói tin C: Bao gồm "Vé chấp thuận" từ gói tin B và chỉ danh (ID) của yêu cầu
dịch vụ.
Gói tin D: Phần nhận thực (bao gồm chỉ danh người sử dụng và thời điểm yêu
cầu), mật mã hóa với "Khóa phiên TGS/máy khách".
7. Khi nhận được 2 gói tin C và D, TGS giải mã D rồi gửi 2 gói tin sau tới
người sử dụng:
Gói tin E: "Vé" (bao gồm chỉ danh người sử dụng, địa chỉ mạng người sử
dụng, thời hạn sử dụng và "Khóa phiên máy chủ/máy khách") mật mã hóa với
khóa bí mật của máy chủ cung cấp dịch vụ.
Gói tin F: "Khóa phiên máy chủ/máy khách" mật mã hóa với "Khóa phiên
TGS/máy khách".
8. Khi nhận được 2 gói tin E và F, người sử dụng đã có đủ thông tin để nhận
thực với máy chủ cung cấp dịch vụ SS. Máy khách gửi tới SS 2 gói tin:
Gói tin E thu được từ bước trước (trong đó có "Khóa phiên máy chủ/máy
khách" mật mã hóa với khóa bí mật của SS).
Gói tin G: phần nhận thực mới, bao gồm chỉ danh người sử dụng, thời điểm
yêu cầu và được mật mã hóa với "Khóa phiên máy chủ/máy khách".
9. SS giải mã "Vé" bằng khóa bí mật của mình và gửi gói tin sau tới người sử
dụng để xác nhận định danh của mình và khẳng định sự đồng ý cung cấp dịch
vụ:
Gói tin H: Thời điểm trong gói tin yêu cầu dịch vụ cộng thêm 1, mật mã hóa
với "Khóa phiên máy chủ/máy khách".
10. Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được cập nhật
chính xác. Nếu đúng thì người sử dụng có thể tin tưởng vào máy chủ SS và bắt
đầu gửi yêu cầu sử dụng dịch vụ.
11. Máy chủ cung cấp dịch vụ cho người sử dụng.
Hoạt động dựa trên khảo sát gói tin :
Al -> AS: ID || TGS ID || TimeStamp1 (TS1)
AS: kiểm tra TS1, tạo Seasion key (KAl, TGS) và TGT
TGT: (TGS ID || Alice’s ID || Alice’s AD || KAl, TGS || (TS2) || Lifetime2 )
E(TGT, KTGS )
AS -> Al: E(TGT || TGS ID || KAl, TGS || (TS2) || Lifetime2), (KAl))
Alice: D(packet, (KAl)). Kiểm tra TS2 và Lifetime2.
Tạo authentication cho TGS:
ATGS: E(Alice’s ID || Alice’s AD || (TS3), KAl, TGS ).
Al -> TGS: TGT || ATGS || ES ID.
TGS: TGT || ATGS || ES ID. D(TGT, KTGS ).
TGS: TGS ID || Alice’s ID || Alice’s AD || KAl, TGS || (TS2) || Lifetime2.
D(ATGS , KAl, TGS ). → Alice’s ID || Alice’s AD || (TS3).
TGS kiểm tra TS3, sinh (KAl, ES), TGT tạo ES ticket
E ((ES ID || KAl, ES || Alice’s ID || Alice’s AD || (TS4) || Lifetime4), KES )
TGS -> Al: (AAl) : E((ES ticket || ES ID || KAl, ES ||(TS4)), KAl, TGS )
Alice: D(AAl, KAl ) → ES ticket || ES ID || KAl, ES || (TS4).
(AES) : E((Alice’s ID || Alice’s AD || (TS5) , KAl, ES )
Al -> ES: ES ticket || AES .
PTIT_D06THA1
9 | G i a o t h ứ c x á c t h ự c K e r b e r o s
ES: D(ES ticket, KES )
→ ES ID || KAl, ES || Alice’s ID || Alice’s AD || (TS4) || Lifetime4 .
D(AES , KAl, ES ) → Alice’s ID || Alice’s AD || (TS5).
ES -> (AAl) với (TS5 + 1) và mã hóa với KAl, ES .
ES và Alice tiếp tục trao đổi với thông tin đã được mã hóa KAl, ES .
VI. Cài đặt Kerberos
Các bước cài đặt Kerberos có các bước chính sau:
1. Kế hoạch cài đặt:
Chọn nền tảng và hệ điều hành
Việc chọn nền tảng và hệ điều hành dành cho bạn nếu bạn sử dụng
Window domain controller như 1 hệ thống KDC. Tuy nhiên nếu bạn sử
dụng trên nền UNIX KDC thì bạn phải xem xét nền tảng bạn sẽ chạy
KDCs. Các mối quan tâm thực sự khi lựa chọn một nền tảng để chạy
Kerberos KDCs của bạn là sự đáng tin cậy.
Chúng tôi mạnh mẽ khuyến cáo rằng một đĩa riêng biệt (hoặc tốt hơn, một
bộ đĩa RAID) được sử dụng để lưu giữ cơ sở dữ liệu Kerberos, và một
phân vùng riêng biệt được sử dụng để giữ tất cả các file log. Giữ tập tin
đăng nhập vào một phân vùng riêng biệt.
Chọn một KDC package
Có nhiều KDCs khác nhau có sẵn từ các nhà cung cấp khác nhau, cả
thương mại và mã nguồn mở. Mỗi sự thực thi KDC là khác nhau, với
những lợi thế và bất lợi khác nhau
MIT
Chúng tôi sẽ bắt đầu với MIT. Nhiều tổ chức lớn, chủ yếu là các trường
đại học, sử dụng MIT KDCs để xử lý xác thực. MIT Kerberos có một cơ
sở hỗ trợ lớn và nó được sử dụng trong nhiều môi trường, giúp giải quyết
lỗi trên hệ thống.
MIT Kerberos có hỗ trợ các loại Kerberos mã hóa tiêu chuẩn, đáng chú ý
là 3 DES. Ngoài ra, phiên bản mới nhất của MIT Kerberos, hỗ trợ kiểu
mã hóa RC4 được sử dụng bởi dịch vụ Microsoft Active Directory
Kerberos cũng như (AES). MIT là một sự lựa chọn tuyệt vời vì sự hỗ trợ
rộng và khả năng tương thích ứng dụng.
Heimdal
Cũng như MIT, có hỗ trợ đầy đủ cho 5 Kerberos, Kerberos 4
Có một số cải tiến hơn MIT Kerberos. Trước tiên, Heimdal hỗ trợ sự
truyền cơ sở dữ liệu gia tăng, cho phép Heimdal KDCs chỉ gửi phần thay
đổi của cơ sở dữ liệu của máy chủ Kerberos đến các máy chủ khi nó được
cập nhật, thay vì toàn bộ cơ sở dữ liệu truyền mỗi khi một bản cập nhật
được thực hiện. Ngoài ra, Heimdal tích hợp hỗ trợ cho AFS-Kerberos 5
khả năng tương tác.
Heimdal được tích hợp với một số miễn phí hệ điều hành, bao gồm cả
BSDs: OpenBSD, NetBSD, và FreeBSD. Heimdal là một sự lựa chọn tốt
nếu bạn đang lập kế hoạch sử dụng Unix KDC.
Windows domain controllers
Việc thực thi Kerberos có trong Windows 2000 về sau.
2. KDC Installation
Các bước thiết lập KDC của MIT và Heimdal
Thiết lập sự phân phối
PTIT_D06THA1
10 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Tạo 1 lãnh địa
Khởi động máy chủ
Kiểm tra
Thêm các KDCs phụ
Window domain controller
Tạo 1 lãnh địa: trên Window server 2008
Vào Start -> Run -> cmd -> gõ lệnh dcpromo
Hộp thoại Welcome to the Active Directory Domain Services Installation
Wizard: chọn “Use advanced mode installation” >Next
Hộp thoại Choose a Deployment Configuration: chọn “Create a new domain
in a new forest” > Next
PTIT_D06THA1
11 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Hộp thoại Name the Forest RootDomain: Nhập tên cuong.net > Next
Hệ thống sẽ kiểm tra tên miền vừa nhập
Hộp thoại Domain NetBIOS Name =>Next
PTIT_D06THA1
12 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Hộp thoại Set Forest Functional Level: chӑn Windows Server 2008 => Next
Hộp thoại Additional Domain Controller Options:chọn “DNS server” =>
Next
PTIT_D06THA1
13 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Hộp thoại Active Directory Domain Services Installation Wizard: Yes
Hộp thọa Location for Database Log Files, and SYSVOL: Next
Hộp thoại Directory Services Restore Mode Administrator Password: Nhập
pass > Next
PTIT_D06THA1
14 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Hộp thoại Summary:
Hệ thống làm việc
Finish:
3. DNS and Kerberos
Sự tham gia của DNS trong hệ thống Kerberos là rất cần thiết, hỗ trợ các
nhiều chức năng trong lãnh địa ker của bạn.
PTIT_D06THA1
15 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Kerberos có thể sử dụng giao thức DNS là một địa điểm dịch vụ, bằng cách
sử dụng bản ghi DNS SRV như được định nghĩa trong RFC 2052. Ngoài ra,
Kerberos có thể sử dụng một bản ghi TXT để định vị lĩnh vực thích hợp cho một
máy chủ cho hay tên miền. Với những bản ghi DNS, Kerberos client có thể tìm
thấy KDCs thích hợp mà không cần sử dụng một tập tin cấu hình. Windows sẽ
thiết lập các bản ghi SRV cần thiết tự động khi một miền Active Directory được
tạo ra. Những người sử dụng Unix cho KDCs của họ có thể tạo các mục nhập
DNS bằng tay trong khu tập của họ như là một sự thuận tiện cho khách hàng.
VII.Kerberos 5 :
Qua chương V chúng ta đã biết về cơ chế hoạt động của Kerberos,ở
phần này chúng tôi xin giới thiệu thêm những chức năng bổ sung mà Kerberos
5 có và những lựa chọn có thể khi chúng ta sử dụng Kerberos 5 :
1.A little changing:
Không như phiên bản trước là Kerberos 4 , Kerberos 5 sử dụng ASN.1
(Abstract Syntax Notation One) . Nó định nghĩa một phương pháp để mô tả
các định nghĩa giao thức trong một ký hiệu trừu tượng , và sau đó cung cấp
một số phương pháp để chuyển đổi các định nghĩa trừu tượng vào một dòng
của byte để truyền trên một mạng lưới truyền thông. Một số giao thức sử dụng
ASN.1 để xác định các giao thức của họ như Kerberos 5, SNMP và LDAP.Ví
dụ trong Kerberos 5:
Realm ::= GeneralString
PrincipalName ::= SEQUENCE {
name-type[0] INTEGER,
name-string[1] SEQUENCE OF
GeneralString
}
Chức năng AS và TGS là vẫn giữ nguyên trong Kerberos 5 nhưng tên của
TGS thay đổi một chút.Ngoài sự thay đổi đó, Kerberos 5 còn loại trừ sự mã
hóa đôi mà xuất hiện trong AS và TGS của KDC khi trả lời(so với Kerberos
4).Sự thay đổi này không làm giảm đi tính an toàn mà ngược lại còn cải thiện
hiệu quả và hiệu suất.
3.Multichoice for encryption:
Kerberos 5 đã cung cấp nhiều sự lựa chọn cho việc mã hóa như DEC ,
triple DEC , AES ,….Chúng ta có thể lựa chọn cách mã hóa phù hợp cho tưng
quá trinh trao đổi .Nhưng có 1 vấn đề đặt ra là làm sao để các thành phần
trong hệ thống Kerberos hiểu được nhau.Đối với từng loại message sau mà
chúng ta có cách riêng để mã hóa nó:
*Ticket: mỗi ticket chỉ được phát hành và mã hóa từ 1 server dịch vụ nào đó,
và được giãi mã bằng key của server.Vì vậy ticket có thể được mã hóa bằng
phương pháp mã hóa an toàn nhất mà server hỗ trợ.
*Reply: là 1 message mà KDC gửi cho client và client phải giải mã nó bằng
khóa của mình.Vì vậy ticket phải được mã hóa bằng các phương pháp mà
client hỗ trợ
PTIT_D06THA1
16 | G i a o t h ứ c x á c t h ự c K e r b e r o s
*Session key: session key được chia sẻ giữa client và sever ứng dụng, nên
session key phải được mã hóa bằng phương pháp mà cả client và server đều hỗ
trợ.
Hệ thống Kerberos (user , server ứng dụng và KDC) phải hỗ trợ ít nhất 1
phương pháp mã hóa giống nhau để có thể giao tiếp được .
Khi 1 principal được tạo trên KDC thì nó tự lưu cho mình 1 bản copy của
tất cả các key mã hóa từ các phương thức mã hóa mà nó hỗ trợ.Vì vậy KDC có
thể đáp ứng nhanh được.
4.Ticket option:
Kerberos 5 bao gồm những đặc tính tiên tiến mà cho phép user có nhiều quyền
điều khiển hơn thông qua Kerberos vé của họ :
*Forwardable tickets: (thường là TGT ,được dùng khá phổ biến) khi cờ
TKT_FLG_FORWARDABLE được bật lên ở 1 ticket dưới sự cho phép của
admin thì user có thể dùng ticket này để yêu cầu 1 ticket mới nhưng phải khác
địa chỉ IP. Nói cách khác, user có thể dùng giấy ủy nhiệm của mình để tạo 1
giấy ủy nhiệm có giá trị cho máy khác.
Ngay sau khi user chứng thực xong với AS,user có thể yêu cầu 1 TGT mới
trước khi sử dụng phần mềm Kerberos.
Được sử dụng nhiều trong chương trình remote login như telnet , rlogin , rsh
*Renewable tickets: trong Kerberos thì lifetime của 1 ticket thường la ngắn
để hạn chế việc đánh cắp vé của hacker,nhưng như vậy là khá bất tiện với user
dùng dài lầu.Từ thực tế đó Kerberos 5 đã hỗ trợ Renewable tickets.
Renewable tickets cũng có hạn dùng như vé thường nhưng user có thể gia hạn
lâu hơn vé thường .
Khi user đang sở hữu 1 ticket còn hạn thì có thể gửi 1 yêu cầu đến KDC để xin
1 Renewable tickets với 1 hạn sử dụng mới.Nếu mọi thỏa hiệp đều ổn thì KDC
sẽ xác nhận vé và trả về 1 vé mới.Quá trình xảy ra như thế cho đến lúc vé hết
hạn
Lợi ích :- khó lấy cắp vé vì hacker khi cầm 1 vé đã hết hạn cũng chẳng làm
được gì.
Sau khi user dùng xong vé renew thì user có thể thông báo cho KDC biết mình
không cần dùng nữa,KDC sẽ từ chối mọi yêu cầu renew vé.
*Postdated tickets: Khi chúng ta có 1 kế hoạch cho tương lai và cần dùng
đến hệ thống chứng thực của Kerberos thì chúng ta sẽ sử dụng 1 lựa chọn mới
của Kerberos 5 là Postdated tickets.
Postdated tickets chỉ có giá trị tại bắt đầu từ 1 thời điểm trong tương lai.Nếu
user dùng nó trước đó sẽ bị KDC từ chối.Nó không được dùng phổ biến lắm.
5.Kerberos 5-to-4 translation:
Để cung cấp khả năng tương thích với dịch vụ của Kerberos 4, Kerberos 5
phát hành dịch vụ Kerberos 5-to-4 translation(krb524). Dịch vụ này cung cấp
một cách thức để client của Kerberos 5 có thể giao tiếp với các dịch vụ của
Kerberos 4. Nó không cung cấp một cách để client của Kerberos 4 giao tiếp
với dịch vụ hoặc KDC của Kerberos 5 .
PTIT_D06THA1
17 | G i a o t h ứ c x á c t h ự c K e r b e r o s
Khi một client của Kerberos 5 muốn dùng dịch vụ mà
Các file đính kèm theo tài liệu này:
- kerberos.pdf