You are on page 1of 16

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

---o0o---

BÁO CÁO BÀI TẬP LỚN

Môn: An toàn và bảo mật hệ thống thông tin

Chủ đề: Tìm hiểu về giao thức xác thực Kerberos

Giảng viên: Hoàng Xuân Dậu Nhóm: 05

Nhóm bài tập lớn: 10

Thành viên: Nguyễn Phú Lượng B19DCCN412

Nguyễn Trọng Mạnh B19DCCN423

Nguyễn Ngọc Minh B19DCCN435

Nguyễn Văn Nghĩa B19DCCN469

Nguyễn Đình Nguyên B19DCCN478

-----o0o-----

1
MỤC LỤC

GIỚI THIỆU...…………………………………………………………………………….3
I.KIẾN TRÚC…………… ……………………………………………………………….5
1.1 Một số định nghĩa…………………..………………………………………….5
1.1.1 KDC – Key Distribution Center….…..………………………………5
1.1.2 SS – Service Server…………………………………………………..5
1.1.3 AS-Authentication Server…………………………………………….5
1.1.4 TGT – Ticket Granting Tickets…………….………………………...5
1.1.5 TGS-Ticket Granting Server………………………………...………..5
1.1.6 Ticket…………………………………………………………………6
1.2 Mô hình Kerberos………..………………………………………………….....6
1.3 Kiến trúc……………………………………………………………………….6
1.3.1 Hình thức mã hoá…………………………………………………….6
1.3.2 Mã hoá trong Kerberos………………………………………………7
1.3.3 Cơ sở dữ liệu Kerberos………………………………………………7
1.3.4 Cơ chế hoạt động…………………..…………………………………7
II.CÁC ĐIỂM YẾU……….. …………………………………………………………......9
III.CÁC DẠNG TẤN CÔNG VÀO KERBEROS……………………………………….11
3.1 Tấn công hệ thống Kerberos………………………………………………….11
3.2 Các dạng tấn công khác………………………………………………………12
3.2.1 Denial of service…………………………………………………….12
3.2.2 insider attack………………………………………………………...12
3.2.3 Social engineering and password exposure…………………………12
3.2.4 Security holes in the Kerberos software…………………………….12
KẾT LUẬN………………………………………………………………………………14
TÀI LIỆU THAM KHẢO…………………………………….........................................16
GIỚI THIỆU

2
Khi nói về hệ thống các biện pháp tổng hợp nhằm bảo đảm an toàn cho việc trao
đổi thông tin trên mạng máy tính, người ta thường nhắc đến AAA (Authentication – xác
thực; Authorization – phân quyền và Accounting – tính toán). Trong đó xác thực là công
đoạn đầu tiên và quan trong nhất. Một trong các giao thức xác thực được sử dụng rộng rãi
nhất hiện nay là Kerberos.

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. Tên của giao thức được đặt theo 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 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
RFC 1510 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.

MIT đã cung cấp các phiên bản thực hiện Kerberos miễn phí dưới giấy phép tương
tự như dùng cho các sản phẩm BSD.

Chính phủ Hoa Kỳ đã cấm xuất khẩu Kerberos vì nó có sử dụng thuật toán DES
56 bit. Tuy nhiên, trước khi chính sách xuất khẩu của Hoa Kỳ thay đổi (2000), đã có
phiên bản KTH-KRB Lưu trữ 2006-02-18 tại Wayback Machine viết tại Thụy Điển thực
hiện Kerberos 4 được phân phối rộng rãi bên ngoài Hoa Kỳ. Phiên bản này được dựa trên
một phiên bản khác có tên là eBones. eBones lại dựa trên một phiên bản được xuất khẩu
của MIT thực hiện Kerberos 4 (patch-level 9) gọi là Bones (loại bỏ các hàm mật mã và
các lệnh gọi chúng). Eric Young, một lập trình viên người Australia, đã phục hồi lại các
lệnh gọi hàm và sử dụng các hàm mật mã trong thư viện của anh ta. Một phiên bản khác
thực hiện Kerberos 5, Heimdal Lưu trữ 2006-03-14 tại Wayback Machine, cũng được
thực hiện bởi nhóm đã xuất bản KTH-KRB.

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 để nhận thực. Những bổ
sung của Microsoft vào bộ giao thức Kerberos được đề cập trong tài liệu RFC 3244
(“Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols”).
Hệ điều hành Mac OS X cũng sử dụng Kerberos trong các phiên bản máy khách và máy
chủ của mình.

