1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Mã Hoá Tin Nhắn Sử Dụng Nextcloud Talk Trên IOS
Tác giả Trần Văn Hiệp, Nguyễn Đức Thịnh, Mai Hoàng Phương
Người hướng dẫn Phạm Văn Hưởng
Trường học Học viện kỹ thuật mật mã
Chuyên ngành Công nghệ thông tin
Thể loại thực tập cơ sở
Định dạng
Số trang 63
Dung lượng 5,99 MB

Cấu trúc

  • 1.1. Nextcloud là gì (11)
  • 1.2. Tính năng của Nextcloud (11)
  • 1.3. Lợi ích của Nextcloud (12)
  • 1.4. Tổng kết chương (13)
  • 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 (14)
    • 2.1.1. Mô hình hệ thống và cấu trúc NextCloud (0)
    • 2.1.2. Dịch vụ NextCloud cung cấp (17)
    • 2.2. Giải pháp an toàn và bảo mật dữ liệu của đám mây SaaS (0)
  • NextCloud 19 2.2.1. Xác thực và phân quyền (0)
    • 2.2.2. Kiểm soát truy cập (26)
    • 2.2.3. Giám sát an ninh mạng và kiểm toán (28)
    • 2.2.4. Phòng chống mã độc (0)
    • 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ẩu 28 2.2.6. Mã hóa dữ liệu (0)
    • 2.3. Giải pháp mã hóa đầu cuối trên thiết bị IOS (0)
      • 2.3.1. Mô hình giải pháp (36)
      • 2.3.2. Thuật toán mật mã và thiết lập khóa (43)
      • 2.3.3. Mô hình mã hóa đầu cuối tổng thể (0)
      • 2.3.4. Lược đồ mã hóa, giải mã tệp tin (48)
      • 2.3.5. Lược đồ mã hóa giải mã tin nhắn (chat) (51)
    • 2.4. Tổng kết chương 2 (53)
  • Chương 3. THỬ NGHIỆM VÀ ĐÁNH GIÁ GIẢI PHÁP 49 3.1. Mô hình hệ thống (54)
    • 3.2. Các bước cài đặt, triển khai mô hình (56)
      • 3.2.1. Triển khai mô hình (56)
      • 3.2.2. Xây dựng các tính năng mới (58)

Nội dung

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

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 khả năng của nền tảng.

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 dịch vụ hỗ trợ chuyên nghiệp như phiên bản doanh nghiệp và dịch vụ quản lý.

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.

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

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

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.

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

2.2 Giải pháp an toàn và bảo mật dữ liệu của đám mây SaaS NextCloud Để đả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.

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

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

5) Client gửi yêu cầu unbind.

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

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

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ạngPDF của một người dùng hoặc một nhóm người dùng đã gắn thẻ.

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ình2.13:

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

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

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

Chố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ơ 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

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

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, GoogleDrive…

Hình 2-14 Bật cơ chế mã hóa phía Server

Thuật toán mã hóa mặc định trong chế độ mã hóa này là AES-256-CTR, tức là thuật toán mã khối AES có độ dài khóa 256 bit ở chế độ mã hóa CTR. NextCloud được tích hợp sẵn thư viện mật mã OpenSSL để gọi thuật toán AES-256-CTR để mã hóa tập tin người dùng Ngoài ra, NextCloud cho phép tùy chọn thuật toán mã hóa khác là Camelia và TwoFish.

Khóa mã hóa được sinh từ phía máy chủ tự sinh khóa mã hóa và lưu trong thư mục được cấu hình trước cho phép người dùng truy cập và lấy về lưu trữ

Mã hóa dữ liệu kênh truyền

Hệ thống NextCloud hỗ trợ bảo mật kênh truyền từ máy trạm tới NextCloud Server bằng giao thức HTTPS tức là triển khai giao thức TLS để bảo mật đường truyền HTTP.

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

Giao thức TLS (Transport Layer Security) là một giao thức bảo mật dữ liệu truyền trên mạng Internet và hoạt động ở tầng giao vận trong kiến trúc mạng

TCP/IP TLS 1.3 được công bố vào tháng 8/2018 là phiên bản mới nhất của giao thức TLS.

