1. Trang chủ
  2. » Thể loại khác

Luận văn tìm hiểu nghiên cứu một số bài toán an toàn thông tin trong tính toán lưới

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

Định dạng
Số trang 53
Dung lượng 2,25 MB

Cấu trúc

  • 1.2. LỢI ÍCH CỦA TÍNH TOÁN LƯỚI (7)
    • 1.2.1. Khai thác tài nguyên nhàn rỗi (7)
    • 1.2.2. Khả năng xử lý song song (7)
    • 1.2.3. Sự cộng tác các tài nguyên ảo và tổ chức ảo (7)
    • 1.2.4. Giúp truy nhập các tài nguyên khác (8)
    • 1.2.5. Giúp cân bằng trong sử dụng tài nguyên (8)
    • 1.2.6. Mang lại độ tin cậy (8)
    • 1.2.7. Phạm vi ứng dụng (9)
      • 1.3.2.1. Những thách thức trong quản lý tài nguyên lưới (9)
      • 1.3.2.2. Hệ quản trị tài nguyên GRAM (12)
      • 1.4.3.1. Giao thức truyền tập tin mạng lưới GridFTP (0)
      • 1.4.3.2. Dịch vụ định vị bản sao RLS (0)
    • 1.3.4. Thành phần Lập lịch trong lưới tính toán (18)
    • 1.3.5. Cổng lưới tính toán (Grid Portal) (20)
    • 1.3.6. Thành phần Giám sát lưới (21)
      • 1.3.6.1. Quy trình giám sát (21)
      • 1.3.6.2. Yêu cầu đối với một hệ thống giám sát lưới (21)
      • 1.3.6.3. Phân loại các hệ thống giám sát lưới (22)
    • 1.4.1. Thành phần mạng (Networks) (23)
    • 1.4.2. Thành phần tính toán (Computation) (23)
    • 1.4.3. Thành phần lưu trữ (Storage) (23)
    • 1.4.4. Phần mềm và bản quyền (Software and License) (23)
    • 1.4.5. Các thiết bị đặc biệt (24)
  • 1.5. HỆ THỐNG ĐẢM BẢO ATTT 1. Cơ chế bảo đảm ATTT trong tính toán lưới (0)
    • 1.5.2. Các chính sách bảo đảm ATTT trong tính toán lưới (25)
    • 1.5.3. Cơ sở Hạ tầng an ninh trong lưới tính toán (26)
  • Chương 2. (0)
    • 2.1.1.1. Chữ ký RSA (31)
    • 2.1.1.2. Chữ ký ElGamal (32)
    • 2.1.2. Sử dụng chữ ký số trong xác thực thực thể dùng lưới tính toán (34)
      • 2.2.1.1. Hệ mã hóa khóa đối xứng (35)
      • 2.2.1.2. Hệ mã hóa khóa phi đối xứng (39)
    • 2.2.2. Sử dụng hệ mã hóa trong bảo mật thông tin trên lưới tính toán (40)
      • 2.2.2.1. Hệ mã hoá RSA (40)
      • 2.2.2.2. Hệ mã hoá ElGama (40)
  • Chương 3. THỬ NGHIỆM CHƯƠNG TRÌNH KÝ SỐ TRONG LTT 3.1. CẤU HÌNH HỆ THỐNG (43)
    • 3.2. CÁC THÀNH PHẦN TRONG CHƯƠNG TRÌNH (43)
    • 3.3. CHƯƠNG TRÌNH (44)
    • 3.4. HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH (51)
  • KẾT LUẬN (52)
  • TÀI LIỆU THAM KHẢO (52)

Nội dung

LỢI ÍCH CỦA TÍNH TOÁN LƯỚI

Khai thác tài nguyên nhàn rỗi

Một trong những lợi ích chính của tính toán lưới là khả năng sử dụng tài nguyên không hoạt động để chạy các ứng dụng khác Theo thống kê, máy tính để bàn chỉ hoạt động khoảng 5% thời gian trong một ngày làm việc, trong khi phần lớn thời gian còn lại là rỗi Việc khai thác thời gian rỗi này để thực hiện các tác vụ khác không chỉ hiệu quả mà còn tiết kiệm chi phí.

Khả năng xử lý song song

Khả năng chạy ứng dụng song song là một trong những lợi ích nổi bật của tính toán lưới Khi một công việc được phân chia thành nhiều công việc con, các công việc này có thể được thực hiện đồng thời trên các tài nguyên khác nhau trong lưới, giúp rút ngắn đáng kể thời gian chạy ứng dụng.

Không phải tất cả các ứng dụng đều có thể triển khai hiệu quả trên lưới Cần đánh giá các yếu tố như khả năng song song hóa và sự trao đổi giữa các công việc con để xác định tính hiệu quả của ứng dụng khi chạy trong môi trường lưới.

Sự cộng tác các tài nguyên ảo và tổ chức ảo

Sự hợp tác trong tổ chức ảo là sự kết hợp giữa nhiều tổ chức, bao gồm dữ liệu và các thiết bị đặc biệt Tài nguyên này được “ảo hóa” để đảm bảo tính đồng bộ trong một hệ thống mạng lưới không đồng nhất Những tài nguyên này được gọi là tài nguyên ảo, đóng vai trò quan trọng trong việc tối ưu hóa hiệu suất và khả năng tương tác giữa các thành phần trong tổ chức.

Giúp truy nhập các tài nguyên khác

Lưới không chỉ cung cấp tài nguyên tính toán và lưu trữ mà còn bao gồm các tài nguyên khác như đường truyền mạng và phần mềm đắt tiền Chẳng hạn, nếu người dùng cần tăng băng thông Internet để thực hiện khai thác dữ liệu, họ có thể tận dụng các kết nối Internet riêng biệt của các nút lưới khác để xử lý bài toán.

Giúp cân bằng trong sử dụng tài nguyên

Lưới liên kết tài nguyên từ nhiều máy khác nhau tạo thành một hệ thống duy nhất, giúp cân bằng tài nguyên trong các chương trình thông qua việc lập lịch làm việc cho các công việc Chức năng này rất quan trọng trong việc xử lý tình trạng quá tải về xử lý và tính toán trong tổ chức, và có thể được thực hiện theo hai cách.

- Những điểm quá tải được đưa đến những máy rỗi trên mạng lưới