3
I.Kiến trúc
1.1 Một số định nghĩa

4
1.1.1 KDC – Key Distribution Center: Trung tâm phân phối khóa.
Key Distribution Center của 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 chủ và các khóa đã mã hóa của nó để gia nhập
 Anthentication Server(AS)
 Ticket Granting Server(TGS)
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.
Mỗi Key Distribution Center chứa 1 database của tất cả các thực thể (ví dụ như người
dùng cá nhân, máy tính hoặc các dịch vụ) có trong khu vực sử dụng 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 thông tin bổ sung của các
thực thể 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.
1.1.2 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.
1.1.3 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ạng 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.
1.1.4 TGT – Ticket Granting Tickets : Mã xác thực
Trong xác thực Kerberos, Ticket Granting Ticket (TGT) là một mã xác thực người dùng
do Trung tâm Phân phối Khoá (KDC) phát hành, được sử dụng để yêu cầu các mã truy
cập từ Dịch vụ Cấp Ticket (TGS) cho các tài nguyên / hệ thống cụ thể được tham gia
vào miền.
Việc sử dụng TGT được thiết kế trong giao thức Kerberos để tránh việc thường xuyên
hỏi người dùng mật khẩu - mật khẩu được Kerberos sử dụng để lấy khóa chính - hoặc
lưu trữ khóa chính trên máy trạm.
1.1.5 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.
1.1.6 Ticket : Vé 
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.

5
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 là khóa
phiên).

1.2 Mô hình Kerberos

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, máy in,……

1.3 Kiến trúc


1.3.1 Hình thức mã hoá
Kerberos dựa trên mô hình mã hoá đối xứng(cùng một khoá được sử dụng để mã hoá và
giải mã)
 E là mã hoá
 D là giải mã
 Ciphertext=E_key (plaintext)
 Plaintext=D_key (ciphertext)

6
1.3.2 Mã hoá trong Kerberos
-Kerberos sử dụng mã hoá đối xứng
-Sử dụng hàm băm:string2key(password,principals)
-Hoạt động:
 def string2key(password,principals):
return algorithm.hash(“password”+ “principals”)
 key=string2key(password,principals)
-lợi thế khi sử dụng mã hoá trong Kerberos
Các service khác nhau cùng một người dùng sẽ cùng sử dụng chung một password để
đồng bộ
Hai principals có cùng user,realm và password nhưng khác lĩnh vực làm việc sẽ mã hoá 2
key khác nhau qua hàm hash,dễ quản lý các công việc khác nhau

1.3.3 Cơ sở dữ liệu Kerberos


-principal
-encryption key & related kvno
-thời hạn tối đa của Ticket liên quan đến principal
-thời hạn tối đa của Ticket liên quan đến principal có thể gia hạn( chỉ Kerberos 5)
-Attributes hoặc flag đặc trưng của vé Tickets
-hạn sử dụng password
-hạn sử dụng của principal và dựng hoạt động cấp vé ticket
1.3.4 Cơ chế hoạt động

Sau đây là mô tả một phiên giao dịch (giản lược) của Kerberos. Trong đó: AS là Máy
chủ nhận thực (authentication server), TGS là Máy chủ cấp vé (ticket granting server),
SS là Máy chủ dịch vụ (service server),TGT là Mã xác thực (ticket granting tickets)
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

7
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ụ.

-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).

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

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

-AS kiểm tra nhân dạng 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
.
-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ể nhận thực mình với TGS.

-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".

-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".

-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:

8
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".

-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".

-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ụ.

-Máy chủ cung cấp dịch vụ cho người sử dụng.

II.CÁC ĐIỂM YẾU

