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

đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đồ Án 2 Tìm Hiểu Về Truyền Tải Và Bảo Mật Dữ Liệu Lớn
Tác giả Nguyễn Phước Bình, Trần Thanh Trí
Người hướng dẫn ThS. Huỳnh Hồ Thị Mộng Trinh
Trường học Đại Học Quốc Gia Tp. Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 52
Dung lượng 1,2 MB

Cấu trúc

  • Chương 1. MỞ ĐẦU (9)
    • 1.1 Lý do chọn đề tài (9)
    • 1.2 Mục đích chọn đề tài (9)
    • 1.3 Đối tượng và phạm vi nghiên cứu (10)
      • 1.3.1 Đối tượng nghiên cứu (10)
      • 1.3.2 Phạm vi nghiên cứu (10)
  • Chương 2. TỔNG QUAN (11)
    • 2.1 Một số vấn đề còn tồn tại (11)
    • 2.2 Vấn đề nghiên cứu (11)
  • Chương 3. NGHIÊN CỨU (12)
    • 3.1 Mã hóa đối xứng và bất đối xứng (12)
      • 3.1.1 Khái niệm cơ bản (12)
        • 3.1.1.1 Mật mã học (12)
        • 3.1.1.2 Thám mã (13)
        • 3.1.1.3 Bản rõ (13)
      • 3.1.2 Hệ mật mã hóa đối xứng (13)
      • 3.1.3 Hệ mật mã hóa bất đối xứng (15)
    • 3.2 Kỹ thuật trao đổi khóa Diffie-Hellman (16)
    • 3.3 Thuật toán RSA (21)
      • 3.3.1 Khái niệm (22)
      • 3.3.2 Thủ tục sinh khóa RSA (23)
      • 3.3.3 Thủ tục mã hóa và giải mã (24)
        • 3.3.3.1 Mã hóa (24)
        • 3.3.3.2 Giải mã (24)
      • 3.3.4 Ví dụ minh họa (24)
        • 3.3.4.1 Sinh khóa (24)
        • 3.3.4.2 Mã hóa (25)
        • 3.3.4.3 Giải mã (25)
        • 3.3.4.4 Một số yêu cầu với quá trình sinh khóa RSA (26)
        • 3.3.4.5 Quá trình trao đổi khóa RSA (26)
    • 3.5 Các giao thức sử dụng (0)
      • 3.5.1 TLS/SSL (0)
        • 3.5.1.1 Tổng quan (0)
        • 3.5.1.2 Cấu trúc (0)
        • 3.5.1.3 Chức năng (0)
        • 3.5.1.4 Ứng dụng (0)
        • 3.5.1.5 Cách bước trong TLS handshake (0)
      • 3.5.2 SSH (0)
        • 3.5.2.1 Tổng quan (0)
        • 3.5.2.2 Cách hoạt động (0)
        • 3.5.2.3 Chức năng (0)
        • 3.5.2.4 Các kỹ thuật mã hóa (0)
        • 3.5.2.5 Nên sử dụng SSH khi nào? (0)
      • 3.5.3 FTP (0)
        • 3.5.3.1 Tổng quan (0)
        • 3.5.3.2 Cách thức hoạt động (0)
        • 3.5.3.3 Phân loại cách truyền dữ liệu trong giao thức (0)
        • 3.5.3.4 Ứng dụng (0)
        • 3.5.3.5 Ưu điểm và nhược điểm (0)
      • 3.5.4 FTPS (0)
        • 3.5.4.1 Tổng quan (0)
        • 3.5.4.2 Ưu điểm và nhược điểm (0)
      • 3.5.5 STPS (0)
        • 3.5.5.1 Tổng quan (0)
        • 3.5.5.2 Ưu điểm và nhược điểm (0)
      • 3.5.6 SCP (0)
        • 3.5.6.1 Tổng quan (0)
        • 3.5.6.2 Quá trình hoạt động (0)
        • 3.5.6.3 Ưu điểm và nhược điểm (0)
  • Chương 4. CÁCH THỰC HIỆN (44)
    • 4.1 Giao thức FTPS (44)
      • 4.1.1 Các câu lệnh Command Line cơ bản sử dụng SFTP (44)
      • 4.1.2 Cấu hình SSL/TLS (support cho FTPS) (44)
    • 4.2 Giao thức SFTP (46)
      • 4.2.1 Các câu lệnh Command Line cơ bản sử dụng SFTP (46)
      • 4.2.2 Cấu hình server (47)
      • 4.2.3 Truyền file dữ liệu lớn (48)
    • 4.3 Giao thức SCP (50)
      • 4.3.1 Các câu lệnh Command Line cơ bản sử dụng SFTP (50)
      • 4.3.2 Cấu hình server (50)
      • 4.3.3 Truyền file dữ liệu lớn (50)
  • Chương 5. KẾT LUẬN (51)
    • 5.1 Các kết quả đạt được (51)
    • 5.2 Nhược điểm và hạn chế (51)
  • Chương 6. HƯỚNG PHÁT TRIỂN (51)
    • 6.1 Hướng phát triển về mặt tính năng (51)
    • 6.2 Hướng phát về mặt kỉ thuật (52)
  • Chương 7. TÀI LIỆU THAM KHẢO (52)

Nội dung

Chúng ta sẽ tìm hiểu về các công nghệ và phương pháp mới nhất để đối mặt với thách thức này, nhằm tối ưu hóa quá trình truyền tải dữ liệu lớn mà không gây mất mát thông tin và đảm bảo tí

TỔNG QUAN

Một số vấn đề còn tồn tại

