Tải bản đầy đủ (.docx) (63 trang)

ĐỀ TÀI XÂY DỰNG HỆ THỐNG MÃ HOÁ TIN NHẮN SỬ DỤNG NEXTCLOUD TALK TRÊN 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 (2.85 MB, 63 trang )

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

<b>THỰC TẬP CƠ SỞ</b>

<b>ĐỀ TÀI : </b>

<b>XÂY DỰNG HỆ THỐNG MÃ HOÁ TIN NHẮN SỬ DỤNGNEXTCLOUD TALK TRÊN IOS</b>

<b>Ngành: Công nghệ thông tin</b>

<b>Giảng viên hướng dẫn: Phạm Văn Hưởng</b>

<b>Họ và tên sinh viên: Trần Văn HiệpNguyễn Đức ThịnhMai Hồng PhươngKhóa: CT5</b>

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

<b>1.2. Tính năng của Nextcloud...10</b>

<b>1.3. Lợi ích của Nextcloud...11</b>

1.4. Tổng kết chương...11

<b>Chương 2. XÂY DỰNG GIẢI PHÁP MÃ HÓA ĐẦU CUỐI CHOĐÁM MÂY SAAS TRONG PHÁT TRIỂN HỆ SINH THÁI SỐ13</b> 2.1. Mơ hình hệ sinh thái sớ sử dụng đám mây NextCloud...13

2.1.1. Mơ hình hệ thống và cấu trúc NextCloud...13

2.1.2. Dịch vụ NextCloud cung cấp...16

2.2. Giải pháp an toàn và bảo mật dữ liệu của đám mây SaaS NextCloud19 2.2.1. Xác thực và phân quyền...19

2.2.2. Kiểm soát truy cập...25

2.2.3. Giám sát an ninh mạng và kiểm toán...27

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

2.3.1. Mơ hình giải pháp...35

2.3.2. Thuật tốn mật mã và thiết lập khóa...37

2.3.3. Mơ hình mã hóa đầu ći tổng thể...39

2.3.4. Lược đồ mã hóa, giải mã tệp tin...43

2.3.5. Lược đồ mã hóa giải mã tin nhắn (chat)...46

2.4. Tổng kết chương 2...48

<b>Chương 3. THỬ NGHIỆM VÀ ĐÁNH GIÁ GIẢI PHÁP49</b> 3.1. Mơ hình hệ thớng...49

3.2. Các bước cài đặt, triển khai mơ hình...51

3.2.1. Triển khai mơ hình...51

3.2.2. Xây dựng các tính năng mới...57

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

ĐỊNH NGHĨA, VIẾT TẮT

AES

<sup>Advanced Encryption </sup><sub>Standard</sub> Chuẩn mã hóa nâng cao

API

<sup>Application Programming </sup><sub>Interface</sub> Giao diện trình ứng dụng

ASP

Application Service Provider Nhà cung cấp dịch vụ ứng dụng

CSP

Commerce Services Provider Nhà cung cấp dịch vụ

IaaS

Infrastructure as a Service Cơ sở hạ tầng như một dịch vụ

LDAP

<sup>Lightweight Directory </sup><sub>Access Protocol</sub> Hỗ trợ cấp tài khoản và phân quyền

LDIF

LDAP Interchange Format <sup>Chuẩn định dạng tập tin text lưu trữ</sup><sub>thơng tin cấu hình LDAP</sub>

MAC

<sup>Message Authentication </sup><sub>Code</sub> Mã xác thực thông báo

MCC

Mobile Cloud Computing Đám mây di động

NAT

Network Address Translation Kỹ thuật chuyển đổi địa chỉ

NFV

<sup>Network Function </sup><sub>Virtualization</sub> Ảo hóa chức năng mạng

NIST

<sup>National Institute of Science </sup><sub>and Technology</sub> <sup>Viện tiêu chuẩn và công nghệ quốc</sup><sub>gia Mỹ</sub>

PaaS

Platform as a Service Nền tảng như một dịch vụ

PBKDF2

<sup>Password-based Key </sup><sub>Derivation Function 2</sub> Dẫn xuất khóa dựa vào mật khẩu 2

RSA

Rivest-Shamir-Adleman <sup>Hệ mật khóa cơng khai (lấy tên 3 </sup><sub>nhà khoa học)</sub>

SaaS

Software as a Service Phần mềm như một dịch vụ

SDN

<sup>Software Defined </sup><sub>Networking</sub> Mạng phần mềm xác định SHA Secure Hash Algorithm Thuật toán băm bảo mật

SOAP <sup>Simple Object Access</sup><sub>Protocol</sub> Giao thức định nghĩa dạng văn bản

SSL

Secure Sockets Layer Lớp kết nối mã hóa an tồn

TLS

Transport Layer Security Bảo mật dữ liệu truyền

VOIP

Voice over Internet Protocol <sup>Truyền giọng nói trên giao thức </sup><sub>Internet</sub> WebDAV Web-based Distributed Hệ thống quản lý chứng thực và

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

Authoring And Versioning phiên bản dựa trên môi trường web WSDL <sup>Web Services Description</sup><sub>Language</sub> Ngôn ngữ mô tả dịch vụ Web

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

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

Hình 2-3. Giao diện gắn két bộ lưu trử ngoài từ NextCloud 18 Hình 2-4. Giao diện cuộc gọi thoại trong NextCloud Talk 19

Hình 2-10. Kiểm sốt truy cập với gắn thẻ trong NextCloud 27

Hình 2-12. Chính sách an tồn mật khẩu trong NextCloud 29

