Giải pháp di động hóa ứng dụng sử dụng trong mạng chuyên dùng có yếu tố bảo mật

11:00 | 03/09/2024 | GP ATM
Hiện nay, chuyển đổi số đã và đang làm thay đổi nền kinh tế, bùng nổ các ứng dụng công nghệ thông tin, nổi bật là các ứng dụng di động giúp nâng cao hiệu quả trong hoạt động công tác tại các tổ chức và doanh nghiệp. Tuy nhiên, việc sử dụng các ứng dụng di động, đặc biệt là các ứng dụng sử dụng trong mạng chuyên dùng cũng đi kèm với các thách thức liên quan đến bảo mật an toàn thông tin, an ninh mạng. Bài báo này trình bày những thách thức, yêu cầu đặt ra và một số giải pháp di động hóa ứng dụng sử dụng trong mạng chuyên dùng có yếu tố bảo mật.

MỘT SỐ GIẢI PHÁP DI ĐỘNG HÓA ỨNG DỤNG SỬ DỤNG TRONG MẠNG CHUYÊN DÙNG CÓ YẾU TỐ BẢO MẬT

Các ứng dụng phần mềm vừa phải hoạt động được trên đa nền tảng cả trên trình duyệt và di động, tạo thuận lợi cho việc nắm bắt, giải quyết các công việc một cách thuận lợi và hiệu quả nhưng cũng vừa phải đảm bảo tính bảo mật an toàn thông tin, an ninh mạng. Đặc biệt tại các cơ quan, tổ chức Nhà nước và Quân đội, những nơi sử dụng hệ thống mạng chuyên dụng thì yếu tố bảo đảm an toàn thông tin được đặt lên hàng đầu. Dưới đây là một số giải pháp đang được sử dụng rộng rãi, phổ biến trong các ứng dụng hiện nay.

Kiến trúc phần mềm MicroService

Với kiến trúc Monolithic như các sản phẩm cũ, toàn bộ hệ thống sử dụng một codebase, và được triển khai trên một hệ thống máy chủ, chịu trách nhiệm giải quyết tất cả các truy vấn đến. Điều này dẫn đến bất cập về tốc độ thực thi, triển khai hệ thống, duy trì hệ thống và đặc biệt trong phát triển mở rộng hệ thống. Kiến trúc này có những ưu điểm như phát triển và triển khai đơn giản (Có rất nhiều công cụ có thể tích hợp vào kiến trúc này để phát triển. Ngoài ra, tất cả các đoạn code được để chung một thư mục, giúp cho việc triển khai dễ dàng hơn), Hiệu suất tốt hơn (cho phép giao tiếp nhanh hơn giữa các thành phần phần mềm do code và bộ nhớ được chia sẻ) nhưng nhược điểm là Codebase trở nên cồng kềnh theo thời gian, khó áp dụng công nghệ mới và kém linh hoạt.

Hình 1. Kiến trúc phần mềm MicroService

Microservices là các dịch vụ nhỏ, từng dịch vụ này giải quyết một mảng vai trò khác nhau và có thể được phát triển độc lập bởi các nhóm phần mềm khác nhau; các dịch vụ nhỏ tồn tại độc lập nhau về xử lý (process), lưu trữ (database) và request (client/server model), có thể được triển khai độc lập trên các máy chủ khác nhau; Microservices được cho là kiến trúc được sử dụng cho các phần mềm hiện đại vì nó giúp giải quyết được các tồn tại của kiến trúc Monolithic, giúp sản phẩm có thể phát triển, mở rộng liên tục.

Công nghệ JWT giúp xác thực người dùng

JSON Web Token (JWT) là một chuẩn mở (RFC 7519) an toàn cho việc chuyển nhận thông tin qua mạng dựa trên đối tượng JSON. Với các phần mềm hoạt động trên mạng, giải pháp uỷ quyền (Authorization) có vai trò đặc biệt quyết định đến an toàn của sản phẩm và JWT được cho là giải pháp uỷ quyền phù hợp cho các phần mềm hiện đại hiện nay nhờ cơ chế sử dụng chữ ký số. Sau khi đăng nhập thành công, hệ thống trả về thẻ xác thực người dùng được thiết kế gồm 3 phần được phân tách bằng dấu chấm: xxxxx.yyyyy.zzzzz

