Vibechat - Phần mềm nhắn tin tuyệt mật
Ngày nay với sự phát triển mạnh mẽ của Internet, con người có thể dễ dàng kết nối, giao tiếp, chia
sẻ thông tin với nhau qua các ứng dụng nhắn tin hay mạng xã hội. Một số mạng xã hội, phần
mềm nhắn tin phổ biến hiện nay có thể kể đến như: Facebook, Twitter, Skype, Weibo, WeChat,
WhatsApp, Zalo, v.v
Để tồn tại, con người chúng ta cần giao tiếp và trao đổi thông tin. Có thể nói hội thoại là nhu cầu
thiết yếu và mang tính riêng tư của con người. Tại điều 12 trong bản Tuyên ngôn Quốc tế về Nhân
quyền đã khẳng định rằng: "Bất cứ ai cũng không phải chịu sự can thiệp một cách tùy tiện vào cuộc
sống riêng tư, gia đình, nơi ở hoặc thư tín của mình. Mọi người đều có quyền được pháp luật bảo vệ
và chống lại sự can thiệp và xâm phạm quyền riêng tư‛. Thế nhưng, đa số các mạng xã hội hay
phần mềm nhắn tin hiện nay lại vi phạm nghiêm trọng điều luật trên. ‚Sản phẩm miễn phí thì người
dùng trở thành sản phẩm‛ đánh đổi lại việc được sử dụng miễn phí, người dùng phải cung cấp các
thông tin cá nhân và đồng ý để các mạng xã hội hay phần mềm nhắn tin sử dụng các thông tin mà
họ cung cấp và các dữ liệu hoạt động của họ cho các hoạt động quảng cáo, kinh doanh, v.v
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Tóm tắt nội dung tài liệu: Vibechat - Phần mềm nhắn tin tuyệt mật
53 VIBECHAT PHẦN MỀM NHẮN TIN TUYỆT MẬT Hoàng Kim Phúc Khoa Công nghệ Thông tin, Trường Đại học Công nghệ TP. Hồ Chí Minh GVHD: Khang TÓM TẮT VibeChat bảo vệ tuyệt đối tin nhắn và thông tin người dùng, giúp người dùng có thể thoải mái trò chuyện mà không lo sợ tin nhắn của mình bị xem trộm, hay lộ các thông tin cá nhân. Từ khóa: Nhắn tin, bảo mật, tuyệt mật, thông tin, NoSQL. 1 Ệ 1.1 Mạng xã hội và các phần mềm nhắn tin Ngày nay với sự phát triển mạnh mẽ của Internet, con người có thể dễ dàng kết nối, giao tiếp, chia sẻ thông tin với nhau qua các ứng dụng nhắn tin hay mạng xã hội. Một số mạng xã hội, phần mềm nhắn tin phổ biến hiện nay có thể kể đến như: Facebook, Twitter, Skype, Weibo, WeChat, WhatsApp, Zalo, v.v Để tồn tại, con người chúng ta cần giao tiếp và trao đổi thông tin. Có thể nói hội thoại là nhu cầu thiết yếu và mang tính riêng tư của con người. Tại điều 12 trong bản Tuyên ngôn Quốc tế về Nhân quyền đã khẳng định rằng: "Bất cứ ai cũng không phải chịu sự can thiệp một cách tùy tiện vào cuộc sống riêng tư, gia đình, nơi ở hoặc thư tín của mình. Mọi người đều có quyền được pháp luật bảo vệ và chống lại sự can thiệp và xâm phạm quyền riêng tư‛. Thế nhưng, đa số các mạng xã hội hay phần mềm nhắn tin hiện nay lại vi phạm nghiêm trọng điều luật trên. ‚Sản phẩm miễn phí thì người dùng trở thành sản phẩm‛ đánh đổi lại việc được sử dụng miễn phí, người dùng phải cung cấp các thông tin cá nhân và đồng ý để các mạng xã hội hay phần mềm nhắn tin sử dụng các thông tin mà họ cung cấp và các dữ liệu hoạt động của họ cho các hoạt động quảng cáo, kinh doanh, v.v Khi sử dụng các mạng xã hội hay ứng dụng nhắn tin trực tuyến, người dùng có thể gặp phải các quảng cáo có liên quan đến nội dung cuộc trò chuyện của mình. Hơn thế nữa, khi người dùng trò chuyện trực tiếp với nhau thì họ vẫn gặp phải các quảng cáo liên quan đến nội dung cuộc trò chuyện của mình. Các nhà cung cấp dịch vụ mạng xã hội hay ứng dụng nhắn tin trực tuyến đã khai thác dữ liệu riêng tư của người dùng và sử dụng cho mục đích kinh doanh. Họ sử dụng mọi cách thức để có thể thu thập dữ liệu của người dùng như ghi âm, nghe lén, quay trộm, trình đọc màn hình, keylogger, v.v Người dùng thực sự đã trở thành những con gà đẻ trứng vàng cho các nhà cung cấp dịch vụ trên. 1.2 VibeChat – Phần mềm nhắn tin tuyệt mật VibeChat ra đời với lý tưởng cung cấp một nền tảng an toàn, bảo mật tuyệt đối sự riêng tư của người dùng trên internet, nơi người dùng có thể thoải mái giao tiếp với mọi người mà không sợ lộ 54 bất cứ thông tin cá nhân hay những câu chuyện riêng tư nào. Ứng dụng được xây dựng như một phòng chat, người dùng đăng ký tài khoản và đăng nhập để sử dụng. Khi đã có tài khoản riêng, mọi người kết nối với nhau bằng tài khoản đã đăng ký. VibeChat cung cấp cho người dùng các chức năng như sau: 1. Nhắn tin trao đổi văn bản, hình ảnh, âm thanh; 2. Gửi file đính kèm; 3. Gọi điện; 4. Trò chuyện riêng tư; 5. Trò chuyện nhóm; 6. Xóa lịch sử trò chuyện. Ngoài ra, mọi tin nhắn hay thông tin người dùng đều được mã hóa theo tiêu chuẩn AES (Advanced Encryption Standard) đảm bảo mọi thông tin người dùng được bảo vệ an toàn. AES hiện là tiêu chuẩn mã hóa đang được Chính phủ Hoa Kỳ sử dụng, nó dựa trên thuật toán Rijndael được phát triển bởi hai nhà mật mã người Bỉ, Joan Daemen và Vincent Rijmen. Các nhà mật mã học người Bỉ đã gửi thuật toán của họ đến Viện Tiêu chuẩn và Kỹ thuật Quốc gia (National Institute of Standards and Technology - NIST), cạnh tranh với 14 thuật toán mã hóa khác để trở thành tiêu chuẩn mã hóa tiếp theo sau DES. AES là thuật toán khóa đối xứng và sử dụng mật mã khối đối xứng. Nó bao gồm ba kích thước chính: 128, 192 hoặc 256 bit. Hơn nữa, có các vòng mã hóa khác nhau cho mỗi kích thước khóa. Một vòng là quá trình chuyển văn bản thô thành văn bản mã hóa. Đối với 128-bit, có 10 vòng (round); 192-bit có 12 vòng, và 256-bit có 14 vòng. Có những cuộc tấn công lý thuyết chống lại AES, nhưng tất cả đều yêu cầu lưu trữ dữ liệu cụ thể và thời gian nhất định, do đó không khả thi trong thời điểm hiện tại. Ví dụ, một cuộc tấn công vào mã hóa AES cần 38 nghìn tỷ dữ liệu, nhiều hơn tất cả dữ liệu được lưu trữ trên tất cả các máy tính trên toàn thế giới trong năm 2016. Ước tính thời gian cần thiết để tạo tấn công brute-force khóa AES-128 là hàng tỷ năm. Như vậy, dữ liệu người dùng có thể đảm bảo dữ liệu riêng tư của người dùng được bảo vệ an toàn. 2 Ư NG NGHIÊN CỨU VÀ CÁC CÔNG NGHỆ 2.1 Cơ sở dữ liệu phi quan hệ NoSQL - MongoDB 2.2.1 NoSQL NoSQL là một dạng cơ sở dữ liệu mã nguồn mở, viết tắt của None-Relational SQL hay còn gọi là Not-Only SQL. NoSQL được phát triển trên Javascript Framework với kiểu dữ liệu là JSON và dạng dữ liệu theo kiểu key và value. NoSQL ra đời như là một mảnh vá cho những khuyết điểm và thiếu sót cũng như hạn chế của mô hình dữ liệu quan hệ RDBMS truyền thống (Relational Database Management System - Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tính năng, khả năng mở rộng, v.v... 55 NoSQL có thể mở rộng dữ liệu mà không lo tới những việc như tạo khóa chính, khóa ngoại, kiểm tra ràng buộc, v.v... NoSQL thường bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suất nhanh và khả năng mở rộng cao. 2.2.2 Hệ quản trị cơ sở dữ liệu MongoDB MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là cơ sở dữ liệu thuộc NoSQL và được hàng triệu người sử dụng. MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như cơ sở dữ liệu quan hệ nên khi truy vấn sẽ rất nhanh. Với cơ sở dữ liệu quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server...) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng, document thay vì row, v.v Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định. Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB. 2.2.3 Công nghệ JavaFX JavaFX là nền tảng để tạo và phân phối các ứng dụng dành cho máy tính để bàn cũng như các ứng dụng RIAs (Rich Internet Applications) có thể chạy trên nhiều thiết bị khác nhau. JavaFX được phát triển bởi Kỹ sư Chris Oliver, ban đầu dự án được đặt tên là F3 (Form Follows Functions). Sau đó vào năm 2005 thì Sun Micro-Systems đã mua lại dự án F3 và đổi tên thành JavaFX. JavaFX dự định thay thế hoàn toàn Swing làm thư viện GUI chuẩn cho Java SE. JavaFX hỗ trợ cho các máy tính để bàn và trình duyệt web trên nền tảng Windows, Linux và macOS. 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1 Phân tích yêu cầu Về cơ bản, tổng quát hóa bài toán thì ứng dụng cần có: 1. Giao diện đăng ký tài khoản, đăng nhập tài khoản, quên mật khẩu; 2. Giao diện hiển thị danh sách liên hệ, danh sách cuộc trò chuyện, danh sách user; 3. Giao diện hiển thị các đoạn chat giữa 2 user với nhau; 4. Giao diện hiển thị các đoạn chat giữa các user với nhau trong groupchat; 5. Giao diện cài đặt; 6. Giao diện quản lý thông tin cá nhân. 56 Về chức năng chính của ứng dụng là: 1. Nhắn tin trao đổi văn bản, hình ảnh, âm thanh; 2. Gửi file đính kèm; 3. Gọi điện; 4. Trò chuyện riêng tư; 5. Trò chuyện nhóm; 6. Xóa lịch sử trò chuyện. 3.2 Thiết kế hệ thống 3.2.1 Use Case Diagram Hình 1: Sơ đồ Use Case Class Diagram: Hình 2: Sơ đồ Class 57 3.2.2 Mối liên hệ giữa Client và Server qua hoạt động gửi - nhận tin nhắn Hình 3: Hoạt động gửi - nhận tin nhắn 3.3 Giao diện phần mềm Hình 3: Giao diện trò chuyện của VibeChat 4 TỔNG KẾT VÀ Ư NG PHÁT TRIỂN DỰ ÁN 4.1 Điểm mạnh Các chức năng đề ra ban đầu đều được hoàn thành và hoạt động khá tốt. Ứng dụng được viết bằng ngôn ngữ Java nên có thể hoạt động đa nền tảng trên các hệ điều hành như Windows, MacOS, Linux. CPU Intel Core i7 8750H, RAM 16GB 58 Mô hình đang dùng thuật toán khóa đối xứng AES 128 bit, tốc độ mã hóa và giải mã tin nhắn của phần mềm rất nhanh. Thời gian mã hóa và giải mã một tin nhắn văn bản có nội dung dài 1000 ký tự lần lượt là 0.415 giây (khi mã hóa) và 0.001 giây (khi giải mã). 4.2 Điểm yếu Hệ thống hoạt động trên mô hình tập trung (Client – Server) nên khi có nhiều thiết bị tham gia vào thì hệ thống sẽ chậm. Giao diện của ứng dụng vẫn còn hạn chế, chưa gần gũi với người dùng, các hiệu ứng chuyển cảnh chưa đẹp mắt. 4.3 ướng phát triển dự án Nâng cấp hệ thống theo mô hình phân tán (P2P), mỗi máy tham gia vừa đóng vai trò là máy chủ (Server) và vừa là máy khách (Client) và sẽ có một máy chủ trung tâm điều hướng các kết nối cho các máy tham gia. Tối ưu lại các thuật toán xử lý các nghiệp vụ của ứng dụng để cải thiện tốc độ thực thi của ứng dụng. Thiết kế lại giao diện cho đẹp mắt, dễ sử dụng và gần gũi với người dùng hơn. Phát triển ứng dụng trên nền tảng web và mobile. TÀI LIỆU THAM KHẢO [1] Quantrimang.com, 5 Thuật toán mã hóa phổ biến bạn nên biết, ngày 02 tháng 07 năm 2018, . [2] Wikipedia.org, Tuyên ngôn Quốc tế Nhân quyền, ngày 01 tháng 04 năm 2020, <https://vi.wikipedia.org/wiki/Tuy%C3%AAn_ng%C3%B4n_Qu%E1%BB%91c_t%E1%BA%BF_N h%C3%A2n_quy%E1%BB%81n>. [3] Viblo.asia, MongoDB là gì? Cơ sở dữ liệu phi quan hệ, ngày 03 tháng 09 năm 2018, . [4] Teamvietdev.com, JavaFX là gì? Giới thiệu ngôn ngữ lập trình JavaFX, ngày 30 tháng 10 năm 2018, .
File đính kèm:
- vibechat_phan_mem_nhan_tin_tuyet_mat.pdf