- Nếu toàn mạng lưới đã bận, những công việc có độ ưu tiên thấp được tạm ngừng nhường cho những công việc khác có độ ƣu tiên cao

Một lợi ích quan trọng của Grid là khả năng cân bằng tải, cho phép lập lịch các công việc liên lạc với nhau và với các tài nguyên như Internet Nhờ đó, Grid có thể tối ưu hóa lưu lượng truyền dữ liệu và giảm thiểu khoảng cách truyền, từ đó hạn chế tình trạng tắc nghẽn mạng hiệu quả.

Mang lại độ tin cậy

Khái niệm tin cậy trong tính toán lưới được thể hiện ở các khía cạnh sau:

- Trong lưới có những tài nguyên tính toán đắt tiền, cung cấp độ tin cậy cao cho những bài toán đƣợc thực hiện trên chúng

- Lưới cung cấp khả năng lập lịch lại, phân bổ lại công việc nếu có lỗi xảy ra

- Nếu cần, một công việc có thể đƣợc chạy đồng thời trên nhiều nút, cho nên việc xảy ra lỗi ở một

Phạm vi ứng dụng

Tính toán lưới là phương pháp hiệu quả để giải quyết các bài toán khoa học phức tạp, bao gồm mô phỏng, thiết kế vi mạch, và chia sẻ nội dung Nó cũng hỗ trợ truy cập và thuê phần mềm/dịch vụ từ xa, đáp ứng nhu cầu xử lý dữ liệu lớn và thời gian thực Ngoài ra, tính toán lưới còn phục vụ cho các bài toán tính toán cộng tác như thiết kế chung, khai phá dữ liệu, và giáo dục điện tử.

Trong chương này, tôi sẽ trình bày các thành phần cơ bản của hệ thống, bao gồm thành phần bảo vệ thông tin, thành phần môi giới, thành phần lập lịch, chức năng an ninh nút, thành phần quản lý tài nguyên, thành phần quản lý dữ liệu và thành phần giao thức.

1.3.2.1 Những thách thức trong quản lý tài nguyên lưới

1/ Xuất phát từ đặc trưng của tài nguyên lưới:

2/ Định vị tài nguyên lưới:

Khi người dùng gửi yêu cầu, bộ phận quản lý tài nguyên sẽ tìm kiếm và định vị tài nguyên từ dịch vụ chỉ mục đến các nút cụ thể trong lưới để lập lịch sử dụng Trong quá trình ứng dụng hoạt động, bộ phận này cần theo dõi trạng thái tài nguyên và thông báo cho bộ lập lịch và hệ thống kế toán Nếu có hai yêu cầu được đệ trình cùng lúc, chúng sẽ được xử lý theo quy tắc của hàng đợi Khi một ứng dụng yêu cầu tài nguyên đang được sử dụng bởi ứng dụng khác, yêu cầu đó sẽ được xếp vào hàng đợi cho đến khi tài nguyên sẵn sàng phục vụ.

Môi trường lưới phân tán về địa lý và tài nguyên không đồng nhất, do đó, việc định vị chính xác tài nguyên đòi hỏi thiết kế một hệ thống quản lý tài nguyên phù hợp Cần chuyển sang hướng tiếp cận đa tầng và tổ chức tài nguyên theo hình thức phi tập trung để tối ưu hóa hiệu quả.

3/ Vấn đề thương lượng tài nguyên lưới

Quá trình thương lượng tài nguyên lưới dựa trên các giao thức kinh doanh nhằm chuyển đổi lệnh buôn bán giữa người sử dụng và nhà cung cấp Hình 1.1 minh họa các giao thức thương lượng cần thiết cho cả hai bên trong quá trình mặc cả Khách hàng sẽ kết nối với nhà cung cấp, nhận giá tài nguyên và tiến hành thương lượng Khi đạt được thỏa thuận, khách hàng sẽ yêu cầu ngừng kết nối và sử dụng tài nguyên đã thương lượng.

Hình 1.1 Mô hình thương lượng tài nguyên lưới

1.3.2.2 Hệ quản trị tài nguyên GRAM

GRAM (Grid Resource Allocation Management) is a service built on the Grid Security Infrastructure (GSI) framework, serving as the management component for resource allocation across the entire grid computing system.

Để đệ trình một công việc lên host, người dùng sử dụng API của GRAM Client để xác lập thông tin về tài nguyên cần thiết và tạo tiến trình mới Những thông tin này được gửi đến người quản lý cổng để xác thực qua cơ chế bảo mật GSI Nếu hợp lệ, người quản lý cổng sẽ tạo quản lý công việc, phân tích kịch bản RSL do người dùng cung cấp và gửi kết quả phân tích đến các nguồn tài nguyên cục bộ để thực thi công việc Đồng thời, quản lý công việc cũng tạo ra các tiến trình theo dõi và điều khiển công việc trong suốt quá trình xử lý.

Trong quá trình thực hiện công việc, các nguồn tài nguyên cục bộ cần thường xuyên cập nhật thông tin về cho Dịch vụ Giám sát và Khám phá (MDS) MDS sẽ hiển thị các thông tin này, giúp người dùng xem xét và lựa chọn nguồn tài nguyên phù hợp cho công việc của mình.

Để thực hiện công việc từ xa, người quản lý cổng GRAM cần chạy trên máy tính từ xa, lắng nghe ở một cổng nhất định Quá trình thực thi bắt đầu khi ứng dụng người dùng gửi yêu cầu tới máy tính từ xa, bao gồm thông tin về lệnh thực thi, luồng vào, luồng xuất và thông tin về tên cùng cổng giao tiếp Người quản lý cổng GRAM sẽ xử lý yêu cầu này và tạo ra một quản lý công việc tương ứng, theo dõi tình trạng thực thi và thông báo thông tin công việc cho người sử dụng.

Quản lý dữ liệu đóng vai trò quan trọng trong tính toán lưới, cho phép truy cập vào khối lượng lớn tài nguyên dữ liệu lên đến hàng giga-bytes và tera-bytes Để hỗ trợ việc thực thi các công việc trong hệ thống tính toán lưới, quản lý dữ liệu cần đảm bảo tính an toàn và ổn định trong quá trình di chuyển dữ liệu giữa các nút trong mạng lưới.

1.3.3.1 Giao thức truyền tập tin mạng lưới GridFTP