Phần tiêu đề (Header): lưu thông tin loại hàm băm được sử dụng; phần nội dung (Payload): lưu thông tin về thẻ, bao gồm: tên đăng nhập, quyền. Hiện không cho password, thông tin cần bảo mật vào phần nội dung để tránh có thể bị decode.

Thẻ ủy quyền JMT sẽ chứa chữ ký số được tạo ra bằng cách sử dụng thuật toán HMAC với khóa bí mật “Secret” lên Header và Payload. Kết quả của HMAC được mã hóa base64 để tạo ra chữ ký số. Chuỗi “Secret” này là duy nhất cho ứng dụng và phải được ưu tiên lưu giữ bảo mật trên Server. Khi nhận được JMT, Server tách Header và Payload để được dữ liệu gốc. Sử dụng thuật toán HMAC và khóa bí mật “Secret” để tính lại chữ ký số từ Header và Payload. So sánh chữ ký số tính được với chữ ký số trong JMT. Nếu chúng khớp nhau thì JMT được xác thực và dữ liệu trong Payload có thể tin cậy".

Hình 2. Thiết kế các thành phần của thẻ xác thực

Xây dựng dịch vụ USB token (cho kết nối giữa Web app và USB token)

Chứng chỉ ký số Digital Signature Certificate (Chứng thư số) có thể được xem là đặc trưng chữ ký cho một người dùng trên mạng để phục vụ cho các trao đổi có tính điện tử. Với các hệ thống ứng dụng nội bộ, DSC có thể là các khoá công khai (Public Key) của người dùng. USB Token là một thiết bị phần cứng cầm tay, thường được sử dụng cho mục đích lưu trữ khóa bí mất (Private Key) dùng để giải mã dữ liệu trao đổi được mã hóa bởi khóa công khai.

Để ứng dụng Web có thể trao đổi dữ liệu với USB Token cần có dịch vụ USB Token Service được cài đặt trên từng máy tính người dùng để cho phép trình duyệt có thể trao đổi dữ liệu với USB Token. Cơ chế trao đổi được mô tả như trên sơ đồ Hình 3.

Hình 3. Sơ đồ trao đổi dữ liệu giữa USB Token và ứng dụng Web

Giải pháp mã hoá đầu cuối E2EE (End-to-End encryption)

Với các hệ thống trao đổi thông tin (chuyển nhận tin nhắn, tệp tin, …), vấn đề mã hoá E2E luôn được đặt ra như là yêu cầu tiên quyết cho vấn đề an toàn thông tin, các sản phẩm lớn như WhatsApp, Signal, Telegram, iMessage, Viber đều áp dụng E2E cho chuyển nhận thông tin trao đổi. Có nhiều giải pháp mã hoá được ứng dụng cho một giải pháp E2E gồm cả mã hoá đối xứng, bất đối xứng và hàm băm. Nghiên cứu cho thấy giải pháp kết hợp bộ mã AES-RSA cho phép triển khai giải pháp E2E đạt độ an toàn và tốc độ cao.

Giải pháp mã hóa E2EE được thực hiện trên nguyên tắc, dữ liệu được mã hóa từ người gửi và được giải mã chỉ bởi người nhận, theo đó khóa bí mật phải được lưu trữ cục bộ, để đảm bảo tính an toàn và riêng tư, nhiệm vụ sử dụng giải pháp lưu trữ khóa bí mật của người dùng trên thiết bị USB token đối với người dùng Web và trên Local Storage đối với ứng dụng mobile.

