Vào thời điểm năm 2015, sau nhiều năm phát triển chữ ký số điện tử, nhiều vấn đề đã được đặt ra, trong đó có vấn đề ký số điện tử trên nền tảng web. Mặc dù trước đó đã có nhiều giải pháp như Plug-in, Add-on hay Extension, nhưng vẫn còn nhiều bài toán cần giải quyết khi triển khai. Các bài toán của giải pháp ký số trên web là: chạy trên đa nền tảng trình duyệt, đa hệ điều hành, nhiều thiết bị và ngôn ngữ lập trình hỗ trợ, dễ tích hợp và triển khai. Do đó cần một giải pháp ký số điện tử mới để đáp ứng toàn bộ bài toán trên.
Để đảm bảo an toàn cho các giao dịch điện tử thì tệp phải được ký số điện tử trên máy tính ngay sau khi mở cửa sổ chọn tệp và trước khi được đính lên một trang web, sau đó mới thực hiện gửi tệp đi. Trong khi đó, các trình duyệt là một ứng dụng chạy trong môi trường cách ly (sandbox) chỉ cho phép trang web giao tiếp với tệp bên ngoài thông qua các tiện ích như: Plug-in, Extension, Add-on hay Native Client. Ngoài ra, việc lập trình một trang web cho phép giao tiếp với tệp bên ngoài là không thể, vì các phần tử lập trình (gọi là Control) cho phép chọn tệp như <input type=”file”/> chạy trong môi trường cách ly như trình duyệt và không thể can thiệp thao tác ký số chen giữa sau khi mở cửa sổ chọn tệp, nên đây là một bài toán khó giải.
Các giải pháp ký số trên web
Các giải pháp ký số trên web hiện tại bao gồm:
Plug-in: Là phần mềm của bên thứ ba, cho phép trình duyệt giao tiếp với tệp bên ngoài. Plug-in còn có thể nhúng vào trong một trang web. Tuy nhiên vì vấn đề bảo mật mà các hãng trình duyệt đã cấm sử dụng plug-in từ năm 2015 và được thay bằng Native Client. Triển khai ký số bằng Plug-in thường khó khăn do Plug-in thường viết trên ngôn ngữ lập trình C/C++ nên khó tích hợp và cồng kềnh khi lập trình.
Extension (hoặc Add-on trên Firefox): Là phần mềm phát triển của bên thứ ba, nhưng khác với Plug-in là nó có cửa sổ giao diện mở cho người dùng cài đặt, Extension có thể chứa Plug-in. Ví dụ điển hình của Plug-in là ứng dụng tra từ điển, xóa quảng cáo, thời tiết…. Việc triển khai ký số bằng Extension thường gặp khó khăn vì phải viết mỗi Extension cho mỗi trình duyệt khác nhau, sau mỗi lần trình duyệt nâng cấp hoặc thay đổi thì phải cập nhập lại Extension cho phù hợp.
Native Client: Là giải pháp mới của Google Chrome giúp tối ưu hiệu suất thực hiện và bảo mật hơn. Giải pháp này sinh ra để thay thế cho Plug-in và cơ chế trao đổi dữ liệu giữa trình duyệt và các Extension. Ngày nay, đa số trình duyệt cập nhật lại Extension dựa trên giải pháp Native Client. Tuy nhiên, Native Client không hỗ trợ USB e-token, lệnh gọi tệp .exe bên ngoài để thực hiện ký số, hoặc lệnh mở một cửa sổ chọn tệp.
Giải pháp ký số Web Socket
Ngoài các giải pháp ký số trên web như trên, còn có giải pháp Web Socket. Ý tưởng của giải pháp này là tạo ra một cặp phần mềm khách (client) và phần mềm chủ (server) để giao tiếp với nhau trong nội bộ máy tính. Trong đó, phần mềm chủ viết trên Javascript nhúng trong trang web, giao tiếp với phần mềm khách có thể được viết bằng các ngôn ngữ khác nhau ngoài trình duyệt (như C/C++/C#/Java/Python....).
Hình 1. Mô hình giải pháp công nghệ Web Socket
Quy trình thực hiện của Web Socket như sau:
1. Người dùng thực hiện chọn chức năng ký số trên trang web, từ đây, chương trình sẽ gọi hàm Javascript để bắt đầu khởi tạo Web Socket:
var ws = new WebSocket(“ws://localhost:” + Port); // Port là tham số cổng.
2. Phần mềm chủ thực hiện bắt tay với phần mềm khách ở bên ngoài đang chờ sẵn.
3. Sau khi phần mềm chủ nhận thông tin bắt tay xong, thực hiện gửi các mã lệnh đến cho phần mềm khách đang chạy ngầm chờ sẵn:
ws.send(“MDZ” + “|” + index + “|”); // MDZ là mã lệnh chọn tệp, index là số thứ tự của tệp.
Phần mềm khách dựa vào các mã lệnh do người lập trình quy định để thực hiện và gửi trả kết quả về cho phần mềm chủ, như mở cửa sổ, ký tệp, xóa tệp, xác thực lại tệp đã ký, gửi tệp đi….
4. Hai phần mềm khách chủ giao tiếp với nhau qua lại và kết thúc phiên bằng câu lệnh websocket.close(), khi người dùng tải lại trang web, thoát trang web, tắt trình duyệt hoặc tắt phần mềm khách.
Hình 2. Một số giao dịch của giải pháp Web Socket
Web Socket ra đời là để thay thế cho giao thức HTTP truyền thống có thủ tục bắt tay nhiều bước và tốc độ chậm. Ở đây, Web Socket chạy trong nội bộ máy tính, với thủ tục bắt tay nhanh kèm theo các câu lệnh tối giản nên tốc độ thực hiện cao, đặc biệt là khi làm việc với tệp có dung lượng lớn (500MB trở lên). Có 2 cách lưu tệp như sau, nếu số lượng và dung lượng tệp ít thì lưu vào cơ sở dữ liệu SQLite của trình duyệt và gửi tệp bằng trình duyệt, còn nếu dung lượng tệp lớn hoặc nhiều tệp được chọn thì lưu ở ngoài trình duyệt và gửi bằng phần mềm khách.
Có thể sử dụng hàm băm như SHA1, SHA256 bên trong Web Socket để chống tấn công xen giữa các giao dịch của Web Socket. Web Socket cho phép xác thực bằng chứng thư số qua kênh SSL 2 chiều khi bắt tay và trước khi phần mềm khách gửi tệp ký lên máy chủ. Giải pháp Web Socket đa ngôn ngữ lập trình hỗ trợ phần mềm máy khách, có thể viết một lần cho các trình duyệt, chạy đa thiết bị (di động, máy tính bảng…) và đa hệ điều hành. Hiện nay, đây là giải pháp độc đáo và khả thi cho việc thực hiện ký web trên các thiết bị di động.
Bảng 1. So sánh giải pháp ký số Web Socket với các giải pháp ký số trên web khác
Bảng 1 so sánh các giải pháp ký số trên web. Môi trường so sánh được thực hiện trên cùng một máy tính, cùng một loại trình duyệt, cùng một hệ điều hành, cùng phiên tại một thời điểm sử dụng.
Kết luận
Kể từ cuối năm 2015, giải pháp ký số sử dụng Web Socket đã được triển khai ở nhiều nơi tại các Bộ, ban, ngành và các cơ quan nhà nước khác. Đây là giải pháp ký số có tốc độ cao, tải được dung lượng tệp lớn, chi phí thấp, dễ tích hợp, góp phần giúp cho giao dịch điện tử trong Chính phủ điện tử ngày một lưu thông hơn và giải quyết các yêu cầu của bài toán trước đó đã đặt ra. Mặc dù giải pháp ký số sử dụng Web Socket có nhiều ưu điểm, nhưng một giải pháp mới thay thế cho Web Socket trong tương lai là cần thiết với mục đích “viết một lần chạy khắp nơi” (có thể áp dụng cho tất cả các thiết bị và hệ điều hành) và để khử vòng lặp while trong Web Socket.
Lê Minh Lộc - Cục Chứng thực số và Bảo mật thông tin
20:00 | 04/02/2019
20:00 | 04/02/2019
16:00 | 29/01/2019
08:00 | 07/05/2024
Sự phổ biến của các giải pháp truyền tệp an toàn là minh chứng cho nhu cầu của các tổ chức trong việc bảo vệ dữ liệu của họ tránh bị truy cập trái phép. Các giải pháp truyền tệp an toàn cho phép các tổ chức bảo vệ tính toàn vẹn, bí mật và sẵn sàng cho dữ liệu khi truyền tệp, cả nội bộ và bên ngoài với khách hàng và đối tác. Các giải pháp truyền tệp an toàn cũng có thể được sử dụng cùng với các biện pháp bảo mật khác như tường lửa, hệ thống phát hiện xâm nhập (IDS), phần mềm chống virus và công nghệ mã hóa như mạng riêng ảo (VPN). Bài báo sẽ thông tin tới độc giả những xu hướng mới nổi về chia sẻ tệp an toàn năm 2024, từ các công nghệ, giải pháp nhằm nâng cao khả năng bảo vệ dữ liệu trước các mối đe dọa tiềm ẩn.
09:00 | 28/04/2024
Không chỉ tác động đến lĩnh vực an toàn thông tin, Bug Bounty còn được cho là cổ vũ cho nền kinh tế Gig Economy kiểu Orwell. Điều này có là một góc nhìn tiêu cực cho hình thức bảo mật này?
16:00 | 21/03/2023
Theo đánh giá của các chuyên gia, phần lớn các vi phạm bảo mật dẫn đến các chiến dịch lừa đảo thành công đến từ lỗi của con người. Bài báo sau đây sẽ đưa ra một số phương thức để chúng ta có thể củng cố bức tường lửa con người thông qua mô hình thiết kế hành vi của Fogg (Tiến sĩ BJ Fogg - Đại học Stanford Mỹ).
13:00 | 26/12/2022
Một khía cạnh quan trọng của công nghệ blockchain (chuỗi khối) là xác định người dùng nào công bố khối tiếp theo. Điều này được giải quyết thông qua việc thực hiện một trong nhiều mô hình đồng thuận có thể. Trong khi cố gắng cải thiện hiệu quả năng lượng của các chuỗi khối sử dụng bằng chứng công việc (Proof of Work - PoW) trong cơ chế đồng thuận, bằng chứng cổ phần (Proof of Stake - PoS) lại đưa ra một loạt các thiếu sót mới đáng kể trong cả mô hình tiền tệ và mô hình quản trị. Bài viết trình bày lại các phân tích của [1] và chỉ ra rằng những hệ thống như vậy là độc tài, độc quyền nhóm và được ủy quyền (permissioned).
Trong lĩnh vực chữ ký số, lược đồ ký số dựa trên đường cong Elliptic (ECDSA) được đánh giá là một trong những lược đồ chữ ký số có độ an toàn cao, dù ra đời sau nhưng ECDSA đang dần được thay thế cho lược đồ ký số RSA. Bài báo này tập trung giới thiệu lược đồ ECDSA, ứng dụng của ECDSA trong thực tế và các tham số an toàn được khuyến nghị dùng cho ECDSA.
11:00 | 13/05/2024
Cùng với sự phát triển của khoa học kỹ thuật có ngày càng nhiều những cuộc tấn công vào phần cứng và gây ra nhiều hậu quả nghiêm trọng. Nhiều giải pháp để bảo vệ phần cứng được đưa ra, trong đó, hàm không thể sao chép vật lý PUF (Physically Unclonable Functions) đang nổi lên như là một trong số những giải pháp bảo mật phần cứng rất triển vọng mạnh mẽ. RO-PUF (Ring Oscillator Physically Unclonable Function) là một kỹ thuật thiết kế PUF nội tại điển hình trong xác thực hay định danh chính xác thiết bị. Bài báo sẽ trình bày một mô hình ứng dụng RO-PUF và chứng minh tính năng xác thực của PUF trong bảo vệ phần cứng FPGA.
10:00 | 13/05/2024