Hình 2-15. Mã hóa dữ liệu kênh truyền với giao thức TLS 31

Hình 2-17. Mơ hình mã hóa đầu ći với máy trạm IPhone 35

Hình 2-21. Biểu đồ luồng generate private key và public key RSA 39

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

Bảng 3-1 Mơ hình triển khai đám mây riêng NextCloud 49 Hình 3-2. Mã hóa đầu ći trên IOS sử dụng NextCloud Talk 50

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

<b>MỞ ĐẦUI.1. Tính cấp thiết của đề tài</b>

Xây dựng hệ thớng mã hóa tin nhắn sử dụng Nextcloud Talk trên iOS là một đề tài cực kỳ cấp thiết và mang lại nhiều lợi ích đáng kể. Trong thời đại sớ hóa hiện nay, việc bảo mật thơng tin là một yếu tố không thể thiếu. Để đảm bảo tính bảo mật và quyền riêng tư của tin nhắn, hệ thớng mã hóa tin nhắn là một giải pháp cần thiết. Nó giúp ngăn chặn việc đánh cắp thông tin và truy cập trái phép vào nội dung tin nhắn trên mạng.

Không chỉ đáp ứng nhu cầu cá nhân, mà còn đáp ứng yêu cầu bảo mật của doanh nghiệp. Trong môi trường kinh doanh ngày nay, việc bảo vệ thông tin quan trọng là vơ cùng quan trọng. Một hệ thớng mã hóa tin nhắn sẽ đảm bảo rằng thông tin kinh doanh quan trọng khơng bị rị rỉ hoặc lộ ra ngoài. Điều này giúp tăng cường sự tin tưởng của khách hàng và đảm bảo tuân thủ các yêu cầu bảo mật cao hơn của doanh nghiệp

Một yếu tố khác là tuân thủ quy định pháp luật. Với sự gia tăng của các quy định về bảo mật và quyền riêng tư, xây dựng một hệ thống mã hóa tin nhắn đáp ứng các tiêu chuẩn an ninh là cần thiết để tránh các hậu quả pháp lý và tuân thủ quy định của các quốc gia.

Ngoài ra, với xu hướng làm việc từ xa ngày càng tăng, việc có một hệ thớng mã hóa tin nhắn an tồn và bảo mật là vơ cùng quan trọng. Người dùng cần có khả năng truyền tải thơng tin một cách an tồn và riêng tư trong quá trình làm việc từ xa, đảm bảo tính bảo mật và quyền riêng tư của họ.

Tóm lại, xây dựng hệ thớng mã hóa tin nhắn sử dụng Nextcloud Talk trên iOS không chỉ đáp ứng nhu cầu bảo mật thông tin, quyền riêng tư và an toàn cho người dùng cá nhân và doanh nghiệp, mà còn đáp ứng yêu cầu pháp luật và xu hướng làm việc từ xa hiện nay. Đề tài này mang lại giá trị lớn trong việc bảo vệ thông tin và đảm bảo sự tin tưởng trong truyền tải tin nhắn

<b>trên mạng. </b>

<b>1.2. Mục tiêu nghiên cứu của đề tài</b>

● Phát triển một hệ thớng mã hố tin nhắn cho ứng dụng NextCloud Talk trên nền tảng IOS để đảm bảo tính bảo mật và riêng tư của thông điệp giao tiếp. ● Đảm bảo tích hợp mã hố này khơng gây tác động xấu đến trải nghiệm người

dùng và hoạt động ổn định trên các thiết bị Android phổ biến.

● Cung cấp các tính năng bảo mật mạnh mẽ như mã hố end-to-end, quản lý khoá và bảo vệ trước các cuộc tấn công thường gặp.

<b>1.3. Đối tượng và phạm vi nghiên cứu</b>

● Phát triển một ứng dụng IOS riêng biệt hoặc module mở rộng cho NextCloud Talk để thực hiện mã hố tin nhắn.

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

● Tích hợp mã hố end-to-end vào q trình gửi và nhận tin nhắn trong ứng dụng NextCloud Talk.

● Nghiên cứu và triển khai các thuật toán và giao thức mã hoá hiệu quả cho việc bảo vệ dữ liệu.

<b>1.4. Các nhiệm vụ chính cần thực hiện❖ Nghiên cứu và lập kế hoạch</b>

<b>⮚ Nghiên cứu về các giao thức mã hóa và quản lý khóa phù hợp cho ứng</b>

dụng di đơng.

<b>⮚ Lập kế hoạch về cách tích hợp mã hóa vào NextCloud Talk trên IOS.❖ Triển khai mã hóa End-to-End</b>

<b>⮚ Phát triển mã hóa end-to-end để bảo vệ tin nhắn và tệp đính kèm.</b>

<b>⮚ Xác định cách tạo, quản lý và lưu trữ khóa mã hóa cho người dùng và</b>

thiết bị.

<b>❖ Tích hợp vào NextCloud Talk</b>

<b>⮚ Thực hiện tích hợp mã hóa vào giao diện người dùng của NextCloud</b>

<b>⮚ Tạo giao diện người dùng để kích hoạt và quản lý tính năng mã hóa.❖ Kiểm thử và Debugging</b>

<b>⮚ Tiến hành kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử hệ thớng để</b>

đảm bảo tính ổn định và an tồn của mã hóa.

<b>⮚ Sửa lỗi và cải thiện tính năng dựa trên phản hồi từ người dùng và các bản</b>

kiểm thử.

<b>❖ Tối ưu hóa hiệu suất</b>

