BÀI TẬP LỚN MÔN AN TOÀN THÔNG
TIN
Đề tài: KERBEROS
GV hướng dẫn:
Nhóm SV thực hiện: 1. Vũ Thị Thùy Linh
2. Nguyễn Thị Xuân
Nhóm: 18
Lớp: THC52
Khoa: CNTT
MỤC LỤC
I. NHỮNG KHÁI NIỆM LIÊN QUAN
1. An toàn thông tin
1.1 Khái niệm
An toàn nghĩa là thông tin được bảo vệ, các hệ thống và những dịch vụ có
khả năng chống lại những tai hoạ, lỗi và sự tác động không mong đợi, các
thay đổi tác động đến độ an toàn của hệ thống là nhỏ nhất. Hệ thống có một
trong các đặc điểm sau là không an toàn: Các thông tin dữ liệu trong hệ
thống bị người không được quyền truy nhập tìm cách lấy và sử dụng (thông
tin bị rò rỉ). Các thông tin trong hệ thống bị thay thế hoặc sửa đổi làm sai
lệch nội dung (thông tin bị xáo trộn)
Thông tin chỉ có giá trị cao khi đảm bảo tính chính xác và kịp thời, hệ thống
chỉ có thể cung cấp các thông tin có giá trị thực sự khi các chức năng của hệ
thống đảm bảo hoạt động đúng đắn. Mục tiêu của an toàn bảo mật trong
công nghệ thông tin là đưa ra một số tiêu chuẩn an toàn. Ứng dụng các tiêu
chuẩn an toàn này vào đâu để loại trừ hoặc giảm bớt các nguy hiểm. Do kỹ
thuật truyền nhận và xử lý thông tin ngày càng phát triển đáp ứng cácyêu
cầu ngày càng cao nên hệ thống chỉ có thể đạt tới độ an toàn nào đó. Quản lý
an toàn và sự rủi ro được gắn chặt với quản lý chất lượng. Khi đánh giá độ
an toàn thông tin cần phải dựa trên phân tích các rủi ro, tăng sự an toàn bằng
cách giảm tối thiểu rủi ro. Các đánh giá cần hài hoà với đặc tính, cấu trúc hệ
thống và quá trình kiểm tra chất lượng.
thông tin dữ liệu đó là: vi phạm chủ động và vi phạm thụ động. Vi phạm thụ
động chỉ nhằm mục đích cuối cùng là nắm bắt được thông tin (đánh cắp
thông tin). Việc làm đó có khi không biết được nội dung cụ thể nhưng có
thể dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức
chứa trong phần đầu các gói tin. Kẻ xâm nhập có thể kiểm tra được số
lượng, độ dài và tần số trao đổi.
Vì vậy vi pham thụ động không làm sai lệch hoặc hủy hoại nội dung thông
tin dữ liệu được trao đổi. Vi phạm thụ động thường khó phát hiện nhưng có
thể có những biện pháp ngăn chặn hiệu quả. Vi phạm chủ động là dạng vi
phạm có thể làm thay đổi nội dung, xóa bỏ, làm trễ, xắp xếp lại thứ tự hoặc
làm lặp lại gói tin tại thời điểm đó hoặc sau đó một thời gian. Vi phạm chủ
động có thể thêm vào một số thông tin ngoại lai để làm sai lệch nội dung
thông tin trao đổi. Vi phạm chủ động dễ phát hiện nhưng để ngăn chặn hiệu
quả thì khó khăn hơn nhiều.
Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào
là an toàn tuyệt đối. Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng
không thể đảm bảo là an toàn tuyệt đối.
2. Giao thức xác thực
2.1 Khái niệm
Xác thực-Authentication là một hành động nhằm thiết lập hoặc chứng thực
một cái gì đó (hoặc một người nào đó) đáng tin cậy, có nghĩa là, những lời
khai báo do người đó đưa ra hoặc về vật đó là sự thật. Xác thực một đối
tượng còn có nghĩa là công nhận nguồn gốc (provenance) của đối tượng
trong khi, xác thực một người thường bao gồm việc thẩm tra nhận dạng của
họ. Việc xác thực thường phụ thuộc vào một hoặc nhiều nhân tố xác
thực (authentication factors) để minh chứng cụ thể.
Trong an ninh máy tính xác thực là một quy trình nhằm cố gắng xác
minh nhận dạng số (digital identity) của phần truyền gửi thông tin (sender)
trong giao thông liên lạc chẳng hạn như một yêu cầu đăng nhập. Phần gửi
cần phải xác thực có thể là một người dùng sử dụng một máy tính, bản thân
thành (s’,a’), trong đó s’=s và hi vọng được Bob chấp nhận như một bản tin
xác thực .Bởi vậy anh ta tin sẽ lái được Bob đi tới trạng thái nguồn mới này
Ứng với mỗi phương pháp này là một xác xuất lừa bịp, là xác suất để
Oscar thành công trong việc lừa Bob nếu anh ta (Oscar) tuân thủ một chiến
lược tối ưu. Các xác suất này được kí hiệu là Pd
0
(trường hợp giảmạo) và
Pd1 (trường hợp thay thế). Để tình Pd
0
và Pd
1
ta cần phải xác định các phân
bố xác suất trên S vàK. Các xác suất này được kí hiệu tương ứng là P
s
và P
k
.
Giả sử rằng Oscar đã biết mã xác thực và hai phân bố xác suất này. Chỉ
có một thông tin mà Alice và Bob có nhưng mà Oscar không được biết là giá
trị của khoá.
2.1 Các phương pháp xác thực
2.1.1 Xác thực dựa trên user name và password
Sự kết hợp của một user name và password là cách xác thực cơ bản nhất.
Với kiểu xác thực này, chứng từ ủy nhiệm User được đối chiếu với chứng từ
được lưu trữ trên database hệ thống , nếu trùng khớp username và password,
thì user được xác thực và nếu không User bị cấm truy cập. Phương thức này
không bảo mật lắm vì chứng từ xác nhận User được gửi đi xác thực trong
tình trạng plain text, tức không được mã hóa và có thể bị tóm trên đường
truyền.
2.2.1 Challenge handshake authentication protocol (CHAP)
2.2.5 Biometrics
Biometrics (phương pháp nhận dạng sinh trắc học) mô hình xác thực
dựa trên đặc điểm sinh học của từng cá nhân. Quét dấu vân tay (fingerprint
scanner), quét võng mạc mắt (retinal scanner), nhận dạng giọng nói(voice-
recognition), nhận dạng khuôn mặt(facerecognition).
2.2.6 Multi-factor authentication
Multi-factor authentication, xác thực dựa trên nhiều nhân tố kết hợp, là
mô hình xác thực yêu cầu kiểm ít nhất 2 nhân tố xác thực .Có thể đó là sự
kết hợp của bất cứ nhân tố nào ví dụ như: bạn là ai, bạn có gì chứng minh,
và bạn biết gì?.
2.2.7 Mutual authentication
Mutual authentication, xác thực lẫn nhau là kỹ thuật bảo mật mà mỗi thành
phần tham gia giao tiếp với nhau kiểm tra lẫn nhau. Trước hết Server chứa
tài nguyên kiểm tra “giấy phép truy cập” của client và sau đó client lại kiểm
tra “giấy phép cấp tài nguyên” của Server.
II GIAO THỨC KERBEROS
1.Sơ lược 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 client-server 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.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
thuật tại địa chỉ http://www.ietf.org/html.charters/krb-wg-charter.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 GSS-API: "Cơ cấu GSS-API của
Kerberos Version 5: Version 2."
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)
+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.
2.Mục tiêu, yêu cầu của hệ thống Kerberos
- Uyển chuyển (scalability).
3. Hoạt động của hệ thống Kebores
3.1 Môi trường hoạt động của Kerbores (Kerbores 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á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.
3.2 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ân phố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 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.
Đố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 đó.
AB
, A}K
BS
, { A,T
A
}K
AB
B→A: { T
A
+ 1 }K
AB
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 { T
S
, L, K
AB
, B, {T
S
, L, K
AB
, A}K
BS
}K
AS
server
3.4.2 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ủ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 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.
• 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ủ 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ơ 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
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.
3.4.4 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
đầu và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 đặ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, người sử dụng 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 bản sao dành cho dịch vụ
này là bao bọc KDC trong vé (trong bất kỳ trường hợp nào ứng dụng máy
chủ của họ hiểu biết khó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 sao dà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ác thực của người sử dụng.
3.4.5 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ác thự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. 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. Để khách hàng có thể sử dụng ứng dụng
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 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 gian
Timestamp
Hình 1 hoạt động của giao thức kerberos
Trong kịch bản này, người dùng C đăng nhập vào máy trạm client và
yêu cầu truy nhập tới máy chủ V.
3.5.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ực cho 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
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áy Server/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ớ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 Server/Client ".
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ủ 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
Hình 4: Người dùng chứng thực với server dịch vụ