1.1 Hệ thống chữký điện tử từ xa - Sign Server
Nền tảng chữký điện tử - Sign Server [27] là kí số phía máy chủ, các khóa chữký được giữ an toàn ở phía máy chủ (dùng module bảo mật phần cứng – Hardware security Module để lưu trữ các khóa chữ ký) và người ký được xác thực để thực hiện ký điện tử từ xa. Các tài liệu hỗ trợ ký số bao gồm: PDF (ISO 32000), XAdES-BES, XAdES -T, XMLdSig, CMS/PKCS#7, and Plain (PKCS#1, etc.)
73
Hình vẽ 3.1 – Hệ thống chữ ký số điện tử từ xa – Sign Server
- Chữ ký số điện tử từ xa kết hợp được với các trình phát triển độc lập từphía người dùng (client-side) hoặc sử dụng trình duyệt web hoặc tích hợp với các ứng dụng của bên thứ ba như cURL
- Trong nền tảng máy chủ chữ ký sốđiện tử từ xa, các tiến trình và các thành phần xử lý các yêu cầu như xác thực, cấp phép hoặc tương tác với các thành phần bên trong. Cấu hình và nhật ký có thể được tùy chọn lưu trữ trong cơ sở dữ liệu.
a) Nhóm tiến trình (workers): để thực thi các hành động cụ thể như kí vào các tệp thường với khóa cụ thể.
Các thành phần: là các chức năng cụ thểđược cấu hình trong nhóm tiến trình • Thẻ mã hóa (crypto token): cung cấp quyền truy cập vào các khóa và các
hoạt động mã hóa. Mỗi trình ký được cấu hình cụ thể tới nhóm tiến trình mã hóa.
• Ủy quyền: quyết định được cho phép hoặc không, các tùy chọn bao gồm xác thực chứng chỉứn dụng bảo mật máy khách HTTPS/TLS, xác thực cơ bản HTTP, hạn chế địa chỉ IP hoặc sử dụng trung gian ngược (Proxy ngược)
• Nhật ký các tiến trình trong quá trình thực thi: các yêu cầu ký được lưu trữ thành lịch sử trong Nhật ký tiến trình dưới dạng tệp hoặc lưu vào cơ sở dữ liệu.
b) Trình ký (Signers): bộ làm việc thực hiện các thao tác kí số. Trình ký chỉđịnh cách thực hiện tạo chữ ký, sử dụng khóa và chứng chỉ nào.
74
Có nhiều cách thức thực hiện của Trình ký để ký cho các định dạng khác nhau: • Ký tài liệu cho mọi tài liệu kỹ thuật số, được thiết kế ký tự động và các hoạt động mã hóa khác trong tài liệu kỹ thuật số như trình ký pdf (pdf signer), trình ký cho chuẩn XadES (XadES Signer), CMS…
• Ký mã (Code signing): quá trình ký kỹ thuật số các tệp thực thi và tập lệnh để xác nhận tác giả phần mềm và đảm bảo rằng mã không bị thay đổi hoặc bị hỏng kể từ khi được ký ví dụ ký mã rõ ràng (plain signer) - người ký thuần túy có thể ký dữ liệu tùy ý và chỉ cần tạo ra một chữ ký ởđịnh dạng được xác định bởi thuật toán chữký đã định cấu hình; trình ký OpenPGP (OpenPGP Signer)có thể ký dữ liệu tùy ý và tạo ra chữ ký tách rời OpenPGP (RFC # 4880) ở dạng mã nhị phân hoặc ASCII hoặc chữký văn bản rõ ràng; Debian Dpkg-sig Signer;…
• Dấu thời gian (Time stamping): dấu thời gian thường được sử dụng cùng với chữ ký điện tử để cung cấp bằng chứng rằng tài liệu đã tồn tại trước một thời điểm nhất định và cũng có thể được sử dụng cùng với chữ ký nâng cao để đảm bảo tính hợp lệ lâu dài của tài liệu lưu trữ.
• Hộ chiếu điện tử (ePassports): nền tảng ký sốđiện tử từxa đọc được ký số từ hộ chiếu điện tử (chuẩn ICAO) bằng máy quét hộ chiếu - Machine Readable Travel Document (MRTD) thông qua bộ trình ký MRTD SOD Signer.
c) Bộ tiến trình mã hóa (Crypto Worker): là nơi nắm giữ và cấu hình các thành phần thẻ mã hóa (Crypto token) được sử dụng để truy cập tài liệu quan trọng. Bằng cách cấu hình thẻ mã hóa trong bộ tiến trình mã hóa thì nhóm tiến trình (workers) sử dụng để ký.
• Thẻ mã hóa cung cấp quyền truy cập vào các khóa và các hoạt động mã hóa. Mỗi trình ký được cấu hình cụ thể tới nhóm tiến trình mã hóa. • Thẻ mã hóa sử dụng phần mềm lưu trữ kho khóa (software keystore)
gồm
• PKCS # 12 (.p12 / .pfx) hoặc kho khóa Java JKS (.jks) kế thừa trong hệ thống tệp cục bộ hoặc kho khóa được lưu trữ trong cấu hình (trong cơ sở dữ liệu).
• và sử dụng Mô-đun bảo mật phần cứng (HSM) là PKCS11CryptoToken.
d) Bộ điều phối (Dispatchers): không thực hiện bất kỳ quá trình xử lý nào (tức là ký) của riêng mình mà thay vào đó chuyển tiếp yêu cầu đến nhóm tiến trình thực thi. Bộ điều phối chuyển tiếp yêu cầu đến nhóm tiến trình đầu tiên có chứng chỉ hợp lệ hoặc chuyển tiếp yêu cầu đóng dấu thời gian (time stamp).
Cài đặt Sign Server [28]
Các điều kiện bắt buộc:
75
• Application Server: Jboss EAP 7.0 - 7.2; WildFly 9, 10, 11, 14
• Database: MariaDB 5.5/10 (hoặc MySQL 5.5 hoặc PostgreSQL 9 hoặc Oracle Database 10/11g
• Công cụ triển khai: Apache Ant 1.9.1 hoặc phiên bản cao hơn
• Tùy chọn: công cụ hỗ trợ xây dựng như Apache Maven 3 nếu muốn biên dịch mã nguồn của Sign Server
Hệ điều hành máy chủ chữ ký từ xa: Centos OS 6.5 hoặc phiên bản cao hơn Các bước cài đặt [19]:
• Giải nén file sign server: signserver-5.x.y-src.tar.gz
• Biên dịch sign server trên Cent OS: nếu sử dụng mã nguồn để triển khai • Thiết lập các biến môi trường
• Cài đặt cơ sở dữ liệu cho hệ thống chữký điện tử từ xa • Cấu hình kho lưu trữ khóa
• Cấu hình máy chủ ứng dụng Jboss EAP để Sign server được thực thi
• Đăng ký và thiết lập một SSL miễn phí https://zerossl.com/để tích hợp hệ thống chữ ký sốđiện tử từ xa
• Truy cập quản trị Sign Server qua trình duyệt:
http://103.74.121.154:8080/signserver/
Để kiểm thử Sign Server sau khi cài đặt: xem chi tiết tại mục [Phụ lục A]
1.2 Đề xuất nền tảng ký sốđiện tử từ xa cho các giao dịch đảm bảo trong doanh nghiệp trên môi trường Internet trường Internet
Như hiện tại, tại Việt Nam người dùng hoặc tổ chức đang sử dụng các hình thức như usb token, smart card, sim PKI và các thiết bị chuyên dụng HSM để thực hiện ký số điện tử từ xa [chi tiết tại Chương 1, mục 4 – Các mô hình đang áp dụng chữ ký điện tử tại Việt Nam]. Các phương thức đều có ưu và nhược điểm, phương pháp dùng usb token/smart card, Sim PKI mang tính cá nhân hóa khi ký số nhưng bất tiện phải đi kèm thiết bị, còn phương pháp HSM với chi phí phần cứng cao cũng như khả năng mở rộng và nâng cấp bị hạn chế, còn phương pháp ký số điện tử từ xa tiện lợi có thể sử dụng cùng với thiết bị HSM hoặc không sử dụng thiết bịHSM mà lưu vào keystore (module mã hóa – lưu cặp khóa công khai và khóa riêng). Ngoài ra ký số điện tử từ xa bằng phần mềm không phải phần cứng có tính mở rộng cao và kết hợp với các phương pháp xác thực 2 bước khác như Google Authenticator/OTP/Smart OTP.
Bên cạnh trong một tổ chức sẽ có nhiều các phần mềm nghiệp vụđơn lẻ thực hiện công tác hoạt động của tổ chức như quản lý văn bản, quản lý vật tư, luân chuyển chứng từ giữa các bộ phận/nhân sự, quản lý khách hàng, quản lý cán bộ, quyết định, hợp đồng,…Để nhân sự các bộ phận có thể tiến hành ký số điện tử vào từng chứng từ, văn bản của từng phần mềm nội bộ hiện tại là không có phương án, hoặc nếu sử dụng thiết bị chuyên dụng HSM thì chi phí cao và các phần mềm nghiệp vụ phải sửa lại toàn bộ các quy trình khi ký số vào văn bản hoặc chứng từ.
76
Vì vậy luận văn cũng đề xuất xây dựng nền tàng ký số điện tử từ xa như mô hình dưới: - Toàn bộ các giải pháp ký số điện tử trên phần cứng HSM được thay thế bằng phần
mềm để thực hiện và cài đặt trên máy chủ ký số để thực hiện ký số điện tử từ xa. - Không sử dụng phần cứng HSM đểlưu khóa công khai và khóa riêng và được thay
thế bằng hệ thống phần mềm keystore.
- Các phần mềm nghiệp vụ (chứng từ, văn bản,..) sẽ tương tác với hệ thống phần mềm Server ứng dụng đểtương tác ký sốđiện tử từ xa vào các dữ liệu theo tiêu chuẩn tại mục 2 – Chương 2 – Nền tảng quản lý ký số điện tử từ xa.
- Để tăng tính cá nhân hóa giống như phương thức usb token, smart card, sim PKI (mỗi cá nhân chịu trách nhiệm khi ký số điện tử), nền tảng ký số điện tử từ xa có cung cấp phương thức xác thực 2 bước (Google Authenticator hoặc OTP hoặc SmartOTP)
Sign Server Server Ứng dụng
Người dùng
Validation Authority
2. Server ứng dụng gửi dữ liệu cần ký/xác thực sang Sign Server
1. Người dùng đăngnhập Ký/Xác thực dữ liệu 3. Sign Server sử dụng CKS
mềm hoặc HSM để ký dữ liệu
4. Sign Server gửi lại kết quả
3. Kiểm tra trạng thái chứng thư số CKS mềm HSM Xác thực 2 bước: 2FA / OTP / SmartOTP Nền tảng ký số điện tử từ xa
Hình 3.2 – Đề xuất mô hình nền tảng ký số điện tử từ xa
Server Ứng dụng:
- Là hệ thống tiếp nhận các dữ liệu của người dùng từ các phần mềm ứng dụng trong doanh nghiệp như phần mềm hóa đơn điện tử, phần mềm quản lý văn bản, phần mềm giao dịch, phần mềm nhân sự, phần mềm CRM, phần mềm vật tư,…
77
- Thực hiện ký số, xác thực dữ liệu (định dạng file pdf, office, xml, text, giao dịch ngân hàng, giao dịch chứng khoán, ... ), kiểm tra hiệu lực của chứng thư số.
SignServer:
- Là hệ thống phần mềm mã nguồn mở Sign Server Primekey [27] ký/xác thực dữ liệu, tối ưu hóa khả năng tương tác với HSM, Usb Token, SmartCard, Chứng thư mềm,…
- SignServer thực hiện các vấn đề ký số tập trung và ký sốđại diện cho một tổ chức, doanh nghiệp, giải pháp cung cấp các API ký số, cấu hình dạng webservice, cung cấp các dịch vụ dành cho phân hệ Server ứng dụng và phân hệ Admin
Phân hệ Admin: thực hiện cấu hình và cài đặt các chức năng quản lý chứng thư số, quản lý
user, quản lý giao dịch của SignServer.
VA (Validation Authority): là hệ thống kiểm tra hiệu lực chứng thư số của nhà cung cấp dịch
vụ CA
Nền tảng ký sốđiện tử từxa đã thực hiện các tính năng sau:
• Ký số, xác thực dữ liệu tập trung
• Quản trị chứng thư số, người dùng trên giao diện web • Quản lý các giao dịch
• API tích hợp với các ứng dụng web, desktop, mobile.
• Cấu hình ảnh nền, vịtrí đặt chữ ký, font chữ, mẫu chữ, …. trên file pdf • Tối ưu hóa việc tương tác với các thiết bị HSM, USB Token, CTS.
• Tích hợp SignServer với mục đích sử dụng chữ ký số đại diện cho tổ chức, doanh nghiệp: với mục đích sử dụng chữ ký số đại diện cho tổ chức, doanh nghiệp: các cá nhân trong tổ chức sẽ sử dụng chung một chữ ký số. Chữ ký số này được lưu trữ SignServer dưới dạng chữ ký số mềm hoặc lưu trữ trong thiết bị chuyên dụng HSM.