<b>⮚ Tới ưu hóa mã hóa để đảm bảo hiệu suất ứng dụng không bị giảm đi đáng</b>

<b>⮚ Đảm bảo rằng mã hóa hoạt động trơn tru trên các thiết bị IOS phổ biến.❖ Bảo mật và quản lý khóa</b>

<b>⮚ Xây dựng các biện pháp bảo mật để bảo vệ khóa mã hóa và dữ liệu của</b>

người dùng.

<b>⮚ Xác định cách sao lưu và phục hồi khóa trong trường hợp mất.❖ Tài liệu và hướng dẫn</b>

<b>⮚ Tạo tài liệu hướng dẫn cho người dùng về cách sử dụng tính năng mã hóa.</b>

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

<b>⮚ Tạo tài liệu cho các nhà phát triển khác muốn tích hợp mã hóa vào</b>

NextCloud Talk.

<b>❖ Kiểm tra an tồn</b>

<b>⮚ Thực hiện kiểm tra an toàn để xác định và khắc phục các lỗ hổng bảo mật</b>

có thể tồn tại trong hệ thớng mã hóa.

<b>❖ Phản hồi và tích hợp của người dùng</b>

<b>⮚ Thu thập phản hồi từ người dùng và cộng đồng để cải thiện tính năng mã</b>

<b>⮚ Đảm bảo tích hợp của người dùng thơng qua việc cung cấp phiên bản cập</b>

nhật của ứng dụng NextCloud Talk.

<b>❖ Triển khai và hỗ trợ</b>

<b>⮚ Triển khai phiên bản đã mã hóa trên NextCloud và đảm bảo tính tương</b>

thích với phiên bản hiện tại của ứng dụng.

<b>⮚ Cung cấp hỗ trợ cho người dùng gặp vấn đề về mã hóa và cung cấp cập</b>

nhật bảo mật khi cần thiết.

<b>1.5. Kết quả dự kiếnLý thuyết:</b>

Người dùng của ứng dụng NextCloud Talk trên IOS sẽ có khả năng gửi và nhận tin nhắn được mã hóa, đảm bảo tính bảo mật.

Dự kiến hệ thớng mã hóa một cách mượt mà và khơng ảnh hưởng đến trải nghiệm người dùng. Giao diện thân thiện , dễ sử dụng.

Dự án sẽ tích hợp hồn tồn với ứng dụng NextCloud Talk, khơng gây xung đột và đảm bảo tính ổn định.

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

<b>Chương 1. TỔNG QUAN VỀ NEXTCLOUD1.1.Nextcloud là gì</b>

Nextcloud là một phần mềm mã nguồn mở cung cấp các giải pháp đám mây cho các cá nhân và doanh nghiệp. Được phát triển trên nền tảng này bởi các nhà phát triển cũ của ownCloud và ra mắt vào tháng 6/2016. Nó có thể được sử dụng cho các hệ điều hành phổ biến như Windows, MacOS, iOS, Linux và Android.

Với Nextcloud, người dùng có thể lưu trữ dữ liệu trên máy chủ của riêng họ. Điều này có nghĩa là nó là một máy chủ riêng biệt hoặc một máy chủ từ một nhà cung cấp. Nextcloud dựa vào người dùng kiểm sốt các dữ liệu của họ. Do đó, người dùng ln có thể tự quyết định nơi lưu trữ tài liệu hoặc ảnh và ai có thể truy cập chúng.

Nextcloud sử dụng các tập lệnh PHP để truy cập các cơ sở dữ liệu khác nhau. Khách hàng được sử dụng cho mục đích này có thể tự động đồng bộ hóa các thư mục cục bộ trên máy chủ.

<b>1.2.Tính năng của Nextcloud</b>

<b>1. Lưu trữ đám mây: Nextcloud cho phép người dùng lưu trữ dữ liệu của</b>

họ trên máy chủ đám mây riêng, đảm bảo an ninh và quyền riêng tư.

<b>2. Chia sẻ và đồng bộ hóa dữ liệu: Người dùng có thể chia sẻ tập tin và thư</b>

mục với người khác và đồng bộ hóa dữ liệu trên nhiều thiết bị.

<b>3. Truy cập từ xa: Với Nextcloud, người dùng có thể truy cập vào dữ liệu</b>

của họ từ xa thông qua giao diện web hoặc ứng dụng di động.

<b>4. Hợp tác và làm việc nhóm: Nextcloud cung cấp tính năng chia sẻ và làm</b>

việc nhóm, cho phép nhiều người cùng làm việc trên cùng một tập tin và theo dõi sự thay đổi.

<b>5. Quản lý tài liệu: Nextcloud hỗ trợ quản lý tài liệu, cho phép người dùng</b>

tạo, chỉnh sửa và tổ chức các tài liệu văn bản, bảng tính và bản trình bày.

<b>6. Ứng dụng và tích hợp mở rộng: Nextcloud có một cộng đồng phát triển</b>

mạnh mẽ và cung cấp nhiều ứng dụng và tích hợp mở rộng để mở rộng

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

khả năng của nền tảng.

<b>1.3.Lợi ích của Nextcloud</b>

<b>1. Quản lý dữ liệu cá nhân: Nextcloud cho phép người dùng kiểm sốt</b>

hồn toàn dữ liệu cá nhân của họ, đảm bảo quyền riêng tư và an ninh.

<b>2. Tiết kiệm chi phí: Nextcloud giúp tiết kiệm chi phí cho doanh nghiệp</b>

bằng cung cấp một hệ thống lưu trữ và chia sẻ dữ liệu trong nhà, thay vì phải dựa vào các dịch vụ đám mây công cộng.

