Grid Security in Practice: John Watt
Grid Security in Practice: John Watt
John Watt
http://csperkins.org/teaching/2004-2005/gc5
Overview
• Authentication • Privacy
– checking you are who you say you – making sure the data is
are subsequently used securely
• Authorisation • Integrity
– allowing you to do only what – making sure your data isn’t
you’re allowed to do corrupted
• Audit/accounting • Fabric management
– checking what you’re doing and – ensures minimal impact from other
when applications’ security faults
• Confidentiality • Trust
– making the data you use secure – how much we expect you to do
what we asked with what we gave
you
Copyright © 2004 University of Glasgow
Options?
• Kerberos
– Authenticates users through a secure transaction with a centrally
maintained key server
– Designates trustworthy key servers in other organisations
• Mechanism for inter-organisational authentication
• OK, but
– Sites need to negotiate many cross-realm authentication agreements
• Surrenders too much control of the local security policy.
• Requires organisation to be completely ‘Kerberos’
– Inter-site AND intra-site communication
Copyright © 2004 University of Glasgow
Options?
• Two parties have certificates and they both trust the CAs that
signed them
– They can now prove to each other that they are who they say they are
– In GSI, this process is called mutual authentication
• GSI uses SSL (now known as TLS) for its mutual authentication protocol
• Once mutual authentication is performed, GSI steps aside so communication
can occur without encryption/decryption overheads
• GSI can be used to establish a shared key for encryption if confidential
communication is desired
– e-Health and e-Commerce projects particularly desire this
• GSI Integrity may also be turned on
– data is readable but unchangeable by an intruder (less overheads than encrypting
messages all the time
Copyright © 2004 University of Glasgow
Mutual Authentication process
• Format:
– “<Grid DN of user>”<space><local account name>…
• DN must be in quotes as the surname tends to get chopped off if you miss it out
Copyright © 2004 University of Glasgow
Grid Security Infrastructure
• Remember (Lecture 4)
– GT2 performed client-to-service delegation through a third party (the
gatekeeper)
– GT3 has removed this level of indirection through the use of Web Services
with more secure results…
Copyright © 2004 University of Glasgow
GT3 Security Enhancements
(1) (2)
MMJFS
User Grid-
Factory mapfile
Account
User
Host
Proxy Setuid
(3) Creds
Starter
(6)
(4)
LMJFS
GRIM
User Creds
Account (5)
MJS Job
Copyright © 2004 University of Glasgow
Resource
Step 1
• Client signs this request with their proxy credentials and sends to
the Master Managed Job Factory Service (MMJFS) on the remote
resource.
Copyright © 2004 University of Glasgow
Step 2
• setuid starter
– a small setuid program running with root privileges that has the SOLE
function of starting the LMJFS in the user's account.
• Security!!
Copyright © 2004 University of Glasgow
Step 4
• Subject Policy
– Specifies the domain (specified as an LDAP subtree) of users who may be
granted roles within the PMI
<SubjectPolicy>
<SubjectDomainSpec ID=“MyCompany”>
<Include LDAPDN=“o=My Organisation,C=GB”/>
<Exclude LDAPDN=“ou=OtherCompany,o=MyOrganisation,C=GB”/>
</SubjectDomainSpec>
<SubjectDomainSpec ID=“everyoneElse”>
<Include LDAPDN=“”/>
</SubjectDomainSpec>
</SubjectPolicy>
Copyright © 2004 University of Glasgow
PERMIS Policy
<SOAPolicy>
<SOASpec ID=“MyCompanyAdmin” LDAPDN=“cn=Admin,o=MyOrganisation,C=GB”/>
</SOAPolicy>
Copyright © 2004 University of Glasgow
PERMIS Policy
<RoleHierarchyPolicy>
<RoleSpec OID=“1.2.345.0.1.321432.1.1.14” Type=“permisRole”>
<SupRole Value=“Boss”>
<SubRole Value=“Slave”>
</SupRole>
<SupRole Value=“Slave”>
</RoleSpec>
</RoleHierarchyPolicy>
Copyright © 2004 University of Glasgow
PERMIS Policy
• Target Policy
– Specifies the target domains covered by this policy
– Give the name of your Grid Service you want to protect here
<TargetPolicy>
<TargetDomainSpec ID=“MyCompanyGridService”>
<Include URL=“http://localhost:8080/ogsa/services/GridServices/
core/first/MyCompanyGridService”/>
</TargetDomainSpec>
</TargetPolicy>
Copyright © 2004 University of Glasgow
PERMIS Policy
• Action Policy
– Defines the actions (operations on targets) supported by this policy
– Lets say the MyCompany Grid Service operates the doors in the
MyCompany building…
– ‘Name’ is the specific command to perform the action
<ActionPolicy>
<Action Args=“MyCompanyGridService” Name=“lockMainDoor”/>
<Action Args=“MyCompanyGridService” Name=“unlockMainDoor”/>
<Action Args=“MyCompanyGridService” Name=“lockOfficeDoor”/>
<Action Args=“MyCompanyGridService” Name=“unlockOfficeDoor”/>
<Action Args=“MyCompanyGridService” Name=“getMainDoorStatus”/>
<Action Args=“MyCompanyGridService” Name=“getOfficeDoorStatus”/>
Copyright © 2004 University of Glasgow
</ActionPolicy>
PERMIS Policy
<TargetAccessPolicy>
<TargetAccess ID=“public”>
<RoleList/>
<TargetList>
<Target Actions=“getMainDoorStatus,getOfficeDoorStatus”>
<TargetDomain ID=“MyCompanyGridService”/>
</Target>
</TargetList>
</TargetAccess>
<TargetAccess ID=“slaves”>
<RoleList>
Copyright © 2004 University of Glasgow
<RoleType=“permisRole” Value=“slave”/>
</RoleList>
<TargetList>
<Target Actions=“unlockOfficeDoor,lockOfficeDoor”> etc…
PERMIS Policy
• Final policy is all the above code sandwiched together and then
stored in your LDAP server
• A PERMIS DTD has been published, and is included in every
XML PERMIS policy
– Creators were using IBM Xeena and Microsoft IE which didn’t support
schemas
• Allows ACs to be created for each user (and SOA) in the LDAP
repository
• The policy just created should be embedded in the certificate and
stored in the SOA node.
– Specify Common Name (CN) of User
• ‘Holder’ is the LDAP DN of the Administrator
– Specify serial number for this certificate
• Make this the same number as the final number of the OID
– Will get OID from a member of staff when you are ready…
– Load your policy into the PA
– Create and sign the certificate
Copyright © 2004 University of Glasgow
PERMIS ADF
• VOMS
– Virtual Organisation Membership Service
• Provides info on the user’s relationship with their VO
– Supports
• Single login with voms-proxy-init at the beginning of the session
• Expiry time
• Backwards compatible with non-VOMS services
– Logging in to multiple VOs creates “aggregate” proxy certificates that
allow access to all the resources
– Is basically an account database which serves your credentials in a special
format (VOMS credential)
Copyright © 2004 University of Glasgow
And more
• And finally…
Copyright © 2004 University of Glasgow
Programming Exercise News
– This is due to the machines being configured specially for PERMIS right
now.
– You may try it in the order given in the exercise, but you may have trouble
when switching between the two implementations
• So please try the PERMIS work before attempting the GSI stuff
Copyright © 2004 University of Glasgow