1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios

79 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng iOS
Tác giả Đỗ Thị Hải Đoan
Người hướng dẫn ThS. Nguyễn Văn Nam
Trường học Trường Đại học Thủy Lợi
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 79
Dung lượng 7,65 MB

Nội dung

Với lượng thông tin nhạy cảm được chia sẻ qua các thiết bị di động ngày càng tăng, điều quan trọng là phải đảm bảo rằng các thông tin liên lạc này được bảo mật và được bảo vệ khỏi các mố

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT

TRƯỜNG ĐẠI HỌC THUỶ LỢI

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG DI ĐỘNG GỬI VÀ NHẬN TIN NHẮN AN TOÀN

TRÊN NỀN TẢNG IOS

Sinh viên thực hiện:

Họ và tên: Đỗ Thị Hải Đoan

Mã sinh viên: 1952060606

Người hướng dẫn:

ThS Nguyễn Văn Nam

Hà Nội, 2023

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan toàn bộ nội dung trong đồ án “Xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng IOS” là kết quả nghiên cứu của cá nhân

em dưới sự hướng dẫn của ThS.Nguyễn Văn Nam Đồng thời các tài liệu và nguồn tham khảo liên quan đến đồ án đều được liệt kê cụ thể trong danh mục tài liệu tham khảo Trong đồ án này, tuyệt đối không có hình thức sao chép nội dung công trình nghiên cứu, tài liệu của các cá nhân khác mà không được ghi chú Nếu có bất kỳ sự thiếu trung thực nào, em xin hoàn toàn chịu trách nhiệm!

Hà Nội, ngày tháng năm 2024

Sinh viên thực hiện đồ án

Đỗ Thị Hải Đoan

Trang 3

LỜI CẢM ƠN

Kính thưa quý thầy cô, trong suốt quãng thời gian theo học tại trường đại học Thuỷ Lợi cá nhân em đã được nhà trường tạo điều kiện, nhận nhiều sự giúp đỡ, quan tâm, hỗ trợ nhiệt tình từ phía thầy cô, bạn bè và gia đình Đến thời điểm này em đã được học và đào tạo tất cả các môn học từ cơ bản đến nâng cao, từ đại cương đến chuyên ngành bằng tất cả sự tâm huyết của quý thầy cô Trong em đã có được nhiều kiến thức quý báu và đó sẽ là hành trang lớn lao cho tương lai của em về sau

Có thể nói đồ án là một trong những công trình lớn nhất của người sinh viên Trong suốt quá trình thực hiện đồ án, từ khi lên ý tưởng đến lúc triển khai thực hiện vàđến khi cô đọng lại trong bản tài liệu này em luôn nhận được những hướng dẫn tận tình của thầy ThS Nguyễn Văn Nam Nhờ có thầy mà cá nhân em đã có những bước

đi đúng đắn hơn, hoàn thành đồ án một cách hoàn chỉnh nhất Em xin chân thành cảm

ơn thầy, sự tận tâm chỉ bảo ấy là kiến thức, là động lực là những điểm sáng không thể thiếu để em hoàn thành đề tài này

Trong quá trình thực hiện, có được sự đồng hành của thầy ThS Nguyễn Văn Nam cùng với sự nỗ lực hết mình của bản thân để hoàn thành đồ án một cách tốt nhất Song vẫn không tránh khỏi được những điểm thiếu sót cần bổ sung, chỉnh sửa Em rất mong nhận được sự thông cảm và những ý kiến nhận xét từ phía thầy cô để em có thể hoàn thiện đề tài hơn

Cuối cùng em xin được gửi lời chúc chân thành nhất tới quý thầy cô, chúc quý thầy cô luôn dồi dào sức khỏe để thật vững bước với sự nghiệp cao quý “trăm năm trồng người” Em xin chân thành cảm ơn!

Hà Nội, ngày tháng năm 2024

Sinh viên

Đỗ Thị Hải Đoan

Trang 4

Mục lục LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC III DANH MỤC HÌNH ẢNH IV DANH MỤC BẢNG BIỂU V DANH MỤC TỪ VIẾT TẮT VI

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN NGHIÊN CỨU VÀ CƠ SỞ LÝ THUYẾT 2

1.1 Khái niệm 2

1.1.1 Nhắn tin (Text messaging) và ứng dụng nhắn tin (Messaging app) 2

1.1.2 Nhắn tin (Text messaging) và ứng dụng nhắn tin (Messaging app) 3

1.2 Mã hóa AES 3

1.2.1 Cơ chế hoạt động 4

1.2.2 Ưu điểm và nhược điểm 5

1.3 Thỏa thuận khóa Diffie Hellman 5

1.3.1 Giới thiệu 5

1.3.2 Ứng dụng 6

1.3.3 Cách thức hoạt động 7

1.3.4 Độ an toàn và tính bảo mật 8

1.4 Giới thiệu các công cụ, phần mềm môi trường để tích hợp và xây dựng hệ thống 9 1.4.1 Phần mềm Xcode 9

1.4.2 Ngôn Ngữ Swift 10

1.4.3 Firebase 11

1.4.4 CryptoKit 14

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15

2.1 Lấy yêu cầu người dùng 15

Trang 5

2.2.1 Yêu cầu phi chức năng 16

2.2.2 Yêu cầu phi chức năng 16

2.3 Phân tích thiết kế hệ thống 16

2.3.1 Người dùng hệ thống 16