<b>3. Linh hoạt và mở rộng: Nextcloud cho phép mở rộng và tùy chỉnh theo</b>

nhu cầu của từng tổ chức, với khả năng tích hợp với các ứng dụng và dịch vụ bên ngồi.

<b>4. Tích hợp cơng cụ làm việc: Nextcloud tích hợp các cơng cụ làm việc như</b>

xem trước tài liệu, chỉnh sửa trực tuyến và gửi thư điện tử, tạo ra một môi trường làm việc tồn diện.

<b>5. Tính bảo mật cao: Nextcloud cung cấp các tính năng bảo mật như mã</b>

hóa dữ liệu, cung cấp quyền truy cập theo vai trò và quản lý đăng nhập đơi, đảm bảo rằng dữ liệu chỉ có thể truy cập bởi những người được ủy quyền.

<b>6. Tích hợp với hệ thống hiện có: Nextcloud có khả năng tích hợp với hệ</b>

thớng và dịch vụ hiện có như LDAP, Active Directory, SharePoint và nhiều ứng dụng khác, giúp dễ dàng chuyển đổi và sử dụng lại dữ liệu hiện có.

<b>7. Quản lý và sao lưu dữ liệu: Nextcloud cung cấp các công cụ quản lý dữ</b>

liệu mạnh mẽ như sao lưu tự động, lịch sử phiên bản và khôi phục dữ liệu, giúp người dùng bảo vệ và phục hồi dữ liệu một cách dễ dàng.

<b>8. Hỗ trợ cộng đồng và dịch vụ: Nextcloud có một cộng đồng rộng lớn,</b>

được hỗ trợ bởi cộng đồng nguồn mở tích cực, đồng thời cung cấp các

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

dịch vụ hỗ trợ chuyên nghiệp như phiên bản doanh nghiệp và dịch vụ quản lý.

<b>1.4.Tổng kết chương</b>

Nextcloud là một nền tảng lưu trữ và chia sẻ dữ liệu mạnh mẽ, linh hoạt và an tồn. Với các tính năng và lợi ích của mình, Nextcloud đã trở thành một lựa chọn phổ biến cho cá nhân và tổ chức muốn tạo ra một môi trường làm việc đám mây riêng tư và quản lý dữ liệu một cách an toàn.

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

<b>Chương 2. XÂY DỰNGGIẢI PHÁP MÃ HÓA ĐẦU CUỐI CHOĐÁMMÂY SAAS TRONG PHÁT TRIỂN HỆ SINH THÁI SỐ</b>

<b>2.1.Mơ hình hệ sinh thái số sử dụng đám mây NextCloud</b>

Trong Chương 1 thì luận văn có giới thiệu NextCloud, đơn giản là một chương trình mã nguồn mở, giúp tạo ra một đám mây riêng (quy mô nhỏ) để người dùng có thể lưu trữ và chia sẻ dữ liệu. Với NextCloud người dùng có thể xây dựng cho cá nhân hay doanh nghiệp một nền tảng lưu trữ và đồng bộ dữ liệu giống như Google Drive, Dropbox, One Drive,iCloud.

Tuy nhiên, sự khác biệt giữa NextCloud và các mơ hình SaaS khác (Google Drive, One Drive…) và iCloud là không chỉ dừng lại ở việc lưu trữ, chia sẻ dữ liệu mà còn hướng tới là một nền tảng mở hỗ trợ việc bổ sung, chỉnh sửa, tích hợp thêm các tính năng khác để cung cấp một nền tảng dữ liệu cho cả một hệ sinh thái số. Phần này của luận văn sẽ đi trình bày chi tiết về kiến trúc, thành phần, các dịch vụ dữ liệu của NextCloud để có thể trở thành nền tảng dữ liệu cung cấp cho cả một hệ sinh thái sớ.

<b>2.1.1. Mơ hình hệ thống và cấu trúc NextCloud</b>

Hệ thống NextCloud có kiến trúc với thành phần cốt lõi trung tâm là NextCloud Server và thành phần kết nới phía máy trạm.

<b>Thành phần NextCloud Server</b>

Kiến trúc tổng thể của NextCloud Server được thể hiện như trong hình 2.1

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

<i>Hình 2-1. Kiến trúc tổng thể của Nextcloud</i>

Theo kiến trúc hình 2.1, NextCloud là trung tâm xử lý dữ liệu, môi trường trung gian cho sự tương tác với người dùng và cơ sở dữ liệu, cũng như hỗ trợ tích hợp các giải pháp xác thực, bảo mật, ghi nhật ký khác. Các thành phần chính của NextCloud Server:

- Thành phần trung tâm cũng có tên NextCloud: là bộ xử lý trung tâm thực hiện xử lý các tác vụ từ người dùng yêu cầu tới thông qua thành phần kết nới từ

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

phía máy trạm. Nhằm thực thi các yêu cầu khác nhau từ người dùng, thành phần này cung cấp các cơ chế tương tác hệ thống cơ sở dữ liệu, hệ thống xác thực phân quyền.

- Hệ thống cơ sở dữ liệu: một đám mây thì khơng thể thiếu thành phần hệ thống cơ sở dữ liệu cung cấp dịch vụ lưu trữ, chia sẻ dữ liệu của người dùng. Trong NextCloud hỗ trợ các hệ quản trị cơ sở dữ liệu như MySQL, MariaDB, PostgreSQL giúp đáp ứng dịch vụ lưu trữ, chia sẻ dữ liệu người dùng. Để tăng tớc xử lý tác vụ và tải dữ liệu thì NextCloud hỗ trợ tích hợp cơ sở dữ liệu REDIS trong việc quản lý bộ nhớ của bộ xử lý trung tâm.

