The VEGA Approach to Grid Security Grid System Software Group, ICT, CAS

advertisement
The VEGA Approach
to Grid Security
--Security In VEGA GOS v2
Li ZHA
char@ict.ac.cn
Grid System Software Group,
ICT, CAS
2005-4-11
Outline



Background of VEGA GOS
Motivations And Goals
Security In VEGA GOS
 VEGA GOS Architecture
 Grid

Security Mechanism
Key Approaches
 WS-Security Implementation
 Agora (VO, Community) Based
Authorization
 Runtime construct (Grip, Grid Process) for
secured accessing the service


Hosting Environment And Deployment
Conclusion And Roadmap
Background of VEGA GOS

Background

Grid related research and the VEGA brand at ICT since 1999
 Part of the Grid Software program supported by the China Ministry
of Science and Technology 863 program (2002~2005)

Goals


Support multiple geographical distributed grid nodes (HPC Center)
Sharing mechanism and framework on computing, data, software
and combined resources
 Provide secured, uniformed and friendly interfaces accessing the
scientific computing and information services

Research

Focus on 4 key issues and aim at minimal common requirements
 Naming, Process/States, VO, Programming
 Focus on implementation architecture, not protocols/services
 Use computer systems approach, not middleware or network
 Use SOA concept
Application Scope of VEGA GOS
Manufacturing
Resources and Environment
Weather
Forecast
Science
Research
VEGA GOS
Distributed Resources and Services
Motivations And Goals -- What is needed

In grid environment, security should solve or cover:

Traditional security issues


Grid authentication



Adapt to loosely coupled or de-coupled architecture
Access control decided by resource owner or provider
Communication security guarantees


Single Sign On
Grid authorization


such as authentication, access control, information integrity,
information privacy (according to OSI security architecture)
Adopt opened and standardized protecting mechanism
(signature, encryption, and etc.)
All the information separated or put together?

How to put them together?
Motivations And Goals -- More concrete

Integrate security with Web service and VEGA GOS


Independent with service implementations (utilizing handler-chain mechanism
at client and service sides)
Conformed to existing security standards

X.509 (for authentication)
 SAML (for authorization)
 WS-Security Implementation (for service oriented security architecture)
 Standard signature and encryption algorithms

Ensure mutual security at both user and resource sides


User and Service MUST both have certificates
Departs authorization with authentication

Token based authorization (tokens are dynamically issued by Authorization
Authority in Agora)
 GOS context (Agora id, cert/proxy cert and token) is added into each SOAP
message when accessing the service

Keep resource as autonomous

Implement access control at resource side with interfaces which can be
customized
 Multiple granularity access control based on authorization token
Application Logic by Web Pages
VEGA GOS v2
Architecture (hierarchical)
Grid Apps
Grid
Portal
Build-in Utility Collection
User Customized
Applications
Extended Utilities
Servlet Based Scalable Grid Portal Engine
User APIs
System and Application Libraries(Core Based Functional APIs and Exception Handling)
App Level
Services
Batch Service
System
Level
Services
GIS Service
Information(MetaX) Services
MetaFile Service
MetaDB
Meta Info
Service
Naming
Replica
Mgmt.
Mgmt.
Quota
Mgmt.
MetaSys
Service
File AC Mgmt.
Core APIs
Core
Level
Services
etc.
Workflow Service
Base Services
System
Monitoring
Service
Logging&
Auditing
Service
CA&
Certificates
Mgmt. Service
File
Database
Messaging
Service
Service
Service
Dymaic Deploy Service
Extended
System
Services
Core Libraries(Grip, Agora, Service Bus, AC Handling, Core Exception Handling)
Agora Service
User Mgmt. Engine
Resource Mgmt. Engine Agora
Profile
Service Addr. Service Mgmt.
Acct.
and PortType
Info
Proxy
Agora
Authentication
Cert.
Mapping
Mgmt.
AA
Role Based
Acct.
Multi-Grained
Acct. Mgmt.
Approve
Resource AC Policy Mgmt.
Authorization Engine
Router Service
GOS
Hosting
Env.
etc.
Tomcat
(Apache)
Service Info. Mgmt. (Local)
OMII
GT4
(Globus)
WebSphere
(IBM)
Grip Service
Grip Container
Result
Caching
User
Interaction
Grip State Mgmt.
Grip Ctrl. Structure
Addr. Core Exceptions
Trans. Service Invocation
Service Locating(Global)
WebLogic
(BEA)
Java J2SE, J2EE/Microsoft Windows
.NET
(Microsoft)
Security Mechanism In VEGA GOS v2
uCert
Browser
use uid/pass load
proxy cert into grip
u_p
upload the proxy
cert to Agora
Grid Portal
uCert
CA
Grid Application uCert
Grid Portal Engine
user cert
uTK
Agora
Service
u_p
u_p
u_p
u_p
u_p
proxy
cert
uTK
authorization
token
Grip Container Service
u_p
uTK
Physical
Service
u_p
uTK
Physical
Service
User
Mgmt.
Service
u_p
uTK
Resource
Mgmt.
Service
AA
Service
u_p
uTK
Physical
Service
Physical
Service
Key Approaches

