Tải bản đầy đủ (.doc) (22 trang)

Đồ án an toàn và bảo mật mạng hệ thống xác thực

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (312.92 KB, 22 trang )

AUTHENTICATION
I.Giới thiệu authentication
1.Authentication là gì?
2.Các nhân tố cho xác thực
II.Các giao thức nền tảng cho Xác thực:
2.1. Giao thức PAP Password Authentication Protocol (PAP)
2.2. Giao thức Xác thực CHAP (Challenge Handshake
Authentication Protocol)
2.3. Giao thức TCACS và RADIUS
2.4. Giao thức xác thực Kerberos
2.5 Giao thức Xác thực LDAP(Light Weight Access Protocol)
III.Một số mô hình xác thực:
1. Mô hình user/password
2. Hệ thống đăng nhập một lần Single sign-on (SSO)
3. Mô hình PKI (Public Key Infrastructure )
Nhóm MMT1.5
I.Giới thiệu Authentication:
1.1.Authentication là gì?
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ể.
1.2.Các nhân tố dung cho xác thực:
Trong an ninh máy tính (computer security) thường dùng nhận dạng số
(digital identity)
Trong các lĩnh vực khác thường dùng các nhân tố nhận dạng đặc điểm con
người(vân tay, chứng minh nhân dân,hình…),vật(tên gọi ,số hiệu…)
Đôi khi xác thưc chỉ dùng 1 nhân tố xác thực hoặc kết hợp nhiều nhân tố lại


