Thứ Hai, 21 tháng 1, 2019

Ký số và xác thực trên nền tảng web


Bài báo phân tích, đánh giá những ưu điểm của các giải pháp ký số và xác thực trên nền tảng Web. Đồng thời, giới thiệu một số giải pháp ứng dụng ký số, xác thực dữ liệu trên nền tảng Web đã được triển khai trong thực tế.


1. Giải pháp ký số, xác thực tài liệu trên nền tảng Web
Bài toán đặt ra là cần phải phát triển một hệ thống thông tin với giao diện người dùng trên nền web, có thể truy cập thông qua Internet. Người sử dụng của hệ thống này có thể gửi tài liệu đến máy chủ các tập tin có định dạng khác nhau (Word, PDF, Excel, JPEG, GIF...). Để xác thực người gửi và đảm bảo tài liệu sau khi gửi đi không bị sửa đổi trái phép thì hệ thống cần cung cấp cho người dùng khả năng có thể ký số các tập tin được gửi đi.
Giải pháp ký số trên máy client
Ký số yêu cầu truy cập vào khóa bí mật của người ký. Khóa bí mật của mỗi người chỉ có thể truy cập bởi chính người đó, do đó việc ký số sẽ được thực hiện trên máy tính của người ký (máy client). Nếu người ký phải gửi khóa bí mật của mình đến máy chủ thì sẽ nảy sinh mối đe dọa về an toàn - khóa bí mật có thể bị đánh cắp trên đường truyền. Chúng ta sẽ phân tích các phương pháp tiếp cận có thể ký số tài liệu trên máy client. Một cách tiếp cận là người sử dụng cài đặt trên máy tính của họ một số loại phần mềm thiết kế đặc biệt. Nhưng điều này lại gặp khó khăn là phần mềm ký số phải có các phiên bản riêng biệt hỗ trợ cho các hệ điều hành khác nhau. Ngoài ra, việc hỗ trợ cho các phần mềm như vậy rất phức tạp, bởi vì bất kỳ sự thay đổi nào của chúng sẽ buộc người dùng phải tải về và cài đặt phiên bản mới. Một cách tiếp cận khác là có thể sử dụng ngôn ngữ kịch bản JavaScrip hoặc một số công nghệ kịch bản phía máy trạm khác, chẳng hạn như ActiveX, Macromedia Flash, .NET Windows Forms Controls, hoặc Java applet.
Ký số dữ liệu lưu trữ trên Server sử dụng khóa bí mật trên máy client
Việc ký số dữ liệu lưu trữ trên sever có thể thực hiện theo các phương pháp sau:
- Chuyển chứng thư số và khóa bí mật đến máy chủ: Phương pháp này gây mất an toàn khóa bí mật, nên hầu như không được sử dụng.
- Chuyển tài liệu cho máy client: Mức an toàn của phương pháp này không cao. Nếu việc chuyển tài liệu có thể tiến hành, ký số sẽ được thực hiện bằng cách sử dụng môđun ký số phía máy client (một ứng dụng, plugin trình duyệt hay Java Applet hay ActiveX control).
- Tính toán giá trị băm của dữ liệu trên Server và gửi lại nó cho client: Phương pháp này tương tự phương pháp ký số trên máy client, ngoại trừ tài liệu không được gửi cho client. Phương pháp này đòi hỏi một ứng dụng phía Server có thể nhúng hoặc gắn chữ ký với tài liệu gốc.
Hình 1: Mô hình ký số dữ liệu trên Server
2. Một số giải pháp ký số đã triển khai trên nền tảng Web
Một số giải pháp trên thế giới
Tại các quốc gia có hệ thống chứng thực điện tử phát triển mạnh, các ứng dụng ký số trên nền tảng web cũng được sử dụng nhiều, kèm theo các giải pháp cụ thể đối với từng mô hình hoạt động của hệ thống. Điển hình trong đó là các giải pháp của công ty Digi - Sign và Ascertia.
Digi - Seal Applet là sản phẩm được viết trên nền tảng Java và được phát triển cho người dùng cuối có khả năng ký số, mã hóa, giải mã và xác thực chữ ký số trên nền tảng web. Digi - Seal là giải pháp tốt cho người dùng ký bên phía client. Đối với các dịch vụ trực tuyến hay dịch vụ dựa trên trình duyệt, các giao dịch được sử dụng máy chủ Digi - Seal. Một ứng dụng nhỏ applet sẽ được cài đặt trên máy chủ Web và tự động tải về cho trình duyệt. Đây là hành động “một lần duy nhất” và không cần yêu cầu xử lý từ phía người dùng cuối. Một khi các applet Digi - Seal được kích hoạt, người sử dụng có thể ký form, ký các file tải lên theo ý muốn.
Ưu điểm khi sử dụng Digi - Seal: Có thể ký số lên dữ liệu Web form và file tải lên; hoạt động trên các hệ điều hành Windows, Linux, Solaris, Mac; dễ dàng xác thực hơn so với chữ ký truyền thống.
Go>Sign applet là sản phẩm của công ty Ascertia được viết trên nền java. Ứng dụng này được thiết kế giúp cho ứng dụng ký số phía client được thực hiện dễ dàng và sử dụng trong bất kỳ ứng dụng web nào. Nó loại bỏ những khó khăn liên quan đến phần mềm được cài đặt trên nền tảng Desktop, được thiết kế cho phép những người không chuyên về kỹ thuật có thể ký các văn bản và dữ liệu.
Ưu điểm Go>Sign applet là: Dễ sử dụng, dễ dàng cập nhật nâng cấp; hỗ trợ nhiều định dạng tài liệu và nhiều định dạng chữ ký PDF, CMS/PKCS#7, SML DSig, CAdES, XAdES, PAdES; cho phép tùy chọn với nhiều kho lưu trữ khóa; có chức năng hiển thị các tài liệu định dạng PDF, có khả năng kiểm tra các chữ ký đã tồn tại trên tài liệu; phòng chống rò rỉ dữ liệu. Nó còn có thể tích hợp dễ dàng và cung cấp dịch vụ xác thực tập trung, đây là một trong những hỗ trợ rất khác so với Digi - Seal.
Một số giải pháp tại Việt Nam
Hiện nay, các giải pháp ký số trên các ứng dụng web chưa được quan tâm phát triển đúng mức, các giải pháp trong nước hay được sử dụng là: Sử dụng ứng dụng Desktop để ký số tài liệu sau đó tải tài liệu lên web hoặc một số ứng dụng sử dụng các công nghệ của nước ngoài. Ví dụ, ứng dụng chữ ký số cho hệ thống kê khai thuế qua mạng, kê khai hải quan điện tử và sử dụng cho các dịch vụ ngân hàng trực tuyến, chứng khoán điện tử.... Các sản phẩm này được cung cấp bởi một số nhà cung cấp dịch vụ chứng thực chữ ký số công cộng như: FPT- CA, VietTel- CA, VNPT- CA, BKAV- CA.... So với các sản phẩm tương tự của nước ngoài, các sản phẩm này thường có các tính năng đơn giản và thiếu sự hỗ trợ của một số chuẩn và định dạng.
Ví dụ, giải pháp ký số trên nền tảng web trong kê khai thuế qua mạng được ứng dụng ký số của Hệ thống kê khai thuế trực tuyến của Tổng Cục thuế - Bộ Tài chính được viết trên nền java. Đây là một sản phẩm tự phát triển và chỉ hỗ trợ ký số trên tài liệu định dạng PDF. Tài liệu kê khai thuế được chuyển đổi thành tài liệu PDF và ký số tài liệu PDF này. Tài liệu sau khi ký số được ứng dụng applet upload lên Server. Việc sử dụng giải pháp này giúp cơ quan thuế thực hiện cải cách hành chính thuế, tạo thuận lợi cho người nộp thuế, giảm chi phí về thời gian và thủ tục giấy tờ trong việc khai thuế, nộp thuế.
3. Xây dựng giải pháp ký số trên nền tảng Web
Nghiên cứu một số giải pháp trên thế giới và đánh giá, khảo sát ở một số đơn vị trong nước cho thấy một số yêu cầu cần đặt ra khi tích hợp chữ ký số vào các ứng dụng: Tương thích với nhiều trình duyệt web khác nhau; dễ dàng tích hợp vào các hệ thống thông tin có sẵn, có thể chạy trên nhiều hệ điều hành khác nhau.
Dưới đây mô tả một mô hình ký số và xác thực dữ liệu trên nền tảng web có thể triển khai ứng dụng:
Mô hình tổng quan giải pháp ký số, xác thực dữ liệu trên nền tảng web
Hình 2: Mô hình tổng quan
Người sử dụng cuối 1 sau khi nhập liệu trên web form có thể ký dữ liệu trên web form và gửi lên web server, người sử dụng cuối 2 sẽ tải dữ liệu đã ký lên web form trên máy của mình và tiến hành xác thực dữ liệu trên server.
Phân tích các chức năng của ứng dụng Applet
Truy cập vào máy chủ web từ Applet
Ứng dụng applet ký tài liệu phải có một số phương tiện để có thể gửi chữ ký số tới máy chủ. Điều này được thực hiện bằng nhiều cách: Các applet sẽ mở ra một socket để gửi chữ ký, hoặc nó sẽ gửi thông tin của một yêu cầu truy cập vào một địa chỉ URL của máy chủ; hoặc giao tiếp với các trình duyệt và gửi thông tin cho server. Cách tiếp cận cuối cùng là thuận tiện nhất, vì nó đòi hỏi ít chi phí lập trình để gửi và nhận tập tin đã được ký. Trong trường hợp này máy chủ nhận được các tập tin cùng với chữ ký của tập tin trong một yêu cầu trình duyệt web duy nhất, không có thêm bất kỳ hành động nào khác.
Giao tiếp giữa Applet và trình duyệt web
Thông thường, sẽ có một form HTML được sử dụng để gửi các tập tin đến một ứng dụng web không có chức năng ký số. Nếu muốn mở rộng hình thức này để nó hỗ trợ ký số các tập tin, đơn giản là tích hợp một java- applet cho các tập tin trên đó. Trong trường hợp này, applet sẽ thực hiện ký số của file và đưa chữ ký số vào một số trường của form HTML. Khi “summit” form HTML, trình duyệt web sẽ gửi chữ ký cùng với tập tin, vì vậy không cần thiết lập bất kỳ kênh liên lạc nào giữa máy chủ và applet.
Phân tích thiết kế quy trình ký số, xác thực dữ liệu
Có thể tạo chữ ký theo chuẩn CMS/PKCS#7 và ký trên tất cả các định dạng tài liệu.
Lược đồ ký số
Trong sơ đồ này, sử dụng phương pháp tách chữ ký và dữ liệu ký. Do vậy, dữ liệu cần ký không được ghép vào khuôn dạng chữ ký đầu ra và được băm thông qua một hàm băm (SHA- 1 hoặc SHA- 2). Dữ liệu băm được ký bởi khóa bí mật của người ký; khóa bí mật được lưu trong thiết bị USB lưu khóa. ID của chứng thư số người ký cũng được ghép với chữ ký đầu ra. Để thuận tiện cho người xác thực dữ liệu, chứng thư số của người ký cũng được ghép với chữ ký đầu ra để người xác thực không phải tìm kiếm chứng thư số của người ký khi xác thực chữ ký.
Khuôn dạng chữ ký đầu ra gồm các thông tin chính sau: Tên hàm băm được sử dụng, chữ ký số, chứng thư số người ký, ID người ký. Đối với lược đồ ký số dữ liệu có tem thời gian, quy trình ký dữ liệu cũng dựa trên các thuật toán ký chuẩn đã được thiết kế trong thư viện của java; tuy nhiên trước khi ký dữ liệu, các chứng thư số ký được kiểm tra trực tuyến sử dụng CRLs. Ngoài ra, tem thời gian cũng được sử dụng trong quy trình này. Tem thời gian gồm có thời gian chuẩn lấy từ máy chủ cấp tem thời gian và chứng thư số của máy chủ cấp tem thời gian. Tem thời gian sau khi lấy về được kiểm tra trước khi gắn vào chữ ký. Quy trình ký được thể hiện trên sơ đồ trong Hình 3.
Hình 3: Lược đồ ký số trên web
Dữ liệu ký gồm có: Dữ liệu gốc, tên hàm băm, chữ ký số, ID người ký, chứng thư số người ký, tem thời gian.
Lược đồ xác thực dữ liệu
Quá trình xác thực chữ ký được thực hiện theo quy trình ngược lại và cũng sử dụng các thuật toán xác thực cơ bản đã thiết kế trong thư viện chuẩn của Java. Tuy nhiên, tem thời gian và chứng thư số của người ký và của máy chủ cấp tem thời gian sẽ được kiểm tra trước khi xác thực chữ ký (Hình 4).
Hình 4: Lược đồ xác thực ký số
Một số giao diện ứng dụng
Trên cơ sở phân tích thiết kế giải pháp ký số, xác thực dữ liệu trên nền tảng web có thể ứng dụng ký số, xác thực dữ liệu trên nền tảng web trong cả hai trường hợp có sử dụng tem thời gian và không sử dụng tem thời gian trong việc ký số và xác thực. Hệ thống này có thể triển khai trên một số hệ điều hành khác nhau.
4. Kết luận
Bài báo này đã nghiên cứu một số giải pháp ký số, xác thực trên nền tảng Web; phân tích các yêu cầu và mô tả giải pháp tích hợp chữ ký số trên nền tảng Web để đáp ứng các yêu cầu ứng dụng chữ ký trên nền webform của các hệ thống thông tin. Mô hình giải pháp này có thể nghiên cứu để đưa vào ứng dụng trong xác thực giao dịch điện tử của nhiều hoạt động nghiệp vụ khác nhau đang được triển khai tại Việt Nam.
TS. Hồ Văn Hương, KS. Hoàng Chiến Thắng - Cục QLKTNVMM, Ban Cơ yếu Chính phủ

