Tải bản đầy đủ (.pdf) (88 trang)

đồ á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ạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.65 MB, 88 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNTTRƯỜNG ĐẠI HỌC THUỶ LỢI</b>

ĐỒ ÁN TỐT NGHIỆP

<b>XÂY DỰNG ỨNG DỤNG DI ĐỘNG GỬI VÀ NHẬN TIN NHẮN AN TOÀNTRÊN NỀN TẢNG IOS</b>

<i>Sinh viên thực hiện</i>:

<i>Họ và tên: Đỗ Thị Hải ĐoanMã sinh viên: 1952060606Người hướng dẫn: </i>

<i>ThS. Nguyễn Văn Nam</i>

<b>Hà Nội, 2023</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI CAM ĐOAN</b>

<b>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</b>

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!

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

<b>Sinh viên thực hiện đồ án</b>

<b>Đỗ Thị Hải Đoan</b>

1

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN</b>

Kính thưa q thầy cơ, trong suốt qng 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, hồ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 để hồ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!

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

<b>Sinh viên</b>

Đỗ Thị Hải Đoan

2

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>Mục lục</b>

<b>LỜI CAM ĐOAN...ILỜI CẢM ƠN...IIMỤC LỤC...IIIDANH MỤC HÌNH ẢNH...IVDANH MỤC BẢNG BIỂU...VDANH MỤC TỪ VIẾT TẮT...VI</b>

<b>MỞ ĐẦU...1</b>

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

<i>1.1 Khái niệm...2</i>

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

<i>1.2Mã hóa AES...3</i>

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

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

<i>1.3Thỏa thuận khóa Diffie Hellman...5</i>

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

<i>2.1Lấy yêu cầu người dùng...15</i>

<i>2.2Phân tích yêu cầu hệ thống...16</i>

4

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

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

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

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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH MỤC HÌNH ẢNH</b>

6

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

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

7

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

8

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>DANH MỤC TỪ VIẾT TẮT</b>

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

9

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>MỞ ĐẦULý do chọn đề tài</b>

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ọ.

<b>Mục tiêu đề tài</b>

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 khố2. Phân tích thiết kế hệ thống cho ứng dụng “Gửi và nhận tin nhắn an tồ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.

1

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

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

<b>Phạm vi nghiên cứu</b>

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.

<b>Phương pháp nghiên cứu</b>

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.

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

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ợp

Cá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

2

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

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. Ngồ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 ngồ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ứcto 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à qtrì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

3

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

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 ngồi.

1.2 Mã hóa AES

AES (Advanced Encryption Standard) là một thuật tố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 tố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 tố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 tồ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. Ngồ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à ngun tắc cơ bản của mã hóa đối xứng. Ngồ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

4

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

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 tố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.

Q trình giải mã tương tự như q 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 qtrì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ểmvà 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.

5

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

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ớicó 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ể.

<i>1.4.3.3Firebase authentication</i>

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,

14

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

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áchan 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 triển có thể sử dụng nó để xác thực người dùng và lưu trữ an toàn thông tin người

15

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

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 tố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 tố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 tồ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 tồ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 tồ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 tồ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ể đượcsử 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 tồn.

16

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

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 tồn, tính dễ sử dụng và hỗ trợ nhiều thuật tố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.

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

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 q 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 <b>đảm bảo tính tồn vẹn</b>, xác thực bảo mật của

<b>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. </b>Hệ thống được xây dựng có thế <b>nhắn tin trị chuyện, gửi video, hình ảnh</b>

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ã hố để 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 tồn bảo mật thơng tin.

Một hệ thống tiện lợi trong việc sử dụng. <b>Tích hợp chat bot OpenAI</b> 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.

17

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

1.2 Phân tích yêu cầu hệ thống1.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, tồ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 tồ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 qt

18

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<i>Hình 1: Mơ hình usecase tổng qt</i>

2.3.4 Đặc tả hệ thống

2.3.4.1 Đặc tả ca sử dụng đăng ký

Mã Use Case

Tên Use Case

Đăng ký

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

Mô tả Click vào button đăng ký

19

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

Điều kiệntiên quyết

Người dùng tải ứng dụng

Luồng sự kiện

Tác nhân Hệ thống phản hồi

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

2 Click đăng ký

Đưa ra giao diện đăng ký

3 Nhập thôngtin

Thông tin bắt buộc cần nhập: Tên sử dụng, email, mật khẩu và nhập lại mật khẩu.

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)

⇒ Button đăng ký khả dụng

6 Click đăng ký

Hệ thống kiểm tra email có hợp lệ hay không.+ Nếu hợp lệ hệ thống tiến hành lưu trữ thông tin và đưa ra thông báo đăng ký thành công.

20

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

+ 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ử lại!”

Quay về màn đăng ký.

EF5 Báo lỗi “Mật khẩu không trùng khớp!”

Điều kiệnsau

Điều kiệnthốt

<small>●</small> Khi chức năng thực hiện thành cơng

<small>●</small> Khi người dùng tắt ứng dụng

<i>Bảng 1: Đặc tả ca sử dụng đăng ký</i>

21

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

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

22

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

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

23

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

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

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

Mã Use Case UC02

Tên Use Case Đăng nhập

24

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

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)

25

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

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

Điều kiện thốt

<small>●</small> Khi chức năng thực hiện thành cơng

<small>●</small> Khi người dùng tắt ứng dụng

<i>Bảng 2: Đặc tả ca sử dụng đăng nhập</i>

26

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

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

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

28

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

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

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

29

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

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

30

</div>

×