2.3.2 Mô hình usecase dụng tổng quát 16

2.3.3 Đặc tả hệ thống 17

2.3.4 Biểu đồ lớp thiết kế 50

2.3.5 Biểu đồ thực thể 51

2.3.6 Biểu đồ cơ sở dữ liệu hệ thống 52

CHƯƠNG 3: LẬP TRÌNH PHÁT TRIỂN ỨNG DỤNG 53

3.1 Môi trường phát triển và lập trình phát triển ứng dụng 53

3.1.1 Lập trình thỏa thuận khóa Diffie-Hellman 53

3.1.2 Lập trình mã hóa tin nhắn 56

3.1.3 Lập trình giải mã tin nhắn 59

3.1.4 Lập trình tích hợp chat bot 60

3.1.5 Kết quả chạy ứng dụng 61

KẾT LUẬN 69

TÀI LIỆU THAM KHẢO 70

Trang 6

DANH MỤC HÌNH ẢNH

Trang 7

Hình 30: Biểu đồ thực thể 52

Hình 36: Mã hoá tin nhắn sử dụng mã hoá đối xứng AES-128 57

Hình 43: Giao diện danh sách và tìm kiếm người dùng 66

Trang 9

DANH MỤC TỪ VIẾT TẮT

1 AES Advanced Encryption Standard Chuẩn mã hóa nâng cao theo

phương pháp mật mã khối

2 DH Diffie–Hellman key exchange Trao đổi khóa Diffie-Hellman

Trang 10

MỞ ĐẦU

Lý do chọn đề tài

Trong thời đại kỹ thuật số phát triển vượt bậc như ngày nay, các thiết bị di động thông minh được sử dụng rộng rãi (đạt tỷ lệ 84,6% tổng số người sử dụng điện thoại từ 15 tuổi trở lên) Chính vì vậy nhu cầu trao đổi thông tin là điều tất yếu Đó là một trong những tính năng phổ biến của thiết bị di động, cung cấp cho người dùng một cách thuận tiện và hiệu quả để giao tiếp với người khác thông qua internet Từ tin nhắn dựa trên văn bản đơn giản đến các tính năng nâng cao hơn như cuộc gọi video vàchia sẻ tệp, những ứng dụng này đã phát triển đáng kể trong những năm qua Với lượng thông tin nhạy cảm được chia sẻ qua các thiết bị di động ngày càng tăng, điều quan trọng là phải đảm bảo rằng các thông tin liên lạc này được bảo mật và được bảo

vệ khỏi các mối đe dọa tiềm ẩn như xâm nhập, chặn bắt dữ liệu

Trong đồ án tốt nghiệp này, em sẽ thực hiện tìm hiểu và phát triển một ứng dụng nhắn tin an toàn trên thiết bị di động và áp dụng các công nghệ hiện có thông qua việc phân tích kỹ lưỡng và khả năng bảo mật của chúng Em hy vọng rằng những phát hiện và đề xuất được nêu trong dự án này sẽ hữu ích cho các cá nhân và tổ chức đang tìm cách tăng cường bảo mật cho các ứng dụng nhắn tin của họ

Mục tiêu đề tài

1.Tìm hiểu về bảo mật trong nhắn tin

- Tìm hiểu các khái niệm nhắn tin, ứng dụng nhắn tin và an toàn bảo mật trên thiết bị

di động

- Biện pháp an toàn cho nhắn tin trên thiết bị di động: mã hoá AES và thoả thuận khoá

2 Phân tích thiết kế hệ thống cho ứng dụng “Gửi và nhận tin nhắn an toàn trên nền tảng IOS”

3 Xây dựng thành công ứng dụng trên thiết bị IOS

- Tạo tài khoản, đăng ký đăng nhập

- Theo dõi, gửi nhận tin nhắn an toàn

- Chỉnh sửa tên, mật khẩu, ảnh đại diện

- Tìm kiếm người dùng

Trang 11

- Trò chuyện cùng Chat Bot.

Phạm vi nghiên cứu

Với đề tài này, em tập trung tìm ra phương pháp và xây dựng chức năng ứng dụng nhắn tin an toàn trên thiết bị IOS

Phương pháp nghiên cứu

Nghiên cứu dựa trên các phương pháp bảo mật đã được học tại nhà trường để xây dựng, thiết lập an toàn bảo mật cho ứng dụng Đồng thời là các tài liệu liên quan để phân tích hệ thống ứng dụng

CHƯƠNG 1: TỔNG QUAN NGHIÊN CỨU VÀ CƠ SỞ LÝ THUYẾT

1.1 Khái niệm

1.1.1 Nhắn tin (Text messaging) và ứng dụng nhắn tin (Messaging app)

Nhắn tin: là hình thức giao tiếp trực tuyến giữa hai hoặc nhiều người thông quavăn bản ngắn gọn được gửi qua các ứng dụng nhắn tin trên điện thoại di động Điều này cho phép người dùng trao đổi thông tin một cách nhanh chóng và thuận tiện, đặc biệt là trong các tình huống khi gọi điện thoại không phải lựa chọn thích hợpCác ứng dụng nhắn tin trên thiết bị di động (messaging app) cung cấp khả năngnhắn tin trực tiếp giữa người dùng, cho phép người dùng gửi và nhận tin nhắn một cách dễ dàng và thuận tiện Các ứng dụng nhắn tin phổ biến hiện nay bao gồm WhatsApp, Facebook Messenger, iMessage, Viber, Line, Zalo, Các ứng dụng này cóthể được tải xuống từ các cửa hàng ứng dụng trên các hệ điều hành di động như Android và iOS