Mọi dịch vụ mạng phải được sửa đổi riêng để sử dụng cùng với Kerberos
Do thiết kế của Kerberos, mọi chương trình sử dụng Kerberos đều phải được sửa
đổi. Quá trình thực hiện các sửa đổi này thường được gọi là ứng dụng "Kerberizing" . Số
lượng những việc đòi hỏi phụ thuộc hoàn toàn vào chương trình ứng dụng. Tất nhiên, để
Kerberized một ứng dụng, bạn phải có mã nguồn của ứng dụng.
Kerberos không hoạt động tốt trong môi trường chia sẻ thời gian.
Kerberos được thiết kế cho một môi trường trong đó có một người dùng trên mỗi máy
trạm. Do khó chia sẻ dữ liệu giữa các tiến trình khác nhau chạy trên cùng một máy
tính UNIX , Kerberos giữ các vé trong thư mục  /tmp. Nếu một người dùng đang chia sẻ
máy tính với nhiều người khác, có thể vé của người dùng đó có thể bị đánh cắp, tức là bị
kẻ tấn công sao chép. Vé bị đánh cắp sau đó có thể được sử dụng để thực hiện dịch vụ
gian lận.
Kerberos yêu cầu một Máy chủ Kerberos an toàn. 
Theo thiết kế, Kerberos yêu cầu phải có một máy chủ trung tâm an toàn duy trì cơ sở dữ
liệu mật khẩu chính. Để đảm bảo tính bảo mật, một trang web nên sử dụng Máy chủ
Kerberos mà hoàn toàn không có gì khác ngoài việc chạy chương trình Máy chủ
Kerberos. Máy chủ Kerberos phải được giữ trong tình trạng khóa và chìa khóa, trong một
khu vực an toàn về mặt vật lý. Trong một số môi trường, việc duy trì một máy chủ như
vậy là một gánh nặng về quản trị và tài chính.
Kerberos yêu cầu một Máy chủ Kerberos khả dụng liên tục. 
Nếu Máy chủ Kerberos gặp sự cố, mạng Kerberos không sử dụng được.

9
Kerberos lưu trữ tất cả mật khẩu được mã hóa bằng một khóa duy nhất .
Thêm khó khăn khi chạy một máy chủ an toàn là việc Máy chủ Kerberos lưu trữ tất cả
các mật khẩu được mã hóa bằng khóa chính của máy chủ, điều này sẽ xảy ra trên cùng
một đĩa cứng với các mật khẩu được mã hóa. Điều này có nghĩa là, trong trường hợp Máy
chủ Kerberos bị xâm phạm, tất cả mật khẩu người dùng phải được thay đổi.
Kerberos không bảo vệ chống lại các sửa đổi đối với phần mềm hệ thống ( Trojan
horses) . 
Kerberos không có sự xác thực với máy tính người dùng- nghĩa là không có cách nào để
người dùng đang sử dụng máy tính xác định xem máy tính này đã bị tấn công hay chưa.
Lỗi này có thể dễ dàng bị lợi dụng bởi các hacker và tấn công vào hệ thống . Trên thực tế,
ngựa thành Troy là một vấn đề tiếp tục xảy ra tại Dự án Athena của MIT.

Ví dụ, kẻ xâm nhập có thể sửa đổi phần mềm hệ thống của máy trạm để mọi tổ hợp tên
người dùng +mật khẩu được nhập vào đều được ghi lại tự động hoặc được gửi mail đến
một máy khác do kẻ tấn công kiểm soát. Ngoài ra, kẻ tấn công độc hại có thể chỉ cần sửa
đổi phần mềm của máy trạm để xóa nhanh các tệp của người dùng sau khi người dùng đã
đăng nhập và xác thực mình với File Server Service. Cả hai vấn đề này đều là hậu quả
của thực tế là, ngay cả trong môi trường nối mạng, nhiều máy trạm (bao gồm cả Project
Athena) chứa các bản sao cục bộ của các chương trình mà chúng chạy.
Kerberos có thể dẫn đến mất niềm tin theo từng tầng. 
Một vấn đề khác với Kerberos là nếu mật khẩu máy chủ hoặc mật khẩu người dùng bị
hỏng hoặc bị tiết lộ theo cách khác, tin tặc có thể sử dụng mật khẩu đó để giải mã các vé
khác và sử dụng thông tin này để giả mạo máy chủ và người dùng.
Độ bảo mật của hệ thống phụ thuộc vào sự an toàn của hệ thống KDC
Nếu KDC bị tấn công thì toàn bộ các thành phần trong hệ thống cũng bị tê liệt
.
Yêu cầu cao về đồng bộ thời gian trên các máy tính
Do tất cả các trao đổi đều gắn timestamp nên đòi hỏi các máy tính trong hệ thống phải
đồng bộ về thời gian (không chênh lệch nhau quá 10 phút). Nếu không đảm bảo điều này,
cơ chế xác thực dựa trên thời hạn sử dụng sẽ không hoạt động.