- WebDAV: Hệ thống sử dụng giao thức mở rộng của https là WebDAV để triển khai NextCloud như một máy chủ tập tin thông qua giao thức https.

- Hệ thống tập tin lưu trữ (Storage) hỗ trợ nhiều giao thức lưu trữ cài đặt thêm vào máy chủ NextCloud như NFS, GFS2, Windows Network Drive, CIFS/ SMB, Red Hat Storage, IBM Elastic Storage, Nextcloud Server và lưu trữ đới tượng tương thích như SWIFT và S3. Hỗ trợ việc gắn kết với định dạng tệp tin Windows, FTP, WebDAV và các dịch vụ lưu trữ đám mây bên ngoài như Google Drive và Dropbox. NextCloud cho phép cấu hình lưu trữ cấp phát động cho phép người dùng cho phép phân tách dữ liệu. Việc tổ chức, quản lý và chia sẻ tập tin lưu trữ được hỗ trợ với giao thức LDAP.

- Mô-đun kết nối với các server khác: Cho phép kết nối NextCloud Server với các server khác qua giao thức WebDAV như: RocketChat, BigBlueButton, Talk; Office.

- Nền tảng cài đặt NextCloud Server: là bộ ứng dụng Web chạy trên Linux, sử dụng nền tảng Web server như Apache, Nginx.

<b>Thành phần kết nối phía máy trạm </b>

Trình dụt web phía máy trạm: Hỗ trợ nhiều trình dụt web phía máy trạm với cả http và https.

Hệ thống phần mềm máy trạm: Hỗ trợ phần mềm phía máy trạm để quản lý, mã hoá và đồng bộ tập tin đưa lên server trên các hệ điều hành: Windows,

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

Linux, Mac. Phần mềm này gọi chung là NextCloud Client.

Hệ thống phần mềm điện thoại: Hỗ trợ tập hợp các phần mềm điện thoại chạy hệ điều hành Android, IOS theo các lĩnh vực ứng dụng như: Chat, hội nghị truyền hình, quản lý cơng việc, danh bạ …

<b>2.1.2. Dịch vụ NextCloud cung cấp</b>

NextCloud được xây dựng trợ thành nền tảng dữ liệu nền Web cung cấp dịch vụ cho cả một hệ sinh thái số, với các dịch vụ sau:

- Dịch vụ lưu trữ, chia sẽ tập tin.

- Dịch vụ gắn kết hệ thớng lưu trữ ngồi. - Dịch vụ về lịch và danh bạ liên lạc. - Dịch vụ Email.

- Dịch vụ gọi thoại (audio), gọi có hình (video), tin nhắn (chat). - Dịch vụ truy cập đơn giải trên mọi thiết bị đầu cuối.

Với tất cả các dịch vụ trên, để sát với mục tiêu của luận văn thì một sớ dịch vụ sau đây là đới tượng luận văn nghiên cứu, đề cập:

<b>a) Dịch vụ lưu trữ, chia sẻ tập tin</b>

Dịch vụ lưu trữ, chia sẻ tập tin là dịch vụ cơ bản được hỗ trợ bởi NextCloud. Gồm các cơng cụ chính như sau:

- Quản lý tập tin: hỗ trợ tính năng chính như comments, tạo phiên bản tập tin, xóa phiên bản cũ, tạo danh mục u thích, hỗ trợ tìm kiếm (thơng qua thẻ, tên tập tin và từ khóa tùy chọn).

- Chỉnh sửa, xem tập tin: hỗ trợ nhiều công cụ chỉnh sửa, xem tập tin khác nhau trên chính NextCloud như: Text editor, PDF viewer, Image gallery, Video player, Online office with collaborative editing (tùy chọn).

- Đồng bộ tập tin: hỗ trợ đồng bộ tập tin, thư mục tập tin và quản lý tập tin từ phía máy trạm chạy HĐH Windows/Linux/Mac; Đới với phía máy trạm là HĐH di động như Android hay IOS thì đồng bộ tập tin u thích, tự động upload tập tin hình ảnh/video.

- Chia sẻ tập tin: hỗ trợ chia sẻ người dùng/nhóm người dùng trên

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

NextCloud, chia sẻ đường dẫn tập tin công khai với thời hạn và mật khẩu chia sẻ, tùy chọn ẩn các thư mục, tập tin chia sẻ, chia sẻ tập tin giữa các máy chủ đám mây khác như NextCloud/OwnCloud/Pydio.

<i>Hình 2-2. Kiến trúc tổng thể của NextCloud</i>

NextCloud hỗ trợ ứng dụng NextCloud Activity (hình 2.2) hiển thị các sửa đổi, lượt tải xuống, các lượt chia sẻ và các thay đổi tập tin gắn kèm với nhận xét hoặc thẻ, cung cấp cái nhìn tổng quan trong trình duyệt, ứng dụng khách hoặc thông qua Email và nguồn cấp dữ liệu RSS tới người dùng.

<b>b) Dịch vụ gắn kết hệ thống lưu trữ ngoài</b>

NextCloud hỗ trợ dịch vụ gắn kết với các hệ thớng lưu trữ ngồi như: bộ nhớ nội bộ, Dropbox, Google Drive, (s)FTP, SMB/CIFS, và các hệ thớng lưu trữ khác có thể gắn kết.

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

<i>Hình 2-3. Giao diện gắn két bộ lưu trử ngoài từ NextCloud</i>

