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
09:00 | 17/09/2024
Hệ thống TETRA được sử dụng rộng rãi cho các hệ thống thông tin chuyên dùng như cảnh sát, cứu hỏa, dịch vụ khẩn cấp, dịch vụ an ninh thậm chí là quân đội [1]. Tuy nhiên với sự phát triển của công nghệ di động mạng tổ ong công cộng (GSM, 3G, 4G, 5G), nhiều ý kiến cho rằng nhiều người dùng TETRA có thể sẽ chuyển sang sử dụng hệ thống công cộng. Bài báo này phân tích những yêu cầu chặt chẽ của TETRA và những ưu điểm nó với hệ thống truyền thông công cộng, từ đó có cái nhìn tổng thể hơn về xây dựng hệ thống liên lạc chuyên dùng với TETRA.
10:00 | 16/08/2024
Trong những năm gần đây, công nghệ Deepfake đã trở nên ngày càng phổ biến hơn, cho phép tạo ra các video thực đến mức chúng ta khó có thể phân biệt với các video quay thực tế. Tuy nhiên, công nghệ này đã bị các tác nhân đe dọa lợi dụng để tạo ra những nội dung giả mạo, hoán đổi khuôn mặt nhằm mục đích lừa đảo, gây ảnh hưởng tiêu cực đến xã hội. Do đó, việc phát triển các công cụ phát hiện Deepfake mang tính cấp bách hơn bao giờ hết. Bài viết này sẽ giới thiệu tổng quan về một số kỹ thuật và công cụ phát hiện Deepfake hiệu quả.
13:00 | 17/06/2024
Để tăng cường tính bảo mật và khắc phục các lỗ hổng, Microsoft thường phát hành định kỳ những bản cập nhật dành cho Windows, trong đó có các bản vá Patch Tuesday hàng tháng. Việc nắm bắt các bản vá này rất quan trọng để chủ động phòng tránh trước các mối đe dọa mạng. Bài viết này đưa ra quy trình cập nhật bản vá bảo mật Windows trên các máy trạm dành cho người dùng cuối, việc thực hiện cập nhật trên máy chủ Windows Server thực hiện tương tự.
10:00 | 17/05/2024
Mã độc không sử dụng tệp (fileless malware hay mã độc fileless) còn có tên gọi khác là “non-malware”, “memory-based malware”. Đây là mối đe dọa không xuất hiện ở một tệp cụ thể, mà thường nằm ở các đoạn mã được lưu trữ trên RAM, do vậy các phần mềm anti-virus hầu như không thể phát hiện được. Thay vào đó, kẻ tấn công sử dụng các kỹ thuật như tiêm lỗi vào bộ nhớ, lợi dụng các công cụ hệ thống tích hợp và sử dụng các ngôn ngữ kịch bản để thực hiện các hoạt động độc hại trực tiếp trong bộ nhớ của hệ thống. Bài báo tìm hiểu về hình thức tấn công bằng mã độc fileless và đề xuất một số giải pháp phòng chống mối đe dọa tinh vi này.
Trong thời đại ngày nay, 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. So với các loại tấn công khác, tấn công qua kênh kề đang được nghiên cứu do khả năng khôi phục lại khóa bí mật trong khi hệ thống vẫn hoạt động bình thường mà không hề làm thay đổi phần cứng. Bài báo này sẽ trình bày một cách sơ lược về những kết quả cuộc tấn công kênh kề lên mã hóa RSA cài đặt trên điện thoại thông minh sử dụng hệ điều hành Android tại Viện Khoa học - Công nghệ mật mã. Nhóm tác giả đã tấn công khôi phục được một phần khóa bí mật của mã hóa RSA cài đặt trên điện thoại thông minh và chứng minh khả năng rò rỉ thông tin qua kênh kề.
14:00 | 11/09/2024
Một ví dụ điển hình trong việc triển khai mô hình Zero Trust thành công là của Tập đoàn công nghệ Microsoft. Điều này minh chứng cho cách một tổ chức lớn có thể bảo vệ tài nguyên và người dùng bằng các phương pháp kiểm soát nghiêm ngặt, đảm bảo an ninh mạng toàn diện. Đây cũng là bài học kinh nghiệm cho các tổ chức trong quá trình triển khai mô hình bảo mật hiện đại này.
10:00 | 14/11/2024