Giao thức này cung cấp các dịch vụ an toàn thông tin cho đường truyền liên lạc như:

- Dịch vụ bí mật: đảm bảo bởi thuật toán mã hóa gói dữ liệu kênh truyền.

- Dịch vụ toàn vẹn: việc sử dụng hàm băm đảm bảo tính toàn vẹn các gói tin truyền nhận.

- Dịch vụ xác thực: đảm bảo xác thực phía máy chủ do sử dụng chứng thư số cung cấp bên thứ ba tin cậy

TLS 1.3 bảo mật kênh truyền theo mô hình mạng Client – Server và có cách thức được mô tả như trong hình 2.19:

TLS 1.3 được thiết lập ban đầu với giao thức bắt tay gồm 3 bước chính như sau:

+ Bước 1: Phía máy trạm gửi gói Client Hello bao gồm các trường bắt buộc như một số nguyên ngẫu nhiên, phiên bản TLS… Trong các trường này cần chú ý hai trường chính:

● Supported Cipher Suites: Là định danh các bộ thuật toán mã hóa có xác thực với dữ liệu liên kết mà bên máy trạm hỗ trợ.

● Key_share: Đây chính là trường lưu trữ giá trị khóa công khai của máy trạm dùng để cho thỏa thuận một khóa chủ cho phiên liên lạc này giữa máy trạm và máy chủ.

Hình 2-16 Hoạt động giao thức TLS 1.3

+ Bước 2: Phía máy chủ gửi lại gói Server Hello bao gồm các trường bắt buộc Trong các trường này cần chú ý ba trường chính:

● Selected Cipher Suite: Là định danh bộ thuật toán mã hóa có xác thực bên máy chủ chọn sẽ dùng để mã hóa dữ liệu phiên liên lạc giữa máy trạm và máy chủ trong phiên liên lạc này.

Giải pháp mã hóa đầu cuối trên thiết bị IOS

Ứng dụng để thực hiện giải pháp mã hóa đầu cuối trên thiết bị IOS trong phạm vi đề tài tìm hiểu, nghiên cứu là Talk Ứng dụng này cho phép trao đổi tin nhắn, thực hiện cuộc gọi có hình hoặc không có hình, đồng thời cho phép chia sẻ file (có bảo mật) trong nhóm chat hoặc cá nhân Liên kết file chia sẻ với các nội dung quản lý công việc (Task), lập kế hoạch làm việc (Deck) và lịch trình (Calendar) Ứng dụng này có thể dùng để thay thế cho các ứng dụng khác như Zalo, Skype, Viber… nhưng an toàn và bảo mật hơn vì dữ liệu nằm ngay trên máy chủ của mình thêm nữa được triển khai trên mô hình đám mây riêng và tích hợp mã file và tin nhắn ……

Giải pháp mã hóa đầu cuối trên thiết bị IOS sử dụng nền tảng dữ liệu đám mây NextCloud được thể hiện như trong hình 2.20:

Hình 2-17 Mô hình mã hóa đầu cuối với máy trạm IPhone

 Bản rõ là các tập tin của người dùng được lưu trữ trên các thiết bị điện thoại Iphone.

 Tiến hành mã hóa các tập tin bản rõ này với một hệ mật đối xứng có đầu vào khóa phiên bí mật và thu được các tập tin bản mã trên chính thiết bị Iphone.

 Gửi các tập tin bản mã này lưu trữ trên NextCloud Server.

Biểu đồ luồng tổng quan mã hóa:

Hình 2-18 Biểu đồ luồng mã hóa tổng quát.

 Tải các tập tin bản mã lưu trữ trên NextCloud Server về máy điện thoại Iphone.

 Tiến hành giải mã các tập tin bản mã này với khóa phiên bí mật và thu được các tập tin bản rõ trên thiết bị Iphone.

 Gửi các tập tin bản mã này lưu trữ trên NextCloud Server.

Biểu đồ luồng tổng quan mã hóa:

Hình 2-19 Biểu đồ luồng giải mã tổng quát

