180 likes | 307 Views
Trust Group Communication. Team Challenger Feb 1 st 2005. Secure Trust Group Communication Review. Paper Reference Towards Flexible Credential Verification in Mobile Ad-hoc Networks. Keoh et al., POMC 2002 Aims Trust assertion
E N D
Trust Group Communication Team Challenger Feb 1st 2005
Secure Trust Group Communication Review • Paper Reference • Towards Flexible Credential Verification in Mobile Ad-hoc Networks. Keoh et al., POMC 2002 • Aims • Trust assertion Each user maintains a key ring which comprises the list of the public keys trusted to sign assertion statement
Key Management • Secure channel to expand trust group • Public and private key pair: RSA • Broadcast to trust group • Symmetric key: DES KB+ (m, KA (m)) KA KB+ m m KB KA+
Trust group problems:` • Trust Transitivity • Broadcast among trust group • How to ensure secure communication in trust group Senior member Junior member
Junior Temporary Trust Trust Senior Permanent Trust Key Trust Session Generate new session key Grant session key M2MI Return Omnihandle Return Multihandle Key Ring Design
Key Ring Features M2MI /** * Return omnihandle * * @param TrustObject */ public Trust getAllhandle (TrustObject receivedTrustObject){ M2MI.export (receivedTrustObject, Trust.class); Trust allPersons=(Trust) M2MI.getOmnihandle (Trust.class); return allPersons; }
/** * Return a multihandle */ public Trust getMyTrustMultihandle ( ){ //get a multihandle Trust myTrust =(Trust) M2MI.getMultihandle(Trust.class); for (int i=0; i<allMyTrust.size( ); i++){ //Search my trust container TrustIdentifier temp= (TrustIdentifier) allMyTrust.elementAt(i); TrustObject to=new TrustObject (temp); /** * Attach TrustObject */ myTrust.attach(to); } return myTrust; }
Key Ring features synchronization /** * @param TrustIdentifier * @param long */ public void setJuniorTrust (TrustIdentifier ti, long l) { long lease=1000*l; Long Llease=new Long (lease); synchronized (hTrustJunior){ hTrustJunior.put(ti, Llease); /** *execute lease timeout */ tmr=new Timer(); tmr.schedule(new timeoutTask(hTrustJunior, ti), lease); System.out.println("Added to Junior Collection"); } }
Why Session Key? • Enhance Security • Fights the middle man attack • Updates periodically and upon member leaving • Multiple algorithm is harder to break • Achieve trust group function • Save time
Key Ring Session Key • Update Session Key • Once a member leaves, blacklisted or removed, generate new Session Key—an array of 16 keys • Forward for encryption • Backward for decryption • Grant Session Key • Upon request • Upon request, lookup KeyRing, Password is RSAPublicKey, • if false deny grantSessionKey, If true grantSessionKey • Broadcast sender encrypt, send • Broadcast receiver receives, requests decryption key, decrypt
DES 56 bit key Initial Permutation Initial permutation 28 bit 28 bit Round 1 Li-1 xor f(Ri-1, Ki) rotate rotate Round 16 Final permutation 48 bit key
Improvement and Extension • Key Ring – trusted identifier • Junior member time out • Session key update • If a member is blacklisted • If a member leaves • If a member is removed • Grant Session key check • Password is publickey • Blacklist – malicious identifier
Completed Tasks • Trust • Encrypt/Decrypt/Verify Certificate • Manage Key Ring and Black List • Key Ring • Black List • RSAfactory • DESfactory
What is next? • Visualization • Monitor • Simulator
Risk Analysis • Monitor • We recently decided to have GUI • Simulation • Currently, simulation is among limited users with low complexity • Automation • Currently simulation is manually operated by command line input