GridFTP là giao thức truyền tập tin hiệu năng cao, an toàn và đáng tin cậy, tương tự như FTP và HTTP Được các chuyên gia đánh giá cao, GridFTP cung cấp các tính năng đặc trưng phù hợp với kiến trúc mạng lưới hiện đại.

+ Bảo mật theo chuẩn GSI trên các kênh điều khiển và kênh truyền dữ liệu

+ Tạo lập và quản lý các kênh truyền dữ liệu song song, cho phép tăng tốc độ truyền dữ liệu tới mức kỷ lục

+ Trao đổi từng phần tập tin dữ liệu, đặc biệt hiệu quả với các tập tin dữ liệu có dung lƣợng cực kỳ lớn

Trao đổi dữ liệu với sự tham gia của bên thứ ba cho phép chuyển tập tin trực tiếp từ máy chủ này sang máy chủ khác thông qua một kênh điều khiển nằm trên máy chủ thứ ba.

+ Xác thực các kênh truyền dữ liệu

+ Tái sử dụng các kênh truyền dữ liệu và dẫn truyền các lệnh điều khiển

GridFTP là một giao thức FTP mở rộng với nhiều chức năng đã được chuẩn hóa, tuy nhiên, nó vẫn chưa được cài đặt rộng rãi trong các hệ thống hiện tại Ngoài những tính năng cơ bản của FTP, GridFTP còn bổ sung một số chức năng mới, mang lại hiệu quả cao hơn trong việc truyền tải dữ liệu.

- Điều khiển bởi đối tác thứ ba

- Truyền dữ liệu song song; phân đoạn và từng phần

- Tự động thương lượng vùng đệm TCP

- Truyền dữ liệu tin cậy và có khả năng khởi động lại

 Kiến trúc của dịch vụ GridFTP

Hình 1.2 Kiến trúc của dịch vụ GridFTP

+ Bộ thông dịch giao thức PI:

Server PI đóng vai trò quản lý kênh điều khiển và trao đổi thông tin với máy khách Để máy khách có thể giao tiếp với máy chủ GridFTP, Server PI cần hoạt động như một chương trình thường trú, luôn lắng nghe trên một cổng nhất định Nếu không, một dịch vụ khác trong hệ thống sẽ lắng nghe trên cổng đó và chuyển tiếp yêu cầu đến Server PI Sau đó, Client PI và Server PI sẽ giao tiếp với nhau thông qua giao thức đã được định sẵn.

Trong quá trình truyền thông, Server PI tập trung vào việc xây dựng mô tả cho quá trình truyền dữ liệu mà không liên hệ trực tiếp với DTP (Data Transfer Process) hoặc khi DTP chưa hoạt động Khi nhận lệnh yêu cầu từ DTP, Server PI gửi bản mô tả quá trình truyền cho DTP, giúp DTP thực hiện việc truyền dữ liệu dựa trên mô tả này Sau khi gửi bản mô tả, Server PI chỉ đảm nhận vai trò chuyển tiếp thông tin trạng thái.

+ Tiến trình truyền dữ liệu DTP:

Bản thân DTP đƣợc cấu tạo bởi ba môđun kết hợp nhƣ sau:

Hình 1.3 Đườ ng ố ng truy ề n d ữ li ệ u DTP

Thành phần Lập lịch trong lưới tính toán

Sau khi xác định tài nguyên cần thiết, việc lập lịch trình cho các công việc là rất quan trọng Nếu các công việc hoàn toàn độc lập, có thể không cần bộ lập lịch Tuy nhiên, trong nhiều trường hợp, ứng dụng yêu cầu dự trữ tài nguyên hoặc các công việc cần giao tiếp với nhau, do đó, việc sử dụng bộ lập lịch là cần thiết để phối hợp hiệu quả các công việc.

Lập lịch trong lưới bao gồm 3 giai đoạn chính:

+ Khám phá tài nguyên và đƣa ra danh sách tài nguyên có thể sử dụng đƣợc

+ Lựa chọn tài nguyên phù hợp nhất đối với yêu cầu công việc

 Giai đoạn 1: Khai phá tài nguyên

Xác định xem tài nguyên nào khả dụng đối với người dùng hiện tại

- Bước 1: Tìm các tài nguyên khả dụng: xác định tập tài nguyên mà người dùng có đủ thẩm quyền truy nhập tới

Bước 2 trong quy trình phát triển ứng dụng là xác định yêu cầu ứng dụng, trong đó người dùng cần thiết lập một bộ yêu cầu tối thiểu để thực hiện công việc, nhằm lọc ra các tài nguyên khả dụng.

Bước 3: Loại bỏ những tài nguyên không đáp ứng yêu cầu tối thiểu của công việc dựa trên danh sách tài nguyên mà người dùng có quyền sử dụng và kết quả phân tích yêu cầu công việc từ bước hai Sau khi hoàn thành bước này, người sử dụng sẽ có một tập hợp các tài nguyên phù hợp để triển khai công việc.

 Giai đoạn 2: Lựa chọn tài nguyên

Tiến hành thu thập thông tin cần thiết về các yêu cầu công việc còn lại và lựa chọn tài nguyên phù hợp nhất để thực hiện nhiệm vụ.

- Bước 1: Thu thập thông tin động: xác định xem thông tin nào sẵn có và người dùng có thể truy nhập đến nó nhƣ thế nào

Bước 2: Lựa chọn tài nguyên là quá trình quan trọng, trong đó người dùng sẽ xác định những tài nguyên phù hợp nhất với yêu cầu và mục đích của mình Thông thường, bước này được thực hiện tự động bởi bộ lập và quản lý tài nguyên, thông qua việc giải bài toán tối ưu để đảm bảo hiệu quả sử dụng.

 Giai đoạn 3: Thực thi công việc

Tiến hành các bước để thực thi công việc trên tài nguyên đã chọn, giám sát trạng thái công việc và gửi kết quả lại cho người sử dụng

Để tối ưu hóa việc sử dụng hệ thống, bước đầu tiên là đặt trước tài nguyên cần thiết Việc đặt trước này có thể áp dụng cho một phần hoặc toàn bộ tài nguyên, giúp đảm bảo hiệu suất hoạt động tốt nhất.

Sau khi lựa chọn tài nguyên ứng dụng, bước tiếp theo là đệ trình công việc lên tài nguyên đó để thực hiện Điều này có thể được thực hiện bằng cách chạy một dòng lệnh đơn giản hoặc thực hiện một chuỗi các kịch bản đã được xác định trước.