<b>c) Dịch vụ gọi thoại (audio), gọi có hình (video), tin nhắn (chat).</b>

Người dùng hoặc nhóm người dùng sử dụng dịch vụ cuộc gọi Audio/Video trực tiếp trên NextCloud. Với người dùng khơng có tài khoản NextCloud có thể tham gia thơng qua đường dẫn cơng khai. Hiện tại, NextCloud hỗ trợ nhóm tới 5-8 người dùng gọi trực tiếp (tùy thuộc vào chất lượng băng thông đường truyền mạng).

Để hỗ trợ cuộc gọi Audio/Video thì NextCloud sử dụng công nghệ WebRTC hỗ trợ thiết lập STUN server, TURN server và SIP gateway.

<i>Hình 2-4. Giao diện cuộc gọi thoại trong NextCloud Talk</i>

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

<b>2.2.Giải pháp an toàn và bảo mật dữ liệu của đám mây SaaSNextCloud</b>

Để đảm bảo an tồn, bảo mật thơng tin cho nền tảng dữ liệu của mình thì NextCloud đưa ra một loạt các giải pháp như sau:

- Xác thực và phân quyền. - Kiểm soát truy cập.

- Giải pháp giám sát an ninh mạng và kiểm tốn. - Giải pháp phịng chớng mã độc.

- Phịng chớng tấn cơng vét cạn và chính sách an tồn mật khẩu. - Mã hóa dữ liệu.

<b>2.2.1. Xác thực và phân quyền</b>

Cơ chế xác thực và phân quyền người dùng được NextCloud tích hợp sẵn trong NextCloud Server với các công nghệ xác thực phổ biến sau:

- LDAP: hỗ trợ cấp tài khoản và phân quyền người dùng

- Active Directory: hỗ trợ cấp tài khoản người dùng miền và phân quyền - SAML 2.0: hỗ trợ xác thực thông qua token, yêu cầu kết nối plugin xác thực của NextCloud với hạ tầng xác thực khác dựa trên các hàm API REST hoặc API nội bộ.

- OneLogin: hỗ trợ plugin xác thực kết nối với hạ tầng xác thực của OneLogin.

- Xác thực đa nhân tố: NextCloud hỗ trợ tự thiết lập một hệ thống xác thực người dùng cuối với nhiều nhân tố nhận dạng.

- Kerberos (Apache mod_auth_kerb): NextCloud hỗ trợ xác thực người dùng thông qua giao thức Kerberos hoặc một hệ thống xác thực khác mà sử dụng nền tảng Apache làm môi trường trung gian.

Cơ chế xác thực và phân quyền là LDAP là cơ chế nền tảng tích hợp sẵn và thường được áp dụng nhất khi triển khai NextCloud vì vậy trong mục này luận

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

văn trình bày chi tiết về cơ chế này.

<b>Cơ chế xác thực và phân quyền LDAP</b>

LDAP là từ viết tắt của cụm từ Lightweight Directory Access Protocol. Nó được xây dựng và phát triển dựa trên chuẩn X500 – là một chuẩn dịch vụ thư mục (tên tiếng Anh là Directory Service – DS), vận hành trên nền tảng OSI. LDAP tiến hành xác thực người dùng thông qua hai dạng người dùng nặc danh và người dùng có tài khoản được cấp trong hệ thống tên miền. Việc phân quyền người dùng đối với dữ liệu tương ứng vị trí người dùng trong hệ thống tên miền.

- Phương thức hoạt động của LDAP

+ DAP hoạt động theo mơ hình client-server, client gửi u cầu đến LDAP server, server này sẽ nhận yêu cầu và thực hiện tìm kiếm và trả lại kết quả cho client. Các bước hoạt động được mô tả như trong hình 2.8:

<i>Hình 2-5. Hoạt động giao thức LDAP</i>

+ Trình tự kết nối như sau :

1) Client mở một kết nối TCP đến LDAP Server và thực hiện một thao tác bind. Thao tác này gồm tên của directory entry và thông tin xác thực sẽ được sử dụng trong quá trình xác thực, thơng tin xác thực thơng thường sẽ là Password tuy nhiên cũng có thể là ID của người dùng.

2) Sau đó LDAP server sẽ nhận thao tác bind này của client để xử lý và trả lại kết quả của thao tác bind.

3) Nếu thao tác bind thành cơng client gửi một u cầu tìm kiếm đến LDAP server.

4) Server thực hiện xử lý và trả về kết quả cho client.

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

5) Client gửi u cầu unbind. 6) Server đóng kết nới.

- Cấu trúc tập tin LDIF

+ LDIF (LDAP Interchange Format) được định nghĩa trong RFC 2849, là một chuẩn định dạng tập tin text lưu trữ thơng tin cấu hình LDAP và nội dung thư mục.

+ Tập tin LDIF thường được sử dụng để import dữ liệu mới vào trong directory của chúng ta hoặc thay đổi dữ liệu đã có. Dữ liệu có trong tập tin LDIF cần phải tuân theo luật schema của LDAP directory.

+ Schema là một loại dữ liệu đã được định nghĩa từ trước trong directory của chúng ta. Mọi thành phần được thêm vào hoặc thay đổi trong directory của chúng ta đều được kiểm tra lại trong schema để đảm bảo sự chính xác. Lỗi vi phạm schema sẽ xuất hiện nếu dữ liệu không đúng với quy luật đã có. Đây là giải pháp import dữ liệu lớn vào LDAP.

+ Thông thường một tập tin LDIF sẽ có khn dạng như sau (hình 2.9):

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

