You are on page 1of 34

HỌC VIỆN KĨ THUẬT MẬT MÃ

Báo cáo
Môn học: An toàn hệ điều hành
Đề tài 06: Trình bày và phân tích cơ chế xác thực đăng nhập
Kerberos trên Windows
Sinh viên thực hiện:
Đỗ Duy Hưng AT150225
Nguyễn Thùy Dương AT150209
Đỗ Cao Đức AT150215
Trịnh Thị Dung AT150211
Hà Ngọc Hiếu AT150218
Nguyễn Tuấn Đạt AT150212

Giáo viên giảng dạy: Trần Sỹ Nam


NỘI DUNG CHÍNH
1 Phần I: SƠ LƯỢC VỀ GIAO THỨC

2 Phần II: CƠ CHẾ HOẠT ĐỘNG CỦA HỆ


THỐNG KERBEROS

3 Phần III: ĐÁNH GIÁ HỆ THỐNG KERBEROS


PHẦN I

LỊCH SỬ PHÁT
KERBEROS LÀ GÌ?
ỨNG DỤNG CỦA
TRIỂN KERBEROS
LỊCH SỬ PHÁT TRIỂN

Học viện công nghệ 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) vào năm 1993 (được thay thế bởi RFC 4120 vào năm 2005 với
mục đích sửa các lỗi của phiên bản 4.
Các hệ điều hành Windows 2000, Windows XP và Windows Server 2003 sử
dụng một phiên bản thực hiện Kerberos làm phương pháp mặc định để xác thực.
KERBEROS LÀ GÌ?

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. 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ả hai 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.

Giao thức được xây dựng dựa trên mã hoá đối xứng và cần đến một bên thứ ba mà
cả hai phía tham gia giao dịch tin tưởng.
ỨNG DỤNG CỦA KERBEROS
Ngày nay dịch vụ xác thực Kerberos này được ứng dụng nhiều ở thực tiễn như là:
Tích hợp trong các ứng dụng mạng:

OpenSSH ( với PAM ( với modular


Kerberos v5 NFS ( kể từ NFSv3) pam_krb5)
hoặc cao hơn)
ỨNG DỤNG CỦA KERBEROS

SOCKS ( kể từ SOCKS5) Apache ( với modular Hệ thống X window


mod_auth_kerb)
ỨNG DỤNG CỦA KERBEROS

Được tích hợp để xác Xây dưng tích hợp trong các Tích hợp kerboros trong các
Thẻ thông minh Smark Card thực trong các hệ điêu hệ thống xác thực của các hệ thống bastion host
hành mạng. ngân hàng.
MỤC TIÊU YÊU CẦU

MỤC TIÊU VÀ YÊU CẦU NGUYÊN TẮC


HOẠT ĐỘNG HOẠT ĐỘNG
CỦA HỆ THỐNG KERBEROS CHUNG

MÔ TẢ
MÃ HÓA
GIAO THỨC
MỤC TIÊU

* Người sử dụng có thể truy cập tất cả các dịch vụ mà họ được ủy


quyền cho mà không cần phải nhập lại mật khẩu trong phiên này. Đặc
tính này được gọi là Single Sign-On
* Khi người dùng thay đổi mật khẩu của mình, nó được thay đổi
cho tất cả các dịch vụ cùng một lúc.

* Không chỉ những người sử dụng phải chứng minh rằng họ là


những người họ nó mà các máy chủ ứng dụng phải xác thực lại của
khách hàng của họ có đúng không. Đặc tính này được gọi là xác thực
chéo.
YÊU CẦU

* Để Kerberos đạt được mục tiêu đã đặt ra, phải đảm bảo các yêu cầu sau:
 Bảo mật(security)
 Tin cậy(reliability)
 Minh bạch (transparency)
 Uyển chuyển (scalability)
YÊU CẦU

* Để có thể triển khai một hệ thống hoạt động với dịch vụ Kerberos, yêu cầu
về môi trường:
 Có ít nhất 1 máy chủ cài đặt dịch vụ Kerberos (Kerberos Server).
 Các Clients phải được đăng ký với máy chủ Kerberos.
 Một số các máy chủ ứng dụng đóng vai trò phân bổ các khóa với máy
Kerberos.
 Để có kerberos Realms hoạt động ta cần có Một vùng một quản trị
(administrative domain)
 Nếu như có nhiều realms, Kerberos servers phải phân bổ các khóa và ủy thác
cho các realms
NGUYÊN TẮC HOẠT ĐỘNG CHUNG

Kerberos sử dụng một bên thứ ba tham gia vào quá trình nhận thực gọi là
"trung tâm phân phối khóa" ( key distribution center - KDC). KDC bao gồm hai
chức năng: "máy chủ xác thực" (authentication server - AS) và "máy chủ cung
cấp vé" (Ticket Granting Server - TGS). "Vé" trong hệ thống Kerberos chính
là các chứng thực chứng minh nhân dạng của người sử dụng.
NGUYÊN TẮC HOẠT ĐỘNG CHUNG
* Đối với người sử dụng, các khóa bí mật chính là băm thông tin đầu vào khi
đăng ký thường được lưu trong các trung tâm phân phối khóa trên server
Kerberos. Mỗi người sử dụng (cả máy chủ và máy khách) trong hệ thống chia sẻ
một khóa chung với máy chủ Kerberos. Việc sở hữu thông tin về khóa chính là
bằng chứng để chứng minh nhân dạng của một người sử dụng. Trong mỗi giao
dịch giữa hai người sử dụng trong hệ thống, máy chủ Kerberos sẽ tạo ra một khoá
phiên dùng cho phiên giao dịch đó.
* Đối với một dịch vụ, chính là một chuỗi ngẫu nhiên tạo ra, hoạt động như
một mật khẩu, nó cũng được lưu giữ trong Trung tâm phân phối khóa, và trong
một tập tin gọi là keytab trên máy của bên dịch vụ.
* Đối với sơ đồ này để làm việc, khách hàng và dịch vụ phải tin tưởng một
dịch vụ của bên thứ ba (các máy chủ Kerberos ), cung cấp khóa xác thực phân
phối chúng theo yêu cầu..
NGUYÊN TẮC HOẠT ĐỘNG CHUNG

Mô hình hoạt động của Kerberos


Pha 1: Client xác thực với AS để lấy về
vé xin truy nhập TGS
• All Service and
User names
•Name, Password • All passwords
•Kclient=Hash(Password)
Name, Service req

(Kclient/TGS) Kclient (Client ID, IP, ticket


validity,Kclient/TGS) KTGS

A B = TGT (Ticket-Granting-Ticket)
Pha 2: Client xác thực với TGS

(Client ID, IP, ticket


validity,Kclient/TGS) KTGS
[Authenticator(Client ID,
Server ID, B Timestamp) ] Kclient/TGS

C D

E F

[Client-to-server ticket (client ID, client IP, [KClient/Service ]KClient/TGS


validity period ,KClient/Service) ] Kservice
Pha 3: Client truy nhập và yêu cầu cấp phép
sử dụng dịch vụ

a new Authenticator( client


From previos step ID, timestamp) KClient/Service
E G

Timestamp + 1
MÔ TẢ GIAO THỨC
* Kerberos được mô tả như sau A sử dụng máy chủ kerberos S để chứng thực
với máy chủ dịch vụ B.
* An ninh của giao thức phụ thuộc rất nhiều vào các trường T (đánh dấu thời
điểm) và L (thời hạn) của các gói tin. Đây chính là các chỉ thị về tính chất mới của
các gói tin và chống lại các tấn công gửi lại các gói tin cũ.
* Trong các bản tin ở trên, máy chủ S bao gồm cả dịch vụ xác thực và cung
cấp vé. Trong gói tin { TS, L, KAB, B, {TS, L, KAB, A}KBS}KAS
KAB chính là khóa phiên giữa A và B;
{TS, L, KAB, A}KBS là vé gửi từ máy khách tới máy chủ;
{ A,TA }KAB là phần để xác thực A với B;
{ TA + 1 }KAB để khẳng định lại xác thực của B và thông qua đó chấp nhận A.
Điều này cần thiết để hai bên nhận dạng lẫn nhau.
CÁC THÀNH PHẦN TRONG
HỆ THỐNG KERBEROS

Realm và Principa
* Realm: Chính là một tên miền để thiết lập giới hạn trong phạm vi mà một
máy chủ xác thực có thẩm quyền để xác thực người dùng, máy chủ lưu trữ hoặc dịch
vụ. Điều này không có nghĩa là xác thực giữa một người dùng và dịch vụ mà họ phải
thuộc các lĩnh vực quản lý các máy chủ xác thực kerberos.

* Principal: Tên một chỉ mục trong cơ sở dữ liệu máy chủ xác thực là các
thành phần tham gia xác thực trong hệ thống bao gồm người sử dụng và các server
CÁC THÀNH PHẦN TRONG
HỆ THỐNG KERBEROS
Trung tâm phân phối khoá (KDC- Key Distribution Centre)
* KDC là đối tượng cơ bản trong hệ thống Kerberos liên quan đến việc xác
thực người dùng và dịch vụ.
* KDC được chia thành ba phần chính:
 Server xác thực
 Máy chủ cung cấp
 Cơ sở dữ liệu
CÁC THÀNH PHẦN TRONG
HỆ THỐNG KERBEROS
Server xác thực-Authentication Server (AS)
* Là một phần của KDC trả lời yêu cầu xác thực từ các khách hàng
* Khi người sử dụng có yêu cầu xác nhận, họ đăng nhập bằng tài khoản và
mật khẩu của mình ( có thể đăng ký hoặc khởi tạo tài khoản người dùng mới ). Để
đáp lại một yêu cầu xác thực của người dùng AS cấp cho họ một TGT( vé chấp
nhận) nếu người sử dụng thực sự là người mà họ nói mà AS đã định danh. Người
dùng có thể sử dụng TGT để có được cung cấp vé dịch vụ khác mà không cần
phải đăng nhập lại.
CÁC THÀNH PHẦN TRONG
HỆ THỐNG KERBEROS
Server cấp vé-Ticket Granting Server (TGS )
* Trong hệ thống Kerberos chính là các chứng thực định danh người sử dụng.
Nó có nhiệm vụ kiểm tra tính hợp lệ TGS đảm bảo sự xác thực giưa người dùng
máy chủ ứng dụng.
* Nếu các đinh danh của server TGS trên vé TGT của người dùng là hợp lệ
nó sẽ cấp cho người dùng 1 vé thông hành mới để có thể truy cập vào các server
ứng dụng gọi là TGS.
CÁC THÀNH PHẦN TRONG
HỆ THỐNG KERBEROS
Cơ sở dữ liệu
* Cơ sở dữ liệu cho các mục chứa các liên kết với người sử dụng và dịch vụ.
Tham chiếu tới các mục mới bằng cách sử dụng nhánh chính (tức là tên của mục
nhập). Mỗi mục chứa các thông tin sau:
Khoá mật mã và có thông tin liên quan.
Thời gian hiệu lực tối đa cho một vé
Thời gian tồn tại tối đa một vé, có thể được gia hạn (chỉ ở Kerberos 5).
Các thuộc tính hoặc cờ đặc trưng cho những hành vi của vé.
Mật khẩu hết hạn.
* Để đảm bảo các thông tin này sẽ được mã hóa và sao lưu và việc trao đổi
giữa các các máy với nhau.
CÁC THÀNH PHẦN TRONG
HỆ THỐNG KERBEROS
Vé (Ticket)
* Một vé là một cái gì đó mà Client gởi đến một ứng dụng máy chủ để chứng
minh sự xác thực của nó để nhận dạng.
* Chính thông tin chứa trong một vé bao gồm:
Những yêu cầu của người sử dụng thiết yếu (thông thường Username).
Các thiết yếu của các dịch vụ đó là dành cho.
Địa chỉ IP của máy khách mà từ đó các vé có thể được sử dụng.
Ngày và thời gian (trong thời gian định dạng) khi những vé có tính hợp lệ.
Vòng đời tối đa của vé.
Các khóa phiên (điều này có một vai trò cơ bản được mô tả dưới đây).
* Mỗi một vé có hạn sử dụng (thường 10 giờ). Đây là điều cần thiết giúp các
máy chủ xác thực có thể kiểm soát tốt hơn đối với một vé đã được ban hành.
CÁC THÀNH PHẦN TRONG
HỆ THỐNG KERBEROS
Khóa phiên
* Đối với server dịch vụ, đó là chìa khóa bí mật của họ (được đặt bởi quản trị
viên).These keys are called long term, since they do not change when the work
session changes. Các khóa này được gọi là khóa dài hạn, vì nó không thay đổi khi
phiên làm việc thay đổi.
* Tuy nhiên, người sử dung vẫn phải xác thực đối với server dịch vụ ít nhất là
cho thời gian trong đó có một khách hàng đã có một phiên làm việc mở trên dịch
vụ đó điều này quan trọng, tạo ra bởi các KDC khi một vé đã được ban hành, được
gọi là các khóa phiên.
* Các khóa phiên đóng một vai trò cơ bản trong chứng minh xác thực của
người sử dụng.
MÃ HÓA

* Kerberos 4 thực hiện một loại mã hóa mà là ở DES 56 bit. Sự yếu kém này
đã dẫn đến dễ bị tấn công làm cho Kerberos 4 bị lỗi thời.
* Phiên bản 5 của Kerberos, hỗ trợ rất nhiều kiểu mã hóa phức tạp khác nhau
tùy vào việc triển khai trên một mô hinh cụ thể nào đó, vì vậy tính linh hoạt và
mở rộng của giao thức đã được nâng caolàm cho Kerberos 5 có khã năng tương
thích cao với nhiều hệ thống khác nhau.
HOẠT ĐỘNG

Client chứng thực AS


* Authentication Server - biết khoá mật của tất cả người dùng được lưu giữ
trên một cơ sở dữ liệu tập trung
* AS_REQ là yêu cầu người dùng xác thực ban đầu(khởi tạo dich vụ) yêu
cầu này được chuyển trực tiếp tới các thành phần được gọi là KDC Authentication
Server (AS).
* AS_REP là trả lời của máy chủ xác thực để yêu cầu trước đó. Về cơ bản nó
chứa TGT (mã hóa bằng cách sử dụng khóa TGS bí mật) và khóa phiên (được mã
hóa bằng khóa bí mật của người dùng yêu cầu)
HOẠT ĐỘNG

Client xác thực TGS


* Ticket Granting Server - cung cấp vé dịch vụ cho phép người dùng truy
nhập vào các máy chủ trên mạng
* TGS_REQ là yêu cầu từ khách hàng đến Cấp vé máy chủ (TGS) cho một
vé thông hành. Về cơ bản nó chứa TGT (mã hóa bằng cách sử dụng khóa TGS bí
mật) và khóa phiên (được mã hóa bằng khóa bí mật của người dùng yêu cầu)
* TGS_REP là trả lời của Cấp vé máy chủ để yêu cầu trước đó.Nằm bên
trong là vé dịch vụ theo yêu cầu (được mã hóa với khóa bí mật của dịch vụ) và
phiên dịch vụ một khóa tạo ra bởi TGS và được mã hóa bằng khóa phiên trước đó
được tạo ra bởi AS.
HOẠT ĐỘNG

Khách hàng truy cập và được cấp phép sử dung dịch vụ


* AP_REQ là yêu cầu khách hàng gửi tới một máy chủ ứng dụng để truy cập
vào một dịch vụ. Các thành phần là các dịch vụ bán vé thu được từ TGS với thư
trả lời trước và nhận thực một lần nữa được tạo ra bởi khách hàng, nhưng lần này
được mã hóa bằng khóa phiên dịch (tạo ra bởi TGS);
* AP_REP là trả lời rằng các máy chủ ứng dụng cung cấp cho khách hàng để
chứng minh nó thực sự là máy chủ của khách hàng là mong muốn. Gói này không
phải lúc nào cũng được yêu cầu. Các khách hàng yêu cầu máy chủ cho nó chỉ khi
xác thực lẫn nhau là cần thiết.
ĐÁNH GIÁ HỆ THỐNG KERBEROS

NHƯỢC ĐIỂM
ƯU ĐIỂM
ƯU ĐIỂM
* Tăng sự tiện dụng cho người dung
* Hỗ trợ các nhà phát triển hệ thống
* Làm đơn giản hoá công tác quản trị
* Tăng cường bảo mật
* Kerberos là một giao thức xác thực cho máy chủ tin cậy trên các mạng
không đáng tin cậy
* Mục tiêu thiết kế chính của Kerberos là để loại bỏ việc truyền mật khẩu
không mã hóa trên mạng. Nếu sử dụng đúng cách, Kerberos có hiệu quả loại bỏ
các gói tin sniffers.
* Kerberos có khã năng tương thích cao đã được tích hợp vào điều hành hệ
phổ biến ( như windows, linux , unix, mac os...) cũng có thể tích hơp trực tiếp vào
các ứng dụng mạng hoạt động trên các hệ điều hành khác nhau.
NHƯỢC ĐIỂM
* Khó tích hợp với các hệ thống cũ
* Tấn công ở desktop Cũng do tính năng SSO, có khả năng kẻ địch giành
được quyền truy nhập tới các tài nguyên khi người dùng của máy đó rời khỏi máy
sau khi đăng nhập mà quên không khoá máy lại.
* Kerberos xác thực sử dụng một máy chủ lưu trữ trên một mạng không đáng
tin.
* Giao thức đòi hỏi đồng hồ của tất cả những máy tính liên quan phải được
đồng bộ. Nếu không đảm bảo điều này, cơ chế nhận thực giữa trên thời hạn Sử
dụng sẽ không hoạt động.

You might also like