Tin nhắn đa phương tiện (multimedia messaging), là hình thức gửi tin nhắn kèm theo các tệp đa phương tiện như hình ảnh, video hoặc âm thanh Điều này cho phép người dùng chia sẻ nhiều hơn chỉ văn bản và tạo ra một trải nghiệm giao tiếp trực tuyến đa dạng hơn

Ứng dụng nhắn tin trực tuyến đã trở thành một phần quan trọng trong cuộc sống của chúng ta trong thời đại ngày nay Đây là một công cụ truyền thông và giao tiếp cực kỳ tiện lợi, phổ biến và đa dạng, với nhiều tính năng cải tiến, giúp người dùnggiao tiếp, làm việc và giải trí dễ dàng hơn Một trong những ứng dụng của ứng dụng

Trang 12

nhắn tin trực tuyến là trong giao tiếp cá nhân Người dùng có thể trao đổi thông tin trực tiếp, dễ dàng và thuận tiện, cho phép họ kết nối và tương tác với những người khác trong cuộc sống hàng ngày Điều này giúp giảm thiểu thời gian và khoảng cách giữa các cá nhân, cho phép họ tiếp cận với nhau một cách nhanh chóng, bất kể họ ở đâu Ngoài ra, ứng dụng nhắn tin trực tuyến còn được sử dụng rộng rãi trong kinh doanh, việc hỗ trợ giáo dục và y tế.

Tóm lại, ứng dụng dụng nhắn tin trực tuyến đã trở thành một công cụ không thể thiếu trong cuộc sống hiện đại của chúng ta Nó giúp kết nối mọi người một cách thuận tiện và nhanh chóng, giúp tiết kiệm thời gian và tăng cường khả năng tương tác giữa các cá nhân và doanh nghiệp Trong tương lai, ứng dụng nhắn tin trực tuyến sẽ tiếp tục phát triển với nhiều tính năng và ứng dụng mới, giúp người dùng giao tiếp và làm việc một cách hiệu quả hơn Tuy nhiên, cần lưu ý rằng việc sử dụng ứng dụng nhắn tin trực tuyến cần được thực hiện một cách cân nhắc và có trách nhiệm để đảm bảo an toàn và hiệu quả trong giao tiếp và làm việc của chúng ta

1.1.2 Nhắn tin (Text messaging) và ứng dụng nhắn tin (Messaging app)

Trong thời đại kỹ thuật số ngày nay, bảo mật thông tin đóng vai trò cực kỳ quan trọng trong đời sống của con người Với sự phát triển không ngừng của công nghệ thông tin, việc truyền tải thông tin trở nên dễ dàng hơn bao giờ hết Tuy nhiên, điều này cũng đồng nghĩa với việc sự rủi ro của việc thông tin bị lộ ra ngoài trở nên cao hơn Sự bảo vệ thông tin cá nhân và thông tin quan trọng trở thành một thách thức

to lớn

Để đảm bảo tính bảo mật của thông tin trong các hoạt động truyền tải thông tin,các kỹ thuật mã hóa và thỏa thuận khóa được sử dụng rộng rãi Kỹ thuật mã hóa là quátrình biến đổi thông tin sang một dạng khác mà chỉ những người có chìa khóa đúng mới có thể giải mã được Thỏa thuận khóa là quá trình để hai hay nhiều bên thiết lập một khóa bí mật để sử dụng trong việc mã hóa và giải mã thông tin

Trong bối cảnh mà sự truyền tải thông tin giữa các thiết bị di động trở nên phổ biến, việc sử dụng kỹ thuật mã hóa và thỏa thuận khóa để đảm bảo tính bảo mật của thông tin trở nên càng quan trọng hơn Các giải pháp nhắn tin an toàn cho thiết bị di động sử dụng mã hóa và thỏa thuận khóa để đảm bảo tính bảo mật của thông tin gửi đi

Trang 13

và đến, bảo vệ dữ liệu cá nhân và thông tin quan trọng khỏi những mối đe dọa của sự xâm nhập và tấn công từ bên ngoài.

1.2 Mã hóa AES

AES (Advanced Encryption Standard) là một thuật toán mã hóa đối xứng được

sử dụng rộng rãi trong các ứng dụng bảo mật thông tin Thuật toán này được chọn làmchuẩn mã hóa chính thức của chính phủ Hoa Kỳ từ năm 2002 và hiện đang được sử dụng phổ biến trên toàn thế giới

AES được thiết kế để đảm bảo tính bảo mật của thông tin truyền tải giữa hai bên thông qua việc sử dụng một khóa bí mật để mã hóa và giải mã thông tin Thuật toán AES sử dụng một khối 128 bit dữ liệu đầu vào và một khóa 128, 192 hoặc 256 bit để thực hiện quá trình mã hóa và giải mã thông tin

AES có nhiều ưu điểm, trong đó nổi bật là tốc độ xử lý nhanh, khả năng bảo vệ tính toàn vẹn của thông tin và khả năng chống lại các cuộc tấn công mã hóa hiện đại Ngoài ra, AES còn được sử dụng trong các ứng dụng bảo mật thông tin như mật khẩu

và chữ ký điện tử