- Hacker và kẻ tấn công mạng ngày càng tinh vi trong việc xâm nhập hệ thống và đánh cắp dữ liệu quan trọng Trong môi trường dữ liệu lớn, sự tập trung của lượng lớn thông tin tăng cường khả năng mục tiêu cho các cuộc tấn công

- Nhân viên không chăm chỉ, sự thiếu hụt kiểm soát truy cập, và lỗi phần mềm có thể tạo điều kiện cho sự mất mát hoặc sử dụng không đúng thông tin

- Dữ liệu lớn thường đến từ nhiều nguồn và định dạng khác nhau, điều này có thể tạo ra thách thức về hiệu suất khi truyền tải qua các mạng

- Quá trình truyền tải có thể dẫn đến mất mát thông tin, đặc biệt là khi sử dụng các phương tiện truyền thông không đảm bảo tính toàn vẹn dữ liệu

- Việc mở rộng hạ tầng để đáp ứng với lượng lớn dữ liệu đồng thời không làm suy giảm hiệu suất truyền tải là một thách thức lớn.

Vấn đề nghiên cứu

- Một trong những vấn đề chính là làm thế nào để bảo vệ dữ liệu lớn trong quá trình truyền tải Các vấn đề bảo mật bao gồm mã hóa dữ liệu, xác thực chủ thể, ngăn chặn tấn công Man-in-the-Middle, và giữ cho dữ liệu toàn vẹn trong quá trình truyền tải

- Nghiên cứu về các thuật toán và kỹ thuật bảo mật hiện đại để đảm bảo an toàn cho dữ liệu Điều này có thể bao gồm cả nghiên cứu về mã hóa mạnh mẽ, quy trình xác thực an toàn, và các biện pháp phòng ngừa tấn công mạng

- Quá trình truyền tải dữ liệu lớn thường đối mặt với thách thức về hiệu suất Nghiên cứu tìm kiếm cách tối ưu hóa quy trình truyền tải để đảm bảo tốc độ và khả năng chịu tải cao, đồng thời vẫn duy trì mức độ an toàn đủ

- Một khía cạnh quan trọng là tích hợp giữa an ninh và hiệu suất Làm thế nào để đạt được sự cân bằng giữa việc đảm bảo tính toàn vẹn và an ninh của dữ liệu và đồng thời không làm giảm hiệu suất truyền tải

- Nghiên cứu xây dựng và triển khai hệ thống an toàn để kết nối và truyền tải dữ liệu lớn Điều này bao gồm việc xác thực an toàn, tạo điều kiện cho việc kết nối an toàn, và thiết lập các cơ chế bảo mật trong hệ thống

- Phát hiện và đối mặt với các thách thức cụ thể trong quá trình truyền tải và bảo mật dữ liệu lớn, sau đó đề xuất các giải pháp cụ thể để vượt qua những thách thức đó.

NGHIÊN CỨU

Mã hóa đối xứng và bất đối xứng

Là ngành khoa học nghiên cứu về việc đảm bảo an toàn thông tin Mật mã học gắn liền với quá trình mã hóa nghĩa là chuyển đổi thông tin từ dạng “có thể hiểu được” thành dạng “không thể hiểu được” và ngược lại là quá trình giải mã Cryptography giúp đảm bảo những tính chất sau cho thông tin:

− Tính bí mật: thông tin chỉ được tiết lộ cho những ai có quyền được tiếp cận

− Tính toàn vẹn: thông tin không thể bị thay đổi mà không bị phát hiện

− Tính xác thực: người gửi (hoặc người nhận) có thể chứng minh đúng họ

− Tính chống chối bỏ: người gửi hoặc nhận sau này không thể chối bỏ việc đã gửi hoặc nhận thông tin

Nghiên cứu cách phá các hệ mật nhằm phục hồi bản rõ ban đầu từ bản mã, nghiên cứu các nguyên lí và phương pháp giải mã mà không biết khóa Có 3 phương pháp tấn công cơ bản của thám mã:

"Bản rõ" trong mật mã học (ciphertext) là thông tin hoặc dữ liệu ban đầu sau khi đã được mã hóa hoặc mã hóa bởi thuật toán mật mã Bản rõ là dữ liệu mà bạn muốn bảo vệ hoặc giữ bí mật và được biến đổi thành dạng mã hóa (bản mã) để ngăn ngừa người không có quyền truy cập đọc hoặc hiểu nó Trong quá trình mã hóa, một khóa (key) có thể được sử dụng để thực hiện biến đổi này

3.1.2 Hệ mật mã hóa đối xứng

Là những hệ mật được sử dụng chung 1 khóa trong quá trình mã hóa và mã hóa

Do đó khóa phải được giữ bí mật tuyện đối Một số hệ mật mã khóa đối xứng hiện đại mà mình thấy hay được sử dụng là DES, AES, RC4, RC5,

Hình 1 Hệ mật mã hóa đối xứng