Bước 3: Chuẩn bị công việc cần thiết để ứng dụng hoạt động hiệu quả Người dùng sẽ thực hiện các nhiệm vụ quan trọng, chẳng hạn như sử dụng GridFTP để chuyển các tệp dữ liệu cần thiết đến vị trí nơi công việc sẽ được thực hiện.

Bước 4: Theo dõi tiến độ là rất quan trọng, vì người dùng có thể muốn điều chỉnh ý định về nơi và cách thức thực hiện công việc, tùy thuộc vào ứng dụng và thời gian chạy của nó.

- Bước 5: Hoàn thành công việc: khi công việc kết thúc thì cần phải báo cho người sử dụng bằng một hình thức nào đó

Sau khi hoàn thành công việc, bước 6 là dọn dẹp và kết thúc Kết quả công việc cần được gửi lại cho người đệ trình, đồng thời các file tạm thời phải được xóa bỏ để đảm bảo tính gọn gàng và bảo mật.

Cổng lưới tính toán (Grid Portal)

Hệ thống chỉ cung cấp cho người dùng một bộ dịch vụ chung và khả năng khai thác tài nguyên phân tán, nhưng thiếu các thành phần giao diện thân thiện Do đó, cần thiết phải có công cụ cung cấp giao diện người dùng Để đáp ứng nhu cầu này, cổng giao tiếp hệ thống Grid Portal đã được phát triển.

Grid Portal là cổng kết nối dịch vụ giữa người dùng và nhà cung cấp, được phát triển như phần mềm trên Internet nhằm cung cấp các chức năng cần thiết cho người dùng Công nghệ Portal cho phép tạo ra môi trường làm việc riêng biệt cho từng người dùng, đồng thời tách biệt các chức năng dịch vụ từ máy chủ và tái sử dụng các thành phần chức năng của Web.

Grid Portal được hình thành từ hai khái niệm cổng khác nhau: Cổng chuyên ứng dụng (Application Specific Portal) cung cấp các thao tác truy cập Grid đặc biệt từ bên trong ứng dụng và các miền riêng biệt Cổng chuyên cho người dùng (User Portal) cho phép người dùng tương tác với các dịch vụ Grid một cách dễ dàng và hiệu quả.

Portal cụ thể cung cấp dịch vụ đặc thù liên quan đến các trang web phục vụ cho các tác vụ truyền thông Để triển khai công nghệ GridPortal, người dùng có thể tận dụng công cụ phát triển GPDK (Grid Portal Development Kits).

Thành phần Giám sát lưới

Trong môi trường lưới, giám sát tài nguyên là rất quan trọng do tính chất động của chúng, khi tài nguyên có thể gia nhập và rút lui bất cứ lúc nào Người dùng cần khả năng tìm kiếm và theo dõi các tài nguyên mong muốn Hệ thống giám sát không chỉ cung cấp thông tin cho người dùng mà còn hỗ trợ trong các hoạt động như lập lịch, nhân bản dữ liệu, phân tích hiệu suất và phát triển ứng dụng tự điều chỉnh.

Quy trình giám sát các hệ phân tán thường bao gồm bốn bước như sau:

1/ Sinh các sự kiện: bộ cảm biến tiến hành đo đạc trên các thực thể và mã hóa kết quả thu đƣợc theo một lược đồ cho trước

2/ Xử lí các sự kiện: các sự kiện đƣợc xử lí theo từng ứng dụng cụ thể

3/ Phân phối các sự kiện: các sự kiện đƣợc chuyển đến các bên quan tâm

Trình diễn các sự kiện là quá trình xử lý thông tin để đạt được mức độ trừu tượng cao, giúp người dùng dễ dàng rút ra kết luận về trạng thái của hệ thống Giai đoạn này thường được thực hiện thông qua ứng dụng đồ họa, cho phép hiển thị dữ liệu theo thời gian thực hoặc lấy dữ liệu từ các kho lưu trữ để trình bày.

1.3.6.2 Yêu cầu đối với một hệ thống giám sát lưới

Một hệ thống giám sát lưới phải thỏa mãn được những yêu cầu sau đây:

- Khả năng mở rộng: phải hoạt động tốt khi số lượng tài nguyên và người dùng tăng

Để đảm bảo độ trễ xử lý nhỏ trong lưới, hệ thống giám sát cần có khả năng xử lý dữ liệu nhanh chóng, bởi vì các sự kiện liên tục được sinh ra với tốc độ lớn Việc này giúp tránh tình trạng dữ liệu bị lạc hậu và nâng cao hiệu quả giám sát.

Việc đo đạc diễn ra thường xuyên có thể dẫn đến sự tiêu tốn đáng kể các tài nguyên Do đó, hệ thống giám sát cần phải duy trì mức tiêu thụ tài nguyên ở mức chấp nhận được để đảm bảo hiệu quả và bền vững.

Hệ thống hỗ trợ nhiều mô hình truyền dữ liệu, cho phép giám sát thông tin bao gồm các sự kiện và sự kiện động Điều này đòi hỏi việc áp dụng các chính sách đo đạc đa dạng, như đo định kỳ hoặc đo theo yêu cầu.

- Khả chuyển: các tài nguyên trong lưới là rất không đồng nhất, bởi vậy các phần ống giám sát phải có tính khả chuyển cao

- Bảo mật: hệ thống giám sát phải hỗ trợ các dịch vụ bảo , chứng thực, vận chuyển an toàn các thông tin giám sát

Để đảm bảo hiệu quả giám sát, bên nhận cần nắm rõ độ mới của sự kiện, vì vậy hệ thống giám sát cần có khả năng đồng bộ hóa cao giữa các thành phần.

1.3.6.3 Phân loại các hệ thống giám sát lưới

Các hệ thống giám sát đƣợc chia thành bốn mức nhƣ sau:

Mức 0 (Level 0) là giai đoạn mà các sự kiện được truyền trực tiếp từ bộ cảm biến đến bộ tiêu thụ qua hai chế độ: online và offline Trong chế độ online, kết quả đo đạc có thể được truy cập thông qua một giao diện web, trong khi ở chế độ offline, dữ liệu sẽ được bộ cảm biến ghi lại vào kho lưu trữ và sau đó được bộ tiêu thụ lấy ra.