WS-Security Implementation

Agora (VO, Community) Based
Authorization

Runtime construct (Grip, Grid Process)
for secured accessing the service
WS-Security Implementation

Handler chains mechanism
 Sign
SOAP message, add cert (or proxy cert)
and token
 Authenticate caller’s and AAA’s identification
 Implement access control

GOS context
 A common
system object storing Agora id,
cert or proxy cert (with key), token in a
structured manner
E2E Message Process Flow
Client Side
·
·
SignHandler(with proxy
or user cert)
AddGOSContextHandler
WS
Client
request flow
SOAP MSG over
SSL/TSL(HTTPS)
·
·
·
·
WSSecurityHandler
GetAttachmentsHandler
VerifyCertsHandler
VerifyTokenHandler
response flow
·
·
·
·
·
WSSecurityHandler
GetAttachmentsHandler
VerifyCertsHandler
VerifyTokenHandler
ACHandler
·
SignHandler (with
service cert)
AddGOSContextHandler
·
Server Side
Web
Service
Client Request/Service Response SOAP Header
<!-- SOAP begin…(SOAP Element)-->
<soapenv: Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Soapenv: Header>
<! -- Certs Type -->
<CertType soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv: mustUnderstand="0">
<Type>cert</type>
</CertType>
<!-- Security Element. -->
<wsse: Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext"
soapenv: actor="" soapenv: mustUnderstand="0">
<!--Encoding Binary Security Tokens. -->
<!-- This element is used to include a binary-encoded security token. -->
<wsse: BinarySecurityToken
xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/04/utility"
EncodingType="wsse: Base64Binary" ValueType="wsse: PKIPath" wsu:
Id="token1112843580450">.........</wsse: BinarySecurityToken>
<!-- WS-Security Signature -->
<ds: Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- SignatureValue -->
<ds: SignatureValue>.........</ds: SignatureValue>
<!-- KeyInfo, indicates the key to be used to validate the signature. -->
</ds: Signature>
</wsse: Security>
</soapenv: Header>
Agora Based Authorization

Separate authorization from authentication
 Agora Authorization Authority
can dynamically issue
tokens according to trusted resource request
 Flexible authentication at service side according to
handler configurations

Implement multiple grained resource access
control
 Token
can contain service operations or logic
operations
 Service side ACHandler implement access control
integrate with local security policy
Agora Internals
Tomcat+Axis
Agora Access Control Mechanism
User
Resource
Authentication Authorization
AC Policy
Mgmt.
Resource
Mgmt.
Interface
User
Mgmt.
Interface
Agora
Mgmt.
Authorization Engine
Resource Mgmt. Client
Tomcat+Axis
Resource Mgmt. Service
VRes ERes
Mapping
PT
User Mgmt. Client
Tomcat+Axis
User Mgmt. Service
User
Role Proxy profile
Name
AAA Client
Tomcat+Axis
Authorization
Authority
Service
SAML based authorization token
...
<Conditions NotBefore=" " NotOnOrAfter=" ">
<AudienceRestrictionCondition>
<!-- extended authorization info, such as info added by metaX service -->
<Audience>FILE PATH to local storage</Audience>
</AudienceRestrictionCondition>
</Conditions>
<!-- reference infomation help service side implementing access control -->
<Advice> ...... </Advice>
<AuthorizationDecisionStatement Decision="Permit"
Resource="vres://ed3ee2ed0d9ba0085db0fe8df40e8bd9:4b284f96f21f8fde00ba45
218c9e8eea">
user DN
<Subject>
<NameIdentifier>
O=Grid,OU=GOSTEST,OU=grid.org.cn,OU=linux.ict.ac.cn,CN=usr1
</NameIdentifier>
can be logical operations, such as “read”
</Subject>
and “write” that parsed by service side
<Action Namespace="0">ping</Action>
</AuthorizationDecisionStatement>
access control mechanism
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
<!-- signature related info algorithm, digest and signature value etc. -->
...
</ds:Signature>
...
Runtime construct (Grip, Grid Process)
for secured accessing the service