Các ứng dụng thực tế của AES là rất đa dạng, từ bảo vệ thông tin cá nhân trên các thiết bị di động cho đến bảo vệ thông tin quan trọng trong các tổ chức và doanh nghiệp Thuật toán AES đã được sử dụng trong các ứng dụng như truyền tải dữ liệu qua mạng Internet, bảo vệ thông tin trong các hệ thống điện toán đám mây và các ứng dụng di động

Tuy nhiên, để sử dụng mã hóa AES hiệu quả, người dùng cần phải hiểu rõ các thuật toán và nguyên tắc cơ bản của mã hóa đối xứng Ngoài ra, cũng cần phải đảm bảo an toàn và bảo mật của khóa bí mật được sử dụng để mã hóa thông tin

Trong chương này, chúng ta sẽ tìm hiểu chi tiết hơn về cách sử dụng AES trongcác ứng dụng bảo mật thông tin cho thiết bị di động, cũng như các lợi ích và hạn chế của thuật toán này

1.2.1 Cơ chế hoạt động

Cơ chế hoạt động của mã hóa AES (Advanced Encryption Standard) được thựchiện bằng cách sử dụng một loạt các phép biến đổi trên dữ liệu được mã hóa và một

Trang 14

khóa bí mật để giải mã thông tin Mã hóa AES là một loại mã hóa đối xứng, có nghĩa

là cùng một khóa bí mật được sử dụng để mã hóa và giải mã dữ liệu

Mã hóa AES sử dụng khóa bí mật để thực hiện các phép biến đổi trên dữ liệu được mã hóa Khóa bí mật là một chuỗi dữ liệu được tạo ra từ mật khẩu hoặc từ một tập hợp các giá trị ngẫu nhiên được sinh ra bởi các thuật toán bảo mật

Quá trình mã hóa bắt đầu bằng việc chia dữ liệu thành các khối có độ dài cố định và thực hiện các phép biến đổi trên từng khối Các phép biến đổi bao gồm các hoán vị, thay thế và tính toán trên các khối dữ liệu để tạo ra dữ liệu mã hóa Sau đó, khóa bí mật được sử dụng để thực hiện phép xor với dữ liệu mã hóa để tạo ra kết quả cuối cùng

Quá trình giải mã tương tự như quá trình mã hóa, chỉ khác là các phép biến đổi được áp dụng ngược lại trên dữ liệu được mã hóa để khôi phục lại thông tin gốc Các phép biến đổi được áp dụng dựa trên cùng một khóa bí mật đã được sử dụng trong quátrình mã hóa

Mã hóa AES sử dụng một tập hợp các vòng lặp để thực hiện các phép biến đổi trên dữ liệu được mã hóa Số lượng vòng lặp được sử dụng phụ thuộc vào độ dài khóa

bí mật Với khóa bí mật có độ dài 128 bit, mã hóa AES sử dụng 10 vòng lặp Với độ dài khóa bí mật lớn hơn, số lượng vòng lặp cần sử dụng sẽ tăng lên để đảm bảo tính bảo mật của mã hóa

Vì mã hóa AES sử dụng các phép biến đổi đơn giản và hiệu quả, nó được sử dụng rộng rãi trong các ứng dụng bảo mật thông tin, bao gồm cả việc truyền tải dữ liệu an toàn cho thiết bị di động

1.2.2 Ưu điểm và nhược điểm

Mã hóa AES là một trong những phương pháp mã hóa đối xứng được sử dụng rộng rãi nhất trong bảo mật thông tin Tuy nhiên, mã hóa AES cũng có những ưu điểm

và hạn chế nhất định, bao gồm:

Ưu điểm:

- Tính bảo mật cao: Mã hóa AES sử dụng các phép biến đổi phức tạp, làm cho việc tấn công và giải mã trở nên khó khăn Điều này giúp tăng tính bảo mật của dữ liệu được mã hóa bởi AES

Trang 15

hình database hướng tài liệu(document-oriented), nơi dữ liệu được lưu trữ trong các

bộ sưu tập và các tài liệu Mỗi tài liệu chứa một tập hợp các cặp khóa-giá trị và có thể được lồng vào nhau để hỗ trợ các cấu trúc dữ liệu phức tạp

Các nhà phát triển có thể sử dụng các khả năng lập chỉ mục và truy vấn của Firestore

để truy xuất dữ liệu một cách hiệu quả và có thể sử dụng các bản cập nhật theo thời gian thực của Firestore để nhận các bản cập nhật theo thời gian thực khi dữ liệu thay đổi

Một số nhược điểm tiềm ẩn khi sử dụng Firestore bao gồm:

-Chi phí: Firestore tính phí dựa trên lượng dữ liệu được lưu trữ, số lần đọc và ghi tài liệu cũng như số lượng chỉ mục được tạo Điều này có thể làm cho Firestore đắt hơn các cơ sở dữ liệu khác đối với một số trường hợp sử dụng nhất định

- Hạn chế về truy vấn: Firestore có một số hạn chế đối với các truy vấn và lập chỉ mụcphức tạp, điều này có thể gây khó khăn cho việc thực hiện phân tích dữ liệu phức tạp

- Chức năng ngoại tuyến: Firestore yêu cầu kết nối internet để hoạt động, điều này có thể hạn chế tính hữu dụng của nó trong các tình huống ngoại tuyến nhất định