Cơ chế đăng nhập 1 lần trên một máy có thể gây hại
Với cơ chế đăng nhập một lần trên một máy tính, nếu máy tính đó rơi vào tay những kẻ
tấn công mạng thì toàn bộ dữ liệu người dùng sẽ bị đánh cắp và gây nguy cơ cho toàn bộ
hệ thống.
 
Thời gian ra mắt của giao thức Kerberos đã lâu do đó tin tặc có thể có thời gian tìm ra
các lỗ hổng và các cách thức tấn công vào hệ thống

10
III.CÁC DẠNG TẤN CÔNG VÀO KERBEROS
3.1 Tấn công vào hệ thống Kerberos

Việc hacker có thể tấn công hệ thống Kerberos KDC(key distribution center) là không dễ
dàng. Nhưng có 1 số cuộc tấn công điện tử có thể thỏa hiệp sự bảo mật của hệ thống
Kerberos. Một số thỏa hiệp hiệu quả về độ an toàn của hệ thống:

 Root Compromise of a Kerberos KDC machine: 1 thỏa hiệp gốc của máy chủ
KDC cho phép tấn công toàn quyền kiểm soát toàn bộ hệ thống xác thực
Kerberos. 

 Compromise of a Kerberos administrator's credentials: Nếu hacker lấy được mật


khẩu của người quản trị, hacker có thể hoàn thành tấn công trên tòan bộ database
Kerberos (Nếu lấy được mật khẩu của admin thì có thể hoàn thành cuộc tấn công
trên toàn bộ database Kerberos)
 
 Root compromise of a server machine: Để giao thức Kerberos làm việc, 1 dịch vụ
phải có truy cập đến 1 dịch vụ chính. Các dịch vụ chính nằm trên hệ thống tập tin
của máy chủ, hoặc nằm trên 1 keytab được thực thi bởi Unix. Nếu một kẻ tấn công
lấy được quyền truy cập vào một máy chủ, tất cả các dịch vụ Kerberized đang
chạy trên máy bị tổn hại.

 Root compromise of a client machine: Một thỏa hiệp gốc của một máy client sẽ
cung cấp cho kẻ tấn công với tất cả các vé đã được lưu trên máy đó. Khi các vé có
giới hạn thời gian, nó không phải là một thỏa hiệp quan trọng như một kẻ tấn công
lấy mật khẩu của người dùng. Tuy nhiên, với sự truy cập gốc đến máy client,
những kẻ tấn công bí mật có thể cài đặt một sniffer để nắm bắt một mật khẩu
người dùng khi đăng nhập vào máy tính của họ.

 Compromise of user credentials: Có 2 khả năng hoặc bộ nhớ lưu vé người dùng đã
bị lộ, hoặc mật khẩu của người dùng bị thỏa hiệp. Nếu hacker lấy được bộ nhớ các
vé chưa được mã hóa, các vé chứa trong bộ nhớ cache mà chỉ có hiệu lực trong
khoảng thời gian quy định trong vé. Mặt khác, nếu kẻ tấn công sử dụng lại mật
khẩu của người dùng, những kẻ tấn công có thể mạo danh người dùng đó cho đến
khi người dùng thay đổi mật khẩu của mình.

Suy ra,từ danh sách thỏa hiệp trên, tất cả những kịch bản có tầm quan trọng trong việc
giữ tất cả các máy trong không gian mạng của bạn an toàn. Cài đặt Kerberos trên không

11
gian mạng của bạn không làm giảm tầm quan trọng của việc giữ tất cả các máy móc, máy
tính người dùng an tòan từ tấn công bên ngòai. Những thỏa hiệp của bất kì 1 máy nào
trong không gian mạng sẽ có một số hiệu ứng bất lợi về bảo mật của hệ thống xác thực
Kerberos.