Cặp khóa (gồm khóa bí mật – private key và khóa công khai – public key) được cấp bởi quản trị hệ thống, qua dịch vụ cấp và quản lý KPI. Sử dụng giải pháp mã hóa bất đối xứng RSA cho E2EE trao đổi giữa các người dùng. Để có thể gửi nhận có mã hóa, cặp khóa Ku (Public key) và Kr (Private Key) được tạo cho từng người dùng. Khóa công khai Ku được lưu trên CSDL, trong bảng User. Khóa riêng Kr được lưu trữ trong thiết bị USB Token (khoá cứng) của từng người dùng. Khóa công khai Ku được sử dụng để mã hóa khóa phiên (Session key – Ks), và Ks được sử dụng cho mã hóa tin nhắn và files trước khi gửi đi.

Ứng dụng công nghệ trao đổi dữ liệu qua QR-code

QR code cho phép biểu diễn thông tin dựa trên hình ảnh, do vậy QR code có thể phù hợp cho việc chuyển nhận dữ liệu có kích thước nhỏ với cấu trúc được định nghĩa trước bởi bên truyền và bên nhận. QR code có thể lưu trữ lên đến 2,953 bytes.

Vấn đề đặt ra đối với E2E trên đa môi trường là vấn đề đồng bộ khóa giữa hai mạng. Việc đồng bộ khóa công khai được thực hiện qua việc đồng bộ dữ liệu (gồm CSDL và file) giữa máy chủ trong và máy chủ ngoài. Riêng đối với khóa bí mật, yêu cầu phải đồng bộ trực tiếp từ hai thiết bị đầu cuối của người dùng (là máy tính và thiết bị di động).

Nhiệm vụ xây dựng giải pháp trao đổi khóa bí mật từ máy tính đến thiết bị di động qua mã QR code. Trên giao diện web sẽ có QR code chứa thông tin khóa của chính người dùng đó, phần mềm trên mobile sẽ đọc thông tin từ QR code và lưu vào bộ nhớ Local Storage của phần mềm.

Ứng dụng dịch vụ SQL server replication của phần mềm SQL Server

SQL server replication là một bộ các giải pháp cho phép sao chép và phân phối cơ sở dữ liệu giữa các SQL server và đồng bộ chúng nhằm duy trì tính nhất quán dữ liệu.

Sử dụng replication, ta có thể phân phối dữ liệu đến nhiều SQL server khác nhau hay truy cập từ xa thông qua mạng cục bộ hay internet. Replication cũng nâng cao tính thực hiện hay phân phối CSDL trên nhiều Server với nhau.

Replication là giải pháp được ứng dụng cho môi trường phân phối dữ liệu trên nhiều server, vì vậy có thể sử dụng chúng khi:

- Sao chép và phân phối dữ liệu trên nhiều server khác nhau.

- Phân phối bản sao dữ liệu theo lịch trình nhất định.

- Phân phối dữ liệu vừa thay đổi trên nhiều server khác nhau.

- Cho phép nhiều người dùng và nhiều server kết hợp dữ liệu khác nhau một cách thống nhất mà không sợ mất dữ liệu.

- Xây dựng CSDL sử dụng cho những ứng dụng trực tuyến hay ngoại tuyến.

- Xây dụng ứng dụng web khi người dùng cần trình bày một số lượng lớn dữ liệu.

Trong đó:

- Publisher: là máy chủ CSDL nguồn để chuyển hoặc sao chép dữ liệu sang máy chủ CSDL đích (Subscriber).

- Subscriber: là máy chủ CSDL đích để nhận dữ liệu hoặc bản sao từ máy chủ CSDL nguồn (Publisher).

- Article: là đối tượng trong CSDL như Table, View, Stored Procedure được nhân bản từ Publisher sang Subscriber.

- Distributor: là máy chủ CSDL trung gian hoạt động như một kho lưu trữ để nhân bản dữ liệu từ một hoặc nhiều Publisher. Chịu trách nhiệm phân phối dữ liệu đến một hoặc nhiều Subscriber và duy trì tính nhất quán, toàn vẹn của dữ liệu.

