Bài giảng tính toán lưới chương 6 một số vấn đề bảo mật khi cài đặt GT4
Trang 1Chương 6 Một số vấn đề bảo mật
khi cài đặt GT4
Giảng viên: TS Đàm Quang Hồng Hải
TÍNH TOÁN LƯỚI
Trang 2Bảo mật môi trường Lưới
• Bảo mật là yếu tố rất quan trọng trong bất cứ hệ thống nào,
nhất là đối với hệ thống phân tán gồm nhiều tài nguyên và
người sử dụng nằm rải rác nhiều nơi
• GT4 và các công cụ liên quan cung cấp nền tảng bảo mật hoàn chỉnh không chỉ đối với truyền thông trên mạng mà còn đối với các tài nguyên (chính sách chia sẻ) và người dùng (xác thực và phân quyền)
• GT4 cho phép thiết lập 1 hệ thống bảo mật cao, mở, và uyển chuyển nhằm bảo vệ thông tin, xác thực và phân quyền người dùng, đại diện và ủy quyền
Trang 33
Bảo mật trong GT4
• Xác thực, đăng nhập (Authentication): thẩm định tính hợp lệ của người được khai báo và định danh người này là ai
• Quyền hạn (Access Control): đảm bảo mỗi người dùng chỉ sử dụng các tài nguyên, dịch vụ được phép
• Toàn vẹn dữ liệu: đảm bảo dữ liệu không bị thay đổi hay bị xóa đi bởi người không có thẩm quyền
• Bảo mật dữ liệu: Các thông tin nhạy cảm cần đảm bảo không
bị phát hiện bởi những người khác
• Quản lý khóa: liên quan đến các vấn đề cấp phát khóa, xác thực, tạo ra phiên bản bảo mật
Trang 4Mô hình một cơ quan cấp chứng nhận duy nhất với nhiều cơ sở đăng ký
Trang 55
Phần mềm SimpleCA
• Phần mềm SimpleCA là phần mềm được xây dựng
bởi VPN Consortium thực hiện việc chứng thực trên mạng
• SimpleCA là một phần của bộ công cụ Globus và có thể được cài đặt dễ dàng
• Về cơ bản bộ công cụ OpenSSL được dùng để chuyển giao giấy chứng thực với Globus
• Bộ công cụ OpenSSL có thể được sử dụng trực tiếp
Trang 6Nhận được giấy chứng nhận sử
dụng lệnh của GT4
• Trước tiên, cần phải tạo ra một cặp khoá công khai/bí mật
riêng
dùng lệnh grid-cert-request tại máy người dùng
• Thực tế người dùng không thực sự cần khóa công khai riêng với giấy chứng nhận của mình vì là nơi cấp chứng nhận sẽ giữ khóa công khai,
• Sau quá trình chứng thực, người dùng sẽ có được khoá bí mật
và giấy chứng nhận được ký
• Quá trình xác lập các chứng thực sẽ được thực hiện trong quá
Trang 77
Lệnh grid-cert-request
• Lệnh grid-cert-request sẽ tạo ra một cặp khoá riêng và một
giấy chứng nhận chưa ký, có nghĩa là, một giấy chứng nhận
không dấu có tên chủ thể và khoá công khai
grid-cert-request –(user/host) tên-đối-tượng
• Các thể lựa chọn –user hay –host để thực hiện chứng thực với người dùng hay host
• Một tên mặc định (Giấy chứng nhận đối tượng) sẽ được hiển thị cho người sử dụng như là một phần của thông điệp
• Lệnh grid-cert-request có thể yêu cầu tạo một mật khẩu, mà
sẽ được sử dụng để mã hóa khóa riêng và phải được người
dùng ghi nhớ
Trang 8Các File được tạo ra bởi lệnh
Empty file: (user/host) cert.pem
(user/host)cert_request.pem - có thể được coi như là một chứng chỉ chưa
ký có tên chủ thể (user/host) và khoá công khai
(user/host)key.pem (private key) – nơi chứa khóa bí mật
Trang 9• Thông thường, các tập tin này được gửi bằng email
đến các quản trị viên của server CA – tuy nhiên khi cài đặt GT4 thì copy trực tiếp tới máy CA
• Chú ý: Lệnh grid-cert-request sẽ có một thông báo
cho người sử dụng biết phải làm gì
Trang 10Công việc thực hiện tại server CA
• Sau khi nhận được yêu cầu, người quản trị server CA sẽ chạy lệnh grid-ca-sign-in:
grid-ca-sign-in (user/host)cert_request.pem -out
Trang 1111
Gửi trả yêu cầu từ server CA
• Người quản trị server CA sẽ gửi trả lại giấy chứng nhận đã ký cho người dùng, thường là bằng email hoặc copy file khi cài
đặt GT4
• Người dùng sau đó thay thế file (user/host)cert.pem trống với
tập tin này (đổi tên nó là (user/host) cert.pem)
• Chú ý: có những cách khác của việc ký giấy chứng nhận cho
người sử dụng như bao gồm cả tài khoản quản trị cho phép
người dùng truy cập để tải về tập tin vào tài khoản người
dùng…
Trang 12Lưu đồ thực hiện việc chứng thực của SimpleCA
Trang 13– User’s private key: userkey.pem
– User’s signed certificate: usercert.pem
• Với một máy tính (host):
– Host’s private key: hostkey.pem
– Host’s signed certificate: hostcert.pem
Trang 14Ánh xạ người dùng Grid với các
Account cục bộ trên máy tính
• Mỗi người dùng sẽ được gắn với những tài khoản (Account)
cục bộ khác nhau, các ủy nhiệm thư hoặc các tài khoản khác
nhau trên các vùng khác nhau nhằm phục vụ cho quá trình theo dõi cũng như điều khiển truy cập mà được áp dụng cho từng
vùng ở các vị trí cụ thể
• Tại một số vùng, một người dùng có thể có tài khoản thông
thường Tại các vùng khác, người dùng có thể sử dụng tài
khoản guest hoặc là một tài khoản được cấp bởi tổ chức đó
• Tài nguyên lưới và người dùng có thể nằm ở những vùng khác nhau tại những quốc gia khác nhau
Trang 1515
Accounts ủy quyền
• Người dùng cần được ủy quyền để truy cập vào một nguồn tài nguyên có nghĩa người dùng cần một tài khoản để truy cập
• Trong hệ thống thông thường, các tài khoản chỉ cần thiết lập
bằng tay (sử dụng một scrip, một cơ chế tự động để tạo và quản
lý các tài khoản này rất cần thiết)
• Có thể sử dụng một cơ sở dữ liệu mạng có thể truy cập được
(LDAP) có danh sách người dùng và đặc quyền của truy cập,
và kết hợp các định dạng tên phân biệt tại chuẩn X-509
Trang 16Ánh xạ giữa người dùng được xác thực Grid với Account local
• File chứa anh xạ: gridmap
• Để sử dụng được tài nguyên trên máy, Grid yêu cầu ánh
xạ giữa người dùng được xác thực grid với người dùng
local
• Mỗi người sử dụng trong file danh sánh có dạng trong 1 dòng:
Distinguished_name local_user_account_name
Trang 1717
"/O=Grid/OU=GlobusTest/OU=simpleCA-coit-
grid02.uncc.edu/OU=uncc.edu/CN=student1" student1
• Các tên được đặt trong dấu ngoặc kép để cho phép các người dùng
đã được xác thực trong Grid
• Thông tin cần chính xác với cách xuất hiện trong giấy chứng nhận của người dùng
• GSI sử dụng file gridmap đã được thành lập nhằm kiểm soát việc
người dùng truy cập tài khoản
Ví dụ trong file gridmap
Trang 18Ví dụ người dùng grid với tên bob
Trang 20Thực thi việc ánh xạ
• File gridmap so sánh để truy cập vào access control lists,
nhưng chỉ cung cấp tên tài khoản ánh xạ và tên truy cập
• Hệ thống không cung cấp các loại quyền cụ thể của truy cập
(cấp quyền truy cập, đọc / ghi / thực hiện, thành viên nhóm…)
• Người sử dụng quyền truy cập sẽ xuất phát từ danh sách truy
cập hệ thống kiểm soát local
• Nói chung, cần cơ chế mạnh hơn để kiểm soát kiểu truy cập
Trang 2121
Cơ chế ủy quyền
• Cơ chế ủy quyền - Delegation, Proxy
• Người dùng có thể ủy quyền lại cho một chương trình trong
một khoảng thời gian xác định truy cập đến các loại tài nguyên
Trang 23Cơ chế ủy quyền (Delegation)
• Một quá trình cho phép một đối tượng (ví dụ như một máy
tính) để thay mặt mình thực hiện các công việc trên lưới
• Cơ chế giải quyết yêu cầu về đăng nhập một lần (single on) của một hệ thống Grid nhằm giảm số lần phải gõ password của người dùng khi sử dụng nhiều tài nguyên Grid có yêu cầu chứng thực
sign-• Cùng với Delegation là đăng nhập một lần, cho phép một người dùng nhập và các agents của mình để có được các nguồn lực bổ sung mà không cần xác thực lặp đi lặp lại bởi người sử dụng (có nghĩa là, gửi mật khẩu/cụm mật khẩu)
Trang 24Ví dụ cơ chế ủy quyền
Trang 2525
Proxy Certificates
• Một cách thực hiện phân giới thiệu của Globus
Được sử dụng rộng rãi trong GSI
Proxy giấy chứng nhận, (proxy) cho tài nguyên sở hữu proxy quyền hành
động thay cho bạn, cũng giống như bỏ phiếu proxy có thể được sử dụng cho một người nào đó để đặt một cuộc bỏ phiếu thay cho bạn
Proxy thông tin bao gồm:
Proxy certificate (với khóa công khai của nó) và
Proxy private key
Tiêu đề của Giấy chứng nhận proxy là bản sắc của đơn vị cho cơ quan
proxy với / proxy = CN hoặc / CN = <number> thêm vào tên để chỉ ra rằng giấy chứng nhận là một chứng chỉ proxy
Trang 26Proxy Certificates (2)
• Chữ ký của chủ đề, không giấy chứng nhận quyền
Có thể được so sánh với một cuộc bỏ phiếu proxy được chữ ký của bạn, nhưng được đặt bởi một người nào đó thay cho bạn
Chữ ký của bạn nên được kiểm tra
Với chứng chỉ proxy, mà được thực hiện bằng cách kiểm tra chữ ký trên giấy chứng nhận proxy, trong đó yêu cầu khóa công khai của người dùng
Công chính của người sử dụng yêu cầu kiểm tra chữ ký trên giấy chứng nhận của
người dùng, trong đó yêu cầu khóa công khai của cơ quan chứng nhận
Vì vậy proxy giấy chứng nhận không thôi là không đủ
Trang 2727
Chứng thực tại proxy site
Fig 5.7
Trang 28Proxy private key and
certificate lifetime
• Một proxy bao gồm một chứng chỉ mới (có đính kèm khóa công khai mới của proxy) và một khóa bí mật mới Chứng chỉ mới chứa định danh của
người chủ proxy, được sửa lại để cho biết đó là một proxy
• Chứng chỉ mới được ký bởi người chủ sở hữu thay vì CA Trong proxy
certificate có chứa thêm thời gian sống của proxy, khi hết thời gian sống,
proxy sẽ trở nên không hợp lệ, thường thì thời gian sống của proxy rất ngắn
• Mỗi người sử dụng thời gian thực hiện một giao thức xác thực PKI, khóa
riêng của người sử dụng phải được giải mã với cụm từ mật khẩu
• Vào thời điểm đó, có thể có vi phạm bảo mật ngắn, nhưng ngay sau khi giải
mã khóa thì thông tin phải được tiêu huỷ
Trang 2929
Quy trình hoạt động trong GT4
Trong môi trường Globus, một ngay lập tức cung cấp phân cấp
Người dùng phải tạo một proxy có thể được thực hiện bằng tay
với các lệnh grid-proxy-init
Nội dung của nó có thể được kiểm tra với grid-proxy-info
Proxy có thể bị hủy với grid-proxy-destroy
Trang 30User Server
Request to create a proxy
Proxy certificate Decrypt user’s private
key with passphrase
Trang 32Chain
of trust
Trang 3333
Quản lý chứng thư và chứng
thư ủy quyền
• MyProxy là một dịch vụ hỗ trợ truy cập từ xa và cho phép lưu trữ các chứng thư trong Grid
• MyProxy server chứa một kho lưu trữ được phát triển cho các chứng chỉ và được sử dụng rộng rãi trong lưới điện toán
• MyProxy server cung cấp proxy đời ngắn theo yêu cầu
• Ban đầu MyProxy server là thành phần riêng biệt với Globus
nhưng sau đó tích hợp vào Globus 4.0
• Đã trở thành một thành phần tích hợp trong Globus đặc biệt là với GridSphere Portal
Trang 34MyProxy server
• MyProxy giúp đơ giản hóa việc quản lý chứng thư và nó cung cấp cơ chế cho phép người dùng dễ dàng trong việc sử dụng
môi trường Grid
• Hai cách mà MyProxy có thể được sử dụng:
– Là một kho chứa thông tin người dùng
– Là một kho chứa thông tin proxy
Trang 3535
Hoạt động của MyProxy server
Trang 36Lệnh với MyProxy
• myproxy-store đặt chứng thực từ các file ~/.globus/
usercert.pem và ~/.globus/userkey.pem vào
MyProxy server
• myproxy-init -t hours cài đặt proxy với thời gian
sống là giờ (default 12 giờ)
• myproxy-logon (trước kia là
myproxy-get-delegation) Retrieve proxy
• myproxy-info yêu cầu thông tin
• myproxy-destroy hủy chứng thực
Trang 3737
Ví dụ khi dùng myproxy-init
myproxy-init -s myproxy.coit_grid02.uncc.edu
Your identity: /C=US/O=UNCC/CN=Barry Wilkinson
Enter GRID pass phrase for this identity:
Creating proxy Done
Your proxy is valid until Fri Sep 13 13:52:56 2008
Enter MyProxy Pass Phrase:
Verifying password - Enter MyProxy Pass Phrase:
A proxy valid for 168 hours (7.0 days) for user abw now exists on myproxy.coit_grid02.uncc.edu
Trang 38Ví dụ (tiếp)
Khi người dùng muốn tiếp cận với proxy thì thực hiện:
myproxy-logon -s myproxy.coit_grid02.uncc.edu
Vào mật mã cho MyProxy :
A proxy has been received for user abw in
/tmp/x509up_u500
Trang 39• Ngoài ra hiện không có bất kỳ một biện pháp kiểm soát truy
cập tốt hơn hoặc kiểm soát cấp uỷ quyền bất kỳ cho một môi
trường Grid
• Hiện một số công cụ đã được phát triển để cung cấp cấp phép
Trang 40Bảo mật dịch vụ Web trong GT4
• Các đặc tả bảo mật cho dịch vụ Web nhằm giải quyết các vấn
đề liên quan tới: xác thực, phân quyền, chính sách, ủy thác
trong dịch vụ Web
• GT4 dùng ngôn ngữ xác thực bảo mật SAML để giải quyết vấn
đề bảo mật thông điệp, xác thực, đại diện ủy thách và phân
quyền SAML gồm các đặc tả sau:
– TLS được dùng như cơ chế bảo mật thông điệp kết hợp với SOAP
– Chứng thực thực thể đầu cuối X.509 hay Username và Password được dùng như ủy nhiệm thư xác thực
– Chứng thực ủy quyền X.509 và WS-Trust được dùng làm đại diện
(delegation)
– Xác nhận SAML dùng để phân quyền
Trang 4141
Nhận dạng số
• Trong trao đổi trên mạng, việc nhận dạng rất cần thiết cũng
như việc sử dụng giấy tờ nhận dạng thông thường
• Trong thế giới vật lý, tất cả chúng ta phải sử dụng nhiều nhận dạng số khác nhau được
• Mặc dù đa dạng nhưng tất cả những nhận dạng số đều có một điểm quan trọng chung đó là khi truyền trên mạng, mỗi một
nhận dạng số được biểu diễn bằng một số thẻ bảo mật
• Thẻ bảo mật chỉ là một tập hợp các byte biểu diễn thông tin về nhận dạng số.c diễn tả theo nhiều cách khác nhau
Trang 42Security Assertion Markup
Language (SAML)
• Globus sử dụng ngôn ngữ XML để làm "xác nhận" về quyết định xác thực
và ủy quyền
• SAML là sự kết hợp giữa S2ML và AuthML, được phát triển thông qua
OASIS, hiện nay được biết đến như 1 tiêu chuẩn mở OASIS
• SAML là một tiêu chuẩn dựa trên XML, nhằm cung cấp thông tin an toàn
để xác thực giao tiếp người dùng, quyền lợi,và thuộc tính thông tin
• Địa chỉ nơi người dùng truy cập một trang web mà có thể đòi hỏi yêu cầu
của người sử dụng sẽ được chuyển hướng đến một trang web khác có liên quan sau khi được chứng thực, ví dụ: du lịch đặt chỗ và đặt phòng ô tô
Trang 4343
Các thành phần SAML cho
chuyển hướng Web site
Trang 44Các thành phẩn của SAML
SAML cung cấp cho các thông tin giúp người sử dụng chứng thực, uỷ
quyền và thông tin thuộc tính SAML gồm có ba thành phần:
– Assertions - thông tin được truyền đạt
– Protocol- cách thực hiện trao đổi thông tin
– Binding - lập ánh xạ với từng trao đổi với giao thức SOAP và các giao thức cụ thể (thường là HTTP)
Ba hình thức xác nhận:
– Authentication statements - Xác thực
– Attribute statements - Thuộc tính
Trang 45một nhà cung cấp danh tính, trong đó có trách nhiệm xác thực người dùng
và theo dõi các thông tin khác về họ
Trang 46Attribute assertion và SAML
authorization
• Attribute assertion
– Các đối tượng quy định có liên quan với các thuộc tính đã được cung cấp
– Cung cấp thông tin cụ thể về người dùng để thiết lập các quyết định truy cập
Các thuộc tính có thể cho ví dụ bao gồm những người sử dụng một là một quản trị viên (đặc quyền root) hoặc có đặc quyền người dùng hạn chế
Trang 4747
Sử dụng chứng thư cho chứng thực
• Bản gốc Giấy chứng nhận X.509 có mục đích là để chứng minh danh tính (xác thực)
• Khi các giấy chứng nhận gửi đến các nơi chứa nguồn lực, cả
xác thực và quyết định ủy quyền thường được làm cùng một
Trang 48Communication Authorization Service (CAS)
• Communication Authorization Service (CAS) được phát triển để cung cấp dịch vụ uỷ quyền trong một môi trường Globus nhằm chứng thực proxy
• Server CAS là một phần của Globus 4
• Server CAS cung cấp proxy cho người dùng bao gồm các xác nhận cho
phép đưa authorization assertions vào như là một thành phần phụ của X-509
mở rộng trong giấy chứng nhận
• sử dụng các xác nhận SAML
• Phương pháp tiếp cận là cho phép chứng chỉ proxy được xử lý bằng phần
mềm hiện có
Trang 4949
CAS structure
Trang 50Attribute (Authorization)
Certificates
Attribute Certificates (giấy chứng nhận riêng biệt) là bổ sung thêm vào loại các giấy chứng nhận X-509, chỉ để
phục vụ việc ủy quyền - cho phép
Hiện được đề xuất làm chuẩn
Attribute Certificates ràng buộc với một thực thể riêng
và có chữ ký số để xác nhận nó