3.2 Các dạng tấn công khác


3.2.1.Denial of service (từ chối dịch vụ)
DoS là dạng tấn công cản trở người dùng hợp pháp truy nhập các tài nguyên hệ thống
 Tấn công logic (Logic attacks): tấn công dựa vào các lỗi phần mềm
làm dịch vụ ngừng hoạt động hoặc làm giảm hiệu năng hệ thống
 Tấn công gây ngập lụt (Flooding attacks): Kẻ tấn công gửi một lượng lớn yêu cầu
gây cạn kiệt tài nguyên hệ thống hoặc băng thông đường truyền mạng

3.2.2.insider attacks
The "insider" (người trong cuộc) Các cuộc tấn công nội bộ (insider attack) liên quan đến
người ở trong cuộc, chẳng hạn như một nhân viên nào đó “bất mãn” với công ty của
mình, .... Các cuộc tấn công hệ thống mạng nội bộ có thể gây hại hoặc không tùy theo
mục đích cũng như trình độ của kẻ tấn công. Thông thường những cuộc tấn công nội bộ
thường liên quan đến những hành vi như cố ý nghe trộm, ăn cắp hoặc phá hoại thông tin,
sử dụng thông tin một cách gian lận hoặc truy cập trái phép vào kho dữ liệu quan trọng.

3.2.3. Social engineering and password exposure


Social engineering and password exposure (kỹ thuật cộng đồng và tiếp xúc với mật -
khẩu):  là dạng tấn công sử dụng các kỹ thuật xã hội đã thuyết phục người dùng tiết lộ
thông tin truy nhập hoặc các thông tin có giá trị cho kẻ tấn công.  Kẻ tấn công có thể liên
lạc với một người quản trị hệ thống, giả làm một người sử dụng để yều cầu thay đổi mật
khẩu, thay đổi quyền truy nhập của mình đối với hệ thống, hoặc thậm chí thay đổi một số
cấu hình của hệ thống để thực hiện các phương pháp tấn công khác.
Với kiểu tấn công này không một thiết bị nào có thể ngăn chặn một cách hữu hiệu, và chỉ
có một cách giáo dục người sử dụng mạng nội bộ về những yêu cầu bảo mật để đề cao
cảnh giác với những hiện tượng đáng nghi.
Nói chung yếu tố con người là một điểm yếu trong bất kỳ một hệ thống bảo vệ nào, và
chỉ có sự giáo dục cộng với tinh thần hợp tác từ phía người sử dụng có thể nâng cao được
độ an toàn của hệ thống bảo vệ.

3.2.4. Security holes in the Kerberos software


Security holes in the Kerberos software itself (các lỗ hổng bảo mật trong chính phần mềm
Kerberos):

12
 Lỗ hổng trong Kerberos là rất nguy hiểm bởi Kerberos là một trong những giao
thức định danh được sử dụng phổ biến nhất hiện nay trên mạng Internet. Giao thức
này còn được sử dụng trong rất nhiều các sản phẩm thương mại như hệ điều hành,
router...
 Hai lỗ hổng trong Kerberos tác động tới thành phần định danh người dùng Key
Distribution Center (KDC). Sai sót đầu tiên có thể gây ra lỗi tràn bộ đệm "heap"
thông qua các truy vấn TCP hoặc UDP. Lỗ hổng này sẽ cho phép tin tặc thực thi
mã nhị phân từ xa trên máy tính nạn nhân. Lỗ hổng thứ hai trong KDC gây ra tình
trạng giải phóng bộ nhớ tại những vị trí ngẫu nhiên, dẫn tới việc phá huỷ bộ nhớ
heap, làm treo hệ thống nhưng không cho phép thực thi mã nhị phân.
 Lỗ hổng thứ ba ảnh hưởng trực tiếp tới biến "krb5_recvauth()", cho phép kẻ tấn
công từ xa có thể chiếm quyền điểu khiển toàn bộ hệ thống. Tuy nhiên, theo thông
báo của MIT, khả năng khai thác lỗ hổng này là rất khó khăn vì nó đòi hỏi rất
nhiều yếu tố cần thiết.
Các lỗ hỏng này cho phép tin tặc kiểm soát toàn bộ hệ thống định danh của máy tính