Trong ngữ cảnh của một hệ thống nhắn tin an toàn, Firestore có thể được sử dụng để lưu trữ và đồng bộ hóa dữ liệu tin nhắn giữa những người dùng, đảm bảo rằngcác tin nhắn có sẵn trong thời gian thực và được bảo vệ khỏi mất hoặc hỏng dữ liệu

Nó cũng có thể được sử dụng để lưu trữ dữ liệu xác thực người dùng và quản lý vai trò và quyền của người dùng, đảm bảo rằng chỉ những người dùng được ủy quyền mới

có quyền truy cập vào hệ thống

Tóm lại, Firestore là cơ sở dữ liệu tài liệu NoSQL mạnh mẽ cung cấp khả năng

mở rộng, tính linh hoạt và cập nhật theo thời gian thực, khiến nó trở thành lựa chọn phổ biến cho các nhà phát triển xây dựng ứng dụng trên nền tảng Firebase Tuy nhiên, điều quan trọng là phải xem xét các hạn chế và chi phí tiềm ẩn trước khi quyết định sửdụng Firestore cho một trường hợp sử dụng cụ thể

1.4.3.3 Firebase authentication

Firebase Authentication là một dịch vụ được cung cấp bởi nền tảng Firebase của Google cho phép các nhà phát triển xác thực người dùng bằng email và mật khẩu,

Trang 16

số điện thoại hoặc các nhà cung cấp danh tính bên thứ ba khác nhau như Google, Facebook, Twitter hoặc GitHub.

Để sử dụng Firebase Authentication, trước tiên, nhà phát triển cần tạo dự án Firebase và thêm Firebase Authentication vào ứng dụng của họ Sau đó, họ có thể chọn nhà cung cấp xác thực nào sẽ bật và định cấu hình chúng cho phù hợp Sau khi người dùng đăng nhập, Firebase Authentication lưu trữ thông tin người dùng một cách

an toàn và cung cấp mã định danh duy nhất cho người dùng có thể được sử dụng để truy cập các dịch vụ Firebase khác

Ưu điểm của Firebase Authentication bao gồm:

- Dễ sử dụng: Firebase Authentication cung cấp một hệ thống xác thực đơn giản và dễ

sử dụng, có thể được tích hợp vào các ứng dụng một cách nhanh chóng

- Bảo mật: Firebase Authentication sử dụng các biện pháp bảo mật tiêu chuẩn của ngành để bảo vệ dữ liệu người dùng, chẳng hạn như mã hóa SSL và giao thức OAuth2.0

- Khả năng mở rộng: Firebase Authentication được thiết kế để xử lý một số lượng lớn người dùng và mở rộng quy mô liền mạch khi ứng dụng phát triển

- Nhà cung cấp bên thứ ba: Firebase Authentication hỗ trợ nhiều nhà cung cấp danh tính bên thứ ba, giúp người dùng dễ dàng đăng nhập bằng tài khoản email hoặc mạng

xã hội hiện có của họ

Nhược điểm của Firebase Authentication bao gồm:

- Khóa nhà cung cấp: Sử dụng Firebase Authentication Firebase có nghĩa là dựa vào

cơ sở hạ tầng của Google, điều này có thể hạn chế tính linh hoạt và khiến việc di chuyển sang dịch vụ khác trở nên khó khăn hơn

- Khả năng tùy chỉnh hạn chế: Mặc dù Firebase Authentication cung cấp nhiều tùy chọn cho nhà cung cấp dịch vụ xác thực, nhưng có một số hạn chế trong việc tùy chỉnh quy trình đăng nhập và đăng ký

- Chi phí: Firebase Authentication miễn phí cho tối đa 10.000 người dùng hoạt động hàng tháng, nhưng ngoài ra, còn có các chi phí bổ sung dựa trên việc sử dụng

Về việc sử dụng Firebase Authentication cho ứng dụng trò chuyện, nhà phát

Trang 17

dùng, chẳng hạn như tên hiển thị hoặc ảnh hồ sơ, sau đó có thể được hiển thị trong giao diện trò chuyện Nhà phát triển cũng có thể sử dụng Xác thực Firebase để kiểm soát quyền truy cập vào một số tính năng nhất định, chẳng hạn như chỉ cho phép người dùng đã đăng nhập gửi tin nhắn hoặc tham gia một số phòng trò chuyện nhất định.

1.4.4 CryptoKit

CryptoKit là một framework do Apple cung cấp cho phép các nhà phát triển thực hiện các hoạt động mã hóa trong mã Swift của họ Nó cung cấp giao diện cấp caocho các tác vụ mật mã phổ biến, chẳng hạn như mã hóa, giải mã, băm và tạo khóa.Một trong những ưu điểm chính của việc sử dụng CryptoKit là nó được thiết kế

để bảo mật và dễ sử dụng, ngay cả đối với những nhà phát triển có thể không có kiến thức sâu rộng về mật mã Nó trừu tượng hóa nhiều chi tiết cấp thấp của các hoạt động mật mã, cho phép các nhà phát triển tập trung vào chức năng của ứng dụng của họ.CryptoKit hỗ trợ nhiều thuật toán mã hóa, bao gồm mã hóa khóa đối xứng (chẳng hạn như AES), mã hóa khóa bất đối xứng (chẳng hạn như RSA) và thuật toán băm (chẳng hạn như SHA-256) Nó cũng cung cấp hỗ trợ cho quản lý khóa và gói khóa, giúp lưu trữ và quản lý khóa mã hóa một cách an toàn dễ dàng hơn