<i>Hình 2-6. Khn dạng một tập tin LDIF</i>

● Một tập entry khác nhau được phân cách bởi một dịng trắng. ● “Tên thuộc tính: giá trị”

● Một tập các chỉ dẫn cú pháp để làm sao xử lý được thông tin + Những quy định khi báo nội dung tập tin LDIF:

● Dấu comment trong file LDIF là “#”.

● Thuộc tính (attribute) được đặt bên trái dấu “:” và giá trị của thuộc tính được biểu diễn ở bên phải.

● Thuộc tính dn định nghĩa duy nhất một DN xác định trong DN đó.

● Những tên trường mà đằng sau có dấu “::” thì giá trị của nó được mã hóa theo chuẩn BASE64.

+ Một entry là tập hợp của các thuộc tính, từng thuộc tính sẽ mơ tả một nét đặc trưng tiêu biểu của đối tượng. Một entry bao gồm nhiều thuộc tính, ví dụ về một entry như sau (hình 2.10):

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

<i>Hình 2-7. Các thuộc tính đối tượng trong LDAP</i>

● dn: Distinguished Name - là tên của entry thư mục, tất cả được viết trên

● userPassword : Mật khẩu người dùng. ● Và một sớ thuộc tính khác của người dùng. - Mơ hình đặt tên LDAP (LDAP Naming model)

+ Mơ hình LDAP Naming định nghĩa ra cách để chúng ta có thể sắp xếp và tham chiếu đến dữ liệu của mình, hay có thể nói mơ hình này mơ tả cách sắp xếp các entry vào một cấu trúc có logic và mơ hình LDAP Naming chỉ ra cách để chúng ta có thể tham chiếu đến bất kỳ một entry thư mục nào nằm trong cấu trúc đó (hình 2.11).

+ Mơ hình LDAP Naming cho phép chúng ta có thể đặt dữ liệu vào thư mục theo cách mà chúng ta có thể dễ dàng quản lý nhất.

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

<i>Hình 2-8. Mơ hình đặt tên trong LDAP</i>

+ Giống như đường dẫn của hệ thống tập tin, tên của một entry LDAP được hình thành bằng cách nới tất cả các tên của từng entry cấp trên (cha) cho đến cấp cao nhất root.

- Mơ hình chức năng LDAP (LDAP Function model)

+ Đây là mơ hình mơ tả các thao tác cho phép người dùng có thể thao tác trên thư mục.

● Thao tác thẩm tra: cho phép người dùng có thể search trên thư mục và nhận dữ liệu từ thư mục.

● Thao tác cập nhật: thêm, xóa, đổi tên và thay đổi các entry thư mục. ● Thao tác xác thực và điều khiển: cho phép client xác định mình đến chỗ thư mục và điều khiển các hoạt động của phiên kết nối.

- Một số phương thức để xác thực người dùng trong LDAP

+ Xác thực người dùng nặc danh: Xác thực người dùng nặc danh hay chưa xác định là một xử lý ràng buộc đăng nhập vào thư mục với một tên đăng nhập và mật khẩu là rỗng. Cách đăng nhập này rất thông dụng và được thường xuyên

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

sử dụng đối với ứng dụng client.

+ Xác thực người dùng đơn giản: Đối với xác thực người dùng đơn giản, tên đăng nhập trong DN được gửi kèm cùng với một mật khẩu dưới dạng clear text tới máy chủ LDAP.

+ Xác thực đơn giản thông qua SSL/TLS: Sẽ an toàn hơn phương pháp Xác thực đơn giản ở bên trên, lúc này tên đặng nhập trong DN và mật khẩu sẽ tuyền thông một lớp truyền tải được mã hóa.

<b>2.2.2. Kiểm sốt truy cập</b>

Việc kiểm sốt truy cập dữ liệu trong NextCloud được hỗ trợ bởi cơ chế File Access Control and automatic file tagging, tạm dịch là cơ chế kiểm soát tập tin và gắn thẻ tự động. Thông qua cơ chế này quản trị viên của NextCloud sẽ thiết lập các tập luật với quy tắc truy cập tập tin nghiêm ngặt mà người dùng được phép.

Nếu người dùng trong các nhóm người dùng hoặc khu vực địa lý nhất định không được cấp quyền truy cập vào một số loại tập tin nhất định hoặc nếu dữ liệu có thẻ cụ thể khơng được chia sẻ bên ngồi cơng ty, quản trị viên có thể đảm bảo phiên bản NextCloud của họ thực thi các quy tắc này.

Một ví dụ về việc đặt luật cho phép truy cập tập tin chỉ từ máy trạm có địa chỉ IP 192.168.0.1/32 trong hình 2.12.

Cơ chế gắn thẻ cho phép quản trị viên thiết lập bất kỳ các luật liên quan tới dữ liệu có gắn thẻ. Ví dụ việc chuyển tất cả các tập tin được tải lên thành dạng PDF của một người dùng hoặc một nhóm người dùng đã gắn thẻ.

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

<i>Hình 2-9. Đặt luật try cập tập tin trong NextCloud</i>

Việc tiếp tục lưu trữ hay xóa tập tin cũng dựa trên cơ chế gắn thẻ liên quan tới khoản thời gian lưu trữ. Ví dụ về gắn thẻ chỉ cho phép truy cập tập tin thông qua các phần mềm NextCloud Client cài đặt trên các thiết bị đầu cuối trong hình 2.13:

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

<i>Hình 2-10. Kiểm sốt truy cập với gắn thẻ trong NextCloud</i>