Thứ Bảy, 8 tháng 12, 2018

Tạo Máy Ảo Trên ESXi 6.5: Windows Server 2016

  • 1 Kết nối đến ESXi
  • 2 Upload file ISO cài đặt hệ điều hành
  • 3 Tạo máy ảo Windows
  • 4 Cài đặt Windows Server 2016 trên máy ảo

Tiếp theo loạt bài về chủ để Virtualization, bài viết này sẽ hướng dẫn các bạn tạo máy ảo trên ESXi 6.5, và cài đặt Windows Server 2016 trên máy ảo đó.

Kết nối đến ESXi

Trước hết chúng ta kết nối đến ESXi thông qua vSphere (HTML5 Web) Host Client 6.5​
Bạn có thể dùng hostname hoặc IP của ESXi để truy cập.

Upload file ISO cài đặt hệ điều hành

Bước tiếp theo chúng ta phải tải file ISO cài đặt hệ điều hành (Windows/Linux) lên ESXi datastore. Nếu chưa biết cách upload bạn có thể xem bài viết sau: Hướng dẫn upload file lên ESXi datastore
Ngoài ra để đảm bảo sự tương thích, bạn nên kiểm tra VMware Hardware Comparability Lists (HCL)

Tạo máy ảo Windows

Click phải vào Virtual Machine và chọn Create/Register VM. 
Tiếp theo chúng ta tiến hành thiết lập cấu hình cho máy ảo
Đặt tên và chọn các mục phù hợp (Ví dụ tạo máy ảo Windows chạy hệ điều hành Windows Server 2016 thì thiết lập như sau)
Chọn data store
Thiết lập cấu hình cho máy ảo

