4.1.1 Bài toán kiểm soát truy cập mạng
Thông thường, trong một mạng máy tính, để có thể thực hiện truy cập từ xa qua mạng vào một máy chủ - ví dụ một máy chủ CSDL (DB Server), người dùng cần phải có một tài khoản trong DB Server đó với một tên truy nhập và một mật khẩu. Nhưng trên thực tế, mật khẩu rất dễ bị mất, hay bị lộ do tấn công chặn bắt gói tin (packet sniffers), hay bị tấn công brute-force hoặc quá trình xác thực truy cập bị tấn công man-in-the-middle. Điều này thực sự rất nguy hiểm, vì khi đó, người dùng sẽ bị kẻ xấu mạo danh, lấy cắp thông tin, thay đổi thông tin, hoặc nguy hiểm hơn, DB Server sẽ bị tấn công.
4.1.2 Phân tích bài toán kiểm soát truy cập mạng
Trên thực tế, đã có rất nhiều giải pháp đảm bảo cho việc gói tin truyền đi trên mạng không bị chặn, bắt như: Authentication, Switched infrastructured, AntiSniffers tool, Cryptography. Thực tế cho thấy phương pháp mã hóa (Cryptography) thông tin trước khi truyền đi tỏ ra hiệu quả nhất, một ứng dụng cụ thể của phương pháp này là giao thức mã hóa “đường hầm” dựa trên địa chỉ IP (bao gồm 2 giao thức chính: SSH - Secure SHell, SSL-Secure Socket Layer). Tuy nhiên, nếu chỉ sử dụng mã hóa đơn thuần thì không tránh khỏi việc bị tấn công Man-In-The-Middle (MITM), bởi vì tấn công MITM dựa trên các giao thức dẫn đường (routing protocols), các giao thức ở tầng giao vận (transport protocols), và các giao thức bắt tay (nếu có). Để ngăn chặn kiểu tấn công MITM thì các đối tượng tham gia truyền tin cần phải được xác thực, hơn nữa việc này còn chống lại được tấn công phát lại (relay attack). Một trong những giải pháp xác thực đó là sử dụng chữ ký số, chữ ký số có thể được sử dụng để xác thực nguồn gốc, và nội dung của thông điệp truyền đi. Như đã trình bày ở các chương đầu thì hạ tầng khóa công khai PKI chính là môi trường lý tưởng để thực hiện mã hóa và ký số.
Do vậy, việc xây dựng ứng dụng kiểm soát truy cập CSDL trong hạ tầng hệ thống BioPKI sử dụng thẻ sinh trắc Bio-Etoken kết hợp với mã hóa và chữ ký số có thể đảm bảo tính mật cho quá trình xác thực cũng như quá trình trao đổi dữ liệu. Mô hình ứng dụng thử nghiệm được xây dựng như trong hình (4-1).
Hình 4-21: Mô hình ứng dụng truy cập CSDL từ xa
Trong đó:
User: Người sử dụng muốn truy cập từ xa qua mạng vào một máy chủ CSDL. Người sử dụng đã được cấp chứng thư, khóa riêng, thẻ sinh trắc Bio-EToken bởi hệ thống BioPKI và chứng thư, thẻ còn hiệu lực để có thể thực hiện việc mã hóa và giải mã; ký và xác thực chữ ký trong các giao dịch.
Client: Máy trạm mà User sử dụng để truy cập từ xa qua mạng. Máy này phải
được cài đặt các chức năng đọc thẻ, kết nối với RA Application Server, ký, xác thực.
DB Server: Máy chủ CSDL cần được bảo vệ truy cập từ xa, DB Server cũng được
coi là một User của hệ thống nên cũng được cấp một chứng thư, khóa riêng
RA Application Server: Máy chủ dịch vụ ứng dụng, một thành phần của RA
Server thuộc hệ thống BioPKI. Cung cấp dịch vụ ứng dụng như: kiểm tra tính xác thực của chứng thư số, download chứng thư số, sinh, quản lý và phân phối khóa phiên trong giao dịch giữa client và DB Server.
Hạ tầng BioPKI: cung cấp các chứng thư số, kho chứng thư, các thẻ Bio-Etoken cho người dùng và các dịch vụ liên quan như kiểm tra, xác thực chứng thư, download chứng thư…
Phân tích giải pháp:
-Bảo mật username và password đăng nhập của user: Dùng xác thực sinh trắc với thẻ Bio-EToken để bảo vệ, nên trong trường hợp username và password có bị lộ thì người có được nó cũng không thể truy cập được vào hệ thống, vì đặc trưng sinh trắc của họ là không hợp lệ.
-Tăng cường bảo mật trên đường truyền: Sử dụng kênh mật SSL cho các giao dịch phân phối khóa phiên, đồng thời kết hợp thêm chữ ký số để xác thực tính toàn vẹn, chống lại tấn công man-in-the-middle. Với các giao dịch trao đổi dữ liệu sau khi có khóa phiên giữa Client và DB Server, dữ liệu được mã hóa đối xứng, được gắn thêm chữ ký số và có thể tiếp tục truyền qua kênh SSL (Nếu tốc độ không phải là yêu cầu cao nhất), Với việc sử dụng chữ ký số ứng dụng còn cung cấp chức năng chống phủ định hay chối bỏ trách nghiệm của user, các tấn công liên quan đến phiên làm việc của người dùng như hijacking, sidejacking…
4.2 Mô hình ứng dụng kiểm soát truy cập CSDL từ xa
Như phân tích ở trên, việc sử dụng mô hình sử dụng server sinh khóa phiên (RA Application server) đã tận dụng được những lợi thế của hạ tầng hệ thống BioPKI- OpenCA. Ứng dụng hướng tới giải quyết 2 khó khăn lớn của các ứng dụng truy cập CSDL từ xa:
- Xác thực chính xác người dùng muốn truy cập từ xa vào máy chủ CSDL: Sử dụng đối sánh đặc trưng sinh trắc sống của người dùng khi đăng nhập với đặc trưng sinh trắc lưu trong thẻ.
- Tạo 1 phiên giao dịch an toàn giữa người dùng và DBServer: Mọi thông tin trong quá trình xác thực và trao đổi dữ liệu đều được mã hóa và ký số.
Một số ký hiệu:
Epkc(): mã hóa thông điệp sử dụng khóa công khai của Client
Epks(): mã hóa thông điệp sử dụng khóa công khai của RA Application Server SNcc: Serial Number chứng thư của user.
IDs: ID của DB Server
Ek(): Mã hóa đối xứng sử dụng khóa phiên K
4.2.2 Quá trình truy cập CSDL từ xa
Bước 1: Người dùng đăng nhập vào máy client
• User
o Điền username, password đăng nhập CSDL vào client module (Việc này có thể được tiến hành tự động như sau: sau khi user xác thực sinh trắc thành công, username và password sẽ được tự động lấy ra từ thẻ và điền vào form đăng nhập)
o Cắm Bio-EToken vào máy client
o Quét đặc trưng sinh trắc
• Máy client
o Kiểm tra username, password và xác thực đặc trưng sinh trắc người dùng đăng nhập thành công/không thành công?
Bước 2: Giao dịch giữa Client và RA Application Server, RA Application Server và DB Server.
o Client gửi yêu cầu truy cập CSDL, Serial Number chứng thư của người dùng đăng nhập tại Client (SNcc), và ID của Database Server (IDs). Nội dung này sẽ được mã hóa sử dụng Public Key của RA Application Server. Client cũng sẽ ký lên nội dung đó bằng khóa riêng được lấy ra từ thẻ và gửi cả chữ ký Sig đi
o RA Application Server giải mã, xác thực chữ ký. Xem yêu cầu của Client và nó kiểm tra chứng thư của người dùng còn hợp lệ không, kiểm tra xem người dùng có được truy nhập vào CSDL hay không ? Nếu mọi
quyền đều còn hiệu lực, RA Application Server sẽ gửi thông báo tới Client.
o Sau đó RA Application Server sẽ sinh khóa phiên gửi đến cho Client và DB Server (Khóa phiên này được mã hóa sử dụng khóa công khai của các bên nhận, như vậy chỉ khóa riêng của bên nhận mới giải mã và lấy được khóa phiên), đồng thời, nó cũng ký lên từng thông điệp nó gửi đi.
o Cuối cùng RA Application Server sẽ hủy khóa phiên nó tạo ra sau khi 2 bên đều đã nhận được khóa.
Bước 3 : Giao dịch giữa Client và DB Server
o Sau khi nhận được khóa phiên K, Client sẽ sử dụng khóa phiên này để mã hóa bản băm password h(s) và username đăng nhập vào CSDL, ký lên đó và gửi đến DB Server.
o DB Server xác thực chữ ký của Client, sử dụng khóa phiên K để giải mã yêu cầu đăng nhập, sau đó nó thực hiện kiểm tra tài khoản đăng nhập vào CSDL của User, nếu hợp lệ nó sẽ gửi thông báo OK tới Client và quá trình trao đổi dữ liệu bắt đầu. Sau khi kết thúc quá trình trao đổi dữ liệu DB Server sẽ hủy khóa phiên vừa sử dụng.
4.3 Phân tích thiết kế ứng dụng kiểm soát truy cập mạng trên nền hệ thống BioPKI BioPKI
4.3.1 Biểu đồ phân cấp chức năng
Như mô tả ứng dụng ở trên, thì có thể phân tích hệ thống bao gồm 4 chức năng chính: Kiểm soát đăng nhập hệ thống, thiết lập kênh truyền dữ liệu bảo mật, truyền khóa phiên bảo mật và kiểm soát truyền tin bảo mật.
Hình 4-23: Biểu đồ phân cấp chức năng ứng dụng kiểm soát truy cập mạng trên nền hệ thống BioPKI
4.3.1.1 Chức năng kiểm soát đăng nhập hệ thống bao gồm các chức năng:
- Kiểm tra mật khẩu đăng nhập hệ thống của người dùng
- Đối sánh đặc trưng sinh trắc: Sử dụng thiết bị Biometrica lấy thông tin sinh trắc sống của người dùng, sau đó trích chọn đặc trưng để đối sánh với đặc trưng sinh trắc lưu trong thẻ E-Token của người đó.
4.3.1.2 Chức năng thiết lập kênh truyền dữ liệu bảo mật:
- Thiết lập kênh truyền dữ liệu bảo mật SSL giữa RA Application Server và DB Server.
- Nếu kết quả đăng nhập của User là thành công thì lấy được khóa riêng và chứng chỉ của User, khóa riêng và chứng chỉ sẽ được dùng để thiết lập kênh truyền dữ liệu bảo mật SSL với DB Server và RA.
4.3.1.3 Chức năng truyền khóa phiên bảo mật:
- Khóa phiên do RA Application Server sinh ra sẽ được mã hóa khóa bất đối xứng và ký số trước khi được truyền trên kênh mật tới máy Client, DB Server.
4.3.1.4 Chức năng kiểm soát truyền tin bảo mật
Xét quá trình gửi dữ liệu từ DB Server tới Client:
-Đầu tiên DB Server sẽ mã hóa dữ liệu bằng khóa phiên (do RA Server Application gửi sang), sau đó thực hiện ký số lên dữ liệu mã hóa và gửi tới Client thông qua kênh truyền bảo mật SSL.
- Tại phía Client, khi nhận được dữ liệu, đầu tiên sẽ xác thực chữ ký của DB Server, nếu xác thực chữ ký thành công thì Client sẽ sử dụng khóa phiên( do RA Server Application gửi sang) để giải mã.
- Sau khi giải mã, nếu dữ liệu phù hợp với định dạnh quy định trước thì kết quả mà người dùng nhận được là chính xác do DB gửi sang.
4.3.2 Sơ đồ mức khung cảnh
Hệ thống có 3 tác nhân ngoài User, RA Application Server, DB Server. User:
-người dùng nhu cầu truy cập CSDL, User sẽ gửi yêu cầu truy cập CSDL, thông tin để thực hiện đăng nhập vào hệ thống (username, password và các thông tin sinh trắc), nếu đăng nhập thành công thì người dùng sẽ gửi mật khẩu đăng nhập CSDL và truy vấn tới hệ thống.
-User sẽ nhận kết quả đăng nhập và kết quả truy vấn CSDL từ hệ thống. RA Application Server:
- Sẽ nhận yêu cầu lấy các thông tin về chứng chỉ, và xin khóa phiên từ hệ thống -RA Application Server sẽ gửi thông tin về chứng chỉ, khóa phiên đến hệ thống. DB Server:
-Nhận các thông tin đăng nhập CSDL và truy vấn CSDL từ hệ thống
-Trả về hệ thống kết quả đăng nhập CSDL và kết quả truy vấn CSDL nếu đăng nhập thành công.
Phân tích:
-Đầu tiên, User sẽ gửi yêu cầu đăng nhập hệ thống, username, password và thông tin sinh trắc đến chức năng kiểm tra thông tin đăng nhập (1). Chức năng kiểm tra đăng nhập sẽ kiểm tra điều kiện đăng nhập của người dùng, rồi gửi lại kết quả đăng nhập cho người dùng.
- Nếu đăng nhập thành công, tức là username , password chính xác và việc đối sánh đặc trưng sinh trắc trả về kết quả là giống, thì chức năng (1) lấy được khóa riêng và Serial Number chứng chỉ của User để gửi sang chức năng thiết lập kênh truyền dữ liệu bảo mật (2). Chức năng (2) sẽ gửi Serial Number của User đến tác nhân ngoài RA Application Server xin chứng chỉ của User, sau đó (2) sẽ thiết lập kênh truyền dữ liệu bảo mật.
-Trạng thái của kênh mật sẽ được truyền tới chức năng truyền khóa phiên bảo mật (3) và chưc năng truyền tin bảo mật (4).
- (3) sẽ gửi yêu cầu xin khóa phiên tới tác nhân ngoài RA Application Server, sau khi nhận được khóa phiên (3) sẽ gửi nó sang cho (4) để thực hiện mã hóa.
-Sau khi có được thông tin về trạng thái của kênh mật, và khóa phiên (4) đảm bảo việc truy cập DB Server của User là an toàn.
4.3.4 Sơ đồ mức dưới đỉnh
Phân tích:
+ Đầu tiên, câu truy vấn CSDL của User sẽ được mã hóa, và ký, sau đó gửi đến cho DB Server thông qua chức năng truyền tin.
+Quá trình truyền tin kết thúc, thông tin trên đường truyền sẽ được xác thực xem đó có đúng là truy vấn của User trong hệ thống hay không. Nếu truy vấn đúng là của User trong hệ thống, thì thông tin mã hóa sẽ được chuyển đến chức năng giải mã, kết quả giải mã là câu truy vấn CSDL. Kết quả này sẽ được gửi đến thực thể ngoài DB Server.
+ DB Server xử lý truy vấn có được kết quả, kết quả được gửi vào hệ thống. Quá trình truyền kết quả đến User về cơ bản là giống với quá trình truyền câu truy vấn tới DB Server.
Chú ý: Chức năng truyền tin lấy khóa phiên và trạng thái đường truyền lần lượt từ 2 tác nhân trong của hệ thống là truyền khóa phiên bảo mật và thiết lập kênh mật SSL.
4.4 Thiết kế các quy trình của hệ thống kiểm soát truy cập CSDL từ xa
Từ phân tích thiết kế hệ thống ở trên ta có biểu đồ Use Case của hệ thống:
System User management User Login/Logout Verify token Sign/Verify signatures Exchange data Session management
Generate session key
Encrypt/Decrypt
RA Application Server
DBServer
Distribute session key
Destroy session key
4.4.1 Quy trình người dùng đăng nhập vào máy : User : User Client 1 : Remote login() 2 : ReadToken() 3 : Bio-EToken 4 : Capture biometrics() 5 : Biometrics 6 : Verify() 7 : GetCredential() 8 : Username, password
Hình 4-28: Quy trình đăng nhập vào máy
- Chạy chương trình
- Cắm thẻ Bio-Etoken vào máy - Quét đặc trưng sinh trắc - Nhập Username, password Phía Client:
-Thực hiện đối sánh đặc trưng sinh trắc -Kiểm tra Username, password.
4.4.2 Quy trình sinh và phân phối khóa phiên
Client RA Application Server DBServer
1 : CreateLoginRequest() 2 : Sign() 3 : RemoteLoginRequest() 4 : VerifySignature() 5 : CheckCredential() 6 : OK 7 : GenerateSessionKey() 8 : EncryptAndSign()
9 : Session key 10 : Session key
11 : DecryptAndVerify()
12 : DecryptAndVerify() 13 : DestroySessionKey()
4.4.3 Quá trình truy cập từ xa giữa Client và DB Server Client DBServer 1 : SSLConnect() 2 : ConnectOK 3 : CreateLoginRequest() 4 : EncryptBySessionKey() 5 : Sign() 6 : Login() 7 : Verify() 8 : DecryptBySessionKey() 9 : CheckCredential() 10 : LoginOK
4.4.4 Biểu đồ tuần tự của hệ thống
Client : User
RA Application Server DB Server
1 : Remote login() 2 : ReadToken() 3 : Bio-EToken 4 : Capture biometrics() 5 : Biometrics 6 : Verify() 7 : GetCredential() 8 : Username, password 9 : CreateLoginRequest() 10 : Sign() 11 : RemoteLoginRequest() 12 : Verify() 13 : CheckCredential() 14 : GenerateSessionKey() 15 : EncryptAndSign()
16 : Session key 17 : Session key 18 : DecryptAndVerify() 19 : DecryptAndVerify() 20 : DestroySessionKey() 21 : SSLConnect() 22 : ConnectOK 23 : CreateLoginRequest() 24 : EncryptBySessionKey() 25 : Sign() 26 : Login() 27 : Verify() 28 : DecryptBySessionKey() 29 : CheckCredential() 30 : LoginOK 31 : LoginOK
Hình 4-31: Biểu đồ tuần tự của hệ thống
CHƯƠNG NĂM:
CÀI ĐẶT ỨNG DỤNG KIỂM SOÁT TRUY CẬP CSDL TỪ XA TRÊN NỀN HỆ THỐNG BioPKI
Trong chương này sẽ trình bày chi tiết về phân tích thiết kế cài đặt ứng dụng kiểm soát truy cập từ xa.
5.1 Phân tích yêu cầu
Nhiệm vụ chủ yếu của đồ án tham gia vào xây dựng hệ thống kiểm soát truy cập CSDL trên môi trường mạng không an toàn, do đó chương trình xây dựng cần có các chức năng cơ bản sau:
- Xác thực người dùng bằng phương pháp sử dụng mật khẩu và đối sánh