<b>2.2.3. Giám sát an ninh mạng và kiểm tốn</b>

NextCloud có thể mở rộng quy mô hỗ trợ tới hàng triệu người dùng và một điều quan trọng là vấn đề giám sát chất lượng và dịch vụ trong hệ thớng. NextCloud có cơ chế giám sát và ghi nhật ký tích hợp sẵn cho phép người quản trị giám sát và ghi lại mọi hoạt động của hệ thống NextCloud.

Đối với người dùng đầu ći có thẻ cài đặt ứng dụng NextCloud Client và trong đó có chức năng Activity cho phép người dùng quan sát, theo dõi những tác vụ, hoạt động nào xảy ra với dữ liệu của họ. Các thông tin được ứng dụng này chuyển tới người dùng như sau:

- Thời gian chỉnh sửa tập tin.

- Tập tin được thêm mới hoặc xóa đi đới với dữ liệu chia sẻ nhóm. - Các bình luận về tập tin chia sẻ (đới với nhóm người dùng). - Lịch hoạt động được lập ra tương ứng tập tin chia sẻ.

- Yêu cầu tập tin và cuộc gọi người dùng khác trong nhóm về tập tin (đới với nhóm người dùng).

Người dùng có thể cấu hình ứng dụng để nhận các thông báo về tập tin

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

muốn theo dõi. Thơng báo có thể hiển thị trên màn hình chờ điện thoại, qua Email hoặc qua RSS feed của ứng dụng NextCloud Client trong chức năng Activity.

<b>2.2.4. Phòng chống mã độc</b>

Trong phần mềm NextCloud Client trong thẻ chức năng là Security thì NextCloud có tích hợp sẵn chức năng quét mã độc đối với các tập tin người dùng tải lên hệ thớng (hình 2.14).

Các tập tin tải lên được quét mã chứa mã độc thì sẽ được thông báo tới người dùng và không cho phép tải lên hệ thớng NextCloud.

Hệ thớng qt mã độc được tích hợp mặc định trong NextCloud Client là của ClamAV Scan Engine. Và cho phép cấu hình chuyển đổi tùy chọn sang cơ chế quét Kaspersky Scan Engine của Kaspersky.

<i>Hình 2-11. Quét mã độc trong NextCloud Client</i>

Dữ liệu mẫu mã độc được tự động cập nhật từ nguồn trang chủ ClamAV hoặc Kaspersky. Khi bật chức năng quét mã độc này thì hiệu suất của hệ thớng có thể bị ảnh hưởng chậm đi đáng kể vì phải thực hiện qt mỗi tập tin tải lên.

<b>2.2.5. Phịng chống tấn cơng vét cạn và chính sách an tồn mật khẩuChống tấn cơng vét cạn mật khẩu</b>

NextCloud có tích hợp sẵn cơ chế chống tấn công vét cạn mật khẩu và cơ

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

chế này được bật mặc định khi chạy NextCloud Server. Cơ chế này sẽ hoạt động như sau:

- Nếu người dùng đăng nhập với tài khoản/mật khẩu khơng chính xác lần đầu tiên thì khơng có vấn đề gì xảy ra.

- Trường hợp một vài lần đăng nhập khơng thành cơng (khoảng 5 lần) thì hệ thớng sẽ tự kích hoạt thời gian trễ để tiến hành lần tiếp theo đăng nhập. Thời gian trễ tối đa lên tới 25s.

- Sau khi đăng nhập thành cơng thì thời gian trễ sẽ bị xóa và người dùng khơng cịn bị ảnh hưởng nếu đăng nhập lại.

<b>Chính sách an toàn mật khẩu</b>

Trong NextCloud Server cho phép quản trị viên thiết lập chính sách an tồn mật khẩu hay chính là thiết lập luật về yêu cầu người dùng phải đặt các mật khẩu mạnh khi sử dụng đăng nhập hệ thớng.

<i>Hình 2-12. Chính sách an tồn mật khẩu trong NextCloud</i>

Luật đặt mật khẩu mạnh trong NextCloud quy định như sau (hình 2.15): - Mật khẩu có độ dài ít nhất 8 ký tự.

- Có ký tự in thường, in hoa, số và ký tự đặc biệt. - Không đặt lại các mật khẩu đã đặt trước đó. - Thời gian hết hạn của mật khẩu

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

- Mật khẩu không trùng danh sách các mật khẩu công bố trên trang haveibeenpwnd.com.

<b>2.2.6. Mã hóa dữ liệu</b>

NextCloud cung cấp dịch vụ mã hóa dữ liệu theo mơ hình mã hóa dữ liệu trên đám mây theo hình 2.16.

<i>Hình 2-13. Vị trí dữ liệu cần được bảo vệ</i>

Theo hình 2.16, dễ dàng thấy rằng hai dịch vụ mã hóa dữ liệu được NextCloud cung cấp là mã hóa dữ liệu lưu trữ trên đám mây và mã hóa dữ liệu kênh truyền giữa đám mây và máy trạm.

<b>Mã hóa dữ liệu lưu trữ </b>

Khi người dùng tải tập tin lên NextCloud Server, người dùng có thể thực hiện cấu hình để NextCloud Server mã hóa các tập tin này (hình 2.17). Cơ chế mã hóa này gọi là mã hóa phía máy chủ vì thực hiện trực tiếp trên máy Server.

Việc mã hóa này cho phép mã hóa tập tin lưu trữ bộ nhớ nội bộ hoặc cả các tập tin lưu trữ trong bộ nhớ từ xa hay bộ nhớ gắn kết như Dropbox, Google Drive…

</div>

×