Trong mô hình đề xuất một vấn đề cần xem xét là vấn đề thiết lập và quản lý khóa trên đám mây NextCloud Những vấn đề này được trình bày trong các mục tiếp theo dưới đây.

Quá trình cài đ t máy ch NextCloud serverặt máy chủ NextCloud server ủ NextCloud server

- Đ u tiên, t i Docker Desktopầu tiên, tải Docker Desktop ải Docker Desktop

- Ch y câu l nh sau trong CMD đ s d ng apache image:ạy câu lệnh sau trong CMD để sử dụng apache image: ệnh sau trong CMD để sử dụng apache image: ể sử dụng apache image: ử dụng apache image: ụng apache image:

- Sau khi cài đ t xong thì có th truy c p vào webserver t i c ng 80ặt xong thì có thể truy cập vào webserver tại cổng 80 ể sử dụng apache image: ập vào webserver tại cổng 80 ạy câu lệnh sau trong CMD để sử dụng apache image: ổng 80 http://localhost:8080/ T i đây b n có th đăng ký tài kho n admin vàạy câu lệnh sau trong CMD để sử dụng apache image: ạy câu lệnh sau trong CMD để sử dụng apache image: ể sử dụng apache image: ải Docker Desktop ch n CSDL phù h p lu n văn này thì CSDL sẽ là SQLite.ọn CSDL phù hợp Ở luận văn này thì CSDL sẽ là SQLite ợp Ở luận văn này thì CSDL sẽ là SQLite Ở luận văn này thì CSDL sẽ là SQLite ập vào webserver tại cổng 80

- Theo m c đ nh thì các d ch v v nh n tin, chat đặt xong thì có thể truy cập vào webserver tại cổng 80 ịnh thì các dịch vụ về nhắn tin, chat được bật cho tất cả ịnh thì các dịch vụ về nhắn tin, chat được bật cho tất cả ụng apache image: ề nhắn tin, chat được bật cho tất cả ắn tin, chat được bật cho tất cả ượp Ở luận văn này thì CSDL sẽ là SQLite.c b t cho t t cập vào webserver tại cổng 80 ất cả ải Docker Desktop các thi t b Client nh đi n tho i Android, Laptop hay máy bàn ết bị Client như điện thoại Android, Laptop hay máy bàn ịnh thì các dịch vụ về nhắn tin, chat được bật cho tất cả ư ệnh sau trong CMD để sử dụng apache image: ạy câu lệnh sau trong CMD để sử dụng apache image:

- Thi t l p tên mi n nextcloud.cloudkma.fun tĩnh cho máy chết bị Client như điện thoại Android, Laptop hay máy bàn ập vào webserver tại cổng 80 ề nhắn tin, chat được bật cho tất cả ủ NextCloud server:

+ Truy c p files trong container c a nextcloud trong docker Vàoập vào webserver tại cổng 80 ủ đư ng d n var/html/config/config.php, và thêm domain b ng cách thêmẫn var/html/config/config.php, và thêm domain bằng cách thêm ằng cách thêm item trong m ng phpải Docker Desktop

- Trư ng h p CSDL là SQLite Các file g i trong Nextcloud Talk sẽ đợp Ở luận văn này thì CSDL sẽ là SQLite ử dụng apache image: ượp Ở luận văn này thì CSDL sẽ là SQLite.c l u trong đư ư ng d n ẫn var/html/config/config.php, và thêm domain bằng cách thêm docker-desktop-data\data\docker\volumes\

272cd25287ed83b9e10a4ccfc64c789c14a54fadefdbcd095d6153e98229a1 90\_data\data\\files\Talk

(Trong đó, th m c “272cd ” sẽ có tên khác trên các h th ng khácư ụng apache image: ệnh sau trong CMD để sử dụng apache image: ống khác nhau.)

Hình 3-2 Dữ liệu các file gửi trong nextcloud talk

- Các tin nh n trong Nextcloud talk đắn tin, chat được bật cho tất cả ượp Ở luận văn này thì CSDL sẽ là SQLite ưc l u trong b ng oc_commentsải Docker Desktop c a database nextcloud t i đủ ạy câu lệnh sau trong CMD để sử dụng apache image: ư ng d n ẫn var/html/config/config.php, và thêm domain bằng cách thêm docker-desktop-data\data\docker\volumes\

