Đồ án: Tìm hiểu nghiên cứu một số bài toán về an toàn thông tin trong tính toán lưới tài liệu, giáo án, bài giảng , luận...
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 máy tính một cách hiệu quả Thống kê cho thấy, trong một ngày làm việc, máy tính để bàn chỉ hoạt động khoảng 5% thời gian, 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 để chạy các ứng dụng khác không chỉ tiết kiệm chi phí mà còn nâng cao hiệu suất sử dụng tài nguyên.
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 của 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 theo cách này Cần xem xét 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 trong quá trình chạy để đánh giá hiệu quả của ứng dụng khi triển khai trên lưới.
Sự cộng tác các tài nguyên ảo và tổ chức ảo
Sự hợp tác được thể hiện qua khái niệm tổ chức ảo, kết hợp nhiều tổ chức như dữ liệu và thiết bị đặc biệt Tài nguyên này được "ảo hóa" để đồng bộ trong một hệ thống mạng lưới không đồng nhất, và những tài nguyên này được gọi là tài nguyên ảo.
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, người dùng có thể tăng cường băng thông kết nối Internet để thực hiện khai thác dữ liệu bằng cách tận dụng các kết nối Internet riêng biệt từ các nút lưới khác để giải quyết bài toán của mình.
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 Cân bằng tài nguyên có thể được thực hiện theo hai cách khác nhau.
- 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 Khi một công việc cần liên lạc với công việc khác, Grid có thể lập lịch cho chúng để tối ưu hóa lưu lượng đường truyền và khoảng cách truyền Điều này không chỉ giúp giảm thiểu tắc nghẽn mạng mà còn nâng cao hiệu suất hoạt động của hệ thống.
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à công nghệ quan trọng trong việc 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 hoặc dịch vụ từ xa, đồng thời xử lý các bài toán yêu cầu 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 ứng dụng 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 có yêu cầu, bộ phận quản lý tài nguyên sẽ tìm kiếm tài nguyên từ dịch vụ chỉ mục và định vị chúng đế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 cũng như hệ thống kế toán Nếu có hai yêu cầu được gửi đến cùng lúc, cả hai 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 trở nên sẵn sàng.
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ị tài nguyên chính xác đò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 tiếp cận đa tầng và tổ chức tài nguyên theo hướng phi tập trung.
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 diễn ra thông qua các giao thức và quy tắ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 tài nguyên Hình 1.1 minh họa các giao thức cần thiết cho cả hai bên trong quá trình thương lượng Đầu tiên, khách hàng kết nối với nhà cung cấp để nhận giá tài nguyên Sau khi nhận được giá, hai bên sẽ 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à bắt đầu sử dụng tài nguyên.
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 GSI (Grid Security Infrastructure) framework, serving as the management component for resource allocation across the entire grid computing system.
Để đệ trình công việc lên một host, người dùng sử dụng API của GRAM Client để xác lập thông tin tài nguyên cần thiết và tạo tiến trình mới Thông tin này được gửi đến người quản lý cổng, nơi sẽ 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ục vụ cho công việc Quản lý công việc phân tích kịch bản RSL do người dùng gửi 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 Đồng thời, quản lý công việc cũng tạo 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 liên tục cập nhật thông tin về tài nguyên cho Dịch vụ Giám sát và Khám phá (MDS) MDS sẽ hiển thị thông tin này, giúp người dùng dễ dàng xem xét và lựa chọn nguồn tài nguyên phù hợp với công việc của họ.
Để 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ột máy tính từ xa, lắng nghe ở một cổng đã được chỉ định Quá trình thực thi bắt đầu khi ứng dụng người dùng trên máy cục bộ gửi yêu cầu đến 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, cùng với tên và cổng giao tiếp của máy tính từ xa Người quản lý cổng GRAM sẽ xử lý yêu cầu công việc và tạo ra một quản lý công việc tương ứng Quản lý công việc này sẽ 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, lên đến hàng giga-bytes và tera-bytes Để hỗ trợ quá trình 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 việc 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 Giao thức này được các chuyên gia đánh giá cao nhờ vào các tính năng đặc trưng phù hợp với kiến trúc mạng lướ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 giữa các máy chủ, trong đó kênh điều khiển được đặt trên một 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, nhưng hiện nay ít được triển khai trong các hệ thống Ngoài ra, nó còn cung cấp một số chức năng mới so với FTP truyền thống.
- Đ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 có 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ể liên lạc 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ẽ phải lắng nghe trên cổng này 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 thiết lập.
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 sẽ gửi bản mô tả quá trình truyền cho DTP, cho phép DTP thực hiện việc truyền tải dựa trên thông tin này Sau khi gửi bản mô tả, vai trò của Server PI chỉ là chuyển tiếp các 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 ứng dụng, việc dự trữ tài nguyên hoặc giao tiếp giữa các công việc là cần thiết, do đó, bộ lập lịch trở thành công cụ quan trọng để phối hợp các công việc hiệu quả.
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: Xác định yêu cầu ứng dụng là quá trình mà người dùng cần thiết lập một tập hợp các yêu cầu tối thiểu nhằm thực hiện công việc, từ đó giúp lọc ra các tài nguyên khả dụng.
Bước 3: Loại bỏ các 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 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à giai đoạn quan trọng, trong đó người dùng sẽ chọn 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.
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ó thể là một phần hoặc toàn bộ, nhằm đảm bảo hiệu suất tốt nhất.
Bước 2: Đệ trình công việc là quá trình quan trọng, trong đó sau khi lựa chọn tài nguyên ứng dụng, công việc cần được gửi đến tài nguyên đó để thực hiện Việc này có thể được thực hiện bằng cách chạy một dòng lệnh đơn hoặc thực hiện một chuỗi các kịch bản.
Trong bước 3, người dùng cần thực hiện các công việc chuẩn bị cần thiết để ứng dụng có thể hoạt động Một ví dụ điển hình là sử dụng GridFTP để chuyển các tệp dữ liệu cần thiết đến địa điểm 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ề cách thức và địa điểm 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, cần gửi kết quả cho người đệ trình và xóa các file tạm thời để dọn dẹp.
Cổng lưới tính toán (Grid Portal)
Hệ thống chỉ cung cấp một tập hợp 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 cho người sử dụng Do đó, cần có một công cụ cung cấp các thành phần giao diện phục vụ người dùng Trước thực tế này, cổng giao tiếp hệ thống Grid, được gọi là Grid Portal, đã ra đời.
Grid Portal là một 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ư một 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ừ phía 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 cung cấp các thao tác truy cập Grid đặc biệt từ bên trong một ứng dụng, trong khi Cổng chuyên cho người dùng phục vụ nhu cầu truy cập của người dùng.
Cổng thông tin cụ thể cung cấp các dịch vụ chuyên biệt cho các trang web phục vụ cho các tác vụ truyền thông Để triển khai công nghệ GridPortal, có thể sử dụng bộ 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, việc 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à giám sát 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 năng và xây dựng ứ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 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 tức thời 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, nhằm đáp ứng kịp thời với số lượng lớn sự kiện liên tục được sinh ra, tránh tình trạng dữ liệu bị lạc hậu.
Việc đo đạc thường xuyên có thể tiêu tốn đáng kể tài nguyên, do đó hệ thống giám sát cần duy trì mức tiêu thụ tài nguyên ở mức chấp nhận được để tránh xâm phạm quá mức.
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 yêu cầu á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
Khả năng đồng bộ hóa cao là yếu tố quan trọng, giúp bên nhận nắm bắt độ mới của sự kiện Do đó, hệ thống giám sát cần phải đảm bảo sự đồng bộ hóa hiệu quả 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) đề cập đến việc chuyển trực tiếp các sự kiện từ bộ cảm biến tới 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, các kết quả 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 bao gồm 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 vào trong các bộ sinh Các sự kiện trong hệ thống được truy cập thông qua các API của bộ sinh.
Mức 2 (Level 2) có sự khác biệt so với các hệ thống mức 1 nhờ vào việc bổ sung các thành phần trung gian Các chức năng được phân bố không chỉ trên bộ sinh mà còn trên các thành phần trung gian, có thể được đặt trên máy khác, thay vì chỉ tập trung vào một bộ sinh duy nhất.
Mức 3 (Level 3) của các hệ thống có tính linh hoạt cao nhờ vào cấu trúc phân cấp của các thành phần trung gian Những 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 đó truyền tải lên các thành phần ở mức cao hơn Hệ thống ở mức 3 rất phù hợp với 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à cơ sở 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 trong việc ảnh hưởng đến hiệu suất 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 thiết 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 bảo đảm 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 mật thông tin địa phương.
Hoạt động lưới hạn chế trong đơn miền quản trị yêu cầu các hoạt động đa miền phải 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ộ, coi 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ộ
Có thể sử dụng chung tập giấy chứng nhận 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 các dịch vụ như 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ỉ X.509 và nghi 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 trong mạng lưới Dưới đây là một số đặc điểm và cài đặt ứng dụng của GSI.
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 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 cung cấp khả năng bảo mật ở cả hai mức giao vận và thông điệp Khi áp dụng bảo mật mức giao vận, toàn bộ thông tin truyền tải 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 đều sử dụng 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 cần tối thiểu khả năng chứng thực, trong khi tính toàn vẹn thường quan trọng nhưng có thể không cần thiết 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, việc chứng thực người sử dụng nhiều lần trong thời gian ngắn là cần thiết GSI đã giải quyết vấn đề này thông qua khái niệm giấy ủy nhiệm, cho phép 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 đi kèm với 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 liên kết tạm thời giữa tên người dùng và khóa bí mật, thường có thời gian sống ngắn hơn so với chứng chỉ số 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ể sử dụng nhiều lần mà không gặp rắc rối Ngược lại, giấy ủy nhiệm dễ bị tổn thương và thường chỉ có hiệu lực trong vài giờ.
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 với các máy từ xa.
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 ra 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 Đáng chú ý, 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à quy trình này có thể tiếp tục.
GSI cung cấp cơ chế chuyển đổi tên định danh GSI của người dùng thành các định danh địa phương trong tài khoản Unix cục bộ Quá trình chứng thực các định danh GSI sẽ được chuyển đổi sang chứng thực các định danh địa phương, đồng thời các chính sách như quyền truy cập file, dung lượng đĩa và tốc độ CPU cũng 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 xác minh và kiểm tra 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 đòi hỏi 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 từ xa sự tồn tại chính xác và hợp lệ của danh tính một chủ thể nào đó thông qua các phương tiện điện tử, mà không cần biết nội dung cụ thể của thông tin và 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 chối bỏ, đồng thời đảm bảo tính xác thực của thông tin Cuối cùng, điều 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 + Kiểm tra chữ ký :
Ver k’’ (x, y)= true x y b mod n; x, y Z 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);
(n) = 2.4 = 8 Chọn b=3 a = 3 -1 mod 8 = 3 vì (3.3 1(mod 8)) Khóa ký k’=3
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
, A = Zp * x Zp-1 và định nghĩa
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 sig k ( , ), 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ý trên x Việc xác minh 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
Khi đó: = a mod p = 2 127 mod 467 = 132 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 liên kết với văn bản gốc nhằm xác thực tác giả, sử dụng 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 Khóa bí mật được sử dụng để tạo chữ ký số, trong khi khóa công khai dùng để thẩm định và xác thực chữ ký số.
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 thường được xem là bản rõ, trong đó người gửi mã hoá bản rõ để tạo ra bản mã Bản mã này được gửi qua đường truyền đến người nhận, người sẽ giải mã để hiểu nội dung bản rõ Điều này dễ dàng nhận thấy qua đị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
9 sẽ đƣợc: bản mã sẽ là:
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ị để thám mã là rất khó, ngay cả với máy tính Tuy nhiên, bằng phương pháp thống kê, chúng ta có thể dễ dàng thám được các bản mã loại này, do đó mã thay thế không thể được xem 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 tạo ra 312 khóa, được tính bằng cách nhân số các số nguyên tố với 26 Mặc dù việc thử tất cả các khóa bằng tay có thể tốn thời gian, nhưng việc này trở nên dễ dàng hơn khi sử dụng máy tính Do đó, 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 bí mật và công khai, trong đó khóa bí mật được bảo vệ an toàn bằng mật mã, còn 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
Thông tin trên mạng rất dễ bị đánh cắp và thay đổi, vì vậy việc mã hóa thông tin trước khi truyền đi là cần thiết để đảm bảo an toàn Mã hóa thường 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 tính 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 \times q \) với \( p, q \) là số nguyên tố lớn Đặt \( P = C = Z_n \) Chọn khóa công khai \( b \) sao cho \( b < n \) và nguyên tố cùng nhau với \( \varphi(n) = (p-1)(q-1) \) Chọn khóa bí mật \( a \) là nghịch đảo của \( b \) theo modulo \( n \): \( a \times b \equiv 1 \mod n \) Khóa \( K = (k', k'') \) trong đó \( k' = (n, b) \) là khóa công khai và \( k'' = a \) là khóa bí mật Với mỗi khóa \( K = (n, a, b) \), mỗi \( x \in P, y \in C \) được định nghĩa bởi hàm lập mã: \( y = e_{k'}(x) = x^b \mod n \).
+ Hàm giải mã: dk’’(y) = y a mod n
Hệ mật mã ElGamal, được T ElGamal đề xuất 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 nhận và chữ ký điện tử.
Bài toán logarithm rời rạc trong Zp là một thách thức lớn trong nghiên cứu, đặc biệt khi p được chọn cẩn thận, 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 là một hệ mật không xác định, vì bản mã phụ thuộc vào cả bản rõ x và giá trị ngẫu nhiên k do G chọn, dẫn đến việc có nhiều bản mã được tạo ra từ cùng một bản rõ.
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ố, Zp là phần tử nguyên thuỷ (hay phần tử sinh), Z p *
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 Zp * 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:
Ek’(x, k) = (y1, y2) Trong đó: y1 = k mod p y2 = x k mod p Với y1, y2 Zp *
Zp là phần tử nguyên thủy với giá trị bằng 3 Chọn a sao cho 0 < a < p - 2, ta chọn a = 2 Khi đó, ta có a mod p = 3 mod 7 = 2 Tiếp theo, chọn x sao cho 3x (mod p) với x = 3 Chọn một số ngẫu nhiên bí mật k thuộc Zp - 1, ta chọn k = 3 Giả sử A muốn gửi thông báo x = 3 cho B, A cần tính toán để thực hiện việc này.
Ek’(x, k) = (y1, y2) trong đó: y 1 = 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ã (y1, y2) = (6, 3), anh ta sẽ tính: dk’’(y1, y2) = y2(y1 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
Bài viết này trình bày các hàm quan trọng trong lập trình, bao gồm hàm `kha_nghich` để tính nghịch đảo modulo, hàm `exp_mod` cho phép tính lũy thừa modulo, và hàm `kiemtra_ngto` để kiểm tra số nguyên tố Ngoài ra, còn có hàm `USCLN` để tìm ước chung lớn nhất, hàm `Ktra_ngto_cungnhau` để kiểm tra tính chất số nguyên tố của hai số, hàm `Kitep` để thực hiện một phép toán cụ thể, và hàm `Doctep` để đọc dữ liệu Cuối cùng, hàm `Ky_RSA` được sử dụng để thực hiện ký RSA, một phương pháp mã hóa quan trọng.
//===========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; if (temp < 0) temp = n- ((-temp) % n); else temp = temp % n; t0=t; t=temp; n0; b0=r; q=floor(n0/b0); r=n0-q*b0;
} if(b0!=1) { printf("Khong co a"); return 0;
} //=========== Tinh Mod =========== long exp_mod(long x, long b, long n) { long a = 1l, s = x; while (b != 0) { if (b & 1l) a = (a * s) % n; b >>= 1; if (b != 0) s = (s * s) % 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)
{ if(USCLN(b,phi_N)!=1) { printf("\n\nb khong phai la nguyen to cung nhau voi phi_N\n\n moi chon lai b!"); return 0;
The code prompts the user to enter a filename for a file to be opened in append mode If the file does not exist, it displays an error message and requests the user to input the filename again.
} fseek(f,0,SEEK_END); n=ftell(f); fseek(f,n,SEEK_SET); fprintf(f,"%d",Ki); fclose(f); return n;
To open a file in append mode, prompt the user to enter the file name If the file cannot be opened, display an error message indicating that the file does not exist and request the user to try again.
} long ki; fseek(f,n,SEEK_SET); fscanf(f,"%ld",&ki); fclose(f); return ki;
Đoạn mã này thực hiện chức năng ký RSA, bắt đầu bằng việc yêu cầu người dùng nhập hai số nguyên tố p và q Sau khi xác minh tính nguyên tố của p và q, chương trình tính toán n = p * q và phi_N = (p-1) * (q-1) Người dùng được yêu cầu chọn một số b sao cho 1 < b < phi_N và gcd(b, phi_N) = 1 Cuối cùng, chương trình tính toán khóa bí mật a và yêu cầu người dùng nhập bản rõ x để thực hiện ký.
Ki=exp_mod(x,a,n); printf("\nVoi so x ta tao duoc ra chu Ki la :%d",Ki);
Kthuocvb=Kitep(Ki); printf("\nVan ban da duoc ki!"); printf("\n\n KIEM THU CHU KI "); printf("\nKiem thu voi khoa cong khai la K2(b,n)=(%ld,%ld)",b,n);
Đoạn mã kiểm tra chữ ký từ tệp và in ra kết quả Đầu tiên, nó đọc chữ ký từ tệp và hiển thị giá trị của nó Sau đó, nó so sánh chữ ký đã kiểm tra với giá trị x bằng cách sử dụng hàm exp_mod Nếu hai giá trị khớp nhau, chương trình thông báo rằng chữ ký là hợp lệ; ngược lại, nó cho biết chữ ký không hợp lệ.
} //============================================================ void menu() { int c; while(1) { clrscr(); printf("\n\n=====* CHUONG TRINH CHU KY SO *======="); printf("\n\n[1].CHU KY RSA"); printf("\n[2].Thoat khoi chuong trinh"); printf("\n\n Moi ban chon:");scanf("%d",&c); switch(c) { case 2: return; case 1:
HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH
+Khởi động TC để vào chương trình
+Trước khi chạy chương trình nhấn phím F9 để kiểm tra lỗi
+Nếu không báo lỗi nhấn tổ hợp phím Ctrl + F9 để chạy chương trình, xuất hiện giao diện như sau:
[2] THOAT KHOI CHƯƠNG TRINH Moi ban chon: 1
+ Nhấn phím 1 để vào chương trình, phím 2 để thoát khỏi chương trình
+ Kết quả thử nghiệm chương trình:
+ Chú ý: Khi chương trình yêu cầu nhập tên tệp để ký:
- Nếu tệp cần ký và chương trình chạy được đặt trong cùng một thư mục thì ta chỉ việc nhập tên tệp văn bản cần ký
- Ngược lại thì ta cần phải chỉ rõ đường dẫn đến tệp văn bản cần ký.