Chương 2 : Globus Toolki t4
2.3. Kiến trúc Globus
2.3.2.1. Cơ bản về bảo mật Grid và GSI
Symmetric Encryption
Mã hoá kiểu Symmetric dựa trên việc sử dụng một khố bí mật để thực hiện mã hố 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ã hố, họ có thể giải mã được thơng tin. Phương pháp mã hố này kém an tồn nhưng tốc độ mã hóa/giải mã lại nhanh hơn dạng mã hố 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ã hố khố 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ã hố khác với khố được sử dụng để giải mã. Phương pháp mã hố khóa cơng khai 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 để
Proxy và ủy quyền
(Phần mở rộng bởi GSI, phục vụ single sign-on)
PKI
(CA và Certificate)
SSL/TSL
(Chứng thực và bảo vệ thông điệp)
21
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. Hệ thống khố 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ã hố 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 tố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ã hố bởi một khố thì chỉ có thể được giải mã bởi khố 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.
Distinguished Name (DN)
Distinguished Name là một chuỗi ký tự duy nhất dùng để định danh người dùng (người dùng có thể là một người hay một thực thể ) trong Grid, có thể nói DN là một “Grid username”. DN là một thành phần của chứng chỉ điện tử. Phần lớn thông tin trong DN là do CA cung cấp.
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. 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
22
đ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. Có 2 loại chứng chỉ khác nhau được dùng trong môi trường Grid.
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 đó phả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.
23
Các trách nhiệm chính của một CA 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.
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. 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ó. 2. 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.
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 cuố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ó tồ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 Globus Toolkit, trên hệ thống Linux, Grid map file được lưu trong file : /etc/grid-security/grid-mapfile. Grid-mapfile là một file text, mỗi dòng là một ánh xạ
24
giữa DN và user cục bộ, có dạng như sau:
“DN” <user cục bộ>
Ví dụ : "/O=Grid/OU=GlobusTest/OU=simpleCA-b.ar.com/OU=ar.com/CN=Nguyen Thinh" thinh
Các file quan trọng
Thư mục Tên file Diễn giải
/etc/grid-sercurity Hostcert.pem Là server certificate được sử dụng trong mutual authentication
Hostkey.pem Khóa bí mật tương ứng server certificate
Grid-mapfile File ánh xạ giữa tên người dùng
Grid (subject hay DN) với người
dùng cục bộ. /etc/grid-sercurity/certificate CA certificate
Sa-signing-policy.conf
$HOME$/.globus Usercert.pem Certificate của người dùng (subject name,khóa cơng khai, chữ ký của
CA)
Userkry.pem Khóa bí mật của user certificate (được mã hóa bằng passphare).
25
Các công cụ liên quan
Tên Tham số Diễn giải
Grid-cert-request Sử dụng để tạo một cặp khóa cơng khai/bímật và một bản yêu cầu cấp chứng chỉ trong thư mục ~/.globus/
Grid-cert-info -all -startdate -subject - enddate -issuer -help
Lấy thơng tin về chứng chỉ. Ví dụ : $ Grid-cert-info –subject “/O=Grid/O=GridTest/OU=test.domain.com /CN=GreenStar Grid-proxy-init -hours -bits -help
Thực hiện khởi tạo proxy và đăng nhập vào Grid.
Grid-proxydestroy Logout khỏi Grid, thực hiện hủy proxy cục bộ. Lưu ý, các proxy ở xa không bị huỷ. Grid-proxy-info -subject -issuer
-type -timeleft -strength -help
Lấy thông tin về proxy