Mức 1 (Level 1) trong các hệ thống này đặc trưng bởi việc các bộ cảm biến được thiết kế riêng và đặt trên cùng một máy với các bộ sinh, hoặc được tích hợp trực tiếp vào các bộ sinh Trong cả hai trường hợp, các sự kiện có thể được truy cập thông qua các API của bộ sinh.

Mức 2 (Level 2) của các hệ thống cung cấp thêm các thành phần trung gian so với mức 1 Các chức năng được phân bổ giữa bộ sinh và các thành phần trung gian, có thể nằm trên các máy khác nhau, thay vì chỉ tập trung trên một bộ sinh duy nhất.

Hệ thống mức 3 (Level 3) có tính linh hoạt cao nhờ cấu trúc phân cấp của các thành phần trung gian Các thành phần này thu thập và xử lý sự kiện từ các thành phần ở mức thấp hơn, sau đó gửi lên các thành phần ở mức cao hơn Với khả năng thích ứng tốt, hệ thống mức 3 rất phù hợp cho môi trường lưới, điển hình là Globus MDS.

Các thành phần của lưới theo mô hình vật lý bao gồm:

Thành phần mạng (Networks)

Mạng là hạ tầng thiết yếu cho việc truyền tải dữ liệu và giám sát thông tin giữa các điểm trong hệ thống Băng thông mạng đóng vai trò quan trọng, ảnh hưởng trực tiếp đến hiệu suất hoạt động của lưới.

Thành phần tính toán (Computation)

Cấp bởi các bộ xử lý trong lưới, chúng đa dạng về tốc độ, kiến trúc, nền phần và lưu trữ.

Thành phần lưu trữ (Storage)

Dữ liệu có thể được lưu trữ phân tán trên nhiều bộ xử lý hoặc trong một mạng LAN, với mỗi bộ xử lý cung cấp dung lượng lưu trữ nhất định Các hệ thống file phổ biến được sử dụng bao gồm NFS, DFS và GPFS.

Phần mềm và bản quyền (Software and License)

Trong môi trường tính toán lưới, hai vấn đề quan trọng cần được chú ý là mức độ ổn định của ứng dụng phần mềm và bản quyền phần mềm.

Các thiết bị đặc biệt

Một vài nút trên lưới có thể có những thiết bị đặc biệt, chẳng hạn các thiết bị quân sự, y tế, hay các thiết bị chuyên dụng khác

1.5 HỆ THỐNG ĐẢM BẢO AN TOÀN THÔNG TIN

HỆ THỐNG ĐẢM BẢO ATTT 1 Cơ chế bảo đảm ATTT trong tính toán lưới

Các chính sách bảo đảm ATTT trong tính toán lưới

Sau đây là các chính sách bảo đảm an toàn thông tin:

Môi trường lưới đảm bảo an toàn thông tin đa miền tập trung vào việc điều khiển các tương tác giữa các miền, đồng thời ánh xạ hoạt động liên miền với các chính sách bảo vệ an toàn thông tin tại địa phương.

Các hoạt động đa miền trong quản trị đơn cần tuân thủ chính sách bảo đảm an toàn thông tin địa phương trên miền quản trị đơn.

- Các chủ thể toàn cục và cục bộ đều tồn tại: tại mỗi miền quản trị đơn đều tồn tại hai chủ thể trên

- Chứng thực đa phương: hoạt động giữa các thực thể trong các miền tin tưởng khác nhau đòi hỏi phải có chứng thực đa phương

Mỗi đối tượng toàn cục được ánh xạ vào đối tượng cục bộ, được xem như đã trải qua quá trình chứng thực địa phương trên đối tượng cục bộ đó.

- Tất cả các quyết định điều khiển đƣợc đƣa ra đều là cục bộ hay dựa trên cơ sở của đối tƣợng cục bộ

Tập giấy chứng nhận có thể được sử dụng chung cho các chương trình đại diện cho cùng một tiến trình, hoạt động trên cùng một chủ thể trong cùng một miền tin cậy.

Cơ sở Hạ tầng an ninh trong lưới tính toán

GSI là cơ chế xác thực và truyền thông an toàn trên mạng, cung cấp dịch vụ xác thực lẫn nhau, đăng nhập một lần và ủy quyền GSI sử dụng công nghệ mã khoá công khai (Public Key Infrastructure), chứng chỉ Chứ 509 (Certificate) và giao thức truyền thông bảo mật (Secure Socket Layer).

Các chuẩn công nghiệp về bảo đảm an toàn thông tin được tích hợp vào cơ chế đăng nhập một lần (SSO) và ủy quyền (Proxy), tạo nên nền tảng vững chắc cho an toàn thông tin của mạng lưới Dưới đây là những đặc điểm nổi bật của GSI cùng với các cài đặt ứng dụng của nó.

Cơ sở hạ tầng khóa công khai (PKI):

Chứng thực trong GSI cung cấp cho mỗi thực thể một tên định danh duy nhất thông qua khái niệm giấy ủy quyền lưới, bao gồm cặp giấy chứng nhận và khóa mã hóa (khóa bí mật) Trong môi trường PKI, việc trao quyền sở hữu khóa bí mật là cần thiết để đảm bảo sự toàn vẹn của hệ thống.

Bảo mật mức thông điệp và mức giao vận:

GSI hỗ trợ bảo mật ở cả hai cấp độ giao vận và thông điệp Khi áp dụng bảo mật ở mức giao vận, toàn bộ quá trình truyền thông sẽ được mã hóa Ngược lại, nếu chọn bảo mật ở mức thông điệp, chỉ có nội dung của thông điệp SOAP được mã hóa.

Hình 1.4 Bảo mật mức giao vận

Hình 1.5 Bảo mật mức thông điệp

Cả hai mức bảo mật dựa trên khóa công khai, đảm bảo tính toàn vẹn, riêng tư và khả năng chứng thực Hội thoại an toàn thường yêu cầu tối thiểu khả năng chứng thực, trong khi tính toàn vẹn là cần thiết nhưng có thể bỏ qua Mã hóa có thể được kích hoạt để bảo vệ tính riêng tư.

