ĐỀ TÀI XÂY DỰNG HỆ THỐNG MÃ HOÁ TIN NHẮN SỬ DỤNG NEXTCLOUD TALK TRÊN IOS

63 0 0
ĐỀ TÀI XÂY DỰNG HỆ THỐNG MÃ HOÁ TIN NHẮN SỬ DỤNG NEXTCLOUD TALK TRÊN IOS

Đ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

Trang 1

THỰC TẬP CƠ SỞ

ĐỀ TÀI :

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

Ngành: Công nghệ thông tin

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

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

Trang 2

1.2 Tính năng của Nextcloud 10

1.3 Lợi ích của Nextcloud 11

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

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

Trang 3

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

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

2.3.3 Mô hình mã hóa đầu cuố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

Chương 3 THỬ NGHIỆM VÀ ĐÁNH GIÁ GIẢI PHÁP49 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

Trang 4

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

AES Advanced Encryption Standard Chuẩn mã hóa nâng cao API Application Programming Interface 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 Lightweight Directory Access Protocol Hỗ trợ cấp tài khoản và phân quyền LDIF LDAP Interchange Format Chuẩn định dạng tập tin text lưu trữthông tin cấu hình LDAP MAC Message Authentication Code 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 Network Function Virtualization Ảo hóa chức năng mạng

NIST National Institute of Science and Technology Viện tiêu chuẩn và công nghệ quốcgia Mỹ PaaS Platform as a Service Nền tảng như một dịch vụ

PBKDF2 Password-based Key Derivation Function 2 Dẫn xuất khóa dựa vào mật khẩu 2 RSA Rivest-Shamir-Adleman Hệ mật khóa công khai (lấy tên 3 nhà khoa học) SaaS Software as a Service Phần mềm như một dịch vụ

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

SOAP Simple Object AccessProtocol 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 toàn

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

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

Trang 5

Authoring And Versioning phiên bản dựa trên môi trường web WSDL Web Services DescriptionLanguage Ngôn ngữ mô tả dịch vụ Web

Trang 6

DANH MỤC HÌNH ẢNH

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 soát truy cập với gắn thẻ trong NextCloud 27

Hình 2-12 Chính sách an toà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 cuố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

Trang 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 cuối trên IOS sử dụng NextCloud Talk 50

Trang 8

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

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 toà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 toà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

trên mạng

1.2 Mục tiêu nghiên cứu của đề tài

● Phát triển một hệ thống mã hoá 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ã hoá 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ã hoá 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

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

● 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ã hoá tin nhắn.

Trang 9

● Tích hợp mã hoá end-to-end vào quá 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.

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

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

dụng di đông.

⮚ 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

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

⮚ 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à

thiết bị.

❖ Tích hợp vào NextCloud Talk

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

⮚ 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

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

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

⮚ 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

kiểm thử.

❖ Tối ưu hóa hiệu suất

⮚ 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

⮚ Đả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

⮚ 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

người dùng.

⮚ 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

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

Trang 10

⮚ 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

NextCloud Talk.

❖ Kiểm tra an toàn

⮚ 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

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

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

⮚ 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ã

⮚ Đả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

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

❖ Triển khai và hỗ trợ

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

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

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

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

1.5 Kết quả dự kiếnLý thuyết:

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 hoàn toàn với ứng dụng NextCloud Talk, không gây xung đột và đảm bảo tính ổn định.

Trang 11

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

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 soát các dữ liệu của họ Do đó, người dùng luôn 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ủ.

1.2.Tính năng của Nextcloud

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

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

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

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

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

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

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

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.

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

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.

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

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

Trang 12

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

1.3.Lợi ích của Nextcloud

1 Quản lý dữ liệu cá nhân: Nextcloud cho phép người dùng kiểm soát

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

2 Tiết kiệm chi phí: Nextcloud giúp tiết kiệm chi phí cho doanh nghiệp

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.

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

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 ngoài.

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ư

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 toàn diện.

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

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.

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ệ

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

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

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.

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

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

Trang 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ý.

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

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 toà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.

Trang 14

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Ố

2.1.Mô hình hệ sinh thái số sử dụng đám mây NextCloud

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

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

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

Thành phần NextCloud Server

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

Trang 15

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

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ừ

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

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

Trình duyệt web phía máy trạm: Hỗ trợ nhiều trình duyệ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,

Trang 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ạ …

2.1.2 Dịch vụ NextCloud cung cấp

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ữ ngoà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:

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

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 yê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 yê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

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

Hình 2-2 Kiến trúc tổng thể của NextCloud

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) Dịch vụ gắn kết hệ thống lưu trữ ngoài

NextCloud hỗ trợ dịch vụ gắn kết với các hệ thống lưu trữ ngoà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.

Trang 19

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

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

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.

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

Trang 20

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

Để đảm bảo an toà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 toá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 toàn mật khẩu - Mã hóa dữ liệu.

2.2.1 Xác thực và phân quyền

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

Trang 21

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

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

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 yê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:

Hình 2-5 Hoạt động giao thức LDAP

+ 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 yê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.

Trang 22

5) Client gửi yê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ó khuôn dạng như sau (hình 2.9):

Trang 23

Hình 2-6 Khuôn dạng một tập tin LDIF

● 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):

Trang 24

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

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

Trang 25

Hình 2-8 Mô hình đặt tên trong LDAP

+ 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

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

2.2.2 Kiểm soát truy cập

Việc kiểm soá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 ngoà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ẻ.

Trang 27

Hình 2-9 Đặt luật try cập tập tin trong NextCloud

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:

Trang 28

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

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

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 cuố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

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

2.2.4 Phòng chống mã độc

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 quét 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

Hình 2-11 Quét mã độc trong NextCloud Client

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 quét mỗi tập tin tải lên.

2.2.5 Phòng chống tấn công vét cạn và chính sách an toàn mật khẩuChống tấn công vét cạn mật khẩu

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ơ

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

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

Trong NextCloud Server cho phép quản trị viên thiết lập chính sách an toà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.

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

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

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

2.2.6 Mã hóa dữ liệu

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.

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

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.

Mã hóa dữ liệu lưu trữ

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…

Ngày đăng: 16/04/2024, 10:02

Tài liệu cùng người dùng

Tài liệu liên quan