330 likes | 482 Views
Laurent Baduel, Arnaud Contes, Denis Caromel OASIS team http://www.inria.fr/oasis ProActive http://proactive.objectweb.org. Secure Distributed Objects for Grid Applications. Outline. Context ProActive overview Abstract Deployment model Security Model Security Entities
E N D
Laurent Baduel, Arnaud Contes, Denis Caromel OASIS team http://www.inria.fr/oasis ProActive http://proactive.objectweb.org Secure Distributed Objects for Grid Applications
Outline • Context • ProActive overview • Abstract Deployment model • Security Model • Security Entities • Security Policies • Example • Conclusion
The ProActive Middleware A Java API + Tools for Parallel & Distributed Computing • A uniform framework : Active Object (AO) pattern • one thread, owns passive objects, remotely accessible • Programming model : • groups, mobility, components, security • A formal model • Determinism, Insensitivity to deployment
Deployment Model • Virtual Nodes : • Identified as a string name, used in program source, configured (mapped) in an XML descriptor file • 2 distinct steps : Development Source Code Deployment XML Descriptor Active Objets VN VN Runtimes (JVMs) Hosts
A ProActive Application Virtual Node 1 Passive object Virtual Node 3 Active object Virtual Node 2
Multiple Deployment Issues Different Deployments Different Security Policies One Host Cluster Grid
Issues & Goals • Authentication of Computers, Users, and Applications • Creation, connection to, and monitoring of activities • Authentication, Integrity and Confidentiality (AIC) of communications • Several levels of security policies: users, resource providers, administrators Main objective : Facilitate the use and the management of security features by removing them from the source code
Outline • Context • ProActive overview • Abstract Deployment model • Security Model • Security Entities • Security Policies • Example • Conclusion
Security Entity Model • Generic definition, composed of a security manager and a protected object • Subject of security policies • Transparent for the protected object (meta object protocol) • No supposition on the protected object (runtimes, nodes, active objects, …) • Hierarchical structure
Security Entities • Security Manager: • Entity ID • Security Policies • Session Manager Negotiation protocol • Security Manager: • Entity ID • Security Policies • Session Manager Secured communications Normal communications Protected Object
Application Authentication • SPKI : • Certificate chain • No Certificate Authority Application certificate User certificate certificates for active objects, nodes Certificate chain
Hierarchical Security Policies Dn D0 Accept Deny Accept Deny Accept Deny Accept Deny Accept Deny Runtime VN AO Administrator policy • Security policy is defined according all matching rules from: • Domains / Runtime • Virtual Node • Active Object Application-level policy Final Security policy Resource provider policy
Interactions: JVMCreation NodeCreation CodeLoading ObjectCreation ObjectMigration Request Reply Listing Entities: Domain User Virtual Node Object Security Rule Entities -> Entities : Interactions # Security Attributes • Attributes: • Authentication • Integrity • Confidentiality • Each attribute can be: • Allowed • Optional • Disallowed
DescriptorSecurity Model • A key principle: • Specify security policies in the XML deployment, NOT IN SOURCE CODE ! • In program source: • Virtual Node (VN, a string name) • In XML descriptors: • List of policy rules between virtual nodes, runtimes, domains, …
Security Example • 2 domains GridA & GridB with security policies • Domain [GridA] -> Domain [GridB] : Q,P,M # [+A,+I,+C] • Domain [GridB] -> Domain [GridA] : Q,P,M # [+A,+I,+C] • Application : • 2 Virtual Nodes (vn1,vn2) • 2 Active objects
Descriptor with Security VirtualNodes: vn1, vn2 SECURITY: VN [vn1] -> VN [vn2] : Q,P # [?A,?I,?C] VN [vn1] -> VN [vn2] : M # Forbidden VN [vn2] -> VN [vn1] : Q,P # [?A,?I,?C] VN [vn2] -> VN [vn1] : M # Forbidden Domain [GridA] -> Domain [GridB] : Q,P,M # [+A,+I,+C] Domain [GridB] -> Domain [GridA] : Q,P,M # [+A,+I,+C] Mapping: vn1 --> GridAComputers, GridBComputers vn2 --> GridAComputers JVMs: /…/
Example: std. code, no security /…/ proActiveDescriptor.activateMappings(); vn1 = proActiveDescriptor.getVirtualNode("vn1"); vn2 = proActiveDescriptor.getVirtualNode("vn2"); /…/ Flower rose = (Flower) ProActive.newActive(Flower.class,new Object[]{« Rose »}, vn1.getNode()}; Flower daliah = (Flower) ProActive.newActive(Flower.class,new Object[]{« Daliah »}, vn2.getNode()}; /* next VN1 node inside the same domain */ rose.migrateTo(vn1); /* communication inside the same domain */ rose.sayHelloTo(daliah); /* next VN1 Node, other domain */ rose.migrateTo(vn1); /* communication with another domain */ rose.sayHelloTo(daliah); /* other virtual node, forbidden */ rose.migrateTo(vn2);
Example Domain GridA Domain GridB Policy rules database VN1 Runtime VN2
Example Domain GridA Domain GridB Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - same VN - same domain Can I migrate to the next VN1 node ? Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - same VN - same domain 1 - Retrieve VN policy 2 - migration allowed Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - same VN - same domain Policy rules database VN1 Runtime VN2
Example Rose Daliah Negotiated Policy: Rose -> Daliah : [?A,?I,?C] Domain GridA Domain GridB Migration : - same VN - same domain Receive a method call : Daliah -> Rose : [?A,?I,?C] Perform a method call Rose -> Daliah : [?A,?I,?C] Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - same VN - same domain VN1 Runtime Policy rules database VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - same VN - other domain Can I migrate to the next VN1 node on GridB domain? Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - same VN - other domain 1- VN1 policy -> none 2- GridA -> GridB : [+A,+I,+C] 3- migration with [+A,+I,+C] Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - same VN - other domain Policy rules database VN1 Runtime VN2
Example Rose Daliah Negotiated Policy: Rose -> Daliah : [+A,+I,+C] Domain GridA Domain GridB Method call : - other VN - other domain From Rose --> Daliah Receive a method call : Daliah -> Rose : [+A,+I,+C] Perform a method call Rose -> Daliah : [+A,+I,+C] Policy rules database VN1 Runtime VN2
Example Rose Daliah Domain GridA Domain GridB Migration : - other VN From Rose --> Daliah NO ! Migration to VN2 ? VN1 -> VN2 : [-M] Policy rules database VN1 Runtime VN2
Conclusion • Transparent to application • Take care of a hierarchy of security policies • Security can be adapted to application deployment
Thank you for your time Questions ?