Quản lý khóa: CryptoKit bao gồm hỗ trợ quản lý khóa, cho phép các nhà phát triển tạo và quản lý khóa mã hóa một cách an toàn Nó cung cấp các chức năng để tạo khóa ngẫu nhiên, gói và mở khóa cũng như lưu trữ khóa an toàn trong móc khóa của thiết bị Điều này giúp các nhà phát triển quản lý khóa mã hóa dễ dàng hơn và đảm bảo rằng chúng được bảo vệ khỏi truy cập trái phép

Tích hợp với các khung iOS khác: CryptoKit được thiết kế để tích hợp hoàn hảo với các khung iOS khác, chẳng hạn như Core Data và CloudKit Điều này giúp các nhà phát triển dễ dàng xây dựng các hệ thống nhắn tin an toàn tận dụng các khungnày để lưu trữ và đồng bộ hóa dữ liệu

Trong ngữ cảnh của một hệ thống nhắn tin an toàn, CryptoKit có thể được sử dụng để mã hóa và giải mã các tin nhắn được gửi giữa những người dùng, đảm bảo rằng các tin nhắn được bảo vệ khỏi bị chặn và truy cập trái phép Nó cũng có thể được

sử dụng để tạo và quản lý các khóa mã hóa cho mỗi người dùng, đảm bảo rằng các khóa được lưu trữ và quản lý an toàn

Trang 18

Nhìn chung, CryptoKit là một công cụ mạnh mẽ dành cho các nhà phát triển xây dựng hệ thống nhắn tin an toàn, tính dễ sử dụng và hỗ trợ nhiều thuật toán mã hóalàm cho nó trở thành một bổ sung có giá trị cho bất kỳ bộ công cụ nào của nhà phát triển.

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

1.1 Lấy yêu cầu người dùng

Hiện nay, các thiết bị di động được sử dụng một cách vô cùng rộng rãi Theo thống kê số người sử dụng smartphone từ 15 tuổi là 53,5 triệu, đạt tỷ lệ 84,6% tổng số người sử dụng điện thoại từ 15 tuổi trở lên (theo kế hoạch năm 2021 là đạt tỷ lệ 90% người sử dụng điện thoại từ 15 tuổi trở lên có smartphone)

Với sự phổ biến của việc sử dụng các thiết bị di động, việc bảo vệ thông tin cá nhân và dữ liệu trong quá trình truyền tin trở thành một vấn đề vô cùng quan trọng và cấp thiết Cần có một hệ thống giúp đảm bảo tính toàn vẹn, xác thực bảo mật của

thông tin trao đổi giữa các thiết bị di động tránh được sự mất mát, rò rỉ thông tin đáng tiếc Hệ thống được xây dựng có thế nhắn tin trò chuyện, gửi video, hình ảnh

trao đổi giữa hai tài khoản khi có sự cho phép của chủ sở hữu Các thông tin trao đổi được mã hoá để tránh cho trường hợp bên thứ ba bất kỳ có thể biết được nội dung, gâymất và phá vỡ an toàn bảo mật thông tin

Một hệ thống tiện lợi trong việc sử dụng Tích hợp chat bot OpenAI hỗ trợ người dùng trò chuyện tra cứu thông tin

Người dùng sẽ tiến hành đăng ký tài khoản hoặc đăng nhập bằng tài khoản email Khi đăng ký sẽ có các mục: tên sử dụng, email, mật khẩu Phục vụ cho việc đăng nhập sau đó được thuận lợi

Các tài khoản có thế cập nhật ảnh đại diện, tên hay biệt danh cho riêng mình Người dùng thực hiện theo dõi và trò chuyện với các tài khoản khác thông qua ứng dụng Khi người dùng sử dụng ứng dụng sẽ có trạng thái hoạt động cập nhật tiện lợi cho các cuộc trò chuyện diễn ra

Trang 19

1.2 Phân tích yêu cầu hệ thống

1.2.1 Yêu cầu phi chức năng

● Đăng ký và đăng nhập: Người dùng có thể đăng ký tài khoản mới và đăng nhậpvào tài khoản hiện có

● Tìm kiếm và theo dõi: Người dùng có thể tìm kiếm và theo dõi những người khác trong ứng dụng

● Trò chuyện: Người dùng có thể trò chuyện với những người dùng khác với điều kiện đã được theo dõi

● Chat bot: Người dùng có thể trò chuyện và hỏi chat bot

2.2.2 Yêu cầu phi chức năng

● Ứng dụng phải cần đảm bảo tính bảo mật, toàn vẹn, xác thực với các cuộc trò chuyện và dữ liệu của người dùng

● Thiết kế thân thiện với người dùng: Ứng dụng nên có giao diện thân thiện với người dùng, tối giản mà vẫn phải đầy đủ chức năng, đảm bảo người dùng không gặp khó khăn khi tương tác với hệ thống

2.3 Phân tích thiết kế hệ thống

2.3.2 Người dùng hệ thống

- Mọi người dùng: Họ muốn sử dụng ứng dụng để trò chuyện, trao đổi thông tin một cách an toàn và bảo mật Họ chính là người sẽ tạo tài khoản và thực hiện cuộc trò chuyện trên ứng dụng bằng cách thực hiện đăng ký tài khoản, theo dõi và nhắn tin