Trong môi trường lưới, người dùng cần được xác thực nhiều lần trong thời gian ngắn GSI giải quyết vấn đề này thông qua khái niệm giấy ủy nhiệm, hoạt động thay mặt người dùng trong khoảng thời gian ủy quyền ngắn hạn Mỗi giấy ủy nhiệm có giấy chứng nhận và khóa bí mật riêng, được tạo ra bằng cách ký lên giấy chứng nhận dài hạn của người dùng.

Giấy ủy nhiệm là một hình thức liên kết ngắn hạn giữa tên người dùng và khóa bí mật, trong khi chứng chỉ số được lưu trữ an toàn bằng mã hóa trong hệ thống file địa phương và có thể được sử dụng nhiều lần mà không gặp rắc rối Tuy nhiên, giấy ủy nhiệm lại dễ bị tổn thương hơn và có thời gian sống ngắn hạn, thường chỉ kéo dài vài giờ so với các chứng chỉ số dài hạn của người dùng.

Các ứng dụng của người dùng có khả năng đại diện cho họ trong môi trường lưới GSI cho phép người dùng ủy quyền giấy ủy nhiệm để thực hiện giao dịch từ xa trên các máy.

Sự ủy quyền tương tự như việc tạo ra giấy ủy nhiệm, trong đó mỗi tập chứng chỉ số dài hạn được sử dụng để tạo ra các giấy ủy nhiệm mới với thời gian sống ngắn hơn Sự khác biệt nằm ở chỗ việc tạo giấy ủy nhiệm diễn ra trong các phiên kết nối yêu cầu chứng thực GSI, khi các tiến trình từ xa cần giấy ủy nhiệm của người dùng để xác thực Đặc biệt, sự ủy quyền có thể tạo thành chuỗi, cho phép một người ủy quyền cho máy A, sau đó máy A có thể ủy quyền tiếp cho máy B, và quá trình này có thể tiếp tục diễn ra.

GSI cung cấp cơ chế chuyển đổi các tên định danh GSI của người dùng thành các định danh địa phương, cho phép chứng thực các định danh này chuyển sang định danh Unix cục bộ Điều này đồng nghĩa với việc các chính sách như quyền truy cập file, dung lượng đĩa và tốc độ CPU sẽ được áp dụng trong phạm vi cục bộ.

Bảo vệ thông tin trong lưới tính toán cũng như trong các hệ thống thông tin nói chung gồm 4 nhiệm vụ chính:

Bảo mật, bảo toàn, Xác thực, Sẵn sàng

Xác thực là một vấn đề quan trọng, liên quan đến việc kiểm tra và xác minh thông tin hoặc thực thể để công nhận hoặc bác bỏ tính hợp lệ của chúng Điều này đặc biệt cần thiết trong các giao tiếp yêu cầu sự tin cậy.

Xác thực bao gồm 2 việc chính:

+ Xác thực tính hợp lệ của các thực thể tham gia giao tiếp

+ Xác thực nguồn gốc của thông tin đƣợc trao đổi

Xác thực điện tử là quá trình xác minh danh tính và thông tin của một chủ thể thông qua các phương tiện điện tử từ xa, mà không cần biết chi tiết cụ thể về nội dung hoặc chủ thể đó.

Mục đích của xác thực điện tử là ngăn chặn hành vi giả mạo và chống lại việc chối bỏ thông tin, đồng thời đảm bảo tính xác thực của dữ liệu Cuối cùng, việc này hướng tới việc hoàn thiện các giải pháp an toàn thông tin.

Cơ sở để xây dựng các giải pháp cho xác thực điện tử là các hệ mật mã

Giải pháp xác thực thực thể sử dụng lưới

+ Xác thực chữ ký điện tử

+ Xác thực dấu hiệu bản quyền

Nhưng trong chương này em xin tập trung vào xác thực chữ ký

Một sơ đồ chữ ký l tập (P, A, K, S, V) thoả mãn các điều kiện dưới đây:

+ P là tập hữu hạn các bức điện (thông điệp)

+ A là tập hữu hạn các chữ kí

+ K là tập hữu hạn các khóa, K(k’,k”)

Trong đó: Khóa k’: khóa bí mật (khóa ký)

Khóa k”: khóa công khai (khóa kiểm thử)

Chữ ký RSA

Sơ đồ chữ ký cho bởi bộ năm (P, A, K, S, V)

Cho n=p.q; với mỗi p, q là các số nguyên tố lớn khác nhau (n) = (p - 1)(q - 1) Cho P = A = Z n và định nghĩa:

K là tập các khóa, K=(k’,k’’); với k’=a: khoá bí mật k’’=(n, b) khóa công khai

Trong đó: a, b Z n * , thỏa mãn: b< (n) và nguyên tố cùng nhau với (n) a< (n) sao cho: a.b 1mod (n)

Các giá trị n, b là công khai, các giá trị p, q, a là các giá trị bí mật

Với mỗi K=(n, p, q, a, b) chữ ký trên x là: y= Sig k’ (x)= x a mod n

Giả sử A muốn gửi thông báo x, A sẽ tính chữ ký y bằng cách : y=sig k’ (x)= x a mod n (a là khóa bí mật của A)

A gửi cặp (x, y) cho B Nhận đƣợc thông báo x, chữ ký số y, B bắt đầu tiến hành kiểm tra đẳng thức: x= y b mod (n) (b là khóa công khai A)

Nếu đúng, B công nhận y là chữ ký trên x của A Ngƣợc lại, B sẽ coi x không phải của

A dùng lƣợc đồ chữ ký số RSA với n,(p=3, q=5);

A ký trên thông báo x=2 với chữ ký: y = x a mod n = 2 3 mod 15 = 8

A gửi cặp (x, y) = (2, 8) cho B, B kiểm tra bằng cách sử dụng khóa công khai của A nhƣ sau: x = y b mod n = 8 3 mod 15 = 2 = x

B chấp nhận y=8 là chữ ký tin cậy.

Chữ ký ElGamal

Chữ ký ElGamal đƣợc định nghĩa nhƣ sau:

Cho p là số nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó và giả sử Zp *

, là phần tử nguyên thủy

Các giá trị p, , là công khai, a là bí mật

Với K = (p, a, , ) và với số ngẫu nhiên k Zp *

-1 định nghĩa sigk( , ), trong đó:

+ Kiểm tra chữ ký số

Với x, Z * p và Zp-1 , ta định nghĩa :

Nếu chữ ký đƣợc thiết lập đúng thì hàm kiểm tra sẽ thành công vì: a r mod p x mod p ( vì a + r x mod (p - 1))