Ứng dụng Syncthing giúp đồng bộ các tệp tin

Syncthing là một công cụ mã nguồn mở, miễn phí và đa dạng Nó có thể được sử dụng để đồng bộ hóa các tệp và / hoặc thư mục giữa các máy tính trong mạng.

Không giống như các công cụ đồng bộ hóa khác, chẳng hạn như Google Drive, pCloud, Dropbox,... Syncthing truyền dữ liệu trực tiếp từ hệ thống này sang hệ thống khác hoàn toàn an toàn và riêng tư.

Tất cả dữ liệu sẽ được lưu trữ trên hệ thống không qua bất kì hệ thống của bên thứ ba nào và người quản trị có toàn quyền kiểm soát các tệp và thư mục. Ứng dụng cũng cung cấp cho phép chọn nơi lưu trữ nếu dữ liệu được chia sẻ với bên thứ ba. Tất cả thông tin liên lạc được mã hóa bằng TLS Syncthing có một WebGUI mạnh mẽ và nhạy bén sẽ giúp người dùng thêm, xóa và quản lý các thư mục được đồng bộ hóa qua mạng. Cho phép đồng bộ hóa trực tiếp các tệp từ thiết bị này sang thiết bị khác mà không cần thông qua trung gian.

Sử dụng Syncthing, ta có thể đồng bộ hóa nhiều thư mục với nhiều hệ thống cùng một lúc, tất cả những gì bạn cần là kết nối LAN / WAN rất ổn định và đủ dung lượng ổ đĩa trên hệ thống của bạn.

Nó tương thích với tất cả các hệ điều hành hiện đại, bao gồm GNU / Linux, Windows, MacOS X và tất nhiên là cả Android.

Ứng dụng giải pháp truyền nhận dữ liệu một chiều an toàn

Sử dụng thiết bị truyền nhận dữ liệu một chiều giữa 2 vùng mạng khác nhau giúp bảo đảm an toàn cho dữ liệu, tránh bị tấn công ngược lại đến hệ thống máy chủ ở vùng mạng chuyên dùng phía bên trong.

Sử dụng các thư viện miễn phí để chuyển đổi các định dạng tệp Document của Micrrosoft Office sang định dạng PDF

Ứng dụng có sử dụng các thư viện miễn phí của Miccrosoft Office cũng như các thư viện của nhà cung cấp thứ ba có tên Syncfusion giúp hỗ trợ chuyển đổi các định dạng tệp thông thường như doc, docx, xls, xlsx, ppt, pptx sang định dạng PDF. Người dùng ứng dụng không cần tải và lưu tệp trực tiếp trên thiết bị di động để mở và xem nội dung bên trong mà có thể mở trực tiếp tệp dưới định dạng PDF ngay trên ứng dụng; từ đó giúp nâng cao khả năng bảo mật và chống lộ lọt thông tin.

KẾT LUẬN

Xây dựng các ứng dụng đa nền tảng hoạt động được trên thiết bị di động giúp mở rộng phạm vi ứng dụng, tăng hiệu quả quá trình xử lý công việc đang là xu thế chung của quá trình chuyển đổi số hiện nay. Vì vậy, vấn đề lựa chọn các giải pháp công nghệ sao cho phù hợp đang trở thành ưu tiến hàng đầu và cần được quan tâm, chú trọng.

TÀI LIỆU THAM KHẢO

[1]. https://microservices.io

[2]. https://jwt.io/introduction

[3]. Blaise, Ohwo Onome, Oludele Awodele, and Odunayo Yewande. "An Understanding and Perspectives of EndTo-End Encryption." Int. Res. J. Eng. Technol.(IRJET) 8.04 (2021): 1086.

Nguyễn Khắc Minh, ThS. Phí Việt Cường, TS. Nguyễn Thế Hùng - Viện Nghiên cứu 486, Bộ Tư lệnh 86

Tin cùng chuyên mục

Tin mới