Mục CD/DVD Drive chọn Datastore ISO file sau đó Browse đến ISO file bạn đã upload lên.

Nhớ tích vào dòng Connect at power on để khi khởi động máy ảo thì có thể cài đặt luôn
Click Finish để hoàn thành cấu hình máy ảo

Cài đặt Windows Server 2016 trên máy ảo

Sau khi cấu hình máy ảo xong, bạn bật máy ảo bằng cách chọn máy ảo muốn bật và click vào Power on
Chúng ta tiến hành cài đặt Windows Server 2016 như bình thường.
Chọn ngôn ngữ, định dạng ngày giờ, bàn phím rồi click Next
Click Install now
Điền license key hoặc có thể điền sau thì click vào I don’t have a product key 
Chọn phiên bản Windows Server bạn muốn cài
Tích vào I accept …  rồi click Next để tiếp tục
Click vào Custom: Install Windows only . Click vào Upgrade để update nhưng tại đây mình triển khai nên máy ảo nên chọn dòng Custom để cài mới
Chọn ổ đĩa muốn cài đặt
Bước này thiết lập mật khẩu cho Local Administrator. Sau đó click Finish để hoàn thành quá trình cài đặt.
Trên đây là hướng dẫn tạo máy ảo và demo cài Windows Server 2016 lên máy ảo, chúc các bạn thành công.
Tham khảo từ: experts-exchange.com