Chữ ký được tạo ra bằng cách kết hợp giá trị bí mật a, một phần của khóa, với số ngẫu nhiên bí mật k, được sử dụng để ký lên x Quá trình kiểm tra chữ ký chỉ có thể thực hiện thông qua thông tin công khai.

Ví dụ: Giả sử pF7, = 2, a = 127

Giả sử A có thông báo x0 và A chọn ngẫu nhiên k!3 vì (213,466)=1 và 213 -1 mod 466 = 431, A ký trên x nhƣ sau:

Chữ ký của A trên x= 100 là (29,51)

Bất kỳ người nào đó cũng có thể kiểm tra chữ ký bằng cách tính:

Do đó, chữ ký là tin cậy.

Sử dụng chữ ký số trong xác thực thực thể dùng lưới tính toán

Chữ ký số là dữ liệu gắn liền với văn bản gốc, giúp chứng thực tác giả thông qua công nghệ khóa công khai PKI (Public Key Infrastructure) Mỗi người tham gia ký cần có một cặp khóa, bao gồm khóa công khai và khóa bí mật; trong đó, khóa bí mật được sử dụng để tạo chữ ký số, còn khóa công khai dùng để xác thực chữ ký đó.

Các thông tin truyền trên lưới cần phải được bảo mật bằng mã hóa, do đó trong mục này em sẽ trình bày về Hệ mã hóa

Hệ mã hóa là hệ bao gồm 5 thành phần (P, C, K, E, D) thỏa mãn các tính chất sau:

P (Plaitext): là tập hợp hữu hạn các bản rõ có thể

C (Ciphertext): Là tập hữu hạn các bản mã có thể

K (Key): Là tập hợp các bản khoá có thể

E (Encrytion): Là tập hợp các quy tắc mã hoá có thể

D (Decrytion): Là tập hợp các quy tắc giải mã có thể

Thông báo được xem là bản rõ, trong đó người gửi mã hoá thành bản mã để gửi đi Người nhận sau đó giải mã để hiểu nội dung bản rõ Quá trình này liên quan đến việc định nghĩa hàm lập mã và hàm giải mã.

2.2.1.1 Hệ mã hóa khóa đối xứng

Mã hóa khóa đối xứng là hệ mã hóa mà biết chìa lập mã “dễ” tính ra chì

Sau đây là một số hệ mật mã cổ điển:

1/ Mã dịch chuyển: Định nghĩa: Mã dịch chuyển: (P, C, K, E, D)

26 với k є K, định nghĩa e k(x) = (x + k) mod 26 d k(y) = (y – k) mod 26

Ví dụ: Dùng khoá k = 9 để mã hoá dòng thư“toinaydichoi” dòng thư đó tương ứng với dòng số: t o i n a y d i c h o i

Nhận đƣợc bản mã đó, dùng d

9 để nhận đƣợc bản rõ

2/ Mã thay thế: Định nghĩa Mã thay thế: (P, C, K, E, D)

26) Với mỗi π є K, tức là một hoán vị trên Z

Ví dụ: π đƣợc cho bởi (ở đây ta viết chữ cái thay cho các con số thuộc Z

“toinaydichoi” sẽ đƣợc mã hoá thành bản mã (với khoá π):

Dễ xác định đƣợc π -1 , và do đó từ bản mã ta tìm đƣợc bản rõ c x r w j h m r l q x r

Mã thay thế có tập hợp khoá khá lớn - bằng số các hoán vị trên bảng chữ cái, tức số các hoán vị trên Z

Việc duyệt toàn bộ các hoán vị để giải mã là rất khó khăn, ngay cả với sự hỗ trợ của máy tính Tuy nhiên, bằng cách áp dụng các phương pháp thống kê, chúng ta có thể dễ dàng khám phá các bản mã như vậy Do đó, mã thay thế không thể được coi là an toàn.

3/ Mã Anffine : Định nghĩa: Mã Anffine: (P, C, K, E, D)

26 : (a, 26) = 1 } với mỗi k = (a, b) є K ta định nghĩa: e k(x) = ax + b mod 26 dk(y) = a -1 (y – b) mod 26 , trong đó x, y є Z

Thuật toán giải mã trong trường hợp này có dạng: d k(y) = 21(y − 6) mod 26

Mã Apphin cho phép số khóa tối đa là 312, được tính bằng công thức (số các số ≤ 26 và nguyên tố với 26) × 26, tức là 12 × 26 Mặc dù việc thử tất cả các khóa để giải mã bằng tay có thể tốn thời gian, nhưng điều này trở nên dễ dàng hơn khi sử dụng máy tính Vì vậy, mã Apphin không được coi là an toàn.

4/ Mã hoán vị: Định nghĩa Mã hoán vị: (P, C, K, E, D)

Cho m là số nguyên dương

26 , K = S, mvới mỗi k = π є S m , ta có: trong đó π -1 là hoán vị nghịch đảo của π

Ví dụ: Giả sử m = 6, và khoá k đƣợc cho bởi phép hoán vị π

Khi đó phép hoán vị nghịch đảo π -1 là:

Dùng hoán vị nghịch đảo, từ bản mật mã ta lại thu đƣợc bản rõ

2.2.1.2 Hệ mã hóa khóa phi đối xứng

Mã hóa khóa phi đối xứng là hệ mã hóa mà biết chìa này “khó” tính

Quá trình giao tiếp giữa 2 đối tƣợng A và B đƣợc mô tả nhƣ sau:

B tạo ra một cặp khóa bao gồm khóa bí mật và khóa công khai Khóa bí mật được bảo vệ an toàn bằng mật mã, trong khi khóa công khai được phát hành rộng rãi A có thể sử dụng khóa công khai của B để mã hóa thông tin và gửi cho B Chỉ có B, người sở hữu khóa bí mật, mới có khả năng giải mã thông tin đó.

Sử dụng hệ mã hóa trong bảo mật thông tin trên lưới tính toán

Tin truyền trên mạng dễ bị đánh cắp và thay đổi, vì vậy việc mã hóa thông tin trước khi truyền là cần thiết để đảm bảo an toàn Mã hóa tuân theo các quy tắc nhất định, được gọi là hệ mật mã Hiện nay, các hệ thống thông tin thường sử dụng mã hóa phi đối xứng do độ an toàn cao hơn.