- Người quản trị hệ thống: Quản trị dữ liệu, quản trị người dùng

2.3.3 Mô hình usecase dụng tổng quát

Trang 20

Hình 1: Mô hình usecase tổng quát

Trang 21

4 Hệ thống kiểm tra thông tin, hệ thống tiếp nhận

thông tin và kiểm tra định dạng trường email, trường tên , trường mật khẩu, trường nhập lại mật khẩu Nếu tất cả các trường hợp lệ chuyển sang 5 Ngược lại:

+ Email không hợp lệ.(Luồng ngoại lệ EF1)+ Tên nhỏ hơn 6 ký tự.(Luồng ngoại lệ EF2)+ Mật khẩu đủ 6 ký tự nhưng không có kí tự đặc biệt, số, chữ viết thường, chữ viết hoa (Luồng ngoại lệ EF3)

+ Trường nhập lại mật khẩu không trùng khớp (Luồng ngoại lệ EF5)

Trang 22

+ Nếu email đã được sử dụng để đăng ký ( Luồng ngoại lệ EF4)

Luồng

ngoại lệ

EF1 Báo lỗi “Email không đúng định dạng Vui lòng

kiểm tra lại!” Đưa về màn đăng ký

EF2 Báo lỗi “Tên không được nhỏ hơn 6 ký tự!”

EF3 Báo lỗi “Mật khẩu chứa ít nhất 6 ký tự bao gồm

một ký tự đặc biệt, một chữ cái viết in hoa, viết thường và ký tự số!” Đưa về màn đăng ký

EF4 Báo lỗi “Email đã đăng ký tài khoản Vui lòng thử

Trang 23

Hình 2: Biểu đồ hoạt động đăng ký

Trang 24

Hình 3: Biểu đồ lớp đăng ký

Trang 25

Hình 4: Biểu đồ tuần tự đăng ký

2.3.4.2 Đặc tả ca sử dụng đăng nhập

Mã Use Case UC02

Tên Use Case Đăng nhập

Trang 26

Tác nhân Người sử dụng

Mô tả Tại giao diện ứng dụng di động, người dùng có thể thực hiện quá

trình đăng nhập bằng cách click vào button đăng nhập

Điều kiện tiên

quyết

Người dùng có tài khoản đã đăng ký hoặc tài khoản gmail

1 Truy cập vào ứng dụng

3 Nhập thông tin Thông tin bắt buộc cần nhập:

Mật khẩu và nhập lại mật khẩu

thông tin, kiểm tra trường email,trường mật khẩu Nếu chính xácchuyển 5 Ngược lại:

+ Email không hợp lệ (Luồng ngoại lệ EF1)

+ Mật khẩu không hợp lệ, không có kí tự đặc biệt, số, chữ viết thường, chữ viết hoa (Luồng ngoại lệ EF3)

Trang 27

+ Thông tin tài khoản không trùng khớp.(EF3)

Trang 29

Hình 5: Biểu đồ hoạt động đăng nhập

Hình 6: Biểu đồ lớp đăng nhập

Trang 30

Hình 7: Biểu đồ tuần tự đăng nhập

2.3.4.3 Đặc tả ca sử dụng theo dõi và huỷ theo dõi

Mã Use Case UC03

Tên Use Case Theo dõi và hủy theo dõi

Trang 31

Tác nhân Người sử dụng

Mô tả Click chọn theo dõi

Điều kiện tiên

quyết

Người dùng có tài khoản đã đăng ký hoặc tài khoản gmail, tại giao diện màn cá nhân của một tài khoản

1 Tại giao diện màn cá nhân của một tài khoản

Đưa ra giao diện trang cá nhân tương ứng của tài khoản được chọn

+ Button “Theo dõi” xuất hiện khi chưa theo dõi

+ Button “Hủy theo dõi” xuất hiện khi đã theo dõi

button Theo dõi hoặc huỷ theo dõi

Hệ thống hiển thị thông báo.+ Button theo dõi: “Bạn đã theo dõi tài khoản A ” với A là tên người dùng được chọn Tạo thỏathuận khóa Diffie - Hellman+ Button Hủy theo dõi (Luồng thay thế AF1)

Luồng thay thế

muốn huỷ theo dõi tài khoản

Trang 32

+ “Xác nhận”: hệ thống bỏ theo Điều kiện

sau

Điều kiện

thoát

● Khi người dùng thoát khỏi trang cá nhân của tài khoản

Bảng 3: Đặc tả ca sử dụng theo dõi và huỷ theo dõi

Trang 33

Hình 9: Biểu đồ lớp theo dõi và huỷ theo dõi

Trang 34

Hình 10: Biểu đồ tuần tự theo dõi và huỷ theo dõi

2.3.4.4 Đặc tả ca sử dụng gửi tin nhắn

Mã Use Case UC04

Tên Use Case Gửi tin nhắn

Tác nhân Người sử dụng

Mô tả Người click chọn chat

Trang 35

Điều kiện tiên

cần chat, hoặc chọn ảnh video

từ thiết bị

- Nội dung chat là hình ảnh hoặcvideo (Luồng thay thế AF2)

4 Nhấn nút gửi - Hệ thống mã hoá theo thoả

thuận khóa Diffie - Hellman và lưu trữ lên FireStore

- Hiển thị tin nhắn trên kênh chat

Trang 36

thoát ● Khi người dùng tắt ứng dụng

