Khi một thực thể trong Grid muốn bắt đầu một phiên làm việc với đối tác nào đó, nó sẽ đính kèm chứng chỉ điện tử của mình vào thông điệp thay vì khóa công khai.. Nếu chữ ký đó là của một
Trang 1cách ứng dụng với các cấu hình môi trường thực thi cụ thể Container cũng điều khiển chu kỳ sống của các Grid service, và phân phối các yêu cầu đến các service instance Container mở rộng cũng như bao gồm các interface chuẩn của một Web Service Engine (WSE), WSE chịu trách nhiệm xử lý các thông điệp XML
Web Service Engine và Grid Service Container được đặt trong một Hosting Environment, chịu trách nhiệm triển khai các chức năng của một Web Server truyền thống như sử dụng protocol vận chuyển HTTP,… Hiện nay GT3 Service Container
có thể chạy trên các hosting environment sau:
+ Embedded Container: là một hosting environment được sử dụng chủ yếu trong các client hay các server hạng nhẹ, cho phép tạo lập và quản lý các Grid service instance
+ Stand-alone Container: cơ bản dựa trên embedded hosting environment cùng với một command-line đầu cuối, cho phép khởi động và kết thúc
hosting environment GT3 có 2 lệnh để thực hiện việc này :
globus-start-container, globus-stop-container
+ J2EE Web Container (Servlet) : Là embedded hosting environment chạy trong một Java engine (Web container) như Tomcat Web container này sử dụng các Web service cung cấp bởi Java engine thay các service chuẩn cung cấp bởi GT3
+ J2EE Enterprise JavaBeans Container (EJB) : Là embedded hosting environment chạy trong một EJB application server (EJB container) như WebSphere Application Server
Chi tiết các thành phần và sự khác biệt giữa cùng một thành phần trong 2 kiến trúc sẽ được giới thiệu ở phần sau
Trang 2ra các cơ chế khá tốt để thực hiện việc chứng thực, phân quyền, bảo mật liên lạc giữa các node trong Grid
GSI là một sự mở rộng các protocol và API của các chuẩn về bảo mật hiện hành GSI được xây dựng trên các công nghệ, các chuẩn như :
+ Mô hình mã hoá khóa công khai (public key infrastructure(PKI))
+ X.509 certificate
+ Protocol Secure Sockets Layer (SSL)
Tất cả các kết nối liên lạc trong Grid đều được mã hoá theo công nghệ RSA 1024 bit và truyền tải với protocol SSL
+ Generic Security Service API (GSS-API)
Toàn bộ phần cài đặt của GSI đều tuân theo GSS-API (là một bộ API chuẩn dành cho các hệ thống bảo mật được tổ chức Internet Engineering Task Force (IETF) đưa ra)
GSI đã mở rộng các chuẩn này để cung cấp thêm chức năng đăng nhập một lần (single sign-on), ủy quyền (delegation), identity mapping (ánh xạ thực thể)
Một số chức năng chính của GSI
+ Chứng thực một/hai chiều (Single/Mutual authentication)
+ Có cơ chế truyền thông an toàn
+ Có cơ chế chứng thực
+ Có cơ chế uỷ quyền
Hình 3-5 tóm tắt cấu trúc và chức năng các thành phần của GSI
Trang 3Hình 3-5 Các thành phần của GSI.
Dưới đây giới thiệu một số khái niệm và cơ chế chủ yếu của GSI
3.4.1.2 Các nguyên tắc và khái niệm cơ bản trong bảo mật Grid
1 Các nguyên tắc cơ bản
Lĩnh vực bảo mật bao gồm 3 dịch vụ cơ bản : chứng thực (authentiacation), phân quyền (authorization) và mã hoá (encryption) Một tài nguyên Grid phải được chứng thực trước tiên nhằm xác định các hoạt động nào được phép trong Grid Khi các tài nguyên Grid đã được chứng thực, Grid user có thể được cấp các quyền thích hợp để sử dụng các tài nguyên Tuy nhiên, các việc này vẫn chưa bảo vệ được dữ liệu trong quá trình trao đổi giữa các node Do đó, cần phải cần thêm dịch vụ mã hoá dữ liệu
Tổ chức International Organization for Standardization (ISO) đã đưa ra danh sách các dịch vụ cơ bản trong các hệ thống bảo mật hiện đại, trong các tài liệu ISO 7498-2 (OSI Security Architecture) và ISO 10181 (OSI Security Frameworks) Một
số dịch vụ liên quan đến bảo mật Grid được giải thích dưới đây:
+ Authentication (chứng thực)
Là quá trình xác minh tính hợp lệ của một cá nhân, và xác định người đó
là ai Không chỉ có con người mới cần được chứng thực, các service, ứng dụng, và các thực thể khác cũng cần được chứng thực trong hệ thống Grid
+ Access control
Đảm bảo mỗi người dùng hay máy tính sử dụng service được phép thực hiện những gì anh ta muốn làm Quá trình phân quyền thường được dùng đồng nghĩa với access control
Trang 4Mã hoá kiểu Symmetric dựa trên việc sử dụng một khoá bí mật để thực hiện
mã hoá và giải mã dữ liệu Để đảm bảo dữ liệu chỉ được đọc bởi bên gửi và bên nhận, khoá được trao đổi một cách bí mật giữa 2 bên Nếu ai đó lấy được khóa bí mật đã sử dụng để mã hoá, họ có thể giải mã được thông tin
Phương pháp mã hoá này kém an toàn nhưng tốc độ mã hóa/giải mã lại nhanh hơn dạng mã hoá Asymmetric trình bày dưới dây
+ Asymmetric Encryption
Phương pháp này được gọi là phương pháp mã hoá khoá công khai, cũng được sử dụng rất thường xuyên Phương pháp này sử dụng một cặp khoá để mã hóa (được gọi là khóa công khai (public key) và khóa bí mật (private key)) Khóa để mã hoá khác với khoá được sử dụng để giải mã Phương pháp mã hoá khóa công khai yêu cầu các bên phải bảo vệ kỹ các khóa bí mật của mình, trong khi khóa công khai của họ không cần được bảo vệ, có thể được công bố rộng rãi trong cộng đồng Thông thường, khóa công khai được để trong các chứng chỉ điện tử (digital certificate) được cấp bởi Certificate Authority, nơi chịu trách nhiệm quản lý các khóa công khai và người chủ của khóa công khai tương ứng
Trang 5Hệ thống khoá công khai thực hiện bảo mật hai lần trên thông điệp trao đổi giữa các bên Trước hết, bên gửi sẽ mã hóa thông điệp bằng khóa bí mật của mình, sau đó mã hoá tiếp lần nữa bằng khóa công khai của bên nhận Khi nhận được thông điệp, bên nhận sẽ thực hiện giải mã bằng khóa bí mật của mình trước, sau đó tiếp tục giải mã bằng khóa công khai của bên gửi Bằng cách này, không ai khác có thể đọc được thông điệp trừ khi có được khóa bí mật của một bên, nhưng điều này rất khó thực hiện được vì hai bên gửi và nhận không trao đổi khóa cho nhau, và khóa bí mật được giữ ở mỗi bên
Các thuật toán phát sinh khóa bí mật và khóa công khai được thiết kế sao cho một thông điệp được mã hoá bởi một khoá thì chỉ có thể được giải mã bởi khoá còn lại tương ứng, và không thể giải mã bởi khoá dùng để mã hoá Các cặp khoá được phát sinh bằng cách tìm 2 số nguyên tố cực lớn khác nhau Ngay cả khi khóa công khai được để công khai rộng rãi, cũng rất khó để các máy tính hiện nay có thể tìm ra khóa bí mật từ khóa công khai Các thuật toán này tăng độ tin cậy về bảo mật nhưng lại tốn rất nhiều thời gian để mã hóa, đặc biệt là khi phải mã hóa một lượng lớn dữ liệu Do đó, trong thực tế, người chỉ dùng phương pháp public key encryption để trao đổi khóa của phương pháp symmetric encryption giữa hai bên, và sau đó, việc
mã hoá/giải mã được sử dụng bằng khoá symmetric này
+ Digital certificates (Chứng chỉ điện tử)
Chứng chỉ điện tử là một tài liệu điện tử chứa thông tin định danh tài nguyên, người dùng Grid và khóa công khai tương ứng Một chứng chỉ điện tử là một cấu trúc dữ liệu chứa khóa công khai và các thông tin chi tiết về chủ của khóa công khai
đó Một chứng chỉ được xem như là một thẻ nhận dạng điện tử không thể làm giả sau khi đã được đóng dấu bởi CA trong môi trường Grid
Trang 6Khi một thực thể trong Grid muốn bắt đầu một phiên làm việc với đối tác nào đó, nó sẽ đính kèm chứng chỉ điện tử của mình vào thông điệp thay vì khóa công khai Bên nhận kiểm tra chữ ký của CA trong chứng chỉ vừa nhận được Nếu chữ ký đó là của một CA mà bên nhận tin tưởng, thì nó có thể chấp nhận và tin tưởng rằng khóa công khai trong chứng chỉ thực sự đến từ nơi gửi (thao tác này đề phòng trường hợp giả danh người chủ của khóa công khai) Sau đó, bên nhận sẽ sử dụng khóa công khai của bên gửi để giải mã SSL session ID, SSL ID này dùng để
mã hoá tất cả các dữ liệu truyền thông giữa 2 bên
Các chứng chỉ điện tử của GSI dựa định dạng chứng chỉ X.509, một định dạng chuẩn về chứng chỉ điện tử do tổ chức Internet Engineering Task Force (IETF) đưa ra Những chứng chỉ này có thể dùng được với các phần mềm dựa trên PKI khác bao gồm các trình duyệt web của Microsoft, Netscape
Về cấu trúc và quá trình cấp một chứng chỉ điện tử, xin xem trong phụ lục Cấu trúc chứng chỉ điện tử
E-* Các loại chứng chỉ điện tử
Có 2 loại chứng chỉ khác nhau được dùng trong môi trường Grid Loại thứ nhất là chứng chỉ dành cho người dùng (user certificate) và chứng chỉ dành cho các Grid server (Server certificate)
- User certificate Một người dùng sẽ cần một user certificate để đại diện cho mình, chứng chỉ này xác định tên người dùng thực sự của Grid chứ không phải tên một server hay tên máy trạm Ví dụ, có một ai đó tên Bobby, thì trong chứng chỉ điện tử của anh ta có thể có một distinguished name như sau:
“/O=Grid/O=GridTest/OU=test.domain.com/CN=Bobby"
- Server certificate Nếu một người dùng muốn chạy các ứng dụng yêu cầu chứng thực trên server, sẽ cần phải có một server certificate Server certificate sẽ ghi fully-qualified domain name của server vào user certificate của người đó
Để user certificate có hiệu lực, full-qualified DNS name của người đó
Trang 7phải giống như trong user certificate Ví dụ : nếu tên server là “Darksky”, tên trong server certificate có thể là :
/CN=Service/Darksky.<domain>.<com>
+ Certificate Authority (CA)
Việc bảo mật trong Grid được xác lập thông qua việc sử dụng các chứng chỉ
ở mức host và người dùng, các chứng chỉ này sau đó được ánh xạ vào các người dùng cục bộ trên host Để có được các chứng chỉ này, các bản yêu cầu xin cấp chứng chỉ được tạo ra, gửi đến một CA tin cậy, CA này sẽ thực hiện ký xác nhận vào chứng chỉ và gửi lại người yêu cầu
Một CA đúng nghĩa có nhiều trách nhiệm khác nhau trong môi trường Grid Các trách nhiệm chính của một CA tốt bao gồm :
- Xác định được các thực thể đang yêu cầu cấp chứng chỉ
- Cấp phát, loại bỏ và lưu trữ các chứng chỉ
- Bảo vệ các CA server
- Quản lý không gian tên cho các chủ sở hữu chứng chỉ
- Theo dõi các hoạt động
Trong một số môi trường PKI, có thêm một Registrant Authority (RA) hoạt động liên kết với CA để thực hiện các nhiệm vụ trên RA chịu trách nhiệm kiểm tra
và đảm bảo các thông tin người dùng là đúng đắn và hợp lệ, chấp thuận hay từ chối các yêu cầu cấp chứng chỉ trước khi chuyển yêu cầu đến CA Globus Toolkit có cung cấp một module simple CA để phục vụ cho việc thử nghiệm các ứng dụng trong một trường Grid Trong trừơng hợp này, simple CA kiêm luôn chức năng của
CA và RA Khi số lượng chứng chỉ tăng lên, thường sẽ tách thành 2 nhóm CA và
Ra riêng lẻ
Một vấn đề then chốt trong môi trường PKI là đảm bảo tính tin cậy, có thể tin tưởng của hệ thống Trước khi một CA có thể ký, đóng dấu và cấp chứng chỉ cho các thực thể khác, nó cũng phải làm một việc tương tự cho chính nó, để bản thân
CA có thể được đại diện bằng chứng chỉ của mình Điều đó có nghĩa CA cần phải làm các công việc sau:
1 CA phát sinh ngẫu nhiên cặp khóa cho nó
Trang 82 CA lưu trữ bảo mật khóa bí mật của nó
3 CA tự tạo ra chứng chỉ cho chính mình
4 CA ký xác nhận chứng chỉ đó bằng khóa bí mật của mình
Một số lưu ý với CA:
- Khóa bí mật của CA là một trong những phần qua trong nhất trong toàn
bộ môi trường PKI Nó được dùng để ký xác nhận các chứng chỉ trong môi trường Grid, do đó, nếu có ai lấy được khóa bí mật của CA thì họ sẽ có thể giả danh bất cứ ai trong môi trường Grid Do đó cần thực hiện tất cả các giải pháp bảo mật có thể để bảo vệ khóa bí mật của CA
- Thông thường, trong một môi trường Grid đơn lẻ, một CA sẽ cung cấp chứng chỉ cho một nhóm cố định các người dùng Tuy nhiên, nếu có 2 công
ty hoặc VO cần phải liên lạc với nhau, và cần phải tin tưởng đối tác của mình Điều này yêu cầu cả hai CA phải tin tưởng lẫn nhau hay cùng tham gia vào một vùng cho phép sử dụng chéo chứng chỉ (cross certification) Ví dụ : Alice, một nhân viên thuộc một tổ chức với CA riêng của mình, muốn thực thi một công việc trên một máy tính thuộc Grid của Mike, nằm ngoài tổ chức
và thuộc về một CA khác Để có thể thực hiện được điều đó, các điều sau cần được xem xét:
_Alice và Mike cần một cách để có thể lấy được khóa công khai chứng chỉ của đối tác
_Mike cần phải chắc chắn là có thể tin tưởng được CA của Alice và ngược lại
Các máy tính trong Grid, đến từ nhiều vùng bảo mật hay các VO khác nhau, cần phải tin tưởng vào chứng chỉ của đối tác, do đó, các vai trò và các mối quan hệ giữa các CA cần phải được xác định Điều này có thể thực hiện bằng cách mở rộng môi trường PKI trên toàn cầu
+ Gridmap File
Sau khi đã có các chứng chỉ, một thực thể Grid cần phải biết người dùng nào
có chứng chỉ nào được phép truy cập đến các tài nguyên của nó Điều này được thực hiện bằng một file Grid map File Grid map là một file trên tài nguyên đầu
Trang 9cuối, thực hiện ánh xạ các DN vào các người dùng cục bộ trên tài nguyên Sau khi được ánh xạ, một DN có thể sử dụng tài nguyên trên host như là một người dùng cục bộ, tức DN có toàn quyền của người dùng cục bộ Điều này cho phép phân cho các người dùng Grid khác nhau các quyền khác nhau trên tài nguyên thông qua các người dùng cục bộ được ánh xạ Để từ chối truy cập đối với một DN, chỉ cần loại bỏ
DN đó ra khỏi Grid map file
Trong GT, trên hệ thống Linux, Grid map file được lưu trong file : /etc/security/gridmap-file Gridmap-file là một file text, mỗi dòng là một ánh xạ giữa DN và user cục bộ, có dạng như sau:
+ Quy trình chuẩn bị để có thể sử dụng Grid
Hình 3-6 giới thiệu quy trình khởi tạo cho phép một người dùng Grid (có thể
là người hay host) sử dụng GSI để tham gia vào Grid, gồm các bước sau:
1 Sao chép khóa công khai của CA về host
2 Tạo khóa bí mật và một bản yêu cầu chứng nhận chứng chỉ
3 Gửi bản yêu cầu chứng nhận đến CA qua email hay theo một cách an toàn nào đó
4 CA ký tên chứng nhận vào bản yêu cầu để tạo thành một chứng chỉ và gửi lại user
Trang 10Hình 3-6 Quy trình khởi tạo để sử dụng GSI
Quy trình trên kết thúc khi user nhận được chứng chỉ của mình, lúc này trên host của user sẽ có 3 thứ quan trọng:
1 Khóa công khai của CA
2 Khóa bí mật của Grid host
3 Chứng chỉ điện tử của Grid host
Để có thể thực hiện các việc chứng thực và giao tiếp cho Grid host một cách
an toàn, không được để bất cứ ai truy cập được khóa bí mật của mình GSI cung cấp thêm một tầng bảo mật nữa để đảm bảo an toàn cho khóa bí mật, đó là sử dụng thêm một passphrase (mật khẩu) bí mật nữa khi sử dụng khóa bí mật cùng với chứng chỉ điện tử Điều này ngăn không cho một ai sau khi lấy được chứng chỉ điện tử và khóa bí mật có thể sử dụng chúng để truy cập đến các tài nguyên Grid
+ Quy trình chứng thực và phân quyền
Hình 3-7 mô tả quy trình chứng thực và phân quyền của GSI Ở đây, mô tả các bước để Grid host B chứng thực và phân quyền sử dụng cho Grid host A
1 Grid host A gửi user certificate đến host B, yêu cầu muốn mở kết nối đến host B để sử dụng tài nguyên của B, ví dụ vậy
2 Host B sẽ bắt đầu thực hiện chứng thực host A Host B lấy khóa công khai và subject (DN) của người dùng từ user certificate bằng cách sử dụng khóa công khai của CA
3 Host B tạo một số ngẫu nhiên (X) và gửi lại cho host A
4 Khi host A nhận được số X, sẽ mã hoá số X bằng khóa bí mật của người dùng Số X sau khi mã hoá (Y) sẽ được gửi lại cho host B
Trang 115 Host B sẽ giải mã Y bằng khóa công khai của user lấy được trong bước
2, và so sánh kết quả sau khi giải mã với số X đã gửi đi trước đó Nếu giống, tức là chứng chỉ điện tử host B nhận được chính là của người dùng trên host
A, bởi vì chỉ người dùng trên host A mới có thể mã hoá số X bằng khóa bí mật của mình
6 Chứng chỉ của người dùng trên host A đã được host B chứng thực, sau
đó, host B sẽ ánh xạ subject (là một dạng của DN, là tên được sử dụng bởi LDAP để phân biệt các điểm vào trong directory service) lấy được trong bước 2 vào người dùng cục bộ thông qua gridmap-file
Hình 3-7 Thủ tục chứng thực và phân quyền với GSI.
Lúc này, người dùng trên host A đã được cho phép hoạt động như một người dùng cục bộ trên host B
Trong môi trường Grid, một host có vai trò là client trong một số trường hợp,
có thể là server trong một số trường hợp khác, do đó host có thể phải chứng thực một host khác và được chứng thực bởi host kia tại cùng một thời điểm Trong trường hợp này có thể sử dụng chức năng mutual authentication của GSI Chức năng sẽ được giới thiệu chi tiết hơn ở phần sau