Cài Đặt Và Cấu Hình ESXi 6.5 lên máy chủ

  • 1 VMware ESXi là gì?
  • 2 Cài đặt ESXi 6.5
  • 3 Cấu hình ESXi 6.5
  • 4 Kết nối ESXi Host

VMware ESXi là gì?

VMware ESXi là thành phần quan trọng trong ảo hóa chuyên nghiệp dành cho doanh nghiệp của VMware (VMware vSphere Hypervisor). VMware ESXi là hệ điều hành cho phép các máy ảo chạy trên nó, có thể coi là thành phần quan trọng nhất trong bộ ảo hóa . VMware ESXi được xây dựng trên nền tảng nguồn mở, sử dụng Linux kernel.
VMware ESXi được cung cấp với các licence khác nhau, với các tính năng khác nhau và giá cả cũng khác nhau. Nhưng do được xây dựng trên nền nguồn mở và để cạnh tranh với các phân mềm ảo hóa khác thì VMware cung cấp cho người dùng phiên bản miễn phí (free licence) với các tính năng cơ bản gồm:
Hỗ trợ không giới hạn CPU vật lý với số core trên mỗi CPU là không giới hạn.
Không giới hạn dung lượng RAM vật lý.
Tối đa trên mỗi máy ảo sẽ được 8-way virtual SMP (Virtual Symmetric Multi-Processing ) – 8 vCPU.
Trước khi được active với key free licence, chúng ta có thể sử dụng đầy đẩu các tính năng trong vòng 60 ngày

