3.2.1 Hệ thống con CA
Hệ thống con CA bao gồm 2 bộ phận:[10]
OpenCA
OpenCA là khối chức năng của hệ lõi OpenCA được cài đặt trên máy chủ nền tảng Linux. Các chức năng chính của OpenCA bao gồm :
- Quản lý yêu cầu, quản lý và phát hành chứng thư số.
- Cung cấp một giao diện web cho phép người điều hành CA quản trị được các yêu cầu, từ đó phát hành chứng thư số.
CA Operator
CA Operator là ứng dụng xây dựng trên nền tảng Windows được cài đặt trên một máy trạm tác nghiệp (offline) tại trung tâm phát hành chứng thư số. Các chức năng chính của CA Operator bao gồm:
- Là công cụ quản trị của người điều hành CA.
- Cung cấp ứng dụng cho phép người điều hành CA nhập thông tin yêu cầu vào cơ sở dữ liệu của OpenCA.
- Cung cấp ứng dụng để đưa vào thiết bị nhúng các thông tin sau chứng thư số, khóa riêng, đặc trưng sinh trắc của người đăng ký.
Hình 3-18: Biểu đồ phân rã chức năng của CAOperator
• Giao dịch với RA:
Cấp chứng thư số mới: Nhận request từ RA, cấp chứng thư, ghi chứng thư và thẻ rồi trả lại cho RA
Hủy chứng thư số: Nhận yêu cầu từ RA, đánh dấu hủy và cập nhật vào CSDL, trả lời lại cho RA
• Giao tiếp với CA:
Cấp mới chứng thư số: submit request lên CA, thông qua giao diện web của OpenCA issue chứng thư, lấy chứng thư từ CSDL của CA, ghi ra file và trả lại cho RA
Hủy chứng thư số: Cập nhật vào CSDL hủy bỏ chứng thư số nào đó Cấp lại chứng thư số: trước tiên là hủy chứng thư cũ, rồi cấp lại một
chứng thư mới
• Ghi Token:
Nhận đặc trưng sinh trắc của người dùng do RA gửi lên, mã hóa với khóa cá nhân rồi ghi ra thiết bị nhúng (Token), trả token cùng với chứng thư cho RA
3.2.2 Hệ thống con RA (Registration Authority)
RA là một hệ thống con xây dựng trên nền tảng Windows được cài đặt trên các máy chủ tác nghiệp đặt tại trung tâm đăng ký.
RA bao gồm 2 bộ phận: bộ phận phát hành chứng thư số và bộ phận cung cấp các dịch vụ cho phép người dùng sử dụng chứng thư số đối với các ứng dụng cụ thể. [10]
Bộ phận dịch vụ thẻ: Cung cấp các dịch vụ về thẻ
- Phát hành thẻ (cũng là phát hành chứng thư số) - Xử lý mất thẻ (hủy chứng thư số theo yêu cầu) - Cấp mới thẻ (cấp mới chứng thư số).
Bộ phận dịch vụ chứng thư số :
- Cung cấp các dịch vụ để sử dụng chứng thư số tương ứng với từng ứng dụng cụ thể như chữ ký số, mã hóa thông điệp…
- Dịch vụ xác thực chứng thư số: kiểm tra thông tin, tính hợp lệ của chứng thư số.
- Dịch vụ cung cấp chứng thư số theo serial number…
Ngoài ra RA cũng đảm nhận nhiệm vụ quản lý người dùng và các thông tin kèm theo (thiết bị nhúng, chứng thư số…)
Hình 3-19: Biểu đồ phân rã chức năng của RA
• Giao tiếp với LRA:
Cấp chứng thư số mới: Nhận thông tin đăng kí xin cấp chứng thư số mới do LRA gửi lên, trả thẻ lại cho LRA để phát cho người dùng
Hủy chứng thư số: Nhận yêu cầu hủy chứng thư số của một user từ LRA, kiểm tra thông tin user, chứng thư, token có đúng hay không, đánh dấu hủy chứng thư trong CSDL, trả lời lại cho LRA để thông báo kết quả đến người dùng
• Giao tiếp với CA Operator:
Cấp chứng thư số mới: gửi thông tin xin cấp chứng thư lên cho CA Operator, nhận thẻ và chứng thư để trả lại cho LRA
Hủy chứng thư số: tạo yêu cầu hủy chứng thư số, gửi lên cho CA Operator và nhận lại kết quả hủy từ CA Operator
Cấp lại chứng thư số: bao gồm 2 thao tác hủy chứng thư cũ, cấp lại chứng thư mới
• Setup:
Kết nối với LRA: kết nối, send test message để chứng tỏ thông với LRA Kết nối với CA Operator: offline, cần kí lên các thông tin gửi cho CA
Operator và xác thực các thông tin nhận được từ CA Operator
Kết nối với ứng dụng: Mở cổng cho các ứng dụng truy cập và sử dụng các dịch vụ chứng thư số
• Cung cấp dịch vụ sử dụng chứng thư số:
Xác thực chứng thư số: Kiểm tra xem chứng thư đó có đúng của hệ thống và còn hiệu lực hay không
Download chứng thư số: cho phép các ứng dụng download các chứng thư số của người dùng để thực hiện giao dịch điện tử
3.2.3 Hệ thống con LRA (Local Registration Authority)
LRA là một hệ thống con xây dựng trên nền tảng Windows được cài đặt trên các máy trạm tác nghiệp đặt tại chi nhánh đăng ký chứng thư số. LRA là nơi giao tiếp trực tiếp với người dùng các vấn đề về thẻ :[10]
- Phát hành thẻ (chứng thư số) mới: nơi tiếp nhận yêu cầu, mẫu sinh trắc, đồng thời là nơi trả thẻ cho khách hàng.
- Xử lý mất thẻ (chứng thư số): nơi khách hàng đến để yêu cầu hủy chứng thư số trong trường hợp mất thẻ.
- Thành phần này đóng vai trò PUB trong OpenCA Hình (3-4) miêu tả cụ thể các chức năng của LRA
Hình 3-20: Biểu đồ phân rã chức năng của LRA
• Giao tiếp với người dùng:
Cấp chứng thư mới: nhận thông tin đăng kí (bao gồm cả thông tin user nếu chưa là user của hệ thống), trả thẻ lại cho ngươid dùng nếu yêu cầu được chấp nhận và cấp chứng thư
Hủy chứng thư số: Nhận yêu cầu hủy từ User, thông báo lại kết quả việc hủy
Cấp lại chứng thư số: gồm 2 thao tác: hủy chứng thư cũ và cấp lại chứng thư mới
• Giao tiếp với RA:
Cấp mới chứng thư: Gửi yêu cầu xin cấp mới chứng thư từ người dùng lên cho RA, nhận thẻ được trả về và phát lại cho user
Hủy chứng thư số: Gửi yêu cầu hủy chứng thư số của user và nhanh kết quả việc hủy, thông báo lại cho user
Cấp mới chứng thư
• Setup hệ thống: Xác thực chứng thư, kết nối đến RA để tiến hành các giao dịch
3.2.4 Ứng dụng người dùng
User Application là một ứng dụng cho phép người dùng truy cập đến trung tâm dịch vụ chứng thư số của RA để sử dụng chứng thư số của mình vào một số ứng dụng như chữ ký số, mã hóa thông điệp, kiểm soát truy cập từ xa.
CHƯƠNG BỐN:
XÂY DỰNG ỨNG DỤNG KIỂM SOÁT TRUY CẬP MẠNG TRÊN NỀN HỆ THỐNG BioPKI
4.1 Phân tích bài toán kiểm soát truy cập mạng4.1.1 Bài toán kiểm soát truy cập mạng 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