272cd25287ed83b9e10a4ccfc64c789c14a54fadefdbcd095d6153e98229a1 90\_data\data\nextcloud

Hình 3-3 Dữ liệu tin nhắn trong Nextcloud Talk

- Nh chúng ta có th th y thì ngư ể sử dụng apache image: ất cả ư i qu n tr Nextcloud server có thải Docker Desktop ịnh thì các dịch vụ về nhắn tin, chat được bật cho tất cả ể sử dụng apache image: th y đất cả ượp Ở luận văn này thì CSDL sẽ là SQLite.c toàn b tin nh n và file g i trong Nextcloud Talk c a t t c userộ tin nhắn và file gửi trong Nextcloud Talk của tất cả user ắn tin, chat được bật cho tất cả ử dụng apache image: ủ ất cả ải Docker Desktop trong server Nhi m v c a chúng ta là xây d ng app có tính năng mã hóaệnh sau trong CMD để sử dụng apache image: ụng apache image: ủ ựng app có tính năng mã hóa đ u cu i tin nh n.ầu tiên, tải Docker Desktop ống khác ắn tin, chat được bật cho tất cả

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

Hàm RAND_bytes giúp ta random key và IV theo kích cỡ mong muốn Với mã hóa sử dụng hàm EVP_camellia_256_ofb kích cỡ key là 32 byte,

Biểu đồ luồng generate key:

Hình 2-20 Biểu đồ luồng generate key

Thiết lập mã hóa khóa theo RSA

Sử dụng thuật toán RSA mã hóa key, RSA sinh ra private key và public key ứng với từng user Với project này sử dụng độ dài 3072 sinh ra public key với độ dài là 422, với public key này sẽ mã hóa key ra bản mã có độ dài 512.

Tính bảo mật: người nhận B muốn giải mã được key thì phải được người gửi

A sử dụng public key của người nhận B để mã hóa key, khi đó người nhận B có thể sử dụng private key để giải mã key đó

 Public key: Sử dụng mã hóa key, được lưu trên server ứng với từng user

 Private key: Sử dụng giải mã key, được user lưu trữ dưới dạng file vào keychain hoặc bất cứ nơi nào user cho là an toàn và có thể lấy ra dùng khi cần.

Luồng hoạt động generate private key và public key

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

Thư viện OpenSSL cung cấp hàm RSA_generate_key_ex dễ dàng có thể generate private key và public key để sử dụng

Một mã xác thực thông điệp băm (HMAC) là một mã xác thực thông điệp mà làm cho việc sử dụng một khóa mật mã cùng với một hàm băm Thuật toán thực tế đằng sau một mã xác thực thông điệp băm rất phức tạp, với băm đang được thực hiện hai lần Điều này giúp trong việc chống lại một số hình thức phân tích mật mã Một mã xác thực thông điệp băm được coi là an toàn hơn so với mã xác thực thông điệp tương tự khác, như các dữ liệu truyền đi và chính được sử dụng trong quá trình này được băm riêng.

Apple cung cấp thư viện CommonCrypto/CommonHMAC.h, thư viện giúp user băm tin nhắn với hàm CCHmac Sử dụng chính key dùng để mã hóa tin nhắn raw để làm key mã hóa CCHmac.

2.3.3 Mô hình mã hóa đầu cuối tổng thể

 Khởi tạo mảng byte EncryptData

 Mã hóa bản raw bằng EVP_camellia_256_ofb theo key và IV, thêm vào mảng EncryptData.

Tổng kết chương 2

Trong chương 2, luận văn đã trình bày rõ ràng về kiến trúc thành phần của đám mây NextCloud Đưa ra phân tích chi tiết khoa học về cơ chế đảm bảo an toàn và bảo mật thông tin trong hệ thống NextCloud cụ thể như:

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

- Cơ chế kiểm soát truy cập.

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

- Chống tấn công vét cạn mật khẩu và chính sách an toàn mật khẩu.

- Cơ chế mã hóa dữ liệu.