13
KẾT LUẬN

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 xác thực cho cả
hai chiều.

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.

Kerberos được thiết kế dựa trên giao thức Needham-Schroeder. 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” (tiếng
Anh: 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 tính hợp lệ của người
sử dụng.

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 tính hợp lệ 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 khóa phiên dùng cho phiên giao
dịch đó.

Mô hình Kerberos tiêu biểu bao gồm: Client, router, switch, hub, AS, TGS,
database, Mail Server,máy in,…

Kerberos dựa trên mô hình mã hoá đối xứng để mã hoá giải mã,cơ chế mã hoá dựa
trên thuật toán băm: hàm băm string2key(password,principal)

Cơ chế hoạt động Kerberos:

-Kerberos không xây dựng các giao thức chứng thực phức tạp cho mỗi máy
chủ mà hoạt động dựa trên một trung tâm phân phối khóa (Key Distribution
Centre – KDC), bao gồm ba thành phần:
 Máy chủ xác thực (Authentication Server – AS): sử dụng các thông tin
có trong database để xác thực người dùng.

14
 Máy chủ cấp vé ((Ticket Granting Server – TGS): 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.
 Cơ sở dữ liệu (Database): chứa dữ liệu của KDC và của người dùng
(Client).
 
-Client muốn truy cập các dịch vụ trên máy chủ ứng dụng (Applycation
Server – AP) thì trước hết phải tiến hành xác thực mình với AS, sau đó chứng
minh với TGS rằng mình đã được xác thực để nhận vé, cuối cùng chứng minh với
AP rằng mình đã được chấp thuận để sử dụng dịch vụ.
Các điểm yếu của Kerberos nổi bật:
 Mọi dịch vụ mạng phải được sửa đổi riêng để sử dụng cùng với Kerberos
 Kerberos không hoạt động tốt trong môi trường chia sẻ thời gian.
 Kerberos yêu cầu một Máy chủ Kerberos an toàn. 
 Kerberos yêu cầu một Máy chủ Kerberos khả dụng liên tục.
 Kerberos lưu trữ tất cả mật khẩu được mã hóa bằng một khóa duy nhất
 Kerberos không bảo vệ chống lại các sửa đổi đối với phần mềm hệ thống
( Trojan horses) . 
 Kerberos có thể dẫn đến mất niềm tin theo từng tầng. 
 Độ bảo mật của hệ thống phụ thuộc vào sự an toàn của hệ thống KDC
 Yêu cầu cao về đồng bộ thời gian trên các máy tính
 Cơ chế đăng nhập 1 lần trên một máy có thể gây hại
Các dạng tấn công vào Kerberos:
 Tấn công Kerberos với các thoả hiệp về độ an toàn hệ thống: Root
Compromise of a Kerberos KDC machine, Compromise of a Kerberos
administrator's credentials, Root compromise of a server machine, Root
compromise of a client machine, Compromise of user credentials
 Denial of service (từ chối dịch vụ)
 insider attack (tấn công nội bộ)
 Social engineering and password exposure (kỹ thuật cộng đồng và tiếp xúc
với mật -khẩu)
 Security holes in the Kerberos software itself (các lỗ hổng bảo mật trong
chính phần mềm Kerberos)

15
TÀI LIỆU THAM KHẢO

https://en.wikipedia.org/wiki/Kerberos_(protocol)
https://www.security4vn.com/2015/03/tim-hieu-ve-giao-thuc-xac-thuc-kerberos.html
https://www.geeksforgeeks.org JASON GARMAN, “Kerberos: The Definitive Guide”,
2003.
https://en.wikipedia.org/wiki/Kerberos_(protocol) #Drawbacks_and_limitations 
http://litux.nl/Books/Books/www.leothreads.com/ebook/oreillybookself/tcpip/puis/
ch19_06.htm
https://text.123docz.net//document/9843906-giao-thu-c-xac-thuc-kerberos.htm
https://viblo.asia/p/cac-kieu-tan-cong-mang-pho-bien-hien-nay-Do754z2QZM6
https://quantrimang.com/giao-thuc-bao-mat-kerberos-phat-sinh-lo-hong-nghiem-trong-12945
slide chương 2

16

You might also like