120 likes | 134 Views
Learn about security mechanisms of Remote Procedure Call (RPC) including Private-Key and Public-Key methods, key distribution, Kerberos system, identification, authentication, encryption, authorization, and more. Explore asymmetric cryptography, access control, and authentication protocols.
E N D
Security aspects of RPC • Mechanisms: • Private-Key-Method (symmetric) • „Data Encryption Standard“ (DES) • Use of a „Key Distribution Center“ with session keys on the base of private keys • Setup of conversation contexts during Binding • Public-Key-Method (asymmetric): RSA • Identification and authentication • Identification during Binding • Authentication: Verification of identity of a called object instance and also of server during distribution of session keys
Encryption KeyRequest (C,S) Client C (with key K1) Key distribution center generates CS(S1,S2) • Example: System „Kerberos“ with DES • used in OSF DCE Response ( {{CS}K2, {CS}}K1 ) CS {CS} K2 Message( {<RPC>}CS, {CS} K2 ) Server S (with key K2) Response ( {<RPC-result>}CS ) CS Message( {<RPC>}CS) Response ( {<RPC-result>}CS )
Identification and authentication • Identification: • Presentation of a explicit identifier • Assignment and name construction important during Binding (compare with name server) • Authentication: • Verification of identity via presentation of a secret identifier • Using of private keys (for instance, from password) • Authentication of the client and of the server via decryption of the (session) key • Key distribution point: authentication service • Additionally: timestamp for prevention of message repeats
Security aspects of RPC • Possible guaranties: • Bugging, modification, call repeat and call initiation prevented • Identity of communication partners guaranteed • tolerable performance losses • Traffic density analysis possible • Security classes of DCE RPC • Authentication during Binding • Authentication for each call • Authentication for each packet • Defense against message modification (encrypted control sum) • Full-state encryption
Asymmetric crypto-method with public keys • KD - secret key for decryption • KE - public key for encryption • nonreversible function F(KD) = KE Client C Server S Calculation and delivery of private keys secret: KD_C public: KE_S secret: KD_S public: KE_C KE_S(M) M=KD_S(KE_S(M)) Message M transmission M=KD_C(KE_C(M)) KE_C(M)
Authorization • Awarding and control of access rights: • Capabilities for Client or • Access control lists for Server „Subject“ Meier Müller Huber RPC Server read write „Object“ read read File Server read write - - Access control lists (ACL) Name Server read write read read Capabilities
Access control list example Call: dynamic rights control DocumentServer usr_obj /.:/sec/principal/Meier : rwid foreign_user /.../firm_z.de/sec/principal/Müller : r--- group_obj /.:/sec/group/Dept_1 : rwi-
Implementation example Security Server Authentication Account Server Client (Cash desk) Authori- zation Meier: rx Müller:rwx Encrypted transmission - Control of identity of communication partners - Defense against bugging, manipulation, illegal access - Conformant to standards (for instance, DES and IDEA-algorithms)
Security Service: architecture Client Security Service Server Login-Facility ACL Editor Application server Application client Security Server ACL Manager Authentication protocol Authentication protocol Authentication protocol CORBA- runtime-system CORBA- runtime-system CORBA- runtime-system Login-Facility: Password control and generating of a private key Authentication protocol: Processing of distributed authentication ACL Manager: Control of access rights of a client on the server site ACL Editor Definition and manipulation of access rights
Security Service: Authentication 1. Phase:Login Authenticate Security Server Client “ticket granting ticket” (TGT) with encrypted Client Key (Login- Components) “ticket granting ticket” (TGT) (Privilege Server) “privilege attribute certificate” (PAC) • Client sends authentication query to the Security Service • Security Service generates TGT and encrypts that with Client Key (from password) • If client identity is correct, then client can encrypt the TGT (inclusive add-on information) • Client sends TGT (newly encrypted) to the Privilege Server (Security Service) • This is a proof for correct identity; client receives PAC and is authenticated
Security Service: Authentication 2. Phase:Call of a server Security Server Requests a Ticket Client Ticket (Privilege Server) Application server Call (Ticket) Answer (ACL Manager) • Authenticated Client requests a Ticket for the application server from the Security Service • Security Service controls identity and awards the Ticket • Client carries out a call (internal further steps to mutual authentication) • ACL Manager of the server controls the authorization (<Client,Operation> in ACL contained?) • Server carries out the call and delivers the results • Communication generally encrypted (however compromise: security vs. performance)