1.3.1. Các ph ơng pháp xác thực
Xác thực ngời dùng khi đăng nhập máy tính có thể dựa trên những điều sau: ngời dùng biết một cái gì đó nh là một mật khẩu (password); ngời dùng sở hữu một cái gì đó, nh là một thẻ bài (token) mật mã : thẻ tín dụng Credit Card, thẻ
thông minh Smart Card; ngời dùng thể hiện một cái gì đó dới dạng dấu hiệu sinh trắc học ví dụ nh dấu vân tay, giọng nói, hình ảnh mắt, : [34].
Xác thực dựa trên mật khẩu là kỹ thuật xác thực thông dụng, phổ biến nhất, nhng nó còn nhiều vấn đề nổi cộm cần phải khắc phục. Chẳng hạn, mật khẩu bị lộ khi thao tác bàn phím bị theo dõi hoặc bị tìm ra bằng các chơng trình dò tìm mật khẩu. Việc quản lý mật khẩu đòi hỏi ngời dùng phải thờng xuyên thay đổi mật khẩu của họ, phải chọn các mật khẩu tốt, đủ độ phức tạp và bảo vệ chúng cẩn thận. Việc quản lý mật khẩu căng thẳng quá mức tạo ra sự trở ngại cho ngời dùng và ngời quản trị. Một lỗ hổng an toàn trong xác thực dựa trên mật khẩu đó là một ngời dùng có thể chia sẻ mật khẩu với ngời dùng khác một cách tuỳ tiện. Tuy nhiên, xác thực dựa trên mật khẩu vẫn là một phơng pháp xác thực a dùng do tính hiệu quả và chi phí thấp của nó.
Kỹ thuật xác thực thứ hai là xác thực thẻ bài. Mỗi thẻ bài có một khoá mật
mã bí mật duy nhất đợc lu giữ bên trong thẻ bài. Khoá mật mã này dùng để chứng minh định danh của thẻ bài thông qua việc bắt tay đáp ứng thách thức. Bên tham gia khi thiết lập xác thực sẽ phát ra một thách thức đòi hỏi một đáp ứng đợc tính toán khi dùng khoá bí mật của thẻ bài. Đôi khi thách thức đòi hỏi đáp ứng tức thì trong thời gian thực.
Dựa trên kỹ thuật mật mã khoá, các phơng pháp xác thực đợc chia thành hai loại [14]:
• Loại 1: xác thực dựa trên mật mã khoá bất đối xứng, tức khoá công khai. • Loại 2: xác thực dựa trên mật mã khoá đối xứng, tức khoá bí mật.
Tiêu biểu cho loại 1 là xác thực dựa trên giấy chứng nhận (certificate). Tiêu biểu cho loại 2 là xác thực Kerberos [2], [14]. Kerberos là một giao thức xác thực, phát triển từ giao thức Needham-Schroeder dùng khoá bí mật. Kerberos đợc nghiên cứu xây dựng ở Học viện Kỹ thuật Massachusetts (Massachusetts Institute of Technology – MIT) để bảo vệ các dịch vụ mạng cung cấp bởi dự án Athena (1988) nhằm cung cấp một miền các tiện ích xác nhận và an toàn sử dụng trong mạng máy tính Campus Athena và các hệ thống mở khác. Giao thức Kerberos đã
trải qua một số lần sửa đổi và nâng cấp từ kinh nghiệm và phản hồi của các tổ chức ngời dùng. Phiên bản mới gần đây của giao thức này là version 5.
So sánh hai phơng pháp xác thực nêu trên cho thấy [1] [6], [20], [, 46], [50]: • Để mã hoá và giải mã cùng một khối lợng thông tin, mật mã khoá công khai sử dụng giải thuật có độ phức tạp tính toán bậc lớn hơn rất nhiều so với mật mã khoá bí mật, do đó chi phí cao và tốc độ khá chậm. Ví dụ: trong khi
thời gian mã hoá của phơng pháp mã hoá bằng khoá bí mật DES (Data Encryption Standard) chỉ đòi hỏi vài micro giây thì phơng pháp mã hoá bằng khoá công khai RSA lại đòi hỏi tới vài mili-giây, do đó hạn chế thông
lợng ở mức 50 Kb/s (Phơng pháp này sử dụng thuật toán mật mã dùng
khoá công khai, dựa trên tính khó tìm ớc số của các số là tích của 2 số nguyên tố cực lớn, thậm chí lớn hơn 10100, do Rivest, Shamir và Adelman đề xuất năm 1978). Điều này ảnh hởng tới lu thông trên mạng, nhất là trong tình hình bùng nổ thông tin nh hiện nay đòi hỏi tốc độ giao dịch rất lớn. • Tuy nhiên, mật mã khoá công khai có u thế là khả năng mở rộng qui mô
trong việc phân phối khoá so với mật mã khoá bí mật, rất thích hợp trong môi trờng liên mạng, nhất là mạng toàn cầu Internet.
• Mã hoá dùng khoá công khai có thể tiện cho việc cài đặt hơn bởi vì phơng pháp này không đòi hỏi một kênh truyền bí mật để phân phối khoá nhng nó , lại đòi hỏi sự giao tiếp có xác nhận. Khi có một máy chủ phân phối khoá, phơng pháp mã hoá dùng khoá công khai có thể đợc dùng để thiết lập mối liên hệ ban đầu giữa mỗi đối tợng mới với máy chủ để truyền một khoá mật mà sẽ đợc dùng cho tất cả các phiên giao dịch sau đó.
• Việc xác thực dựa trên mật mã khoá công khai cần một số phơng tiện để chứng nhận khoá trong khi mật mã khoá bí mật thì không cần. Để thực hiện xác thực dựa trên mật mã khoá công khai, mỗi dịch vụ thờng cần phải duy trì một số lợng lớn giấy chứng nhận.
• Khi so sánh với các phơng pháp mật mã dựa trên khoá công khai hàng đầu nh RSA thì các phơng pháp mật mã khoá bí mậtmạnh hơn nhiều.
Với những lý do trên, trong luận án sử dụng một cơ sở hạ tầng xác thực dựa trên mật mã khoá bí mật.
1.3.2. Logic xác thực BAN
Michael Burrows, Martin Abadi và Roger Needham mô tả logic xác thực năm 1989, đợc gọi tắt là logic BAN [7], [14]. Logic BAN đã đợc áp dụng để phân tích nhiều giao thức nh giao thức xác thực Needham-Schroeder và giao thức xác thực Kerberos.
1.3.2.1. Các khái niệm và k pháp của logic BAN ý
Trong một hệ thống mạng, ta xét: P, Q là các đối tợng; X là một mệnh đề hoặc một mục dữ liệu, đơn giản nh là một mã hiệu , n hoặc kết hợp cả hai đợc chứa trong một thông báo phát đi từ một đối tợng K là một khoá bí mật dùng để mã ; hoá các thông báo. Ta có các khái niệm và ký pháp của logic BAN nh sau [7], [24]:
(i) P |≡≡≡≡≡ X : Đối tợng P tin cậy X là đúng. X có thể đúng, có thể sai, nhng P hành động nh thể X là đúng.
(ii) P X : Đối tợng P nhận đợc một thông báo chứa X. P có thể thực hiện việc giải mã để rút X từ thông báo. P có khả năng lặp lại X trong các thông báo gửi cho các đối tợng khác.
(iii) P |∼. X : Đối tợng P đợc coi là đã gửi một thông báo chứa X ở một thời điểm nào đó trong quá khứ. Điều này ngụ ý P tin cậy X khi nó gửi thông báo.
(iv) P |⇒ X : P có quyền hạn đối với X. Đối tợng P đợc uỷ thác nh một đối tợng có thẩm quyền về X.
(v) #(X) : X là mới. Ví dụ đối tợng P gửi cho đối tợng Q một thông báo chứa mã hiệu n. Sau đó Q gửi lại cho P một thông báo chứa X và mã hiệu n này thì X đợc coi là mới.
(vi) P K Q : P và Q đợc giao quyền sử dụng khoá bí mật K. K là một khoá bí mật giữa P và Q và có thể giữa các đối tợng khác đợc P và Q uỷ nhiệm.
(vii) Nếu K là một khoá thì {X}Kđợc hiểu là X đợc mã hoá với khoá K. Nếu X và Y là các mệnh đề thì ta viết : X,Y nghĩa là “X và Y”.
P | ≡≡≡≡≡ #(X), P | ≡≡≡≡≡ Q |∼.X P | ≡≡≡≡≡ Q | ≡≡≡≡≡ X P |≡≡≡≡≡ Q |⇒ X , P |≡≡≡≡≡ Q|≡≡≡≡≡ X P |≡≡≡≡≡X P |≡≡≡≡≡ P K Q , P {X}K P |≡≡≡≡≡ Q |∼ X
1.3.2.2. Các luật suy diễn của logic BAN
Biểu thị sự kết hợp của các mệnh đề X và Y kéo theo mệnh đề Z là : Các luật suy diễn chính của logic BAN nh sau [7]:
(i) Luật ý nghĩa thông báo:
Nếu P tin rằng nó chia sẻ khoá bí mật K với Q và nếu P nhận đợc một thông báo chứa X đợc mã hoá bằng khoá K thì P tin rằng Q đã gửi X (tức là Q đã tin tởng X và đã gửi một thông báo chứa X).
(ii ) Luật kiểm tra mã hiệu:
Nếu P tin rằng X là mới và nếu P tin rằng Q đã gửi X thì P tin rằng Q đang tin cậy X. Chú ý là X phải không bị mã hoá. Nếu X bị mã hoá thì Q đơn thuần chỉ là lặp lại một mệnh đề đã mã hoá và Q không cần thiết tin cậy vào X.
(iii )Luật quyền hạn:
Nếu P tin rằng Q có quyền hạn đối với X trong bất cứ trờng hợp nào và nếu P tin rằng Q đang tin cậy X thì P phải tin X.
(iv)Ngoài ra còn một số luật suy diễn khác của logic BAN nh: P ( X,Y) P X P|≡≡≡≡≡#(X) P|≡≡≡≡≡#(X,Y) P |≡≡≡≡≡(X,Y) P |≡≡≡≡≡ X
Luật suy diễn thứ nhất nói rằng P có thể quan sát từng thành phần của thông báo nếu nó quan sát tất cả các thành phần của thông báo đó. Luật suy diễn thứ hai nói rằng nếu một thành phần của một thông báo là mới thì các thành phần khác của thông báo đó cũng đợc coi là mới. Luật suy diễn thứ ba nói rằng nếu P tin vào một thông báo thì P tin vào từng thành phần của thông báo này.
1.3.3. Hệ thống xác thực Kerberos
♦ Cấu trúc và chức năng các thành phần: Kerberos là một hệ thống xác thực dựa trên mật mã khoá đối xứng [2]. Việc xác thực là thành công khi một đối tác chứng tỏ việc biết một bí mật chia sẻ gọi là vé (ticket) với một đối tác khác. Kerberos dựa trên hai dịch vụ dịch vụ xác thực A: (Authentication
X ,Y
service) và dịch vụ cấp phát vé T (Ticket granting service). Hai dịch vụ này hợp thành trung tâm phân phối khoá KDC (Key Distribution Center . Dịch ) vụ xác thực A chịu trách nhiệm sản sinh các khoá đối xứng dựa trên mật khẩu dùng cho các định danh hệ thống của Kerberos, đồng thời sản sinh các khoá phiên đối xứng dùng cho các phiên giao tiếp với dịch vụ cấp phát vé T. Dịch vụ cấp vé T chịu trách nhiệm sản sinh các khoá đối xứng cho các phiên giao tiếp với máy chủ dịch vụ và phát hành các vé dịch vụ. S
♦ Vé Kerberos và bộ xác thực: Trong giao thức Kerberos, hai thành phần vé và bộ xác thực là hai kiểu giấy uỷ nhiệm (credentials) phối hợp với nhau để thực hiện chức năng xác thực [2]. Vé đợc dùng nhiều lần. Trong vé chứa thông tin định danh, địa chỉ của máy khách và các thông tin để chứng tỏ vé hợp lệ. Một vé Kerberos là một thông báo đợc mã hoá gồm tên máy khách C (Client), tên máy chủ S erver (S ), địa chỉ máy khách addr, thời gian phát hành vé t1 , thời gian hết hiệu lực của vé t2 , thời gian sống của vé tf , thời gian làm mới vé tn và khoá phiên giao tiếp giữa máy khách và máy chủ KC,S . Nó đợc thể hiện nh sau: {ticket(C, S)}KS , trong đó KS là khoá riêng của S (tức khoá bí mật của S) ticket(C, S), = (C, S, addr, t1, t2, tf, tn, KC,S). Bộ xác thực do máy khách sản sinh. Căn cứ vào thông tin của bộ xác thực, máy chủ sẽ biết định danh, địa chỉ máy khách. Bộ xác thực đợc gán tem thời gian để sử dụng một lần, nên nó đợc dùng để ngăn chặn việc tái sử dụng vé. Nó là một thông báo gồm tên máy khách C, địa chỉ máy khách addr, thời gian phát hành vé t, cụ thể : auth(C) = (C, addr, t). Bộ xác thực đợc mã hoá bằng một khoá phiên KC,S ; khoá phiên này dùng để giao tiếp giữa máy khách với máy chủ. Cụ thể là : {auth(C)}KC,S .
♦ Giao thức xác thực Kerberos [2] [14], [, 27]:
Bớc 1 Lấy khoá phiên và vé giao tiếp với T từ dịch vụ xác thực A: (1 . Yêu cầu vé giao tiếp với T: ) C → A : (C, T, n)
Máy khách C yêu cầu dịch vụ xác thực A cấp vé giao tiếp giữa C với dịch vụ cấp phát vé T, n là một mã hiệu.
A → C : ({KC,T , n}KC ,{ticket(C, T)}KT)
A trả về cho C một thông báo chứa khoá phiên KC,T để C giao tiếp với T và một vé giao tiếp với T. Thông báo này đợc mã hoá bằng khoá bí mật của C. Vé giao tiếp với T đợc mã hoá bằng khoá bí mật của T. Việc bao hàm mã hiệu n
(none) chứng tỏ cho C biết rằng thông báo đến từ đối tác nhận thông báo 1. Đối tác này phải biết KC .
Bớc 2 Lấy khoá phiên và vé giao tiếp với S từ dịch vụ cấp phát vé T: (3). Yêu cầu vé giao tiếp với S:
C → T : ({auth(C)}KC,T , {ticket(C, T)}KT , S, n)
C gửi cho T một bộ xác thực của C, một vé giao tiếp với T và yêu cầu T cung cấp vé giao tiếp với máy chủ dịch vụ S. ộ xác thực B này đợc mã hoá bằng khoá phiên KC,T . Còn vé giao tiếp với T thì đợc mã hoá bằng khoá bí mật của T.
(4). Đáp ứng vé giao tiếp với S:
T → C : ({KC,S , n}KC,T , {ticket(C, S)}KS)
T giải mã vé {ticket(C,T)}KT và bộ xác thực {auth(C)}KC,T để so sánh nội dung của chúng.Nếu hợp lệ thì T sinh ra một khoá phiên mới ngẫu nhiên KC,S và gửi khoá này đã đợc mã hoá bằng khoá phiên KC,T cho C với một vé giao tiếp với máy chủ dịch vụ S (đã đợc mã hoá bằng khoá bí mật của S).
Hình 1.3 – Xác thực ba b ớc trong Kerberos
Bớc 3 Truy nhập dịch vụ S khi dùng vé giao tiếp với S: (5). Yêu cầu dịch vụ của S:
C → S : ({auth(C)}KC,S , {ticket(C, S)}KS , n, M1) Máy khách C Máy chủ xác thực A Máy chủ cấp vé T Máy chủ dịch vụ S Trung tâm phân phối khoá 1 2 3 4 5 6
C gửi vé giao tiếp {ticket(C, S)}KSvới một bộ xác thực của C mới sinh đợc mã hoá bằng khoá phiên KC,S , một yêu cầu dịch vụM1 và mã hiệu n. Yêu cầu dịch vụM1 này sẽ đợc mã hoá bằng khoá KC,S nếu đòi hỏi sự bí mật của dữ liệu.
(6). Xác nhận dịch vụ: S → C : ({n}KC,S , M2)
Sau khi giải mã bộ xác thực {auth(C)}KC,S của C và vé giao tiếp {ticket(C, S)}KS , S so sánh định danh, địa chỉ của C trong bộ xác thực auth(C) với
định danh, địa chỉ của C trong vé ticket(C, S). Nếu kết quả đúng và vé còn hiệu lực về thời gian sống thì S gửi cho C mã hiệu n đã đợc mã hoá bằng khoá KC,S để C tin chắc rằng nó đã đợc máy chủ dịch vụ S xác thực. Trong thông báo S gửi cho C, có chứa đáp ứng dịch vụ M2 đối với yêu cầu M1 ở thông báo 5. Để giảm bớt số lợng thông báo, {n}KC,Sđợc bao hàm trong thông báo chứa lời đáp M2 của dịch vụ S tới đối tác yêu cầu dịch vụ. Mã hiệu n (none) là một số tuần tự do thành phần máy khách tạo ra dùng để kiểm tra tính hợp lệ của lời đáp. M1 là yêu cầu của C gửi tới S. M2 là đáp ứng của S cho C.
Hình 1.4 – Minh hoạ giao thức Kerberos theo thời gian
1 2 5 6 3 Máy khách C Máy chủ xác thực A Máy chủ cấp phát vé T Máy chủ dịch vụ S
1.4. Kiểm soát truy nhập
1.4.1. Mục đích của kiểm soát truy nhập
Mục đích của kiểm soát truy nhập là hạn chế các hoạt động hoặc thao tác mà một ngời dùng hợp pháp của hệ thống máy tính có thể thực hiện. Kiểm soát truy nhập hạn chế một ngời dùng có thể trực tiếp làm điều gì cũng nh các chơng trình thực hiện nhân danh ngời dùng đợc phép làm gì. Theo cách này, kiểm soát truy nhập tìm cách ngăn chặn các hoạt động mà có thể dẫn tới một lỗ hổng an toàn. Dới đây đề cập đến các chính sách kiểm soát truy nhập thờng đợc áp dụng trong các hệ thống mạng máy tính hiện nay và việc quản trị kiểm soát truy nhập [32].
1.4.2. Các chính sách kiểm soát truy nhập
Hệ thống kiểm soát truy nhập dựa trên ba chính sách chủ yếu xuất hiện trong các hệ thống máy tính [10] [32]: k, iểm soát truy nhập tuỳ ý DAC; kiểm soát truy nhập bắt buộc MAC; kiểm soát truy nhập dựa trên vai RBAC. Các chính sách kiểm soát truy nhập không cần phải loại trừ nhau. Các chính sách này có thể đợc kết