Sau đây là một số hệ mã hóa phi đối xứng thường dùng

Cho n=p*q với p, q là số nguyên tố lớn Đặt P = C = Z n

Để thiết lập hệ thống mã hóa, trước tiên chọn khóa công khai b sao cho b nhỏ hơn n và b là nguyên tố cùng nhau với n, trong đó n = (p-1)(q-1) Tiếp theo, chọn khóa bí mật a là nghịch đảo của b theo modulo n, đảm bảo rằng a*b ≡ 1 (mod n) Cuối cùng, định nghĩa K = (k’, k’’) với k’ là khóa công khai (n, b) và k’’ là khóa bí mật a.

Với mỗi khoá K=(n, a, b), mỗi x P, y C định nghĩa

+ Hàm lập mã : y = ek’(x) = x b mod n

+ Hàm giải mã: dk’’(y) = y a mod n

Hệ mật mã ElGamal, được đề xuất bởi T ElGamal vào năm 1985, dựa trên độ phức tạp của bài toán tính lôgarit rời rạc Hệ thống này nhanh chóng trở nên phổ biến trong việc bảo mật truyền tin cũng như trong các ứng dụng xác thực và chữ ký điện tử.

Bài toán logarithm rời rạc trong Zp là một thách thức trong nhiều nghiên cứu, đặc biệt khi p được chọn kỹ lưỡng, với yêu cầu p có ít nhất 150 chữ số và (p – 1) phải có ít nhất một thừa số nguyên tố lớn Hệ mật Elgamal, một hệ thống mã hóa không xác định, cho phép tạo ra nhiều bản mã từ cùng một bản rõ x nhờ vào giá trị ngẫu nhiên k do G chọn.

Bài toán logarithm rời rạc trong Z p : Đặc trƣng của bài toán: I = (p, , ) trong đó p là số nguyên tố, Z p là phần tử nguyên thuỷ (hay phần tử sinh), Zp *

Bài toán: Tìm x sao cho x (mod p) Định nghĩa mã khóa công khai Elgamal trong Z p * :

Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Zp là khó giải

Cho Z p * là phần tử nguyên thuỷ

Các giá trị p, , đƣợc công khai, còn a giữ kín.( 0 a p-2)

Với K =(p, , a, ) và một số ngẫu nhiên bí mật k Zp – 1, ta xác định:

Zp * là phần tử nguyên thuỷ nên = 3

Chọn a sao cho 0 a p – 2 nên chọn a = 2

Chọn một số ngẫu nhiên bí mật k Zp – 1, chọn k =3

Giả sử A muốn gửi thông báo x = 3 cho B, A phải tính:

Ek’(x, k) = (y1, y2) trong đó: y1 = k mod p = 3 3 mod 7 = 6 y2 = x k mod p = 3*2 3 mod 7 = 3

Khi B thu đƣợc bản mã (y 1 , y 2 ) = (6, 3), anh ta sẽ tính: dk’’(y 1 , y 2 ) = y 2 (y 1 a ) -1 mod p = 3*(6 2 ) -1 mod 7 = 3=x Đó chính là bàn rõ mà G đã mã hoá.

THỬ NGHIỆM CHƯƠNG TRÌNH KÝ SỐ TRONG LTT 3.1 CẤU HÌNH HỆ THỐNG

CÁC THÀNH PHẦN TRONG CHƯƠNG TRÌNH

Input: hai số nguyên tố p, q, tính n=p.q, (n)= (p-1)(q-1)

Output: Cặp khóa (bí mật, công khai) = (a, b)

Input: khóa bí mật, bản rõ x

Out put: Chữ ký số

Input: bản rõ x, chữ ký số, khóa công khai và n

Output: Xác thực chữ ký đúng hoặc sai.

CHƯƠNG TRÌNH

Dưới đây là các hàm quan trọng trong mã nguồn: hàm `kha_nghich` cho phép tìm nghịch đảo modulo, `exp_mod` tính lũy thừa modulo, `kiemtra_ngto` kiểm tra số nguyên tố, `USCLN` tính ước chung lớn nhất, và `Ktra_ngto_cungnhau` xác định số nguyên tố đồng nhất Ngoài ra, hàm `Kitep` và `Doctep` có chức năng xử lý các số nguyên, trong khi `Ky_RSA` thực hiện quá trình ký số bằng thuật toán RSA.

//===========Tinh Kha nghich =============== long int kha_nghich(long int b, long int n)

{ long int n0, b0; long int t, t0, temp, q, r; n0=n; b0=b; t0=0; t=1; q=floor(n0/b0); r=n0-q*b0; while(r>0){ temp=t0-q*t; temp = n- ((-temp) % n); else temp = temp % n; t0=t; t=temp; n0; b0=r; q=floor(n0/b0); r=n0-q*b0;

//=========== Tinh Mod =========== long exp_mod(long x, long b, long n)

//============================================================ int kiemtra_ngto(long pq)

{ for(long i=2;im) n=n-m; else m=m-n; if(n==0) return m; else return n;

//============================================================ long Ktra_ngto_cungnhau(long b,long phi_N)

FILE *f; char *tentep; long n; mt:printf("\n\nNhap vao ten tep can Ki:");fflush(stdin);gets(tentep); f=fopen(tentep,"a+t"); if(f==NULL)

{ printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep); getch(); goto mt;

} fseek(f,0,SEEK_END); n=ftell(f); fseek(f,n,SEEK_SET); fprintf(f,"%d",Ki); fclose(f); return n;

FILE *f; char *tentep; mt:printf("\n\nNhap vao ten tep can mo:");fflush(stdin);gets(tentep); f=fopen(tentep,"a+t"); if(f==NULL)

{ printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep); goto mt;

} long ki; fseek(f,n,SEEK_SET); fscanf(f,"%ld",&ki); fclose(f); return ki;

Đoạn mã trên mô tả quy trình tạo chữ ký số RSA Đầu tiên, người dùng nhập hai số nguyên tố p và q, sau đó kiểm tra tính nguyên tố của q Tiếp theo, giá trị n được tính bằng tích của p và q, và phi_N được tính bằng công thức (p-1)*(q-1) Người dùng sẽ chọn một số b sao cho 1

Ngày đăng: 05/08/2021, 21:57

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

TÀI LIỆU LIÊN QUAN

w