Trong cơ chế mã hóa dữ liệu lưu trữ phía máy chủ vẫn còn một số nhược điểm về lộ lọt dữ liệu phía máy chủ vì việc mã hóa diễn ra tại máy chủNextCloud cho nên luận văn đưa ra giải pháp mã hóa đầu cuối nhằm khắc phục nhược điểm này Về Giải pháp được xây dựng mô hình đã trình bày chi tiết ở mục 2.3.4; 2.3.5 về việc mã hóa đầu cuối (file, tin nhắn) và triển khai thực nghiệm trong chương 3.

THỬ NGHIỆM VÀ ĐÁNH GIÁ GIẢI PHÁP 49 3.1 Mô hình hệ thống

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

NEXTCLOUD là mã nguồn mở (open source) được quản lý và lưu trữ trên github (github.com) NEXTCLOUD được chia thành nhiều module nhỏ và NEXTCLOUD TALK nằm trong số đó.

*Tiến hành clone NEXTCLOUD TALK phiên bản dành cho ios

 Truy cập đường link: https://github.com/nextcloud/talk-ios

 Sao chép đường link https : https://github.com/nextcloud/talk-ios.git

 Mở terminal điều hướng đến mục cần lưu

 Nhập lệnh git clone https://github.com/nextcloud/talk-ios.git

*Setup mỗi trường và thư viện

 Mở terminal điều hướng đến mục talk-ios

 Tiến hành cài đặt pod bằng câu lênh pod install

 Gõ tiếp lệnh git submodule update init để update thêm những thu mục ko đi kèm với source code

 Truy câp: https://github.com/nextcloud-releases/talk-clients-webrtc/releases/tag/

 Tải file webRTC.xcframework.zip và import vào dự án talk-ios

OpenSSL là một thư viện phần mềm sử dụng các mã nguồn mở để triển khai các giao thức mạng và mã hoá dữ liệu khác nhau như SSL và TLS OpenSSL được sử dụng trong trường hợp cần xác định phe truyền thống ở phía đầu bên kia hoặc các ứng dụng bảo mật truyền thông qua mạng máy tính để phòng chống nghe trộm.

OpenSSL đã được ra mắt vào năm 1998 và được cài đặt sẵn trên các hệ điều hành Linux, Windows, macOS hay BSD Chúng được sử dụng rộng rãi trong nhằm phục vụ đa số các website hiện nay trong các máy chủ web Internet Hiện nay, theo thống kê, OpenSSL là một phương thức bảo mật được sử dụng nhiều nhất Tuy nhiên, nếu muốn website được bảo mật tốt nhất, bạn cần gia hạn SSL let’s encrypt.

Cài đặt thư viện OpenSSL cho dự án (phiên bản 1.1.1g)

 Truy cập đường link: https://github.com/openssl/openssl/releases/tag/OpenSSL_1_1_1g

 Mở terminal điều hướng đến mục vừa giải nén

 Gõ lệnh /configure darwin64-x86_64-cc

 Lệnh tiếp theo make depend

 Lệnh tiếp theo make install

 Copy đường dẫn của include và lib

 Mở dự án NEXTCLOUD TALK bằng xcode

 Trong trường Header Search Paths thêm giá trị đường dẫn include

 Trong trường Library Search Paths thêm giá trị đường dẫn lib

 Trong trường Linking and under thêm giá trị -lssl -lcrypto

Tham khảo project https://github.com/x2on/OpenSSL-for-iPhone, đã chỉnh sửa và xây dựng thành một thư mục riêng dành cho dự án (file OpenSSL-IOS)

 Mở terminal điều hướng đến thư mục OpenSSL-IOS

 Chạy lệnh /build-libssl.sh

 Sau đó, chạy lệnh /create-xcframework.sh

 Sau đó, trong thư mục sẽ tự sinh ra 1 file OpenSSL.xcframework

 Thêm file OpenSSL.xcframework vào dự án NEXTCLOUD TALK

Lưu ý: Dự án NEXTCLOUD TALK gồm 3 module nhỏ

