1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

16 299 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về giao thức xác thực Kerberos
Tác giả Nguyễn Phú Lượng, Nguyễn Trọng Mạnh, Nguyễn Ngọc Minh, Nguyễn Văn Nghĩa, Nguyễn Đình Nguyên
Người hướng dẫn Hoàng Xuân Dậu
Trường học Học viện Công nghệ Bưu Chính Viễn thông
Chuyên ngành An toàn và bảo mật hệ thống thông tin
Thể loại Báo cáo bài tập lớn
Định dạng
Số trang 16
Dung lượng 363,92 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

I.Kiến trúc

1.1 Một số định nghĩa

Trang 5

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

Trang 6

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)

Trang 7

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

Trang 8

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:

Trang 9

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

Trang 10

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

Ngày đăng: 21/11/2022, 17:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w