Cài đặt ESXi 6.5

Nếu chưa có file ISO bạn có thể tải tại đây: Download ESXi .Sau khi tải về có thể ghi ra CD hoặc Boot từ USB để cài đặt.
Sau khi khởi động máy và chọn boot từ CD/USB ta có màn hình sau:

Quá trình cài đặt bắt đầu tải bộ cài ESXi

Nhấn Enter để tiếp tục:
Nhấn F11 để đồng ý các quy định
Chọn vị trí cài đặt ESXi
Tiếp theo đến phần cài đặt bàn phím, ngôn ngữ và mật khẩu:
Nhấn F11 để bắt đầu cài đặt
Chọn Remove Installation media … để hệ thống không boot vào CD-ROM cài đặt

Sau khi hoàn thành cài đặt, chúng ta tiến hành cấu hình ESXi

Cấu hình ESXi 6.5

Đầu tiên, ta phải log-in vào ESXi

Chọn cấu hình mạng “Configure Management Network”

Đầu tiên bạn phải kiểm tra hệ thống nhận đúng card mạng hay không. Đôi khi máy sẽ không nhận đúng card mạng nên bạn cần chú ý điều này. Sau đó chọn “Network Adapter”

Tiếp theo kiểm tra card mạng ở trạng thái connect hay disconnect

Sau đó nhấn ESC để quay lại và chọn “IPv4 Configuration” để cấu hình IP tĩnh

Nhấn ESC để trở lại chọn “IPv6 Configuration” và chọn Disable IPv6

Nhấn ESC để trở lại và chọn “DNS Configuration” để cấu hình DNS

Nhấn ESC để trở lại và chọn “Custom DNS Suffixes”

Sau khi cấu hình xong chúng ta xác nhận lại một lần nữa và khởi động lại hệ thống.

Kết nối ESXi Host

Sau khi cài đặt và cấu hình xong ESXi các bạn có thể dùng trình duyệt để truy cập vào ESXi Web Client
Chúc các bạn thành công.

Chủ Nhật, 15 tháng 4, 2018

Xử lý lỗi VMware Workstation and Device/Credential Guard are not compatible Problem Resolve trên Window 10

Xử lý lỗi VMware không hoạt động trên window 10 do xung đột với Hyper-V

(VMware Workstation and Device/Credential Guard are not compatible Problem Resolve trên Window 10)



1.       Chúng ta cần làm là: Disable Group Policy...
-       Vào Run -> gỏ gpedit.msc  (nhấn phím window + R để mở cửa sổ Run)

 -       Vào: Local Group Policy Editor - Computer Configuration - Administrative Templates - System - Device Guard - Turn on Virtualization Based Security

-       Mở: Virtualization Based Security -> Chọn “Disable” -> OK



-       Vào Control Panel - Uninstall a Program - Turn Windows features on or off - (Tìm và bỏ chọn: Hyper-V -> OK
-       Không cần khởi động lại máy
-       Vào Cửa sổ màn hình DOS bằng quyền Admin

·         Lần lượt chạy các dòng lệnh sau:
-       bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
-       bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi"
-       bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
-       bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS
-       bcdedit /set hypervisorlaunchtype off
·         Khởi động lại máy và trải nghiệm