với nhau
II.Các giao thức xác thực
2.1 .Giao thức PAP(Password Authentication Protocol (PAP)
Đồ án an toàn và bảo mật mạng Page 1
Giao thức này thường thấy trong các modem adsl,cac router dung để xác thực
khi vào mạng các nhà cung cấp mạng(isp) cũng dung giao thức này để xác thực
các kết nối từ clien tới sever.
Khi một kết nối PPP được yêu cầu bởi client và PAP(point-to-point protocol)
được chọn dùng, access server sẽ ra lệnh cho client sử dụng PAP. Client sau đó sẽ
phải gửi bộ username và password của mình, các thông tin này đều được truyền
dưới dạng clear text mà không được mã hóa gì cả và được đóng gói trong các gói
dữ liệu của PPP. Server sau đó sẽ quyết định chấp nhận hay từ chối việc thiết lập
kết nối.Đây là cơ chế PAP một chiều giữa một client và một server. Nếu hai router
nói chuyện với nhau thì Two-way PAP (PAP hai chiều) sẽ được sử dụng trong đó
mỗi router sẽ gửi username và password, như vậy mỗi router sẽ chứng thực lẫn
nhau.
2.2 Giao thức Xác thực CHAP (Challenge Handshake Authentication
Protocol)
CHAP được sử dụng phổ biến hơn PAP, do nó có khả năng mã hóa mật khẩu
cũng như dữ liệu.
Giả sử một user A(remote) quay số truy cập vào access server B
• Giả sử một user A quay số truy cập vào access server B.
• Access server sẽ gửi qua đường truyền một gói tin khởi tạo chứng thực
Type 1 gọi là gói tin Challenge. Gói tin Challenge này chứa một số được
sinh ngẫu nhiên, một số ID sequence number để xác định challenge và tên
chứng thực của challenager
Đồ án an toàn và bảo mật mạng Page 2
• Bên gọi sẽ lấy ra chuỗi authentication name, và tìm trong dữ liệu của mình
chuỗi mã mật CHAP ứng với user name nhận được.
• Caller sẽ nhập mã mật của CHAP, số ID sequence number và một giá trị số

được sinh ngẫu nhiên vào thuật toán băm Message Digest 5 (MD5).
• Giá trị kết quả sau khi tính toán hàm băm được gửi trả lại cho Challenger
(Access server) trong một gói CHAP Response (Type 2) chứa chuỗi băm,
tên chứng thực của caller và cuối cùng là ID (Sequence Number) được lấy
từ gói Challenge.
Đồ án an toàn và bảo mật mạng Page 3
• Khi nhận được gói Response Type 2, Challenger sẽ sử dụng ID để tìm gói
Challenge nguyên thủy.
• username của caller (A) được sử dụng để tìm kiếm mã mật CHAP từ một
local database, hay một RADIUS server hoặc một TACACS+ server.
• ID, giá trị Challande gốc được sinh ngẫn nhiên và giá trị CHAP ngẫu nhiên
ban đầu và mã mật của được đưa vào xử lỷ bởi hàm băm MD5.
• Chuỗi băm kết quả sau khi tính toán sau đó được so sánh với giá trị nhận
được trong gói Response.
• Nếu 2 chuỗi là giống nhau thì quá trình chứng thực CHAP đã thành công và
các gói Type 3 được gửi đến caller chứa ID. Điều này có nghĩa là kết nối đã
được chứng thực hợp lệ.
• Nếu chứng thực CHAP thất bại, một gói tin Type 4 sẽ được gửi đến caller
trong đó chứa original ID, xác nhận quá trình chứng thực là không thành
công.
RFC1994 />Đồ án an toàn và bảo mật mạng Page 4
2.3 Giao thức TCACS và RADIUS
Tổng quan về TACACS
TACACS là giao thức được chuẩn hóa sử dụng giao thức hướng kết nối
(connection-oriented) là TCP trên port 49.
TACACS có các ưu điểm sau:
•Với khả năng nhận gói reset (RST) trong TCP, một thiết bị có thể lập tức báo cho
đầu cuối khác biết rằng đã có hỏng hóc trong quá trình truyền.
•TCP là giao thức mở rộng vì có khả năng xây dựng cơ chế phục hồi lỗi. Nó có thể
tương thích để phát triển cũng như làm tắc nghẽn mạng với việc sử dụng sequence

number để truyền lại.
•Toàn bộ payload được mã hóa với TACACS+ bằng cách sử dụng một khóa bí
mật chung (shared secret key). TACACS+ đánh dấu một trường trong header để
xác định xem thử có mã hóa hay không.
•TACACS+ mã hóa toàn bộ gói bằng việc sử dụng khóa bí mật chung nhưng bỏ
qua header TACACS chuẩn. Cùng với header là một trường xác định body có
được mã hóa hay không. Thường thì trong toàn bộ thao tác, body của một gói
được mã hóa hoàn toàn để truyền thông an toàn.
•TACACS+ được chia làm ba phần: xác thực (authentication), cấp quyền
(authorization) và tính cước (accounting). Với cách tiếp cận theo module, ta có thể
sử dụng các dạng khác của xác thực và vẫn sử dụng TACACS+ để cấp quyền và
tính cước. Chẳng hạn như, việc sử dụng phương thức xác thực Kerberos cùng với
việc cấp quyền và tính cước bằng TACACS+ là rất phổ biến.
•TACACS+ hỗ trợ nhiều giao thức.
•Với TACACS+, ta có thể dùng hai phương pháp để điều khiển việc cấp quyền
thực thi các dòng lệnh của một user hay một nhóm nhiều user:
oPhương pháp thứ nhất là tạo một mức phân quyền (privilege) với một số câu lệnh
giới hạn và user đã xác thực bởi router và TACACS server rồi thì sẽ được cấp cho
mức đặc quyền xác định nói trên.
oPhương pháp thứ hai đó là tạo một danh sách các dòng lệnh xác định trên
TACACS+ server để cho phép một user hay một nhóm sử dụng.
•TACACS thường được dùng trong môi trường enterprise. Nó có nhiều ưu điểm
và làm việc tốt đáp ứng yêu cầu quản lý mạng hàng ngày.
Tổng quan về RADIUS
RADIUS là giao thức bảo mật mạng dựa theo mô hình client-server. Nó dùng giao
thức UDP. RADIUS server thường chạy trên máy tính. Client là các dạng thiết bị
có thể truyền thông tin đến RADIUS server được chỉ định trước và sau đó đóng
vai trò phúc đáp mà nó trả về. Giao tiếp giữa client và RADIUS server được xác
thực thông qua việc sử dụng khóa bí mật chung không được truyền qua mạng.
Một số ưu điểm của RADIUS là:

Đồ án an toàn và bảo mật mạng Page 5
•RADIUS có phần overhead ít hơn so với TACACS vì nó sử dụng UDP, trong
phần overhead không có địa chỉ đích, port đích.
•Với cách thức phân phối dạng source code, RADIUS là dạng giao thức hoàn toàn
mở rộng. Người dùng có thể thay đổi nó để làm việc với bất kì hệ thống bảo mật
hiện có.
•RADIUS yêu cầu chức năng tính cước (accounting) mở rộng.
RADIUS thường được dùng để tính cước dựa trên tài nguyên đã sử dụng. Ví dụ
như ISP sẽ tính cước cho người dùng về chi phí kết nối. Ta có thể cài đặt RADIUS
Accounting mà không cần sử dụng RADIUS để xác thực và cấp quyền. Với chức
năng accounting mở rộng, RADIUS cho phép dữ liệu được gửi từ các thiết bị xuất
phát cũng như là thiết bị đích, từ đó giúp ta theo dõi việc sử dụng tài nguyên (thời
gian, số lượng các gói tin, số lượng byte, ) trong suốt phiên làm việc.
Hoat động:
Giao thức Remote Authentication Dial In User Service (RADIUS) được định
nghĩa trong RFC 2865 được đưa ra với định nghĩa: Với khả năng cung cấp xác
thực tập trung, cấp phép và điều khiển truy cập (Authentication, Authorization, và
Access Control – AAA) cho các phiên làm việc với SLIP và PPP Dial-up – như
việc cung cấp xác thực của các nhà cung cấp dịch vụ Internet (ISP) đều dựa trên
giao thức này để xác thực người dùng khi họ truy cập Internet. Nó cần thiết trong
tất cả các Network Access Server (NAS) để làm việc với danh sách các username
và password cho việc cấp phép, RADIUS Access-Request sẽ chuyển các thông tin
tới một Authentication Server, thông thường nó là một AAA Server (AAA –
Authentication, Authoriztion, và Accounting). Trong kiến trúc cua hệ thống nó tạo
ra khả năng tập trung các dữ thông tin của người dùng, các điều kiện truy cập trên
một điểm duy nhất (single point), trong khi có khả năng cung cấp cho một hệ
thống lớn, cung cấp giải pháp NASs.
Khi một user kết nối, NAS sẽ gửi một message dạng RADIUS Access-Request tới
máy chủ AAA Server, chuyển các thông tin như username và password, thông qua
một port xác định, NAS identify, và một message Authenticator.

Sau khi nhận được các thông tin máy chủ AAA sử dụng các gói tin được cung cấp
như, NAS identify, và Authenticator thẩm định lại việc NAS đó có được phép gửi
các yêu cầu đó không. Nếu có khả năng, máy chủ AAA sẽ tìm kiểm tra thông tin
username và password mà người dùng yêu cầu truy cập trong cơ sở dữ lệu. Nếu
quá trình kiểm tra là đúng thì nó sẽ mang một thông tin trong Access-Request
quyết định quá trình truy cập của user đó là được chấp nhận.
Khi quá trình xác thực bắt đầu được sử dụng, máy chủ AAA có thể sẽ trả về một
RADIUS Access-Challenge mang một số ngẫu nhiên. NAS sẽ chuyển thông tin
Đồ án an toàn và bảo mật mạng Page 6
đến người dùng từ xa (với ví dụ này sử dụng CHAP). Khi đó người dùng sẽ phải
trả lời đúng các yêu cầu xác nhận (trong ví dụ này, đưa ra lời đề nghị mã hoá
password), sau đó NAS sẽ chuyển tới máy chủ AAA một message RADIUS
Access-Request.
Nếu máy chủ AAA sau khi kiểm tra các thông tin của người dùng hoàn toàn thoả
mãn sẽ cho phép sử dụng dịch vụ, nó sẽ trả về một message dạng RADIUS
Access-Accept. Nếu không thoả mãn máy chủ AAA sẽ trả về một tin RADIUS
Access-Reject và NAS sẽ ngắt kết nối với user.
Khi một gói tin Access-Accept được nhận và RADIUS Accounting đã được thiết
lập, NAS sẽ gửi mộtgói tin RADIUS Accounting-Request (Start) tới máy chủ
AAA. Máy chủ sẽ thêm các thông tin vào file Log của nó, với việc NAS sẽ cho
phép phiên làm việc với user bắt đầu khi nào, và kết thúc khi nào, RADIUS
Accouting làm nhiệm vụ ghi lại quá trình xác thực của user vào hệ thống, khi kết
thúc phiên làm việc NAS sẽ gửi một thông tin RADIUS Accounting-Request
(stop).
2.4Giao thức Kerberos:
Kerberos là một giao thức chứng thực mạng được phát triển trong dự
án Athena của học viện công nghệ Massachusetts (MIT). Kerberos là một cơ chế
chứng thực mạnh cho các ứng dụng client/server trên môi trường mạng phân tán;
nó cho phép các thực thể truyền thông trong mạng chứng thực lẫn nhau mà vẫn
đảm bảo an toàn, chống nghe lén hay tấn công dùng lại trên mạng. Nó cũng đảm

bảo tính toàn vẹn và tính mật cho thông tin truyền đi, sử dụng mã hoá bí mật như
DES, triple DES.
Nội dung
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 (Key Distribution
Centre). KDC cung cấp vé cho việc chứng thực người dùng và bảo mật truyền
thông bởi khoá phiên trong vé. KDC gồm:
Đồ án an toàn và bảo mật mạng Page 7
- Máy chủ 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.
- Máy chủ cấp khoá 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.
Giao thức Kerberos hoạt động khá phức tạp, về cơ bản được thực hiện qua ba
giai đoạn, hay ba pha. 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.
Pha 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ã.
a. Người dùng C đăng nhập vào hệ thống, nhập định danh và mật khẩu. Client sẽ
chuyển đổi mật khẩu thành khoá mật của C, lưu trữ trong biến của chương trình.
Sau đó, client gửi yêu cầu xin cấp TGT tới AS bằng thông điệp Kerberos
Authentication Service Request (KRB_AS_REQ) gồm 2 phần :
- Định danh người dùng, định danh TGS nhằm chỉ định sử dụng dịch vụ TGS
dưới dạng bản rõ.
Đồ án an toàn và bảo mật mạng Page 8
- Dữ liệu tiền chứng thực (pre-authentication data) chứng minh rằng người
dùng có đúng mật khẩu của anh ta. Phần này được mã hoá bằng khoá sinh ra

từ mật khẩu người dùng.
b. AS sẽ truy lục trong cơ sở dữ liệu, lấy khoá bí mật của C, giải mã phần dữ liệu
tiền chứng thực, kiểm tra có hợp lệ không. Nếu có, AS có thể bảo đảm dữ liệu tiền
chứng thực được mã hoá đúng bằng khoá bí mật của C, không bị tấn công dùng
lại.
c. Cuối cùng thì AS cũng đã xác minh được định danh của C, AS sẽ phản hồi bằng
một thông điệp Kerberos Authentication Service Response (KRB_AS_REP) có
chứa vé TGT bao gồm :
- Một khoá phiên SK1 dùng cho truyền thông giữa client và TGS ở pha thứ
hai, được mã hoá bằng khoá mật của C đảm bảo chỉ có C mới giải mã được.
- Bản sao của SK1 được mã hoá bằng khoá mật của TGS đảm bảo chỉ TGS
đọc được.
Pha thứ hai: Truyền thông với máy chủ cấp vé dịch vụ TGS, lấy về service ticket
truy nhập máy chủ V
a. Có vé TGT và khóa phiên SK1, C đã sẵn sàng để truy nhập vào TGS. Đầu tiên
C gửi cho TGS một thông điệp Kerberos Ticket Granting Service Request
(KRB_TGS_REQ) có chứa :
- Vé TGT và Định danh dịch vụ yêu cầu V.
Bộ dữ liệu chứng thực gọi là Authenticator được mã hoá bằng SK1 gồm định
danh người dùng C, IP của client và tem thời gian. Authenticator chỉ sử dụng một
lần và có hiệu lực trong một thời gian cực ngắn
b. TGS dùng khoá mật của mình giải mã TGT, lấy ra SK1 để giải mã
authenticator, kiểm tra tính hợp lệ. Nếu hợp lệ, TGS được đảm bảo chắc chắn rằng
người gửi chiếc vé chính là chủ nhân thực sự của nó. Khi đó, TGS sẽ sinh ra khoá
phiên mới SK2 chung cho client và máy chủ V. Hai bản sao của khoá phiên này
được gửi về cho C bằng thông điệp Kerberos Ticket Granting Service Response
(KRB_TGS_REP) gồm:
- Một bản sao khoá phiên SK2 được mã hoá bằng khoá phiên của C.
- Bản kia được mã hóa bằng khoá mật của V đảm bảo chỉ V mới mở được.
Đồ án an toàn và bảo mật mạng Page 9

Pha thứ ba: Truyền thông trong chứng thực client/server, trao đổi dữ liệu
a. Bây giờ thì client sẵn sàng chứng thực với máy chủ V. Client gửi cho V một
thông điệp Kerberos Aplication Request (KRB_AP_REQ) có chứa :
- Authenticator mã hoá bởi khoá phiên SK2.
- Service ticket mã hoá bởi khoá mật của V.
- Cờ xác định client có yêu cầu chứng thực lẫn nhau không.
b. V giải mã service ticket, lấy ra SK2 giải mã authenticator, xác minh tính hợp lệ.
Nếu hợp lệ, B xem giá trị cờ yêu cầu chứng thực lẫn nhau. Nếu cờ được thiết lập,
V sử dụng SK2 mã hoá thời gian từ authenticator và gửi về cho C bằng thông điệp
KRB_AP_REP.
c. C giải mã thông điệp bằng khoá phiên dùng chung với V, xác minh thời gian
trong đó có đúng như khi gửi cho V không. Nếu hợp lệ, kết nối truyền thông sẽ
được thực hiện.
Như vậy, khoá phiên đã được chuyển tới server V và client một cách an toàn,
được sử dụng cho việc bảo mật truyền thông giữa client và server về sau. Hơn nữa,
cả client và server đều được chứng thực lẫn nhau, không xảy ra trường hợp giả
mạo một trong hai bên tham gia truyền thông.
5.Giao thức LDAP
LDAP là gì?
LDAP ( Lightweight Directory Access Protocol) được hiểu như là một giao thức
truy nhập nhanh dịch vụ thư mục.
Chúng ta sẽ phân tích rõ vì sao nó lại được gọi như vậy.(Phiên bản cuối cùng hiện
đến Version3.)
1. Lightweight
Tại sao LDAP được coi là lightweight? Lightweight được so sánh với cái gì?
Đó là những câu hỏi khi bạn muốn tìn hiểu chi tiết hơn về LDAP.
Để trả lời những câu hỏi này, bạn cần tìm hiểu nguồn gốc của LDAP.
Bản chất của LDAP là một phần của dịch vụ thư mục X.500. LDAP thực chất
được thiết kế như một giao thức nhẹ nhàng, dùng như gateway trả lời những yêu
Đồ án an toàn và bảo mật mạng Page 10

cầu của X.500 server. X.500 thực tế là một tập các chuẩn.
X500 được biết như là một heavyweight. Nó yêu cầu client và server liên lạc với
nhau sử dụng theo mô hình OSI . Mô hình 7 tầng của OSI là một mô hình chuẩn
phù hợp trong thiết kế với giao thức mạng, nhưng khi so sánh với chuẩn TCP/IP
thì nó trở nên không còn hợp lý.
LDAP được so sánh với lightweight vì nó sử dụng gói tin overhead thấp, nó
được xác định chính xác trên lớp TCP ( mặc định là cồng 389) của danh sách các
giao thức TCP/IP. Bởi vì X.500 là một lớp giao thức ứng dụng, nó chứa nhiều thứ
hơn ví dụ như các network header được bao quanh các gói tin ở mỗi layer trước
khi nó được chuyển đi trong mạng.

LDAP được coi là lightweight bởi vì nó đã lược bỏ rất nhiều những phương thức
ít được dùng của X.500 . LDAPv3 chỉ có 9 core hoạt động và cung cấp một mô
hình đơn giản cho người lập trình và quản trị hệ thống. Việc cung cấp một tập các
hoạt động nhỏ hơn và đơn giản hơn cho phép người phát triển tập trung vào những
ngữ nghĩa của chương trình mà không cần phải hiểu những giao thức đặc trưng mà
ít khi được dùng đến. Theo đó, người thiết kế LDAP hi vọng rằng sẽ tạo ra được
sự đón nhận nhiều hơn nữa bằng cách cung cấp những phát triển ứng dụng đơn
giản hơn.
Đồ án an toàn và bảo mật mạng Page 11
2. Directory
Các dịch vụ network directory đều không còn mà mới mẻ. Tuy nhiên, một dịch vụ
thư mục không được nhầm với một cơ sở dữ liệu. Các dịch vụ thư mục và cơ sở
dữ liệu chia sẻ một số những đặc điểm của nhau, như sự tìm kiếm nhanh và một
giản đồ mở rộng. Nhưng chúng khác nhau ở điểm, thư mục được thiết kế để đọc
nhiều hơn là để ghi vào, còn đối với cơ sở dữ liệu, nó phù hợp với cả công việc
đọc và ghi một cách thường xuyên và lặp đi lặp lại. Một directory được đọc
thường xuyên nhưng ít khi ghi vào , nếu nhu cầu cần hỗ trợ việc thực hiện và ghi
khóa, sẽ là không cần thiết một dịch vụ thư mục ví dụ như LDAP.
Ở điểm này, sẽ là rất quan trọng khi đưa ra sự khác biệt giữa LDAP và một

backend sử dụng để lưu trữ dữ liệu liên tục. Nên nhớ rằng LDAP chỉ là một giao
thức, nó là một tập những bản tin cho việc xử lý các loại dữ liệu. Một giao thức
không thể biết dữ liệu được lưu trữ ở đâu. LDAP không hỗ trợ sự xử lý và những
đặc trưng khác của cơ sở dữ liệu.
Client sẽ không bao giờ thấy được hoặc biết rằng có một bộ máy lưu trữ backend.
Vì lý do này, LDAP client cần liên tác với LDAP server theo mô hình chuẩn sau:

Khuyến cáo là một LDAP server có thể được sử dụng như một backend storage
cho một máy chủ web. Mọi file HTML và file đồ họa sẽ được lưu trữ trong các
directory và có thể được truy vấn bằng nhiều máy chủ web. Sau đó, máy chủ web
sẽ đưa ra một file chỉ đọc và gửi chúng cho client và bản thân những file đó phải
Đồ án an toàn và bảo mật mạng Page 12
những file ít có sự thay đổi. Một LDAP directory có thể không là một nơi tốt cho
việc lưu trữ các spooled file khi chúng được đưa đến máy in, và khi việc sử dụng
nó được trong việc lưu trữ những cấu hình cài đặt máy in và chia sẻ cho các client
sẽ trở một thắng lợi lớn.

Hai điểm tốt về hàm của LDAP
- LDAP không là sự thay thế tổng thể cho những directory đặc biệt ví dụ như
filesystem hoặc DNS
- Khi việc lưu trữ kiểu của thông tin nhị phân( ví dụ như ảnh Jpeg) trong
directory có thể hữu dụng, LDAP không được trông chờ cho việc lưu trữ chuyên
về Binary Lumps of Bits (blobs)
3. Access Protocol
LDAP là một giao thức. Nó đưa ra một mô hình dạng cây của dữ liệu, và mô
hình dạng cây này được nhắc tới khi bạn đề cập một LDAP server. Giao thức
client/server của LDAP được định nghĩa trong RFC 2251 ( đây là lõi
LDAP là một sự thiếu đồng bộ (mặc dụ rất nhiều bộ công cụ phát triển cung cấp
cả blocking và nonblocking APIs), một client có thể đưa ra một loạt những yêu
cầu và những trả lời cho những yêu cầu đó lại được trả lời theo những cách sắp

xếp khác nhau. Hình sau sẽ giải thích điều này:

Đồ án an toàn và bảo mật mạng Page 13
Phương thức hoạt động của LDAP
Mô hình LDAP client/server:
Chúng ta sẽ bắt đầu xem xét LDAP như là giao thức giao tiếp client/server.

Giao thức client/sever:
Là một mô hình giao thức giữa một chương trình client chạy trên một máy tính gởi
một yêu cầu qua mạng đến cho một máy tính khác đang chạy một chương trình
sever (phục vụ), chương trình này nhận lấy yêu cầu và thực hiện sau đó nó trả lại
kết quả cho chương trình client. Ý tưởng cơ bản của giao thức client/server là công
việc được gán cho những máy tính đã được tối ưu hoá để làm thực hiện công việc
đó.
Ví dụ tiêu biểu cho một máy server LDAP có rất nhiều RAM(bô nhớ) dùng để lưu
trữ nội dung các thư mục cho các thao tác thực thi nhanh và máy này cũng cần đĩa
cứng và các bộ vi xử lý ở tốc độ cao.
LDAP Là một giao thức hướng thông điệp
Do client và sever giao tiếp thông qua các thông điệp, Client tạo một thông điệp
(LDAP message) chứa yêu cầu và gởi nó đến cho server. Server nhận được thông
điệp và sử lý yêu cầu của client sau đó gởi trả cho client cũng bằng một thông điệp
LDAP.
Ví dụ: khi LDAP client muốn tìm kiếm trên thư mục, client tạo LDAP tìm kiếm và
gởi thông điệp cho server. Sever tìm trong cơ sở dữ liệu và gởi kết quả cho client
trong một thông điệp LDAP.
Đồ án an toàn và bảo mật mạng Page 14
Quá trình kết nối giữa LDAP server và client:
LDAP client và server thực hiện theo các bước sau:
Client mở một kết nối TCP đến LDAP server và thực hiện một thao tác bind. Thao
tác bind bao gồm tên của một directory entry và uỷ nhiệm thư sẽ được sử dụng

trong quá trình xác thực, uỷ nhiệm thư thông thường là pasword nhưng cũng có
thể là chứng chỉ điện tử dùng để xác thực client.
Sau khi thư mục có được sự xác định của thao tác bind, kết quả của thao tác bind
được trả về cho client.
Đồ án an toàn và bảo mật mạng Page 15
1. Mở kết nối và bind tới server.
2. Client nhận kết quả bind.
3. Client phát ra các yêu cầu tìm kiếm.
4. Server thực hiện xử lý và trả về kết quả 1 cho client.
5. Server trả về kết quả 2 cho client.
6. Server gởi thông điệp kết thúc việc tìm kiếm.
7. Client phát ra yêu cầu unbind, với yêu cầu này server biết rằng client muốn
huỷ bỏ kết nối.
8. Server đóng kết nối
Chứng thực trong LDAP
Việc xác thực trong một thư mục LDAP là một điều cần thiết và không thể thiếu.
Hãy nhớ rằng LDAP là một kết nối theo hướng đối tượng, message dựa trên giao
thức. Các quá trình xác thực được sử dụng để thiết lập các quyền của khách hàng
cho mỗi lần sử dụng. Tất cả các công việc như tìm kiếm, truy vấn, vv… được sự
kiểm soát bởi các mức uỷ quyền của người được xác thực. Khi một người dùng
được quản lý với các thuộc tính cơ bản, bạn sẽ cần phải xác định một giá trị thuộc
tính userPassword để tiếp tục xác thực phía trong LDAP .
File LDIF sau sẽ đưa ra một vài thông tin cơ bản nhất về một đối tuợng trong
LDAP:
Đồ án an toàn và bảo mật mạng Page 16
dn: cn=gerald carter,ou=people,dc=plainjoe,dc=org
objectClass: person
cn: gerald carter
sn: carter
telephoneNumber: 555-1234

#userPassword: secret
userPassword: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ= =
Chú ý thuộc tính có tên là userPassword, thuộc tính này lưu trữ thông tin cần
thiết để chứng tỏ đuợc sự ủy nhiệm khi chứng thực một người dùng. Tiền tố trong
dấu {} mô tả cách thức mã hóa thế nào đối với mật khẩu (giá trị đơn giản trong
trường hợp phía sau dấu # là từ khóa “secret" dạng text, chưa đuợc mã hoá). Để
đảm bảo đuợc tính bí mật, mật khẩu đuợc viết dưới dạng được mã hoá sử dụng các
cách mã hoá như ở dưới.
RFC 2307 định nghĩa tiền tố cho một số thuật toán mật mã. UserPassword tạo ra
các giá trị sẽ được diễn tả chi tiết hơn trong từng ngôn ngữ lập trình và các API
trong phần sau
Một số loại mã thông thường:

{Crypt} Sử dụng hàm băm crypt, có trong thư viện của ngôn ngữ C.
{MD5} Các hàm băm mật khẩu sử dụng mã hóa Base64 của MD5
{SHA} Secure Hash Algorithm
{SSHA} Salted Secure Hash Algorithm: Khuyến khích sử dụng trong mã hóa mật
khẩu trong dịch vụ thư mục LDAP

Các hành động được xác nhận bởi LDAP dỉectory được gọi là các ràng buộc.
Hầu hết người dùng quen với việc được cung cấp cho một tên người dùng và mật
khẩu khi bạn đăng nhập vào hệ thống. Khi xác nhận một khách hàng của LDAP,
tên người dùng được xác định như là một DN, như ví dụ sau, cn = Gerald Carter,
hoặc = People, dc = plainjoe, dc = org. và mật khẩu tuơng ứng với DN đó. Việc
Đồ án an toàn và bảo mật mạng Page 17
các credentials được sử dụng để xác thực entry được dựa vào giá trị của thuộc tính
userPassword.
Các kỹ thuật LDAPv3 xác định một số cơ chế xác nhận cho khách hàng:
- Xác thực một người dùng chưa xác định - Xác thực đơn giản
- Xác thực đơn giản qua SSL / TLS

- Xác thực đơn giản và Bảo mật lớp (SASL)
1. Xác thực người dùng chưa xác định (Anonymous Authentication)
Xác thực người dùng chưa xác định là một xử lý ràng buộc đăng nhập vào
directory với một tên đăng nhập và mật khẩu là rỗng. Cách đăng nhập này rất
thông dụng và đuợc thường xuyên sử dụng đối với ứng dụng client.
2. Xác thực nguời dùng đơn giản ( Simple Authtication)
Đối với xác thực nguời dùng đơn giản, tên đăng nhập trong DN được gửi kèm
cùng với một mật khẩu dưới dạng clear text tới máy chủ LDAP. Máy chủ sẽ so
sánh mật khẩu với giá trị thuộc tính userPassword hoặc với những giá trị thuộc
tính đã được định nghĩa truớc trong entry cho DN đó. Nếu mật khẩu đuợc lưu dưới
dạng bị băm( mã hoá), máy chủ sẽ sử dụng hàm băm tuơng ứng để biến đối mật
khẩu đưa vài và so sánh với giá trị đó với giá trị mật khẩu đã mã hoá từ trước. Nếu
cả hai mật khẩu trùng nhau, việc xác thực client sẽ thành công.
3. Xác thực đơn giản qua SSL/TLS
Nếu việc gửi username và mật khẩu của bạn qua mạng khiến bạn không cảm
thấy yên tâm về tính bảo mật, sẽ là an toàn hơn khi truyền thông tin trong một lớp
truyền tải được mã hóa. LDAP sẽ vượt qua lớp truyền tải đã được mã hóa này
trước khi thực hiện bất cứ hoạt động kết nối nào. Do đó, tất cả thông tin người
dùng sẽ được đảm bảo an toàn (ít nhất là trong suốt session đó)
Có hai cách sử dụng SSL/TSL với LDAPv3

- LDAP với SSL (LDAPs-tcp/636) được hỗ trợ bởi rất nhiều bởi các máy
chủ LDAP (cả phiên bản thương mại và mã nguồn mở). Mặc dù được sử dụng
thường xuyên, nó vẫn không chấp nhận quá trình mở rộng LDAP với StartTLS.
Đồ án an toàn và bảo mật mạng Page 18
- RFC 2830 đưa ra một phương thức mở rộng đối với LDAPv3 cho việc xử
lý TLS qua cổng tiêu chuẩn tcp/389. Phương thức này được biết đến như là một
StartTLS, giúp cho máy chủ có thể hỗ trợ các việc mã hóa và giải mã các phiên
giao dịch trên cùng một cổng.
4. Xác thực đơn giản và Lớp bảo mật (SASL)

SASL là một scheme bảo mật mở rộng được định nghĩa trong RFC222,
III.Các mô hình xác thực:
3.1 Mô hình usename/password
Xác thực bằng password là cách xác thực đơn giản và cổ điển nhất. Hiện nay, khi
bạn Log In vào 1 máy tính, or 1 trang web thì cách phổ biến nhất đó là bạn gõ
username và password. Đó là bạn đã thực hiện 1 quá trình xác thực bằng
password. Nói rõ ra là, trang web đó, or máy tính đó đã có lưu 1 danh sách các
user và password tương ứng với từng user. Khi bạn gõ vào username và password,
trang web or máy tính sẽ dò tìm trong CSDL, nếu có và đúng username và
password thì người sử dụng sẽ được đăng nhập vào trang web or máy tính đó. Đối
với các máy tính sử dụng Windows XP, danh sách đó đc lưu trong file SAM. Bên
cạnh đó, mỗi user sẽ được đưa vào 1 group tương ứng.
Việc sử dụng mô hình này trở nên rất phổ biến. Tuy nhiên nếu đơn giản như vậy
việc bảo mật sẽ rất kém.Chính vì thế mà người ta đưa thêm vào các giao thức xac
thực , nhằm nâng cao tính bảo mật của hệ thống. Việc ứng dụng và thiết kế thêm
các hệ thống ứng dụng giao thức koberos ,Chap ,LDAP… sẽ tăng cường cao tính
xác thực USER/Pass
3.2 Hệ thống đăng nhập một lần Single sign-on (SSO)
SSO (Single Sign On) là cơ chế quản lý truy cập xác thực một lần và cho phép
truy cập tài nguyên từ nhiều hê thống phần mềm khác nhau. Nó giúp tránh phải
xác thực nhiều lần.
SSO (Single Sign On) nó sử dụng session id cho toàn bộ các page, khi bạn
login vào, SSO sẽ cung cấp cho bạn 1 sessionID, khi bạn đi qua các trang khác
hay các subdomain khác, SSO lấy cái sessionID đó ra và xác thực lại.
1. Tổng quan
Single Sign-On (SSO) là một một giải pháp phần mềm nhằm thực hiện việc chứng
thực tập trung dành cho các ứng dụng chạy trên các platform khác nhau.Ở đây tôi
xin bàn về Web SSO, và tôi thấy những ý kiến xung quanh topic này là Web SSO.
Các Web SSO khá quen thuộc và nổi tiếng là Microsoft Passport ( Windows Live
ID), Google Authentication, Yahoo Authentication. Các hệ thống SSO là yêu cầu

bắt buộc của các hãng cung cấp dịch vụ trực tuyến, các viện và trường đại học lớn.
Đồ án an toàn và bảo mật mạng Page 19
WebSSO là một dịch vụ chứng thực cho các ứng dụng web vận hành trên các
platform khác nhau. Mục đích của WebSSO là đăng nhập một lần cho các ứng
dụng web sử dụng một dịch vụ chứng thực tập trung (Central Authentication
Service).
2. Đặc điểm của WebSSO;
Một WebSSO đúng nghĩa phải là một dịch vụ chứng thực tập trung đáp ứng đồng
thời các yêu cầu sau:
• Đăng nhập một lần với một tài khoản duy nhất để chứng thực vào các ứng
dụng web khác nhau sử dụng dịch vụ WebSSO đó. Các ứng dụng web có
thể chạy trên nhiều domain khác nhau. Ví dụ: khi bạn đăng nhập vào
hotmail.com thì bạn sẽ không cần đăng nhập một lần nữa khi vào msn.com.
• Web SSO yêu cầu một hệ thống network ổn định và đảm bảo vận hành
xuyên suốt.
• Phải sử dụng SSL và các phương thức mã hóa bất đối xứng. Nếu một dịch
vụ chứng thực mà không dùng SSL cho các phiên chứng thực thì đều bị coi
là không an toàn. Và đây cũng là một mục tiêu quan trọng của một ứng
dụng web khi dùng dịch vụ chứng thực tập trung.
• Đăng xuất toàn bộ hệ thống SSO khi click vào button [Sign Out] hoặc tự
động SignOut khi tắt trình duyệt.
Trong SSO cũng như chứng thực thông thường, đều cần database để lưu trử thông
tin người dùng. Còn SSO hoàn toàn không dùng database để lưu vết session.
Như vậy, chúng ta có thể thấy rằng SSO phải đảm nhiệm một nhiệm vụ rất lớn
trong việc chứng thực toàn bộ người dùng cho các ứng dụng web. Do vậy vấn đề
bảo mật luôn đặt lên hàng đầu, nếu SSO gặp một sự cố nào đó thì toàn bộ các
partners (ứng dụng web dùng SSO) sẽ không thể đăng nhập được.
Để phát triển một SSO không thật sự quá khó nhưng nó có vai trò quá quan trọng
và ảnh hưởng lớn đến các ứng dụng khác nên nó thường dành cho các nhà cung
cấp dịch vụ trực tuyến và các viện, trường đại học lớn trên thế giới.

Có hai dự án mã nguồn mở lớn về SSO trên thế giới đó là CAS (Central
Authentication Service) của đại học Yale và OpenSSO của Sun. Đây là 2 dự án
khá hoàn chỉnh và được ứng dụng nhiều, tuy nhiên để triển khai nó hoàn toàn
không đơn giản.
3. Nguyên lý hoạt động của WebSSO cơ bản:
Bước 1: Người dùng đăng nhập vào tài khỏan tại url của dịch vụ SSO
Authentication Service. Ví dụ: , . Sau
khi đăng nhập thành công -> bước 2
Bước 2: Authentication Service sẽ thực hiện việc sinh ra Authentication Token.
Đây là một string chứa thông tin chứng thực (không chứa password) và thông
thường được mã hóa bằng DES hoặc RSA.
Bước 3: Authentication Token sẽ được truyền tải trên http (không mã hóa SSL)
Đồ án an toàn và bảo mật mạng Page 20
giữa ứng dụng web (partner) và Authentication Service. Trên mỗi ứng dụng web
sẽ có một SSOAgent, có nhiệm vụ xử lý Authentication Token và kiểm tra việc
chứng thực. Trong quá trình này session cookie sẽ được tạo tại trình duyệt của
người dùng đăng nhập nếu SSOAgent kiểm tra Authentication Token thành công.
Bước 4: [Sign Out]: Khi chứng thực tự động vào một partner, Authentication
Service sẽ lưu lại thông tin partner này, khi người dùng click [Sign Out] thì
Authentication Service sẽ lần lượt Sign Out (xóa toàn bộ session cookie của
partners).
4. Phân biệt giữa WebSSO và chức năng đăng nhập một lần trong các Portal.
Các portal thường phát triển nhiều module khác nhau được tổ chức dưới dạng các
subdomain hoặc subfolder trên cùng một máy chủ. Khi đăng nhập vào một portal
thì sẽ tạo ra session cookie với path là : *.domain.com. Khi đó các module chạy
với subdomain.domain.com hoặc domain.com/subforlder sẽ dùng chung session
cookie này.
Trong WebSSO thì khác, mỗi module đều được tạo riêng một session cookie và
chỉ có tác dụng với ứng dụng web đó. Khi đó các website có domain khác nhau sẽ
có các session cookie khác nhau do SSOAgent tạo ra trong quá trình chứng thực

của Authentication Service.
3.3 Mô hình PKI Public Key Infrastructure
PKI LÀ GÌ?
Để hiểu được về PKI (Public Key Infrastructure), chúng ta cần biết một số kiến
thức sơ lược về khoá mật mã công khai. Hệ thống này xây dựng trên cơ sở một
cặp khoá mã có liên hệ toán học với nhau trong đó một khoá sử dụng để mã hoá
thông điệp và chỉ có khoá kia mới giải mã được thông điệp và ngược lại. Khi đó
chúng ta có thể công khai hoá một khoá trong cặp khoá này. Nếu ai cần gửi cho
chúng ta các thông điệp bảo đảm, họ sẽ có thể sử dụng khoá đã được cung cấp
công khai này để mã hoá thông điệp trước khi gửi đi và bởi vì chúng ta đã giữ bí
mật khoá mã còn lại nên chỉ chúng ta mới có thể giải mã được thông điệp bảo đảm
đó.
Cặp khoá này còn dùng để xác nhận thông điệp. Người gửi sẽ tạo một đoạn mã
băm (hash) của thông điệp - một dạng rút gọn của thông điệp nguyên bản - với
một số thuật toán (ví dụ như MD5, SHA-1 ). Người gửi sẽ mã hoá đoạn mã băm
bằng khoá riêng của mình và người nhận sẽ dùng khoá công cộng của người gửi
để giai đoạn mã băm của người gửi, sau đó so sánh với đoạn mã băm của thông
điệp nhận được (được tạo bằng cùng một thuật toán). Nếu trùng nhau thì người
nhận có thể tin rằng thông điệp nhận được không bị thay đổi trong quá trình truyền
tải trên mạng và xuất phát từ người gửi xác định. Cách thực hiện này được gọi là
chữ ký điện tử. Nhưng cần nhắc lại là chung ta yêu cầu không chỉ chữ ký - chúng
ta cần một thẻ hội viên điện tử. Chính vì thế mà xuất hiện khái niệm giấy chứng
nhận điện tử. Một chứng nhận điện tử gắn tên của hội viên hay thiết bị với một cặp
khoá, tương tự như thẻ hội viên gắn tên của hội viên với chữ ký và ảnh của họ. Để
Đồ án an toàn và bảo mật mạng Page 21
đảm bảo giấy chứng nhận là hợp lệ, chúng ta thường yêu cầu giấy chứng nhận
phải được cấp do một tổ chức tin cậy. Đối với giấy chứng nhận điện tử, tổ chức
này được gọi là Trung tâm Chứng thực kỹ thuật số - CA (Certification
Authority).
Một điển hình PKI hệ thống bao gồm:

• Client software
• A Certificate Authority server Một Giấy chứng nhận Phép máy chủ
• May involve smartcards Có thể liên quan tới smartcards
• Operational procedures Các thủ tục hoạt động
TRUNG TÂM CHỨNG THỰC KỸ THUẬT SỐ - CA
Trung tâm Chứng thực kỹ thuật số là một thành phần chính của PKI. Nó là một
tổ chức thứ ba đáng tin cậy chịu trách nhiệm phát hành giấy chứng nhận kỷ thuật
số và quản lý chúng trong thời hạn có hiệu lực. Chứng nhận kỷ thuật số là những
tập tin điện tử chứa các chìa khóa mật mã công cộng và các thông tin nhận dạng
đặc biệt về người sử dụng. Các giấy chứng nhận này có “dán tem” xác nhận và
không thể làm giả được. Cũng giống như việc phát hành hộ chiếu, tổ chức cấp
giấy chứng nhận xác nhận rằng cá nhân được cấp giấy chứng nhận kỷ thuật số là
người đáp ứng đủ điều kiện.
- Chứng thực số cho các cá nhân và tổ chức thực hiện an toàn các giao dịch trong
môi trường điện tử, như gửi nhận e-mail, mua bán hàng hoá, trao đổi thông tin,
lệnh chuyển tiền, phát triển phần mềm
- Công cụ an toàn, bảo mật và xác thực hợp pháp cho các hệ thống hoạt động
thương mại điện tử: các web site giao dịch B2B, các web site bán hàng, hệ thống
thanh toán trực tuyến
Sử dụng chứng thực số giúp cho bảo đảm an toàn các giao dịch điện tử. Tránh
được các nguy cơ, giả mạo thông tin, lộ các thông tin nhậy cảm, mạo danh,
xuyên tạc và thay đổi nội dung thông tin.

Đồ án an toàn và bảo mật mạng Page 22

×