Bảng 4: Đặc tả ca sử dụng gửi tin nhắn

Hình 11: Biểu đồ hoạt động gửi tin nhắn

Trang 37

Hình 12: Biểu đồ lớp gửi tin nhắn

Hình 13: Biểu đồ tuần tự gửi tin nhắn

Trang 38

2.3.4.5 Đặc tả ca sử dụng nhận tin nhắn

Mã Use Case UC05

Tên Use Case Nhận tin nhắn

Tác nhân Người sử dụng

Mô tả Có tài khoản gửi tin nhắn

Điều kiện tiên

quyết

Người dùng có tài khoản đã đăng ký hoặc tài khoản gmail

1 Nhận được tin nhắn từ

người dùng khác

khóa và nội dung

Trang 39

Hình 14: Biểu đồ hoạt động nhận tin nhắn

Ngày đăng: 16/05/2024, 16:24

HÌNH ẢNH LIÊN QUAN

Bảng 1: Đặc tả ca sử dụng đăng ký - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Bảng 1 Đặc tả ca sử dụng đăng ký (Trang 31)
Hình 2: Biểu đồ hoạt động đăng ký - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 2 Biểu đồ hoạt động đăng ký (Trang 32)
Hình 3: Biểu đồ lớp đăng ký - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 3 Biểu đồ lớp đăng ký (Trang 33)
Hình 4: Biểu đồ tuần tự đăng ký - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 4 Biểu đồ tuần tự đăng ký (Trang 34)
Bảng 2: Đặc tả ca sử dụng đăng nhập - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Bảng 2 Đặc tả ca sử dụng đăng nhập (Trang 36)
Hình 5: Biểu đồ hoạt động đăng nhập - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 5 Biểu đồ hoạt động đăng nhập (Trang 38)
Hình 7: Biểu đồ tuần tự đăng nhập - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 7 Biểu đồ tuần tự đăng nhập (Trang 39)
Hỡnh 8: Biểu đồ hoạt động theo dừi và huỷ theo dừi - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
nh 8: Biểu đồ hoạt động theo dừi và huỷ theo dừi (Trang 41)
Hỡnh 9: Biểu đồ lớp theo dừi và huỷ theo dừi - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
nh 9: Biểu đồ lớp theo dừi và huỷ theo dừi (Trang 42)
Hỡnh 10: Biểu đồ tuần tự theo dừi và huỷ theo dừi - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
nh 10: Biểu đồ tuần tự theo dừi và huỷ theo dừi (Trang 43)
Bảng 4: Đặc tả ca sử dụng gửi tin nhắn - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Bảng 4 Đặc tả ca sử dụng gửi tin nhắn (Trang 45)
Hình 12: Biểu đồ lớp gửi tin nhắn - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 12 Biểu đồ lớp gửi tin nhắn (Trang 46)
Hình 14: Biểu đồ hoạt động nhận tin nhắn - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 14 Biểu đồ hoạt động nhận tin nhắn (Trang 48)
Bảng 6: Đặc tả ca sử dụng trò chuyện chat bot - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Bảng 6 Đặc tả ca sử dụng trò chuyện chat bot (Trang 51)
Hình 17: Biểu đồ hoạt động trò chuyện chat bot - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 17 Biểu đồ hoạt động trò chuyện chat bot (Trang 52)
Hình 18: Biểu đồ lớp trò chuyện chat bot - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 18 Biểu đồ lớp trò chuyện chat bot (Trang 53)
Hình 19: Biểu đồ tuần tự trò chuyện chat bot - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 19 Biểu đồ tuần tự trò chuyện chat bot (Trang 54)
Hình 23: Biểu đồ hoạt động tìm kiếm người dùng - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 23 Biểu đồ hoạt động tìm kiếm người dùng (Trang 60)
Hình 24: Biểu đồ lớp tìm kiếm người dùng - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 24 Biểu đồ lớp tìm kiếm người dùng (Trang 61)
Hình 25: Biểu đồ tuần tự tìm kiếm người dùng - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 25 Biểu đồ tuần tự tìm kiếm người dùng (Trang 61)
Hình 29: Biểu đồ lớp thiết kế - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 29 Biểu đồ lớp thiết kế (Trang 65)
Hình 30: Biểu đồ thực thể - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 30 Biểu đồ thực thể (Trang 66)
Hình 31: Biểu đồ cơ sở dữ liệu hệ thống - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 31 Biểu đồ cơ sở dữ liệu hệ thống (Trang 67)
Hình 36: Mã hoá tin nhắn sử dụng mã hoá đối xứng AES-128 - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 36 Mã hoá tin nhắn sử dụng mã hoá đối xứng AES-128 (Trang 72)
Hình 39: Giao diện màn khởi đầu - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 39 Giao diện màn khởi đầu (Trang 78)
Hình 41: Giao diện màn đăng nhập - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 41 Giao diện màn đăng nhập (Trang 80)
Hình 42: Giao diện màn user profile - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 42 Giao diện màn user profile (Trang 81)
Hình 43: Giao diện danh sách và tìm kiếm người dùng - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 43 Giao diện danh sách và tìm kiếm người dùng (Trang 82)
Hình 46: Giao diện trò chuyện chat bot - đồ án tốt nghiệp xây dựng ứng dụng di động gửi và nhận tin nhắn an toàn trên nền tảng ios
Hình 46 Giao diện trò chuyện chat bot (Trang 85)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w