1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)

38 2,4K 11

Đ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

Định dạng
Số trang 38
Dung lượng 21,12 MB

Nội dung

CHƯƠNG I 1 TỔNG QUAN VỀ GIAO THỨC KERBEROS 1.1. SƠ LƯƠT VỀ GIAO THỨC 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. Nó được phát triển trong dự án Athena của học viện công nghệ MIT Massachusetts Institute of Technology. Kerberos một giao thức mật mã dùng để xác thực trong các mạng máy tính theo mô hinh hình mô hình clientserver 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 và đảm bảo tính toàn vẹn và tính bảo mật cho thông tin truyền đi cả hai chiều. 1.1.1. 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. MIT đã cung cấp các phiên bản thực hiện Kerberoslo miễn phí dưới giấy phép tương tự như dùng cho các sản phẩm BSD (Berkeley Software Distribution). 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 năm 2000, đã có phiên bản KTHKRB viết tại Thuỵ Đ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 (patchlevel 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 Austraulia, đã 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, cũng được thực hiện bởi nhóm đã xuất bản KTHKRB. 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. Những bổ sung của Microsoft vào bộ giao thức Kerberos được đề cập trong tài liệu RFC 3244 http:tools.ietf.orghtml3244 (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 Clients và Server của mình. Năm 2005, nhóm làm việc của IETF về Kerberos cập nhật các đặc điểm kỹ thuật tại địa chỉ http:www.ietf.orghtml.charterskrbwgcharter.html. Các cập nhật gần đây bao gồm:  RFC 3961: Các quy định về mật mã hóa và kiểm tra tổng  RFC 3962: Mã hoá AES cho Kerberos 5  RFC 4120: Phiên bản mới về tiêu chuẩn Kerberos V5: The Kerberos Network  Authentication Service (V5). Phiên bản này thay thế RFC 1510, làm rõ các vấn đề của giao thức và cách sử dụng;  RFC 4121: Phiên bản mới của tiêu chuẩn GSSAPI: Cơ cấu GSSAPI của Kerberos Version 5: Version 2. 1.1.2. Ứ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 Kerberos v5 hoặc cao hơn)  NFS (kể từ NFSv3)

Trang 1

CHƯƠNG I

1 TỔNG QUAN VỀ GIAO THỨC KERBEROS

1.1 SƠ LƯƠT VỀ GIAO THỨC 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 Nó được phát triển trong dự ánAthena của học viện công nghệ MIT- Massachusetts Institute of Technology

Kerberos một giao thức mật mã dùng để xác thực trong các mạng máy tính

theo mô hinh hình mô hình client-server hoạt động trên những đường truyềnkhông an toàn Giao thức Kerberos có khả năng chống lại việc nghe lén hay gửilạ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ế giaothức này là nhằm vào và đảm bảo tính toàn vẹn và tính bảo mật cho thông tintruyền đi cả hai chiều

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ướinhiề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 đíchchí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ớimụ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 Kerberoslo miễn phí dưới giấy

phép tương tự như dùng cho các sản phẩm BSD (Berkeley SoftwareDistribution)

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 năm

2000, đã có phiên bản KTH-KRB viết tại Thuỵ Điển thực hiện

Trang 2

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ườiAustraulia, đã 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ã trongthư viện của anh ta Một phiên bản khác thực hiện Kerberos 5, Heimdal, 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 để xácthực Những bổ sung của Microsoft vào bộ giao thức Kerberos được đề cập trongtài liệu RFC 3244 http://tools.ietf.org/html/3244 ("Microsoft Windows 2000Kerberos 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 Clients và Server của mình

Năm 2005, nhóm làm việc của IETF về Kerberos cập nhật các đặc điểm kỹ

thuật tại địa chỉ http://www.ietf.org/html.charters/krb-wg-charter.html Các cậpnhật gần đây bao gồm:

• RFC 3961: Các quy định về mật mã hóa và kiểm tra tổng

• RFC 3962: Mã hoá AES cho Kerberos 5

• RFC 4120: Phiên bản mới về tiêu chuẩn Kerberos V5: "The KerberosNetwork

• Authentication Service (V5)" Phiên bản này thay thế RFC 1510, làm rõcác vấn đề của giao thức và cách sử dụng;

• RFC 4121: Phiên bản mới của tiêu chuẩn GSS-API: "Cơ cấu GSS-APIcủa Kerberos Version 5: Version 2."

Trang 3

◦ PAM (với modular pam_krb5)

◦ SOCKS (kể từ SOCKS5)

◦ Apache (với modular mod_auth_kerb)

◦ Dovecot IMAP4 và POP3

• Một cách gián tiếp, tất cả phần mềm sử dụng SASL để nhận thực,chẳng hạn như penLDAP

• Bộ Kerberos còn đi kèm với các bộ phần mềm client/server của rsh,FTP và Telnet

• Hệ thống X Window

• Thẻ thông minh Smark Card

• Được tích hợp để xác thực trong các hệ điêu hành mạng

• Xây dưng tích hợp trong các hệ thống xác thực của các ngân hàng

• Tích hợp kerboros trong các hệ thống bastion host

• MỤC TIÊU VÀ YÊU CầU CỦA HỆ THỐNG KERBEROS

Trước khi miêu tả hệ thống xác thực Kerberos và nguyên tắc hoạt động của

nó chúng ta tìm hiểu về mục tiêu và các yêu cầu đặt ra cho một hệ thốngKerberos:

Mục Tiêu

Mật khẩu của người dùng không bị thất lạc trên mạng.

Đảm bảo mật khẩu của khách hàng không lưu trữ trực tiếp trên máy người

dùng mà dược loại bỏ ngay sau khi sử dụng

Mật khẩu của người dùng không bao giờ nên được cất giữ trong một hình

thức không được mật mã ngay cả trong cơ sở dữ liệu máy chủ dịch vụ

Người sử dụng có yêu cầu nhập mật khẩu duy nhất một lần mỗi phiên làm

việc Vì vậy người sử dụng có thể truy cập tất cả các dịch vụ mà họ được ủy uyềncho 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

Quản lý thông tin xác thực là tập trung và cư trú trên máy chủ xác thực.

Các máy chủ ứng dụng không trực tiếp xác thực thông tin cho người dùng của

họ, điều này làm cho hệ thống có được các hệ quả:

Trang 4

• Người Quản trị quản lý tập trung tài khoản người dùng trên các máychủ xác thực mà không cần thao tác trên các máy chủ dịch vụ.

• 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 có sự xác thực thừa nhằm bảo vệ được mật khẩu

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ó đúngkhông Đặc tính này được gọi là xác thực chéo

Sau khi hoàn thành xác nhận và uỷ quyền, Client và Server phải có khả

năng thiết lập một kết nối đã mã hóa, nếu được yêu cầu Đối với mục đích này,Kerberos cung cấp hỗ trợ cho các thế hệ và trao đổi của một khoá mật mã sẽđược sử dụng để mã hóa dữ liệu

• Uyển chuyển (scalability)

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

1.2 Môi trường hoạt động của kerberos (Kerberos Realms)

Để 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áyKerberos

Để 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

Trang 5

Nguyên tắc hoạt động chung

Giao thức Kerberos được xây dựng dựa trên giao thức Needham-Shroeder

(NS giao thức).Mô tả trong một bài báo xuất bản năm 1978 của Roger Needham

và Michael Shroeder, nó được thiết kế để cung cấp một dịch vụ chứng thực phânphối an toàn, thông qua mật mã khóa bí mật

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 haichức năng: "máy chủ xác thực" (authentication server - AS) và "máy chủ cungcấ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

Đố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 serverKerberos 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 giaodịch giữa hai người sử dụng trong hệ thống, máy chủ Kerberos sẽ tạo ra mộtkhoá 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à trongmộ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ânphối chúng theo yêu cầu

Hoạt động Kerberos được dựa trên vé Vé là một chuổi dữ liệu mã hóa

được truyền qua mạng, và được lưu trữ trên máy của khách hàng Cách lưu trữphụ thuộc vào hệ điều hành và cấu hình của khách hàng Theo cách thôngthường, nó được lưu trữ như tập tin dạng text khả năng tương thích với nhiều hệđiều hành khác nhau

Trang 6

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.

◦ A®S :A,B

◦ S®A : { TS, L, KAB, B, {TS, L, KAB, A}KBS}KAS

◦ A®B: {TS, L, KAB, A}KBS , { A,TA }KAB

◦ B®A: { TA + 1 }KAB

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ớicủ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 { T S , L, KAB, B, {T S , L, KAB, A}K BS }K AS

• KAB chính là khóa phiên giữa A và B;

• {T S , L, KAB, A}K BS là vé gửi từ máy khách tới máy chủ;

• { A,T A }KAB là phần để xác thực A với B;

• { T A + 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

Phần này cung cấp các định nghĩa của các đối tượng và điều kiện, kiến thứctrong đó là điều cần thiết cho các mô tả về giao thức Kerberos

1.2.1.2.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ặcdị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ácserver

Trang 7

◦ 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ụ Các máy chủ xác thực trong một realm kerberos cóchức năng phân phối vé giữ người dùng và nhà cung cấp dịch vụ, được gọi làTrung tâm phân phối khóa KDC Nó có thể nằm hoàn toàn trên một máy chủ vật

lý duy nhất (đôi với hệ thống đơn giản ) chia thành ba phần chính:

• Server xác thực

• Máy chủ cung cấp

• Cơ sở dữ liệu

◦ Server xác thực-Authentication Server (AS)

• Máy chủ xác thực ( authentication server – AS ) AS là một phần củaKDC 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 nếungườ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 đăngnhập lại

◦ 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ườidùng máy chủ ứng dụng

• Nếu các đinh danh của server TGS trên vé TGT củ 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ácserver ứng dụng gọi là TGS

◦ 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ụcnhậ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

Trang 8

• 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

• 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 Vé được phát hành bởi các máychủ xác thực và được mã hóa bằng cách sử dụng khoá bí mật của các dịch vụ mà

họ được dành cho hoá này là một bí mật chỉ được chia sẻ giữa các máy chủ xácthực và máy chủ cung cấp các dịch vụ, ngay cả những Client chỉ có thể yêu cầucấp vé nhưng không có quyền xem thay đổi nội dung của nó Chính thông tinchứ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ếtgiú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 banhành ealm quản trị có thể ngăn ngừa việc phát hành mới hoặc thu hồi vé cho mộtngười sử dụng vào bất kỳ thời diểm nào, nó có thể không ngăn cản người sửdụng bất hợp pháp khi họ có vé Đây là lý do cho việc giới hạn vòng đời của vé

để hạn chế thay thế và mạo danh người sử dụng hợp pháp

• Khóa phiên

Như chúng ta đã thấy, người dùng và các dịch vụ chia sẻ một bí mật với

các KDC Đối với người sử dụng khóa nay chinh là phép băm các thông tin đầuvào và mật khẩu cho.Đối với server dịch vụ, đó là chìa khóa bí mật của họ (được

Trang 9

đặt bởi quản trị viên) 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, nguoif 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êndịch vụ đó điều này quan trọng, tạo ra bởi các KDC khi một vé đã được banhành, được gọi là các khóa phiên Các bản sao dành cho dịch vụ này là bao bọcKDC trong vé (trong bất kỳ trường hợp nào ứng dụng máy chủ của họ hiểu biếtkhóa dài hạn và có thể giải mã nó và trích các khóa phiên), trong khi các bản saodành cho người sử dụng đã đóng gói trong một gói được mã hóa với người sửdụng khoá lâu dài Các khóa phiên đóng một vai trò cơ bản trong chứng minh xácthực của người sử dụng

Mã hóa

Như chúng ta thấy thấy Kerberos thường được nhu cầu để mã hóa và giải

mã thông điệp (vé và khóa) đi qua giữa những người khác nhau trong việc xácthực Điều quan trọng cần lưu ý là chỉ sử dụng Kerberos mã hóa khóa đối xứng(nói cách khác khóa cùng được sử dụng để mã hóa và giải mã )

Kerberos 4 thực hiện một loại mã hóa mà là ở DES 56 bit đã 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ấtnhiề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 đó tính linh hoạt và mở rộng của giao thức đã được nâng caolàm choKerberos 5 có khã năng tương thích cao với nhiều hệ thống khác nhau Để kháchhàng có thể sử dụng ứng dụng xác thực bằng cách sử dụng các máy chủ khácnhau, họ phải có ít nhất một loại mã hóa chung

Những khó khăn liên quan đến việc triển khai vận hành giữa UNIX của

Kerberos 5 và tồn tại trong Active Directory của Windows là giới hạn hỗ trợ mãhóa chỉ dưng lại ở DES 56 bit Điều này sẽ làm giảm tính an toàn của hệ thống.Vấn đề này sau đó đã được giải quyết với phiên bản 1,3 của MIT Kerberos 5.Phiên bản này được giới thiệu RC4-HMAC và bộ ba DES (3DES) và mới hơnAES 128 và AES 256 đáng đề cập đến

Trang 10

Hoạt Động

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 máy chủ chứng thực tập trung KDC (KeyDistribution Centre) KDC cung cấp vé cho việc chứng thực người dùng và bảomật truyền thông bởi khoá phiên trong vé gồm3 giai đoạn và 6 bước trao đổi

◦ 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à KDCAuthentication 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)

◦ 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

◦ 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

Trang 11

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.

◦ Lưu ý tất cả các trao đổi giữa các máy đều dược đóng dấu thời gianTimestamp

KRB _AS _REQ

Applycation Server

Authentication Server (AS)

Ticket Granting Server (TGS)

KRB _AS _REP

Pha 1 Truyền thông

Trang 12

1.1.1.1.Giai đoạn thứ nhất

Kết nối với AS để lấy về vé xin truy nhập TGS, ticket-granting-ticket

(TGT)

Truyền thông với AS thường là giai đoạn khởi đầu của phiên đăng nhập,

nhằm lấy về dữ liệu chứng thực (TGT) cho TGS, để sau đó lấy về chứng thựccho các máy chủ khác mà không phải nhập lại khoá bí mật của client Khoá bímật của client được sử dụng cho cả việc mã hoá và giải mã

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 là: "người dùng U muốn sửdụng dịch vụ" Cần chú ý là cả khóa 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/Client" được mật mã hóa với khóa bí mậtcủ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), địachỉ mạng của người sử dụng, thời hạn của vé và "Khóa phiên TGS/Client") đượcmật mã hóa với khóa bí mật của TGS

Trang 13

` Client

Authentication Server (AS)

User Login

(ID,Password)

->one way hash

Client Secret Key

User U want using service AS check Client is in

Database?

B:TGT include ID of User,Client Network add, validity ticket, Client/TGS session key (Encryted TGS)

DATABASE

Generates Client Secret key

A:Client /TGS session key encrypted with Client secret key

Client decodes A:

using it’s secret key->

Client/TGS session

key

Hình 2.2: Ngừơi dùng truy cập vào AS

1.2.1.3.Giai đoạn thứ hai

Trao đổi với máy chủ cấp vé dịch vụ TGS, lấy về service ticket truy nhập

máy chủ V:

Khi nhận được 2 gói tin A và B, 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ủayê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/Client "

Khi nhận được 2 gói tin C và D, TGS giải mã C, 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ớikhóa bí mật của máy chủ cung cấp dịch vụ

Trang 14

• Gói tin F: "Khóa phiên máy Server/Client" mật mã hóa với "Khóaphiên TGS/Client ".

` Client

C:TGT from B and Service ID D: authentication of client:ID,timestamp ( Enc with Cli/TGS session key

from A)

TGS decryption C, D and Test Client ID from C and

F:Cli/Ser session key En with Cli/

TGS sesssion key from A

hình 2.3 : Trao đổi giữa người dùng và TGS

1.2.1.4.Giai đoạn thứ 3

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ụ S Client gửi tới S hai gói tin:

• Gói tin E thu được từ bước trước (trong đó có "Khóa phiên máyServer/máy Client" mật mã hóa với khóa bí mật của S)

• 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 Server/Client"

• Sever giải mã "Vé" bằng khóa bí mật của mình và gửi gói tin sau tớingười sử dụng để xác nhận định danh của mình và khẳng định sự đồng ý cungcấ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 Server/Client "

Trang 15

• Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được cậpnhật chính xác Nếu đúng thì người sử dụng có thể tin tưởng vào máy chủ S 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

` Client

H: timestamp found in G+1

En with Cli/Ser session key

E:Client/Ser ticket(Client ID, net add, validity period , Cli/

Ser sessiob key En with Ser

secret key

Applycation Server

Ser check Cli ID from E

matches from G Timestamp

validity?

Server decrypts E using Server secret key and gets Cli ID,net add, validity period, Cli/Ser session key

Decrypt H using Cli/Ser

session key checks?

Timestamp+1

Trsut Ser G:Authentication composed of Client ID and timestamp (en

with Cli/Ser sesion key from

F)

Ser decrypt G using Cli/Ser session key and gets Cli ID and timestamp

Server provide service User

Hình 2.4: Người dùng chứng thực với server dịch vụ

1.2.1.5.Tăng cường bảo mật

Khi một phiên truyền thông được thiết lập, khoá phiên sẽ được truyền an

toàn đến các bên truyền thông Điều này sẽ đảm bảo cho hệ thống các tính năngbảo mật sau:

◦ Tính xác thực : Không ai gửi một thông điệp sai Do chỉ có client và máy

chủ dịch vụ có thể biết được khoá phiên nên không thể xảy ra trường hợp có kẻthứ ba mạo danh một trong hai bên để tham gia vào phiên truyền thong Ở đây,

Kerberos đảm bảo tính Chứng thực lẫn nhau.

◦ Tính riêng tư, tính toàn vẹn : Thông điệp trước khi truyền sẽ được mã hoá

và kí bằng khoá phiên nên thám mã không thể nào có thể đọc hay thay đổi nộidung thông điệp được truyền

Trang 16

Như vậy, sử dụng giao thức Kerberos thì ta được đảm bảo tính xác thực,

tính riêng tư, và tính toàn vẹn của các thông điệp được truyền Đây chính là các

yêu cầu cần và đủ để đảm bảo một phiên truyền thông an toàn Ngoài ra,Kerberos còn cung cấp một chức năng quan trọng như sau :

◦ Hỗ trợ cơ chế uỷ nhiệm : Trong các ứng dụng đa lớp, khi người dùng yêu

cầu một dịch vụ ở tầng giao diện người dùng, từ đây sẽ gửi yêu cầu đến tầng giữathực hiện các chức năng của hệ thống đồng thời tạo ra các thao tác truy vấn tớitầng dữ liệu lấy ra thông tin của người dùng Thông thường, các tầng nằm phântán trong các máy chủ trên mạng nên đều có cơ chế bảo mật độc lập với nhau

Hình 2.5 Hỗ trợ uỷ nhiệm trong Kerberos

Do vé Kerberos có khả năng đại diện vì thế các tầng có thể dùng vé này đại

diện cho người dùng để thực hiện các chức năng được phép Vì thế, mỗi tiếntrình của mỗi tầng đều có thể xác định chính xác được người dùng mà nó phục

vụ, từ đó có cơ chế phân quyền, auditing phù hợp Như vậy, với sự hỗ trợ khảnăng uỷ nhiệm trong Kerberos các dịch vụ bảo mật như auditing, phân quyềnđược thực hiện một cách dễ dàng

◦ Mã hóa sử dụng khoá mật và bên thứ ba được tin cậy

Thuật toán mã hoá điển hình được sử dụng trong Kerberos là DES (Data

Encryption Standard - chuẩn mã hoá dữ liệu) Tuy nhiên thiết kế kiểu modumcủa Kerberos cho phép sử dụng các phương pháp mã hoá khác DES là thuật

Trang 17

Trong hệ Kerberos, một máy chủ xác thực trung tâm sẽ chứng nhận danh

tính của tất cả các thực thể (ở đây thực thể có thể là một người dùng, một chươngtrình chạy trên máy khách hoạt động nhân danh một người dùng cụ thể, hoặc mộtdịch vụ do một máy chủ ứng dụng cung cấp) Chức năng của Kerberos hoàntoàn dựa trên tính đáng tin cậy của máy chủ xác thực, máy chủ này phải biết mậtkhẩu hay khóa của mọi thực thể Vì vậy một điều rất cốt yếu là bản thân máy chủphải được bảo vệ tuyệt đối an toàn

ĐÁNH GIÁ HỆ THỐNG KERBEROS

1.3 Ưu điểm

Mỗi khi đăng nhập vào hệ thống (login vào KDC), người dùng sẽ được cấp

một vé TGT để xin các service ticket cho các lần truy nhập sau vào các máy chủdịch vụ trong hệ thống Tức là với vé TGT, người dùng không cần phải nhậpđịnh danh, mật khẩu thêm một lần nào nữa, vì lý do này giao thức Kerberos còn

gọi là giao thức Đăng nhập một lần (Single sign-on).Ta sẽ đánh giá các điểm của

năng SSO theo cả ba quan điểm: của người dùng, của nhà quản trị, nhà phát triển

hệ thống Theo đó, Kerberos :

• Tăng sự tiện dụng cho người dùng: Người dùng không cần phải đăng

nhập nhiều lần khi sử dụng hệ thống, cũng như không cần phải nhớ quá nhiềumật khẩu cho các dịch vụ trong hệ thống Tất cả chỉ là một tài khoản cho hết thảycác dịch vụ trong hệ thống

• Hỗ trợ các nhà phát triển hệ thống: SSO cung cấp một frameworkchứng thực chung cho các nhà phát triển Vì thế họ không cần phải quan tâm đếnchứng thực khi xây dựng hệ thống nữa, coi như là các yêu cầu gửi đến hệ thống

đã được chứng thực Điều này sẽ làm cho các nhà phát triển hoàn toàn yên tâm

về an ninh của hệ thống được xây dựng, mà tránh được công việc nặng nhọc làxây dựng an toàn bảo mật cho hệ thống mới

• Làm đơn giản hoá công tác quản trị: Theo truyền thống, mỗi ứng dụng

có cơ sở dữ liệu người dùng riêng phục vụ cho cơ chế chứng thực độc lập của nó,nên khi các hệ thống tham gia vào mạng, số lượng người dùng sẽ tăng lên rấtnhanh làm quá tải công tác quản trị Với SSO, mọi hệ thống sử dụng cùng cơ sở

Trang 18

dữ liệu người dùng tập trung vì thế công tác quản trị đã được tập trung hoá, sốlượng người dùng giảm đi rất nhiều.

• Tăng cường bảo mật: Hệ thống SSO có cơ chế chứng thực an toàncũng như bảo mật truyền thông trên mạng Giảm thiểu số lần nhập mật khẩu cũng

có nghĩa là tăng độ an toàn cho hệ thống vì với số lượng mật khẩu nhiều ngườidùng thường ghi mật khẩu ra xung quanh, dễ để lộ

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 Cụ thể nó có thể dụng để xác thực qua internet trên mô hìnhphân tán(chỉ có kerberos V) và tập trung

Hầu hết các dịch vụ mạng thường sử dụng mật khẩu dựa trên chương trình

xác thực Chương trình này đòi hỏi một người sử dụng để xác thực đến một máychủ mạng cho bởi cung cấp tên đăng nhập và mật khẩu của họ Thật không may,việc truyền tải thông tin xác thực cho nhiều dịch vụ là không được mật mã Đốivới Đề án như vậy để được an toàn, hệ thống mạng có thể được truy cập vào đểngười bên ngoài, và tất cả các máy tính và người sử dụng trên mạng phải đượctin cậy và đáng tin cậy

Thậm chí nếu đây là trường hợp, một khi mạng được kết nối với Internet,

nó không còn có thể giả định rằng các mạng được an toànBất cứ kẻ tấn côngnhững người thu truy cập mạng có thể sử dụng một phân tích gói đơn giản, cũngđược biết đến như là một sniffer gói, để đánh chặn tên người dùng và mật khẩuđược gửi theo cách này, ảnh hưởng đến tài khoản người dùng và toàn vẹn của cơ

sở hạ tầng an ninh toàn bộ

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ếpvào các ứng dụng mạng hoạt động trên các hệ điều hành khác nhau

Trang 19

Nhược điểm

Tuy nhiên, bất kỳ hệ thống bảo mật nào cũng không thể chống lại tất cả các

kiểu tấn công của hacker, Kerberos cũng có những nhược điểm nhất định như:

• Khó tích hợp với các hệ thống cũ: thường thì các hệ thống sẵn có trongmạng đã có cơ chế chứng thực riêng, cũng như cơ sở dữ liệu thông tin ngườidùng riêng Vì thế, việc tích hợp hệ thống cũ vào hệ SSO không tránh khỏi phảisửa lại mã chương trình hệ thống cũng như di chuyển, thay đổi cơ sở dữ liệungười dùng

• Tấn công ở desktop Cũng do tính năng SSO, có khả năng kẻ địchgià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ờikhỏi máy sau khi đăng nhập mà quên không khoá máy lại Hệ thống SSO chỉ bảomật trên đường truyền mà không bảo mật cho dữ liệu trước khi được truyền nênmật khẩu của người dùng rất có khả năng bị các chương trình như trojan đánhcắp, giành quyền truy nhập hệ thống

• 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 Mục tiêu chính của nó là để ngăn chặn từ mật khẩu không mã hóa đượcgửi qua mạng Tuy nhiên, nếu hacker có quyền truy cập vào máy chủ lưu trữmột trong những vấn đề mà vé được sử dụng để xác thực - được gọi là trung tâmphân phối khoá (KDC) - các hệ thống xác thực Kerberos có thể bi sụp

• 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

Ngày đăng: 21/08/2014, 09:53

HÌNH ẢNH LIÊN QUAN

Hình 3.1: Mô hình RPC java rmi - Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)
Hình 3.1 Mô hình RPC java rmi (Trang 32)
Hình 3.2: đối tượng từ xa RPC trên server RMI - Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)
Hình 3.2 đối tượng từ xa RPC trên server RMI (Trang 35)
Hình 3.5: Sơ đồ giai thuât o pha thứ 2 - Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)
Hình 3.5 Sơ đồ giai thuât o pha thứ 2 (Trang 42)
Bảng 3.2: Các lớp của hệ thống - Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)
Bảng 3.2 Các lớp của hệ thống (Trang 43)
Hình 3.8 : màn hình đăng nhập - Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)
Hình 3.8 màn hình đăng nhập (Trang 44)
Hình 3.9: Màn hình sau khi kêt nối vào TGS - Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)
Hình 3.9 Màn hình sau khi kêt nối vào TGS (Trang 45)
Hình 3.11: AS phản hồi gói tin cho Client - Xây dựng kerberos bảo mật chứng thực (ĐỒ ÁN MÔN BẢO MẬT THÔNG TIN)
Hình 3.11 AS phản hồi gói tin cho Client (Trang 46)

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

TÀI LIỆU LIÊN QUAN

w