Xác thực và logic xác thực

Một phần của tài liệu Nghiên cứu phát triển các giải pháp kiểm soát truy nhập đảm bảo an toàn an ninh cho mạng máy tính191 (Trang 32)

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, nhng 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 lu 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 lu 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á nhng 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, nhng 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

Một phần của tài liệu Nghiên cứu phát triển các giải pháp kiểm soát truy nhập đảm bảo an toàn an ninh cho mạng máy tính191 (Trang 32)

Tải bản đầy đủ (PDF)

(149 trang)