Ngoài ra, ứng dụng nhắn tin mã hóa đầu cuối còn cung cấp cho ngườidùng tính năng đăng nhập an toàn, quản lý danh bạ liên lạc, và các tính năngkhác để tăng tính tiện dụng và đảm bảo tính
Trang 2Sinh viên thực hiện: Bùi Xuân Long - AT160234
Ngô Đình Hiếu - AT160224
Lê Đức Mạnh - AT160236 Trịnh Đức Trường – Nguyễn Văn Hiệp Nhóm
Giảng viên hướng dẫn: TS Nguyễn Mạnh Thắng
Hà Nội, 05-2023
M Ụ C L Ụ C DANH MỤC KÍ HIỆU VIẾT TẮT I DANH MỤC BẢNG BIỂU III DANH MỤC HÌNH ẢNH IV
LỜI MỞ ĐẦU 1
Mục tiêu thực hiện đồ án 1
CHƯƠNG 1 Cơ sở lý thuyết 2
1.1 Giới thiệu 2
1.1.1 Tầm quan trong của việc bảo mật thông tin trong truyền thông 2
1.1.2 Định nghĩa và lợi ích của việc sử dụng ứng dụng nhắn tin mã hóa đầu cuối 3
1.2 Giới thiệu phương thức mã hóa 4
1.2.1 Thuật toán mã hóa RSA 4
1.2.2 Thuật toán mã hóa AES 4
1.2.3 Thuật toán mã hóa 4
1.3 Các công cụ lựa chọn sử dụng 4
Trang 31.3.2 4
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 4
2.1 Giới thiệu về hệ thống 4
2.1.1 Giới thiệu sơ bộ về đề tài 4
2.1.2 Mô hình phân cấp chức năng 4
2.2 Biểu đồ Use Case 5
2.2.1 Các use-case chính 5
2.2.2 Quan hệ giữa các use-case 5
2.3 Mô tả chi tiết các Use Case 5
2.3.1 Đăng nhập 5
2.4 Biểu đồ tuần tự 6
2.4.1 Biểu đồ tuần tự Đăng ký 6
2.4.2 Biểu đồ tuần tự Đăng nhập 6
2.5 Thiết kế Cơ sở dữ liệu 6
2.6 Xây dựng chức năng giao diện 6
2.6.1 Giao diện ban đầu 6
2.6.2 Giao diện đăng nhập và đăng ký 6
2.6.3 Giao diện tìm người dung 6
2.6.4 Giao diện xem thông tin người dung 6
2.6.5 Giao diện nhắn tin 6
2.7 Xây dựng các chức năng 6
2.7.1 Xây dựng chức năng đăng ký 6
2.7.2 Xây dựng chức năng đăng nhập 6
2.7.3 Xây dựng chức năng tìm kiếm người dung 6
2.7.4 Xây dựng chức năng xem thông tin người dung 6
2.7.5 Xây dựng chức năng nhắn tin 6
2.8 Thiết kế môi trường 6
Trang 42.8.1 Xây dựng Backend 6
2.8.2 Xây dựng cơ sở dữ liệu 6
2.9 Kiểm thử chức năng phần mềm 6
2.9.1 Xây dựng các TestCase chính 6
2.9.2 Kiểm thử giao diện 6
2.9.3 Kiểm thử hiệu năng 6
2.9.4 Kiểm thử mã hóa đầu cuối 9
CHƯƠNG 3 THỰC NGHIỆM 10
KẾT LUẬN 11
TÀI LIỆU THAM KHẢO 12
Trang 5DANH MỤC KÍ HIỆU VIẾT TẮT
Là mối quan hệ mở rộng giữa các Use Case với nhau.
Hệ thống
(System)
Biểu hiện phạm vi của hệ thống Các use-case được đặt trong khung hệ thống.
Biểu đồ tuần tự
I
Trang 6Lớp biên
(Boundary class)
Nắm giữa sự tương tác phần bên ngoài với phần bên trong của hệ thống (giao diện chương trình) Lớp điều khiển
(Control class)
Thể hiện trình tự xử lý cửa hệ thống trong một hay nhiều use-case.
Lớp thực tế
(Entity class)
Mô hình hóa thông tin lưu trữ lâu dài trong hệ thống, nó thường độc lập với các đối tượng khác ở xung quanh.
II
Trang 7Thuật ngữ Giải thích
III
Trang 8DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH ẢN
IV
Trang 9V
Trang 10LỜI MỞ ĐẦU
Nhắn tin đã trở thành một phương tiện giao tiếp phổ biến trong cuộc sốnghiện đại Tuy nhiên vấn đề bảo mật thông tin càng ngày càng quan trọng, đặcbiệt là trong các cuộc trò chuyện trực tuyến Với sự phát triển của công nghệ mãhóa đầu cuối, việc bảo mật thộng tin trong nhắn tin đã trở nên dễ dàng hơn baogiờ hết
Ứng dụng nhắn tin mã hóa đầu cuối là một ứng dụng giúp người dung tròchuyện một cách an toàn và bảo mật Bằng các sử dụng các thuật toán mã hóamạnh mẽ, những tin nhắn được gửi đi sẽ được mã hóa trước khi gửi qua mạng,
và chỉ có người nhận đích thực mới có thể giải mã được chúng Điều này giúpđảm bảo rằng thông tin được truyền đi sẽ không bị đánh cắp hoặc thay đổi bởibất kỳ ai khác ngoài người nhận
Ngoài ra, ứng dụng nhắn tin mã hóa đầu cuối còn cung cấp cho ngườidùng tính năng đăng nhập an toàn, quản lý danh bạ liên lạc, và các tính năngkhác để tăng tính tiện dụng và đảm bảo tính bảo mật cho người dùng
Với ứng dụng nhắn tin mã hóa đầu cuối, người dùng có thể yên tâm tròchuyện và chia sẻ thông tin một cách an toàn và riêng tư, giúp cho cuộc sống trởnên an toàn hơn và bảo vệ được thông tin cá nhân
Mục tiêu thực hiện đồ án
Nghiên cứu, xây dụng ứng dụng nhắn tin mã hóa đầu cuối dựa trên phươngpháp trao đổi khóa Diffie-Hellman
Mục tiêu đặt ra khi thực hiện đề tài:
1 Nghiên cứu và xây dựng ứng dụng nhắn tin mã hóa đầu cuối
2 Đảm bảo tính an toán cho ứng dụng và hệ thống
3 Nghiên cứu thuật toán mã hóa và trao đổi khóa
1
Trang 11CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu
1.1.1 Tầm quan trong của việc bảo mật thông tin trong truyền thông
Trong thời đại số hóa hiện nay, thông tin truyền tải qua các phương tiệntruyền thông như internet, điện thoại di động, email, tin nhắn v.v đã trở thànhmột phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Tuy nhiên,đồng thời cũng tăng lên nguy cơ mất an toàn và bị xâm nhập bởi các kẻ xấu có ýđịnh lợi dụng thông tin cá nhân của người khác
Bảo mật thông tin trong truyền thông là việc đảm bảo rằng thông tin đượctruyền tải qua các phương tiện truyền thông sẽ được bảo vệ và chỉ có nhữngngười được ủy quyền mới có thể truy cập được Việc bảo mật thông tin là rấtquan trọng vì nó đảm bảo rằng các thông tin nhạy cảm của cá nhân và doanhnghiệp sẽ không bị lộ ra ngoài và được bảo vệ khỏi các cuộc tấn công mạng vàcác hành vi xâm nhập trái phép khác
Nếu thông tin không được bảo mật, những hậu quả có thể là rất nghiêmtrọng, ví dụ như mất cắp thông tin tài khoản ngân hàng, thông tin thẻ tín dụng,thông tin đăng nhập vào các trang web quan trọng, hoặc thậm chí là thông tinquan trọng của công ty Điều này có thể dẫn đến các hậu quả nghiêm trọng, baogồm thiệt hại tài chính, mất uy tín, và thậm chí là mất mạng tính mạng
Do đó, việc bảo mật thông tin trong truyền thông là vô cùng quan trọng vàkhông thể coi thường Các tổ chức và cá nhân cần đầu tư vào các giải pháp bảomật thông tin hiệu quả nhằm đảm bảo an toàn cho dữ liệu của mình và tránhđược những hậuquả đáng tiếc Ngoài ra, mỗi người dùng cũng cần có ý thức vàhành động bảo vệ thông tin cá nhân của mình, bằng cách sử dụng mật khẩu antoàn, không chia sẻ thông tin cá nhân với người lạ và cẩn thận khi sử dụng các
2
Trang 12dịch vụ trực tuyến Chỉ khi các bên đều đóng góp và chung tay bảo vệ thông tin,chúng ta mới có thể đảm bảo an toàn thông tin trong truyền thông.
1.1.2 Định nghĩa và lợi ích của việc sử dụng ứng dụng nhắn tin mã hóa đầu cuối
Ứng dụng nhắn tin mã hóa đầu cuối là một loại ứng dụng cho phép ngườidùng truyền tải thông tin qua các phương tiện truyền thông như internet, điệnthoại di động, email, tin nhắn v.v mà chỉ có người gửi và người nhận mới cóthể đọc được nội dung tin nhắn, thông tin được mã hóa và giải mã chỉ trên thiết
bị của người gửi và người nhận, không thể bị các bên thứ ba can thiệp hay đánhcắp
Lợi ích của việc sử dụng ứng dụng nhắn tin mã hóa đầu cuối là:
Bảo mật thông tin: Ứng dụng nhắn tin mã hóa đầu cuối đảm bảotính riêng tư và bảo mật của thông tin, giúp người dùng tránh đượcnhững cuộc tấn công mạng và các hành vi xâm nhập trái phép khác
An toàn trong giao dịch: Với việc sử dụng ứng dụng nhắn tin mãhóa đầu cuối, người dùng có thể truyền tải thông tin nhạy cảm nhưthông tin tài khoản ngân hàng, thông tin thẻ tín dụng, thông tinđăng nhập vào các trang web quan trọng một cách an toàn và bảomật
Giảm thiểu rủi ro: Khi sử dụng ứng dụng nhắn tin mã hóa đầu cuối,người dùng giảm thiểu rủi ro bị lừa đảo, phá hoại, hoặc bị đánh cắpthông tin cá nhân
Tạo sự yên tâm: Sử dụng ứng dụng nhắn tin mã hóa đầu cuối giúpngười dùng cảm thấy yên tâm hơn khi truyền tải thông tin nhạycảm, đặc biệt là trong các trường hợp cần bảo vệ tính riêng tư và antoàn của thông tin
Tính tiện lợi: Ứng dụng nhắn tin mã hóa đầu cuối thường có giaodiện đơn giản, dễ sử dụng và tính năng linh hoạt, cho phép ngườidùng truyền tải thông tin một cách nhanh chóng và tiện lợi
3
Trang 13 Đảm bảo tuân thủ quy định: Sử dụng ứng dụng nhắn tin mã hóa đầucuối giúp người dùng đảm bảo tuân thủ các quy định và luật phápliên quan đến bảo mật thông tin.
Việc sử dụng ứng dụng nhắn tin mã hóa đầu cuối đem lại nhiều lợi íchcho người dùng, giúp bảo vệ thông tin cá nhân và tránh được những hậu quả xấucủa việc mất an toàn thông tin
1.2 Giới thiệu phương thức mã hóa
1.2.1 Thuật toán mã hóa RSA
1.2.2 Thuật toán mã hóa AES
1.2.3 Thuật toán mã hóa
Trang 142.2 Biểu đồ Use Case
2.2.1 Các use-case chính
1 Use case tổng quát
2 Use case người dùng
3 Use case quản trị viên
2.2.2 Quan hệ giữa các use-case
2.3 Mô tả chi tiết các Use Case
Trang 152.4 Biểu đồ tuần tự
2.4.1 Biểu đồ tuần tự Đăng ký
2.4.2 Biểu đồ tuần tự Đăng nhập
2.5 Thiết kế Cơ sở dữ liệu
2.6 Xây dựng chức năng giao diện
2.6.1 Giao diện ban đầu
2.6.2 Giao diện đăng nhập và đăng ký
2.6.3 Giao diện tìm người dung
2.6.4 Giao diện xem thông tin người dung
2.6.5 Giao diện nhắn tin
2.7 Xây dựng các chức năng
2.7.1 Xây dựng chức năng đăng ký
2.7.2 Xây dựng chức năng đăng nhập
2.7.3 Xây dựng chức năng tìm kiếm người dung
2.7.4 Xây dựng chức năng xem thông tin người dung
2.7.5 Xây dựng chức năng nhắn tin
2.8 Thiết kế môi trường
2.8.1 Xây dựng Backend
2.8.2 Xây dựng cơ sở dữ liệu
2.9 Kiểm thử chức năng phần mềm
2.9.1 Xây dựng các TestCase chính
2.9.2 Kiểm thử giao diện
Kiểm tra hiển thị và cách bố trí các thành phần giao diện:
6
Trang 16a Kiểm tra thanh tiêu đề: Đảm bảo thanh tiêu đề hiển thị đúng vàchứa tên người dùng hoặc tên phòng chat hiện tại.
b Kiểm tra thanh công cụ: Kiểm tra các nút điều hướng, biểu tượngchức năng (như gửi tin nhắn, tạo phòng chat) và thanh tìm kiếm cóđược hiển thị đúng và đồng nhất trên mọi màn hình
c Kiểm tra danh sách phòng chat và cuộc trò chuyện: Đảm bảo cácphòng chat và cuộc trò chuyện hiển thị đúng, có thứ tự và không bịtràn đổ hay cắt đi
Kiểm tra tính tương thích với các thiết bị và kích thước màn hình khácnhau:
a Kiểm tra trên các thiết bị di động: Đảm bảo giao diện được tối ưuhóa trên điện thoại thông minh và máy tính bảng với các kích thướcmàn hình khác nhau
b Kiểm tra trên các kích thước màn hình: Kiểm tra tính đáp ứng củagiao diện trên màn hình nhỏ (ví dụ: điện thoại di động), màn hìnhtrung bình (ví dụ: máy tính bảng) và màn hình lớn (ví dụ: laptop) đểđảm bảo các thành phần giao diện hiển thị đúng và không bị tràn đổhay cắt đi
Kiểm tra các tương tác và chức năng trong giao diện:
a Kiểm tra tương tác nhấn nút: Đảm bảo các nút điều hướng, nútchức năng và nút tương tác khác hoạt động chính xác và đưa ngườidùng đến các màn hình và chức năng tương ứng
b Kiểm tra tính năng cuộn và kéo: Kiểm tra khả năng cuộn và kéodanh sách phòng chat và cuộc trò chuyện để đảm bảo di chuyểnmượt mà và hiển thị đúng các phần tử giao diện
c Kiểm tra tương tác gửi tin nhắn: Gửi tin nhắn trong cuộc trò chuyện
và đảm bảo tin nhắn được hiển thị đúng, không bị mất và xuất hiệnngay lập tức
Kiểm tra đa ngôn ngữ và đa ngôn ngữ:
7
Trang 17a Kiểm tra hiển thị ngôn ngữ: Đảm bảo giao diện hiển thị đúng ngônngữ được chọn bởi người dùng, bao gồm văn bản, biểu tượng vàcác thành phần khác
b Kiểm tra bố cục và dài hóa: Kiểm tra tính đáp ứng của giao diệnvới các ngôn ngữ có độ dài và cấu trúc khác nhau, đảm bảo không
bị tràn đổ hoặc cắt điều kiện
Kiểm tra hiển thị và xử lý lỗi:
a Kiểm tra thông báo lỗi: Kiểm tra xem thông báo lỗi hiển thị đúng
và rõ ràng khi xảy ra lỗi, bao gồm lỗi kết nối, lỗi xác thực hoặc lỗitin nhắn không được gửi thành công
b Kiểm tra xử lý lỗi: Kiểm tra xem các tương tác lỗi, như nhập liệukhông hợp lệ hoặc không đúng định dạng, được xử lý một cáchthích hợp và giao diện cung cấp phản hồi và hướng dẫn cho ngườidùng
Kiểm tra tốc độ và hiệu suất của giao diện:
a Kiểm tra thời gian tải: Đảm bảo giao diện tải nhanh và không gâychờ đợi lâu đối với người dùng
b Kiểm tra tốc độ phản hồi: Kiểm tra thời gian phản hồi sau cáctương tác như gửi tin nhắn, chuyển đổi màn hình để đảm bảo không
Trang 18b Kiểm tra trên phiên bản Android: Kiểm tra giao diện trên các phiênbản Android khác nhau (ví dụ: Android 9, Android 10, Android 11)
để đảm bảo tính tương thích và hiệu suất tốt trên mỗi phiên bản
2.9.3 Kiểm thử hiệu năng
b Kiểm thử mã hóa đầu cuối
9
Trang 19CHƯƠNG 3 THỰC NGHIỆM
10
Trang 20KẾT LUẬN
11
Trang 21TÀI LIỆU THAM KHẢO
Conference (INMIC) doi:10.1109/inmic48123.2019.9022766
[5] Robbins, J N (2012) Learning Web Design: A Beginner's Guide
to HTML, CSS, JavaScript, and Web Graphics Canada: O'Reilly Media.
Trang 22[8] Mithun Satheesh, Bruno Joseph D'mello, Jason Krol (2015) Web Development with MongoDB and NodeJS Birmingham, UK: Packt Publishing
Ltd
CHƯƠNG 4
13