Dynamically created at runtime
 responding to user requests
 simple interfaces (5 in total)

Keep some information for reusing
 Load
and store proxy cert, user profile and service
address
 Destroyed until grip closed

Relay user’s invocation requests
 Extends
called service with an asynchronous
interface
 Cache the returned result, such as batch job query
status
Grip At Runtime
create
bind
grip
•uCert_p
Profile
invoke
crtl
(getResult)
close
•return
•cache
Physical Service
grip
authentication
uid/pass
Proxy, Profile
ERes name
VRes name, Token, PT
•resource
selection
Agora
•resource
Service
authorization
•uCert_p
•uCert_p
•uCert_pProfile grip Profile
Profile VRes
VRes
VRes Token
Token
grip Token PT
PT
PT
PRes
PRes
resource
Ret
locating
service
Network of Resource Routers invocation
Physical Service
Physical Service
Sample Code Using Grip
...
//define effective resource name
String effective = "eres://agora1:MService";
//new a gripclient object
GripClient testgripclient = new GripClient( );
//create a grip with user id, passwd and
//agora name want to login
UserHandle griphandle = testgripclient.create("usr1",
"agora1");
"usr1",
//bind the effective resource
int index = testgripclient.bind(effective, griphandle);
//invoke the bound service by resource index and
//pass the parameters required
parameters passed to
actual service
Object retvalue = testgripclient.invoke(index, "list",
new Object[] {"/"},
GripContainer.M_SYNCHRONIZED, griphandle);
...
//process the return value here
...
//close it, reclaim the resources used by grip
testgripclient.close(griphandle);
...
synchronization flag
VEGA GOS v2 Hosting Environments
Grid Portal and Grid Applications
Grid Portal Engine
Core, System And App Level GOS v2 Services
Axis Handlers For Message Level Security
Tomcat(5.0.28) +Axis(1.2 rc2)
J2SE(1.4.2_07), J2EE
OS (Linux/Unix/Windows*)
Intel or AMD based PC Server (Grid Server)
VEGA GOS v2
Deployment
Legacy
Applications
HPC Hosting Env.
To Other
Grid Nodes
To Other
Grid Nodes
Grid Node 3
(Xi’an)
Legacy
Applications
Grid Server
HPC Hosting Env.
Grid Node 2
(Shanghai)
Legacy
Applications
Grid Server
· Router service
· Agora service
· Grip service
· System and application level
services
· Grid portal based on Grid
Portal Engine (optional)
Grid
Server
HPC Hosting Env.
Grid Server
Grid Node 4
(Changsha)
Grid CA
Grid Server
Legacy
Applications
HPC Hosting Env.
Grid Node 1
(Beijing)
Grid Client
· General Web Browser
· and/or GOS Admin Tools
· and/or GOS API Based Grid
Application
Web Browser
Dedicated Client/
Grid Application Client
Conclusion

WS-Security Implementation and integrated into
VEGA GOS



Agora (VO, Community) Based Authorization


Loosely coupled
Multi-grained access control implementation
mechanism according to info carried by token


Header and attachment, Which one is the best place for
security info? (my opinion)
Implementations are different, how can be interoperable?
Adapt to resource provider side’s security mechanism
Runtime construct (Grip, Grid Process) for secured
accessing the service

Simple and easy to use
VEGA GOS v2 Roadmap

Time Schedule
 2005.3,
GOS v2 Alpha (prototype)
 2005.4, GOS v2 Beta (barely fixed)
 2005.5, GOS v2 release (include sample
application and full documents)
CNGrid: http://www.grid.org.cn/
VEGA: http://vega.ict.ac.cn/
GOS mailing list: gos@software.ict.ac.cn
Thanks!
Download