Tội phạm mạng là một thực tế đáng tiếc của cuộc sống ngày nay, bất kể chúng ta đang nói về người tiêu dùng tư nhân hay thế giới kinh doanh nói chung. Không có công ty hoặc tổ chức nào là an toàn và vấn đề sẽ không sớm trở nên tốt hơn. Các chuyên gia dự đoán những thiệt hại do tội phạm mạng gây ra sẽ khiến cả thế giới phải trả giá 25 nghìn tỷ đô la vào năm 2025. Như thể điều đó chưa đủ tệ, Forbes dự đoán rằng tội phạm mạng sẽ gây ra nguy cơ ngày càng tăng đối với các thiết bị di động, thứ mà rất nhiều người sử dụng hiện nay.
Những dự đoán này, và nhiều dự đoán khác, chỉ ra một thực tế phũ phàng rằng tội phạm mạng vẫn ở đây và vấn đề sẽ chỉ trở nên tồi tệ hơn. Do đó, thế giới kỹ thuật số đang mong muốn tìm kiếm và áp dụng các chiến lược mới để tăng cường an ninh mạng.
Hôm nay, chúng ta đang xem xét giao thức xác thực Kerberos. Hãy cùng kéo bức màn và làm quen với giao thức mạng hiệu quả này.
Chúng ta hãy bắt đầu với những điều cơ bản bằng cách hiểu Kerberos là gì và nó hoạt động như thế nào.
Kerberos là gì? Và làm như thế nào?
Mục lục
Kerberos là một giao thức bảo mật mạng máy tính xác thực các yêu cầu dịch vụ giữa hai hoặc nhiều máy chủ đáng tin cậy trên một mạng không đáng tin cậy, chẳng hạn như internet. Nó sử dụng mật mã khóa bí mật và một bên thứ ba đáng tin cậy để xác thực các ứng dụng máy khách-máy chủ và xác minh danh tính của người dùng.
Ban đầu được phát triển bởi Viện Công nghệ Massachusetts (MIT) cho Dự án Athena vào cuối những năm 80, Kerberos hiện là công nghệ ủy quyền mặc định được sử dụng bởi Microsoft Windows. Việc triển khai Kerberos cũng tồn tại cho các hệ điều hành khác như Apple OS, FreeBSD, UNIX và Linux.
Microsoft đã giới thiệu phiên bản Kerberos của mình trong Windows 2000 và nó trở thành giao thức truy cập cho các trang web và triển khai đăng nhập một lần trên các nền tảng khác nhau. Các Tập đoàn Kerberos duy trì Kerberos như một dự án mã nguồn mở.
Giao thức lấy tên của nó từ con chó ba đầu huyền thoại Kerberos (còn được gọi là Cerberus) trong thần thoại Hy Lạp, người bảo vệ loài chó dẫn đến lối vào thế giới ngầm. Kerberos có một cái đuôi rắn và một tính khí đặc biệt xấu, mặc dù có một ngoại lệ đáng chú ý, nhưng lại là một người bảo vệ rất hữu ích.
Nhưng trong trường hợp của giao thức, ba phần đầu của Kerberos đại diện cho máy khách, máy chủ và Trung tâm phân phối chính (KDC). Sau này hoạt động như một dịch vụ xác thực của bên thứ ba đáng tin cậy.
Người dùng, máy và dịch vụ sử dụng Kerberos chỉ phụ thuộc vào KDC, hoạt động như một quy trình duy nhất cung cấp hai chức năng: xác thực và cấp vé. KDC “vé” cung cấp xác thực cho tất cả các bên, cho phép các nút xác minh danh tính của họ một cách an toàn. Quá trình xác thực Kerberos sử dụng mật mã bí mật được chia sẻ thông thường để ngăn các gói truyền qua mạng bị đọc hoặc thay đổi, cũng như bảo vệ các tin nhắn khỏi bị nghe trộm và các cuộc tấn công phát lại (hoặc phát lại).
Bây giờ chúng ta đã tìm hiểu Kerberos là gì, tiếp theo chúng ta hãy hiểu Kerberos được sử dụng để làm gì.
Kerberos được sử dụng để làm gì?
Mặc dù Kerberos được tìm thấy ở khắp mọi nơi trong thế giới kỹ thuật số, nhưng nó được sử dụng nhiều trên các hệ thống an toàn phụ thuộc vào các tính năng xác thực và kiểm tra đáng tin cậy. Kerberos được sử dụng trong xác thực Posix và Active Directory, NFS và Samba. Nó cũng là một hệ thống xác thực thay thế cho SSH, POP và SMTP.
Lợi ích của Xác thực Kerberos
Kerberos mang lại nhiều lợi thế cho bất kỳ thiết lập an ninh mạng nào. Ưu điểm của nó bao gồm:
- Kiểm soát truy cập hiệu quả: Kerberos cung cấp cho người dùng một điểm duy nhất để theo dõi các thông tin đăng nhập và thực thi chính sách bảo mật.
- Thời gian tồn tại giới hạn cho các vé chính: Mỗi vé Kerberos có một dấu thời gian, dữ liệu lâu dài và thời hạn xác thực do quản trị viên kiểm soát.
- Xác thực lẫn nhau: Hệ thống dịch vụ và người dùng có thể xác thực lẫn nhau.
- Xác thực tái sử dụng: Xác thực người dùng Kerberos có thể tái sử dụng và lâu bền, yêu cầu mỗi người dùng phải được hệ thống xác minh một lần. Miễn là vé có hiệu lực, người dùng sẽ không phải tiếp tục nhập thông tin cá nhân của họ cho mục đích xác thực.
- Các biện pháp bảo mật đa dạng và mạnh mẽ: Các giao thức xác thực bảo mật của Kerberos sử dụng mật mã, nhiều khóa bí mật và ủy quyền của bên thứ ba, tạo ra một lớp bảo vệ chắc chắn và an toàn. Mật khẩu không được gửi qua mạng và tất cả các khóa bí mật đều được mã hóa.
Là một phần của quy trình học tập tìm hiểu Kerberos là gì, chúng ta hãy xem quy trình giao thức Kerberos.
Kerberos là gì: Tổng quan về luồng giao thức
Dưới đây là một cái nhìn chi tiết hơn về xác thực Kerberos. Chúng ta cũng sẽ tìm hiểu cách thức hoạt động của nó bằng cách chia nhỏ nó thành các thành phần cốt lõi của nó.
Dưới đây là các thực thể chính liên quan đến quy trình làm việc Kerberos điển hình:
- Máy khách: Máy khách hành động thay mặt cho người dùng và bắt đầu giao tiếp cho một yêu cầu dịch vụ
- Máy chủ: Máy chủ lưu trữ dịch vụ mà người dùng muốn truy cập
- Máy chủ xác thực (AS): AS thực hiện xác thực máy khách mong muốn. Nếu quá trình xác thực diễn ra thành công, AS sẽ cấp cho khách hàng một vé gọi là TGT (Ticket Granting Ticket). Vé này đảm bảo với các máy chủ khác rằng máy khách đã được xác thực
- Trung tâm phân phối khóa (KDC): Trong môi trường Kerberos, máy chủ xác thực được phân tách một cách hợp lý thành ba phần: Cơ sở dữ liệu (db), Máy chủ xác thực (AS) và Máy chủ cấp vé (TGS). Ba phần này lần lượt tồn tại trong một máy chủ duy nhất được gọi là Trung tâm phân phối chính
- Máy chủ cấp vé (TGS): TGS là một máy chủ ứng dụng cung cấp vé dịch vụ như một dịch vụ
Bây giờ hãy chia nhỏ quy trình giao thức.
Đầu tiên, có ba khóa bí mật quan trọng liên quan đến luồng Kerberos. Có các khóa bí mật duy nhất cho máy khách / người dùng, TGS và máy chủ được chia sẻ với AS.
- Máy khách / người dùng: Băm bắt nguồn từ mật khẩu của người dùng
- Khóa bí mật TGS: Băm mật khẩu được sử dụng để xác định TGS
- Khóa bí mật của máy chủ: Băm mật khẩu được sử dụng để xác định máy chủ cung cấp dịch vụ.
Luồng giao thức bao gồm các bước sau:
Bước 1: Yêu cầu xác thực máy khách ban đầu. Người dùng yêu cầu một Ticket Granting Ticket (TGT) từ máy chủ xác thực (AS). Yêu cầu này bao gồm ID khách hàng.
Bước 2: KDC xác minh thông tin đăng nhập của khách hàng. AS kiểm tra cơ sở dữ liệu về máy khách và tính khả dụng của TGS. Nếu AS tìm thấy cả hai giá trị, nó sẽ tạo ra một khóa bí mật của máy khách / người dùng, sử dụng hàm băm mật khẩu của người dùng.
Sau đó AS sẽ tính khóa bí mật TGS và tạo khóa phiên (SK1) được mã hóa bởi khóa bí mật của máy khách / người dùng. Sau đó AS tạo một TGT chứa ID máy khách, địa chỉ mạng máy khách, dấu thời gian, thời gian tồn tại và SK1. Sau đó, khóa bí mật TGS sẽ mã hóa vé.
Bước 3: Máy khách giải mã tin nhắn. Máy khách sử dụng khóa bí mật của máy khách / người dùng để giải mã thông báo và trích xuất SK1 và TGT, tạo trình xác thực xác thực TGS của khách hàng.
Bước 4: Máy khách sử dụng TGT để yêu cầu quyền truy cập. Máy khách yêu cầu một vé từ máy chủ cung cấp dịch vụ bằng cách gửi TGT đã trích xuất và trình xác thực đã tạo tới TGS.
Bước 5: KDC tạo một thẻ cho máy chủ tệp. Sau đó, TGS sử dụng khóa bí mật TGS để giải mã TGT nhận được từ máy khách và trích xuất SK1. TGS giải mã trình xác thực và kiểm tra xem nó có khớp với ID máy khách và địa chỉ mạng máy khách hay không. TGS cũng sử dụng dấu thời gian được trích xuất để đảm bảo TGT chưa hết hạn.
Nếu quá trình tiến hành tất cả các kiểm tra thành công, thì KDC sẽ tạo khóa phiên dịch vụ (SK2) được chia sẻ giữa máy khách và máy chủ đích.
Cuối cùng, KDC tạo một phiếu dịch vụ bao gồm id máy khách, địa chỉ mạng máy khách, dấu thời gian và SK2. Vé này sau đó được mã hóa bằng khóa bí mật của máy chủ thu được từ db. Máy khách nhận được một tin nhắn chứa phiếu dịch vụ và SK2, tất cả đều được mã hóa bằng SK1.
Bước 6: Khách hàng sử dụng file ticket để xác thực. Máy khách giải mã thông điệp bằng SK1 và trích xuất SK2. Quá trình này tạo ra một trình xác thực mới chứa địa chỉ mạng máy khách, ID máy khách và dấu thời gian, được mã hóa bằng SK2 và gửi nó cũng như vé dịch vụ đến máy chủ đích.
Bước 7: Máy chủ đích nhận giải mã và xác thực. Máy chủ đích sử dụng khóa bí mật của máy chủ để giải mã phiếu dịch vụ và trích xuất SK2. Máy chủ sử dụng SK2 để giải mã trình xác thực, thực hiện kiểm tra để đảm bảo ID máy khách và địa chỉ mạng máy khách từ trình xác thực và phiếu dịch vụ khớp nhau. Máy chủ cũng kiểm tra phiếu dịch vụ để xem nó có hết hạn hay không.
Sau khi các kiểm tra được đáp ứng, máy chủ đích sẽ gửi cho máy khách một thông báo xác minh rằng máy khách và máy chủ đã xác thực lẫn nhau. Người dùng hiện có thể tham gia vào một phiên bảo mật.
Sau khi tìm hiểu về Kerberos là gì, chúng ta hãy cùng tìm hiểu chủ đề tiếp theo liệu Kerberos có sai lầm không.
Kerberos có thể bị tấn công không?
Không có biện pháp bảo mật nào là bất khả xâm phạm 100% và Kerberos cũng không ngoại lệ. Vì nó đã tồn tại quá lâu, qua nhiều năm, tin tặc đã có cơ hội tìm ra cách giải quyết vấn đề này, thường là bằng cách giả mạo vé, cố gắng lặp đi lặp lại để đoán mật khẩu (brute force / nhồi nhét thông tin đăng nhập) và sử dụng phần mềm độc hại để hạ cấp mã hóa.
Mặc dù vậy, Keberos vẫn là giao thức truy cập bảo mật tốt nhất hiện nay. Giao thức đủ linh hoạt để sử dụng các thuật toán mã hóa mạnh mẽ hơn nhằm giúp chống lại các mối đe dọa mới và nếu người dùng thực hành các chính sách lựa chọn mật khẩu tốt, bạn sẽ ổn!
Kerberos có lỗi thời không?
Tuổi thọ không có nghĩa là lỗi thời. Mặc dù một số trường hợp tội phạm mạng đã đột nhập được vào Kerberos (và chúng tôi đã khẳng định rằng không có hệ thống bảo mật nào là bất khả xâm phạm 100%), nó vẫn được sử dụng nhiều và có danh tiếng vững chắc.