− Hệ mật sẽ bao gồm: o Bản rõ (plaintext-M): bản tin được sinh ra bởi bên gửi o Bản mật (ciphertext-C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một kênh không bí mật o Khóa (Ks): nó là giá trị ngẫu nhiên và bí mật được chia sẻ giữa các bên trao đổi thông tin và được tạo ra từ:

▪ Bên thứ 3 được tin cậy tạo và phân phối tới bên gửi và bên nhận

▪ Hoặc, bên gửi tạo ra và chuyển cho bên nhận o Mã hóa (encrypt-E): C = E(KS, M) o Giải mã (decrypt): M = D(KS, C) = D(KS, E(KS, M))

− Cơ chế hoạt động: o Người gửi sử dụng khóa chung (Ks) để mã hóa thông tin rồi gửi cho nguời nhận o Người nhận nhận được thông tin đó sẽ dùng chính khóa chung (Ks) để giải mã

− Mặt hạn chế o Do dùng chung khóa để mã hóa và giải mã => nếu bị mất hoặc bị đánh cắp bởi hacker sẽ bị lộ thông tin, bảo mật không cao o Cần kênh mật để chia sẻ khóa bí mật giữa các bên => Làm sao để chia sẻ một cách an toàn ở lần đầu tiên o Để đảm bảo liên lạc an toàn cho tất cả mọi người trong một nhóm gồm n người => cần tổng số lượng lớn khóa là n(n-1)/2 o Khó ứng dụng trong các hệ thống mở o Không thể dùng cho mục đích xác thực hay mục đích chống thoái thác được

Và để khắc phục những nhược điểm đó thì hệ mật mã khóa bất đối xứng (hay còn gọi là hệ mật mã khóa công khai) đã ra đời

3.1.3 Hệ mật mã hóa bất đối xứng Ở hệ mật này thay vì nguời dùng dùng chung 1 khóa như ở hệ mật mã khóa đối xứng thì ở đây sẽ dùng 1 cặp khóa có tên là public key và private key Hệ mật mã khóa bất đối xứng mình thấy được dùng nhiều nhất là RSA

Hình 2 Hệ mật mã hóa bất đối xứng

− Hệ mật sẽ bao gồm: o Bản rõ (plaintext-M): bản tin được sinh ra bởi bên gửi o Bản mật (ciphertext-C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một kênh không bí mật o Khóa: Bên nhận có 1 cặp khóa:

▪ Khóa công khai (Kub) : công bố cho tất cả mọi người biết (kể cả hacker)

▪ Khóa riêng (Krb) : bên nhận giữ bí mật, không chia sẻ cho bất kỳ ai o Mã hóa (encrypt-E): C = E(Kub, M) o Giải mã (decrypt): M = D(Krb, C) = D(Krb, E(Kub, M))

− Yêu cầu đối với cặp khóa (Kub, Krb) là: o Hoàn toàn ngẫu nhiên o Có quan hệ về mặt toán học 1-1

8 o Nếu chỉ có giá trị của Kub không thể tính được Krb o Krb phải được giữ mật hoàn toàn

− Cơ chế hoạt động: o Người gửi(A) gửi thông tin đã được mã hóa bằng khóa công khai (Kub) của người nhận(B) thông qua kênh truyền tin không bí mật o Người nhận(B) nhận được thông tin đó sẽ giải mã bằng khóa riêng (Krb) của mình o Hacker cũng sẽ biết khóa công khai (Kub) của B tuy nhiên do không có khóa riêng (Krb) nên Hacker không thể xem được thông tin gửi

− Ưu điểm o Không cần chia sẻ khóa mã hóa(khóa công khai) một cách bí mật =>

Dễ dàng ứng dụng trong các hệ thống mở o Khóa giải mã(khóa riêng) chỉ có B biết => An toàn hơn, có thể xác thực nguồn gốc thông tin o n phần tử chỉ cần n cặp khóa

− Nhược điểm o Chưa có kênh an toàn để chia sẻ khóa => Khả năng bị tấn công dạng tấn công người đứng giữa

Kỹ thuật trao đổi khóa Diffie-Hellman

Cả hai loại hệ mật đối xứng và bất đối xứng đều có những ưu - nhược điểm riêng, và các hệ mật thuộc một trong hai nhóm trên đều có chỗ đứng riêng của chúng Với hệ mật khóa đối xứng, do sử dụng cùng một khóa cho cả hai quá trình giải mã / mã hóa, nên các hệ mật thuộc nhóm này có tốc độ mã hóa / giải mã nhanh, dễ cài đặt Tuy nhiên việc này cũng tạo ra một vấn đề, đó là làm sao để giữ bí mật khóa chung

9 Để hai người có thể cùng sở hữu khóa chung, họ bắt buộc phải trao đổi và thỏa thuận với nhau Ngày nay, công đoạn này chủ yếu diễn ra trên môi trường mạng Internet công cộng - nơi không được an toàn cho lắm Trong quá trình thỏa thuận và trao đổi khóa, có khả năng khóa chung (khóa bí mật) sẽ bị các kẻ xấu lấy được Nhờ thế các thông điệp do 2 bên trao đổi với nhau, cũng sẽ bị kẻ này dễ dàng giải mã và đọc được

Giao thức trao đổi khóa Diffie-Hellman được sử dụng để khắc phục nhược điểm trên của các hệ mật khóa đối xứng Bằng cách cung cấp một quy trình kết hợp với việc sử dụng các bài toán khó, giao thức cho phép 2 bên thỏa thuận và xác định khóa chung mà không cần truyền khóa qua môi trường mạng Internet

− Cụ thể giao thức Diffie-Hellman hoạt động thế nào thì chúng ta sẽ cùng xem ví dụ sau, vẫn là câu chuyện về Bob và Alice, nhưng lần này họ sẽ chơi trò

"pha màu" o Bước 1: bản thân Bob và Alice đều tự chọn cho mình 1 màu bí mật, không ai ngoài chính bản thân họ biết về màu đó Ngoài môi trường mạng Internet công khai thì có sẵn 1 màu, công khai, và ai cũng biết màu đó là gì Ở đây, Alice chọn cho mình màu đỏ, Bob chọn màu xanh lá, còn màu công khai ngoài Internet là màu vàng

Hình 3 Bước 1 sơ đồ giao thức thỏa thuận khóa o Bước 2: Alice và Bob sẽ trộn màu bí mật của họ với màu công khai thì sẽ ra màu mới màu này được công khai nhưng nó không thể truy vấn ngược về màu bí mật của họ

Hình 4 Bước 2 sơ đồ giao thức thỏa thuận khóa o Bước 3: Giờ thì Bob và Alice đã sẵn sàng cho việc thỏa thuận khóa

Họ sẽ gửi màu vừa trộn được ở Bước 2 cho nhau qua môi trường Internet Tất nhiên giờ kẻ xấu cũng có thể nhận được 2 màu mới này, nhưng chẳng sao cả

Hình 5 Bước 3 sơ đồ giao thức thỏa thuận khóa o Bước 4: Mỗi người sẽ trộn màu bí mật từ đầu của mình, với màu vừa nhận được Và màu trộn ra cuối cùng này chính là màu chung của cả hai

Hình 6 Bước 4 sơ đồ giao thức thỏa thuận khóa

− Giao thức được diễn giải dưới dạng toán học như sau: Giao thức sử dụng nhóm nhân số nguyên modulo p, trong đó p số nguyên tố, và g là căn

12 nguyên thủy mod p Trong ví dụ dưới đây, giá trị không bí mật được viết bằng chữ nghiêng, và giá trị bí mật viết bằng chữ đậm:

Hình 7 Trao đổi khóa dưới dạng toán học

1 Alice và Bob thỏa thuận sử dụng chung một số nguyên tố p# và căn nguyên thủy g=5

2 Alice chọn một số nguyên bí mật a =6, và gửi cho Bob giá trị A = g a mod p

3 Bob chọn một số nguyên bí mật b =15, và gửi cho Alice giá trị B = g b mod p

6 Như vậy Alice và Bob cùng chia sẻ bí mật chung là số 2 vì 6*15 cũng bằng 15*6

− Ưu điểm o Không cần truyền khóa: Một ưu điểm lớn của Diffie-Hellman là bạn có thể trao đổi khóa mà không cần gửi chúng qua mạng Điều này làm cho nó rất hiệu quả trong việc bảo vệ tính bí mật của khóa o Khó khảo sát: Diffie-Hellman dựa trên một vấn đề toán học khó khảo sát (Diffie-Hellman problem) mà không dễ dàng giải quyết ngay cả khi biết các thông tin khóa công khai Điều này làm cho việc tìm ra khóa chung trên cơ sở thông tin khóa công khai trở nên khó khăn o Không đòi hỏi quá nhiều tài nguyên tính toán: Diffie-Hellman không đòi hỏi nhiều tài nguyên tính toán và là một phương pháp trao đổi khóa hiệu quả

− Nhược điểm o Khả năng tấn công Man-in-the-Middle (MITM): Một tấn công MITM có thể xảy ra khi một bên giả mạo và chuyển tiếp thông tin giữa hai bên để họ có thể tính toán và sử dụng khóa chung Để đối phó với vấn đề này, cần sử dụng kỹ thuật chứng thực hoặc bảo mật bổ sung o Khả năng thám nhập truyền qua lưu lượng và phân tích khóa công khai: Nếu một tấn công viên có thể thu thập đủ lượng lưu lượng giao tiếp và có sẵn các khóa công khai, họ có thể thử thám nhập và tính toán khóa chung Điều này yêu cầu bảo vệ bản mã trước những tấn công này o Khóa chung không xác thực: Diffie-Hellman không xác thực danh tính của các bên giao tiếp Nó chỉ giúp trao đổi khóa chung Điều này có nghĩa rằng một đối tượng xác thực thất bại có thể tham gia vào trao đổi.

Thuật toán RSA

− Mã hóa RSA chính là một thuật toán hay còn gọi là hệ mã hóa bất đối xứng có pháp vi ứng dụng rộng rãi và phổ biến đặc biệt người ta sử dụng RSA rất nhiều ở công tác mã hóa, thiết lập chữ ký điện tử, với vai trò là một mã hóa khóa công khai Bất cứ ai cũng có thể dùng khóa công khai để có thể mã hóa được nguồn dữ liệu muốn gửi đi thế nhưng để giải mã được dữ liệu gửi đi đó thì buộc phải có sự hỗ trợ của khóa bí mật

− Hoạt động gửi và nhận sẽ được can thiệp bởi RSA vì bản thân nó chứa 2 khóa là khóa công khai và khóa bí mật để làm 2 nhiệm vụ bất đối xứng và mã hóa và giải mã Điều này cũng tương tự như cơ chế đóng khóa và mở khóa cửa vậy nhưng tất nhiên RSA sẽ phức tạp hơn rất nhiều bởi nó là một thuật toán Việc mã hóa để bảo mật thông tin nhưng gây bất lợi cho người nhận khi không thể giải mã được các giá trị thông tin đã được mã hóa, chính vì thế mà cần đến yếu tố khóa bí mật luôn đi kèm với việc mã hóa, và khóa bí mật này cũng chỉ có ở người nhận thông tin đã mã hóa được gửi tới họ thông qua RSA

− Ưu điểm o Bảo mật tương đối: Trong trường hợp sử dụng khóa đủ dài và an toàn, RSA cung cấp mức độ bảo mật tương đối cao, chẳng hạn như khóa 2048-bit hoặc 3072-bit o Khóa công khai và riêng tư riêng biệt: Hệ thống RSA sử dụng khóa riêng tư và khóa công khai riêng biệt, đảm bảo tính an toàn của thông tin truyền qua mạng o Khóa công khai có thể được chia sẻ một cách an toàn: Khóa công khai (public key) có thể được chia sẻ công khai mà không gây ra nguy cơ bảo mật o Khả năng xác thực danh tính: RSA cung cấp khả năng xác thực danh tính thông qua việc ký điện tử bằng khóa riêng tư, đảm bảo nguồn gốc của thông tin

15 o Sử dụng rộng rãi: RSA được sử dụng rộng rãi trong các ứng dụng bảo mật như mã hóa dữ liệu, xác thực, và chữ ký số

− Nhược điểm o Tốc độ chậm: Quá trình mã hóa và giải mã RSA tốn rất nhiều thời gian tính toán so với các thuật toán mật mã học đối xứng như AES Điều này khiến nó không phù hợp cho các ứng dụng yêu cầu tốc độ cao o Kích thước khóa lớn: Để đảm bảo tính an toàn, khóa RSA phải có kích thước lớn, điều này làm tăng tải trọng lưu trữ và truyền tải o Khả năng tấn công theo phương pháp tìm kiếm: Có một số phương pháp tấn công có thể dùng để tìm thứ tự của n trong khoảng từ 1 đến n, dẫn đến việc tìm ra khóa riêng tư d o Khả năng tấn công Man-in-the-Middle (MITM): Nếu không được sử dụng cơ chế xác thực danh tính thích hợp, RSA có thể bị tấn công MITM o Chỉ phù hợp cho mã hóa khóa nhỏ: RSA thường được sử dụng để mã hóa khóa đối xứng như AES, thay vì mã hóa dữ liệu lớn trực tiếp

3.3.2 Thủ tục sinh khóa RSA

1 Chọn hai số nguyên tố lớn: Chọn hai số nguyên tố lớn, thường được ký hiệu là p và q Các số nguyên tố này sẽ được sử dụng để tính toán n (modulo) và số lượng ước chung (totient) của n

5 Chọn một số nguyên e (Public Exponent): Chọn một số nguyên e, thường là một số nguyên tố hoặc một số có ước chung là 1 với φ (1 < e < φ)

6 Tìm số nguyên d (Private Exponent): Tìm số nguyên d sao cho (d * e) % φ 1 Điều này có nghĩa là d là phần nghịch đảo của e modulo φ

7 Khóa công khai (Public Key): Khóa công khai bao gồm cặp (n, e) và thường được phân phối rộng rãi cho người khác có thể mã hóa thông tin gửi cho bạn

8 Khóa riêng tư (Private Key): Khóa riêng tư bao gồm số nguyên (n, d) và thường được giữ bí mật Nó sẽ được sử dụng để giải mã thông tin đã được mã hóa bằng khóa công khai

9 Kết quả: Cặp khóa RSA gồm khóa công khai (n, e) và khóa riêng tư (n, d) sẽ được sử dụng để mã hóa và giải mã thông tin

3.3.3 Thủ tục mã hóa và giải mã

1 Người gửi sử dụng khóa công khai (n, e) của người nhận để mã hóa thông điệp Thông điệp cần phải được biểu diễn dưới dạng số nguyên (thường thông qua một quá trình gọi là mã hóa văn bản thuận nghịch)

2 Người gửi tính số nguyên c (ciphertext) bằng c = (m^e) % n, trong đó m là thông điệp đã được biểu diễn dưới dạng số nguyên

3 Người gửi gửi c cho người nhận

1 Người nhận sử dụng khóa riêng tư (n, d) của mình để giải mã thông điệp đã được mã hóa

2 Người nhận tính số nguyên m (plaintext) bằng m = (c^d) % n, trong đó c là ciphertext và n là thành phần modulus đã được sử dụng trong quá trình mã hóa

3 Người nhận chuyển đổi số nguyên m thành thông điệp gốc thông qua quá trình giải mã văn bản thuận nghịch

2 Tính n và totient (φ): o Tính n = p * q = 3 * 11 = 33 o Tính totient (φ) = (p - 1) * (q - 1) = (3 - 1) * (11 - 1) = 2 * 10 = 20

3 Chọn số nguyên e (Public Exponent): o Chọn e sao cho 1 < e < φ và gcd(e, φ) = 1 Ví dụ, chúng ta có thể chọn e = 7

4 Tìm số nguyên d (Private Exponent): o Tìm số nguyên d sao cho (d * e) % φ = 1 Trong trường hợp này, d 3

5 Khóa công khai (Public Key): o Khóa công khai bao gồm cặp (n, e) = (33, 7)

6 Khóa riêng tư (Private Key): o Khóa riêng tư bao gồm cặp (n, d) = (33, 3)

1 Người gửi (Alice) muốn gửi thông điệp "HELLO" cho người nhận (Bob) bằng khóa công khai của Bob (n, e)

2 Biểu diễn thông điệp dưới dạng số nguyên Ví dụ, "HELLO" có thể được biểu diễn dưới dạng m = 8, 5, 12, 12, 15

3 Tính c = (m^e) % n: o Với m = 8: c₁ = (8^7) % 33 = 2097152 % 33 = 27 o Với m = 5: c₂ = (5^7) % 33 = 78125 % 33 = 29 o Với m = 12: c₃ = (12^7) % 33 = 35831808 % 33 = 21 o Với m = 12: c₄ = (12^7) % 33 = 35831808 % 33 = 21 o Với m = 15: c₅ = (15^7) % 33 = 170859375 % 33 = 6 o Kết quả: ciphertext c = [27, 29, 21, 21, 6]

1 Bob nhận được ciphertext c từ Alice

2 Bob sử dụng khóa riêng tư của mình (n, d) để giải mã thông điệp Tính m (c^d) % n: o Với c₁ = 27: m₁ = (27^3) % 33 = 19683 % 33 = 8 o Với c₂ = 29: m₂ = (29^3) % 33 = 24389 % 33 = 5 o Với c₃ = 21: m₃ = (21^3) % 33 = 9261 % 33 = 12 o Với c₄ = 21: m₄ = (21^3) % 33 = 9261 % 33 = 12 o Với c₅ = 6: m₅ = (6^3) % 33 = 216 % 33 = 15 o Kết quả: plaintext m = [8, 5, 12, 12, 15]

3.3.4.4 Một số yêu cầu với quá trình sinh khóa RSA

− Các số nguyên tố p và q phải được chọn sao cho việc phân tích n (n = pq) là không khả thi về mặt tính toán

− p và q nên có cùng độ lớn (tính bằng bit) và phải là các số đủ lớn

− Hiệu số p – q không nên quá nhỏ

− Không nên sử dụng số mũ mã hóa (e) nhỏ Khi sử dụng e nhỏ có thể tăng tốc độ mã hóa, tuy nhiên đồng nghĩa với nó là chi phí cho việc phân tích vét cạn là không lớn => Kẻ tấn công có thể nghe trộm và lấy được bản mã

− Không nên sử dụng số mũ giải mã (d) nhỏ Khi sử dụng d nhỏ có thể tăng tốc độ giải mã, tuy nhiên nếu d nhỏ và gcd(p-1, q-1) (gcd: ước số chung lớn nhất) cũng nhỏ thì d có thể tính được tương đối dễ dàng từ khóa công khai (n, e)

3.3.4.5 Quá trình trao đổi khóa RSA

− Quá trình trao đổi khóa trong hệ thống RSA thường sử dụng cả hai loại khóa: khóa công khai và khóa bí mật Dưới đây là mô tả về cách thức hoạt động của quá trình trao đổi khóa RSA:

1 Khởi tạo cặp khóa: Trước hết, hai bên (thường gọi là Alice và Bob) cần tạo cặp khóa RSA Cặp khóa này gồm khóa công khai và khóa bí mật Alice sẽ giữ lại khóa bí mật của mình và chia sẻ khóa công khai với Bob,

19 và ngược lại, Bob giữ lại khóa bí mật của mình và chia sẻ khóa công khai với Alice

2 Mã hóa dữ liệu: Khi Alice muốn gửi dữ liệu an toàn cho Bob, cô sẽ sử dụng khóa công khai của Bob để mã hóa dữ liệu Dữ liệu được mã hóa bằng cách sử dụng khóa công khai của Bob sẽ chỉ có thể giải mã bằng khóa bí mật của Bob

3 Gửi dữ liệu đã mã hóa: Alice gửi dữ liệu đã mã hóa cho Bob thông qua kênh truyền an toàn (chẳng hạn như mạng internet) Trong quá trình này, dữ liệu đã mã hóa có thể trôi qua một số nguy cơ, nhưng nó sẽ không thể giải mã được nếu không có khóa bí mật của Bob

4 Giải mã dữ liệu: Bob nhận dữ liệu đã mã hóa và sử dụng khóa bí mật của mình để giải mã nó Nhưng chỉ khóa bí mật của Bob mới có thể giải mã được dữ liệu, đảm bảo tính bảo mật

Các giao thức sử dụng

o Hiệu suất có thể bị ảnh hưởng: Trong một số trường hợp, SCP có thể không hiệu quả với mạng có độ trễ cao do việc mã hóa và giải mã dữ liệu trên cả hai đầu kết nối.

CÁCH THỰC HIỆN

Giao thức FTPS

4.1.1 Các câu lệnh Command Line cơ bản sử dụng SFTP

− Kết nối đến một máy chủ FTP: ftp [hostname]

− Đăng nhập với tên người dùng: user [username]

− Nhập mật khẩu: pass [password]

− Hiển thị danh sách các tệp trong thư mục hiện tại: ls

− Chuyển đổi sang chế độ chuyển đổi dữ liệu (passive mode): passive

− Chuyển đến một thư mục khác trên máy chủ: cd [directory]

− Tải tệp từ máy chủ về máy local: get [remote-file] [local-file]

− Tải nhiều tệp từ máy chủ về máy local: mget [remote-files]

− Đẩy một tệp từ máy local lên máy chủ: put [local-file] [remote-file]

− Thoát khỏi phiên FTP: bye

4.1.2 Cấu hình SSL/TLS (support cho FTPS)

Sử dụng ứng dụng FileZilla Server để cấu hình cho FTPS

− Thêm user account cho server o Ở hộp thoại users bạn chọn Shared folders o Bên cột Users bạn chọn nút Add o Hộp thoại Add user account xuất hiện bạn gõ tên user vào và bấm OK

Hình 14 Cấu hình FTPS (1) o Bạn Chọn tiếp Link General ở cột Page để set password cho user vừa mới tạo o Tại cột Account settings bạn tick vào Enable để kích hoạt user và tick chọn Password và set password cho user o Tại ô Force SSL for user login: nếu bạn tick vào đây đồng nghĩa bạn ép người dùng buộc phải sử dụng FTPS mọi nỗ lực cố gắng sử dụng FTP từ phía người dùng sẽ vô nghĩa o Trường hợp bạn muốn người dùng vừa có thể dùng FTP vừa có thể dùng FTPS thì bạn khỏi cần tick vào đây

38 o Để tại SSL/TSL (FTPS) bạn chọn SSL/TLS settings o Ban tick vào Enable FTP over SSL/TLS support (FTPS) o Bạn browse đến file certificate mà bạn đã có sẳn o Hộp thoại – Hộp thoại certificate xuất hiện bạn điền thông tin của certificate vào sau đó bám Generate certificate o Và bấm OK để hoàn tất việc tạo certificate o Và sau đó bấm OK 1 lần nữa để hoàn tất việc cấu hình SSL/TLS

Giao thức SFTP

4.2.1 Các câu lệnh Command Line cơ bản sử dụng SFTP

− Kết nối đến máy chủ SFTP: sftp [username]@[hostname]

− Tải file từ máy chủ SFTP về máy local: get [remote_file]

− Tải nhiều file từ máy chủ SFTP về máy local: mget [remote_file1] [remote_file2]

− Tải thư mục từ máy chủ SFTP về máy local (đệ quy): get -r [remote_directory]

− Đẩy file từ máy local lên máy chủ SFTP: put [local_file]

− Đẩy nhiều file từ máy local lên máy chủ SFTP: mput [local_file1] [local_file2]

− Đẩy thư mục từ máy local lên máy chủ SFTP (đệ quy): put -r [local_directory]

− Xóa file trên máy chủ SFTP: rm [remote_file]

− Xóa thư mục trên máy chủ SFTP (đệ quy): rmdir [remote_directory]

− Thoát khỏi phiên SFTP: exit

Vì SFTP sử dụng SSH (Secure Shell) để thiết lập kết nối an toàn và mã hóa dữ liệu truyền tải nên chúng ta có thể xây dựng remote host ở một máy tính khác và xem như là một server SFTP

− Bước 1: Tạo một cặp khóa SSH với thuật toán mã hóa là RSA ở remote host o Sử dụng lệnh: ssh-keygen -t rsa

▪ ssh-keygen: Là lệnh chính để tạo khóa SSH

▪ -t rsa: Chọn thuật toán mã hóa cho khóa, trong trường hợp này là RSA RSA là một trong những thuật toán phổ biến được sử dụng để tạo ra cặp khóa công khai và riêng tư trong hệ thống mã hóa khóa công khai o Khi bạn chạy lệnh này, bạn sẽ được yêu cầu cung cấp một đường dẫn để lưu trữ cặp khóa và có thể cung cấp một passphrase để bảo vệ khóa riêng tư Sau khi bạn nhập các thông tin này, ssh-keygen sẽ tạo ra hai tệp: một cho khóa công khai (với phần mở rộng pub) và một cho khóa riêng tư

− Bước 2: Tạo file authorized_key và upload public key của client o Sử dụng lệnh

▪ echo "[public-key-of-client]" >> ~/.ssh/authorized_keys

▪ echo "[public-key-of-client]": Lệnh này tạo một dòng với nội dung là khóa công khai và đưa ra đầu ra tiêu chuẩn (stdout)

▪ >> ~/.ssh/authorized_keys: Phần này sử dụng toán tử >> để chuyển hướng đầu ra của lệnh echo vào cuối tệp authorized_keys Nếu tệp này chưa tồn tại, nó sẽ được tạo mới

Nếu tệp đã tồn tại, nội dung mới sẽ được thêm vào cuối tệp mà không làm mất đi nội dung hiện có

− Bước 3: Set permissions o Sử dụng lệnh: chmod 600 ~/.ssh/authorized_keys

▪ chmod: Là lệnh để thay đổi quyền truy cập của tệp

▪ 600: Là mã quyền, trong đó:

▪ 6 có ý nghĩa là quyền đọc và ghi cho chủ sở hữu (owner) của tệp

▪ 0 có ý nghĩa là không có quyền đọc, ghi, hay thực thi cho các người dùng khác

▪ ~/.ssh/authorized_keys: Là đường dẫn đến tệp authorized_keys trong thư mục ssh của người dùng

▪ Ý nghĩa của lệnh này là chỉ chủ sở hữu của tệp authorized_keys (thường là người dùng) có quyền đọc và ghi, trong khi mọi người khác không có quyền nào o Sử dụng lệnh: chmod 700 ~/.ssh

▪ chmod: Là lệnh để thay đổi quyền truy cập của thư mục

▪ 700: Là mã quyền, trong đó:

▪ 7 có ý nghĩa là quyền đọc, ghi và thực thi cho chủ sở hữu

▪ 0 có ý nghĩa là không có quyền đọc, ghi, hay thực thi cho các người dùng khác

▪ ~/.ssh: Là đường dẫn đến thư mục ssh của người dùng

▪ Ý nghĩa của lệnh này là chỉ chủ sở hữu của thư mục ssh có quyền đọc, ghi và thực thi, trong khi mọi người khác không có quyền nào

4.2.3 Truyền file dữ liệu lớn

Truyền file dữ liệu lớn (1GB) với remove host đã cấu hình theo 4.2.2 (nguyenphuocbinh@192.168.1.25)

− Kết nối tới remove host o Sau khi thêm public key của client vào remove host thì dễ dàng kết nối bằng lệnh: sftp nguyenphuocbinh@192.168.1.25

▪ Sau khi khởi tạo kết nối thì máy khách sẽ yêu cầu xác thực đến máy chủ bằng cách gửi public key của nó tới máy chủ Máy chủ kiểm tra xem public key đã được gửi có tồn tại trong tệp authorized_keys của người dùng hay không Nếu có, máy chủ biết rằng người dùng có quyền truy cập Tiếp theo máy chủ sẽ tạo mã ngẫu nhiên để xác thực private key của máy khách

Xong quá trình xác thực thì cả hai bên sẽ sử dụng cặp key của nhau để xác định sesion key cho việc mã hóa dữ liệu trong việc truyền dữ liệu ở những bước tiếp theo Sau khi kết nối thành công thì giao thức vẫn sẽ giữ kết nối cho đến khi người dùng thực hiện lệnh ngắt kết nối

− Truyền dữ liệu o Thực hiện lấy một file (1GB) từ remove server xuống sử dụng lệnh: get /Users/nguyenphuocbinh/Documents/Demo.zip

▪ Trạng thái đang trong quá trình truyền dữ liệu

▪ Trạng thái sau khi truyền dữ liệu thành công

 Sau 1p19s đã hoàn thành xong việc lấy một file (1GB) từ remote server xuống

Giao thức SCP

4.3.1 Các câu lệnh Command Line cơ bản sử dụng SFTP

− Tải một tệp từ máy chủ về máy local: scp [username@]host:remote_file_path local_file_path

− Tải một thư mục từ máy chủ về máy local (sử dụng -r cho recursive): scp -r

[username@]host:remote_directory_path local_directory_path

− Đẩy một tệp từ máy local lên máy chủ: scp local_file_path

[username@]host:remote_directory_path

− Đẩy một thư mục từ máy local lên máy chủ (sử dụng -r cho recursive): scp - r local_directory_path [username@]host:remote_directory_path

− Chỉ định cổng (mặc định là 22): scp -P port_number

[username@]host:remote_file_path local_file_path

− Hiển thị quá trình sao chép (verbose mode): scp -v

[username@]host:remote_file_path local_file_path

Vì SCP sử dụng SSH (Secure Shell) để thiết lập kết nối an toàn và mã hóa dữ liệu truyền tải nên các bước cấu hình giống như bên giao thức SFTP đã trình bày ở mục

4.3.3 Truyền file dữ liệu lớn

Truyền file dữ liệu lớn (1GB) với remove host đã cấu hình theo 4.2.2

− Giao thức SCP không có lệnh kết nối server vì nó không giữu kết nối như giao thức FTPS và SFTP

− Truyền dữ liệu o Thực hiện lấy một file (1GB) từ remove server xuống sử dụng lệnh: scp nguyenphuocbinh@192.168.1.25:/Users/nguyenphuocbinh/

▪ Trạng thái đang trong quá trình truyền dữ liệu

▪ Thạng thái sau khi truyền dữ liệu thành công

 Sau 1p30s đã hoàn thành xong việc lấy một file (1GB) từ remote server xuống

HƯỚNG PHÁT TRIỂN

Hướng phát triển về mặt tính năng

− Tích hợp các tính năng phát hiện xâm nhập để giảm thiểu rủi ro từ các hành động đe dọa bảo mật

− Tích hợp cơ chế nén dữ liệu thông minh để giảm thiểu dung lượng và tăng tốc độ truyền tải

− Sử dụng machine learning để phân tích dữ liệu và dự đoán các rủi ro an ninh, cũng như tối ưu hóa hiệu suất.

Hướng phát về mặt kỉ thuật

− Nghiên cứu và triển khai các thuật toán nén dữ liệu mới, có thể kết hợp nhiều kỹ thuật để đạt được hiệu suất tối ưu

− Xem xét và phát triển các thuật toán phân tán hiệu quả để tăng cường khả năng mở rộng của hệ thống

− Nâng cao cơ chế mã hóa dữ liệu, bao gồm cả mã hóa đối xứng và không đối xứng, để đảm bảo an toàn tuyệt đối.

Ngày đăng: 15/05/2024, 09:29

HÌNH ẢNH LIÊN QUAN

Hình 1. Hệ mật mã hóa đối xứng. - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 1. Hệ mật mã hóa đối xứng (Trang 13)
Hình 2 Hệ mật mã hóa bất đối xứng. - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 2 Hệ mật mã hóa bất đối xứng (Trang 15)
Hình 3 Bước 1 sơ đồ giao thức thỏa thuận khóa. - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 3 Bước 1 sơ đồ giao thức thỏa thuận khóa (Trang 17)
Hình 4 Bước 2 sơ đồ giao thức thỏa thuận khóa. - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 4 Bước 2 sơ đồ giao thức thỏa thuận khóa (Trang 18)
Hình 5 Bước 3 sơ đồ giao thức thỏa thuận khóa. - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 5 Bước 3 sơ đồ giao thức thỏa thuận khóa (Trang 19)
Hình 7 Trao đổi khóa dưới dạng toán học. - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 7 Trao đổi khóa dưới dạng toán học (Trang 20)
Hình 8 Cấu trúc giao thức SSL - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 8 Cấu trúc giao thức SSL (Trang 28)
Hình 9 Các bước trong TLS handshake. - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 9 Các bước trong TLS handshake (Trang 30)
Hình 10 Quy trình xác thực của SSH - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 10 Quy trình xác thực của SSH (Trang 33)
Hình 11 Mô hình hoạt động của giao thức FTP - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 11 Mô hình hoạt động của giao thức FTP (Trang 37)
Hình 12 Giao thức FTPS - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 12 Giao thức FTPS (Trang 39)
Hình 13 Giao thức SFTP - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 13 Giao thức SFTP (Trang 41)
Hình 14 Cấu hình FTPS (1) - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 14 Cấu hình FTPS (1) (Trang 45)
Hình 15 Cấu hình FTPS (2) - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 15 Cấu hình FTPS (2) (Trang 45)
Hình 16. Cấu hình FTPS (3) - đồ án 2 tìm hiểu về truyền tải và bảo mật dữ liêu lớn
Hình 16. Cấu hình FTPS (3) (Trang 46)

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

TÀI LIỆU LIÊN QUAN

w