NotificationServiceExtension, ShareExtension, NextcloudTalk Đối với cách 1 thì phải thực hiện tất cả các bước trên đối với cả 3 module này, cách 2 thì phải thêm file OpenSSL.xcframework vào cả 3 module này.

Mã hóa, giải mã tin nhắn:

Mã tin nhắn: Lược đồ mã hóa tin nhắn hình 2.25

Bắt đầu mã tin nhắn: Khi người dùng nhập liệu, sau đó nhấn nút gửi hoặc enter Hệ thống sẽ nhảy tới hàm sendMessage Tại hàm này ta sẽ mã hoá tin nhắn tương tự như mã hoá file Mảng byte dữ liệu mã ra sẽ được chuyển đổi thành chuỗi base64

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

Xây dựng chức năng mã hóa file và hình ảnh

Lần lượt triển khai các bước mã hóa tin nhắn, mã hóa key và ghép lại thành 1 mảng NSData (chi tiết đã nêu ở chương 2).

Hình 3-3 Code hàm mã hóa message file và hình ảnh

Xây dựng chức năng giải mã file và hình ảnh

Lần lượt tách mảng NSData đang ở dạng mã hóa lấy ra key và IV để giải mã message (chi tiết nêu ở chương 2) ˙Hình 3-4 Code Hàm giải mã message file và hình ảnh

3.3 Ki m th h th ngểm thử hệ thống ử hệ thống ệ thống ống

[1] Gerard Briscoe, (2009), “Digital Ecosystems in the Clouds: Towards

[2] William Stallings, (2017) “Cryptography and Network Security

Principles and practice”, Seventh edition.

[3] Issa M Khalil, Abdallah Khreishah and Muhammad Azeem, (2014)

[4] Kuyoro S O., Ibikunle F & Awodele O, (2011), “Cloud Computing

[5] NIST, (2014) “NIST Cloud Computing Security Reference

Architecture”, U.S Department of Commerce, US.

[6] P Mell and T Grance, (2011) “The NIST Definition of Cloud

Computingc (Draf)”, National Institute of Standards and Technology, U.S.

Department of commerce, Tech Rep

[7] Gurudatt Kulkarni, Jayant Gambhir, Rajnikant Palwe, (2014) “Cloud

[8] S Sezer, S Scott-Hayward, P K Chouhan, B Fraser, D Lake, J. Finnegan, N Viljoen, M Miller, and N Rao, (2013) “Are we ready for SDN? implementation challenges for software-defined networks”, Communications

[9] K Ashton, (2009), “That Internet of Things Thing”, RFiD Journal, vol.

[10] CASAGRAS, 2008, “A new vision for the Internet”.

[11] P K Chouhan, M Hagan, G McWilliams and S Sezer, (2014)

“Software as a service: Undersatnding security issues” in 7th IEEE/ACM

International Conference on Utility and Cloud Computing, Submitted.

[12] M Jensen, N Gruschka, and R Herkenhoner, (2009), “A survey of attacks on web services”, Computer Science-Research and Development, vol.

[13] M McIntosh and P Austel, (2005), “XML signature element wrapping attacks and countermeasures”, in Proceedings of the 2005 workshop on Secure web services ACM, pp 20–27

[14] M Pearce, S Zeadally, and R Hunt, ( 2013), “Virtualization: Issues, security threats, and solutions”, ACM Computing Surveys (CSUR), vol 45, no.

[15] H Wu, Y Ding, C Winer, and L Yao, (2010), “Network security for virtual machine in cloud computing”, in Computer Sciences and Convergence

Information Technology (ICCIT), 2010 5th International Conference on IEEE, pp 18–21.

[16] NextCloud, (2017), “End-to-End Encryption” Design, NextCloud GmbH ,Version: September 20,.

[17] Nguồn tải Androi Studio: https://developer.android.com/studio/archive.

[18] Nguồn tải NextCloud Talk: https://github.com/nextcloud/talk- android.git

[19] Nguồn OpenSSL 1.1.1.g: https://github.com/openssl/openssl.git

[20] RSA: https://crypto.stackexchange.com/questions/87715/what- is-the-public-key-length-of-rsa-and-ed25519

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

w