180 likes | 282 Views
SERVEI DE CRIPTOGRAFIA PER LA PLATAFORMA D ’ AGENTS MÒBILS JADE/MARISMA. Jordi Poveda Poveda Unitat de Combinatòria i Comunicació Digital. Index. Introducció Agents software Agents mòbils Plataforma MARISM-A Anàlisi i disseny Requeriments Interfície Implementació
E N D
SERVEI DE CRIPTOGRAFIA PER LA PLATAFORMA D’AGENTS MÒBILS JADE/MARISMA Jordi Poveda Poveda Unitat de Combinatòria i Comunicació Digital
Index • Introducció • Agents software • Agents mòbils • Plataforma MARISM-A • Anàlisi i disseny • Requeriments • Interfície • Implementació • Conclusions i linies de continuitat
Agents software • Agents software • Des de la IA: un programa que assisteix a un usuari i actua en el seu nom. • Agents software intel·ligents • Execució guiada per objectius • Capaços de reaccionar a canvis en el seu entorn d’execució • Les experiències passades repercuteixen en la seva execució futura
Agents mòbils • Cas particular dels agents software • Agents software amb mobilitat • Nou paradigma de programació distribuïda • Els agents es desplacen amb el codi i estat d’execució on resideixen les dades • Avantatges • Reduir càrrega de la xarxa • Paliar la latència de la xarxa (aps. temps real) • No es necessita una connexió permanent • Aplicacions • Sea-of-data • Comerç electrònic • Programació paral·lela
Problemes de seguretat • Eavesdropping • Alteració de codi i dades • Accés no autoritzat • Denegació de servei • Captura i reexecució • Problema dels hosts maliciosos
Funcions del SC • Desencriptar el codi i dades que els agents necessiten per executar-se en una agència de l’itinerari, amb la clau privada de la plataforma • Dotar a la plataforma de facilitats criptogràfiques • Convertir-se en un front-end pel JCE • Extensible • Independent de la implementació subjacent
Esquema de protecció doble • Cal evitar que els agents utilitzin la funció de desencriptar de forma inadecuada • Si m = paquet de codi i dades per una agència, l’agent envia D=Ek(m,hash(C),s(m)) • Possibles atacs: • Eavesdropping: No coincideix hash(C) • Alteració del codi: No coincideix hash(C) • Alteració de dades: La víctima no pot verificar s’(m’) • Alteració de codi i dades: Combinació dels anteriors
Funció decrypt funcio decrypt(sobre:DigitalEnvelope,id:Long):MARISMAData 1. Extreure del sobre: contingut xifrat, clau xifrada, alg. xifratge contingut i alg. xifratge de claus. 2. Desxifrar clau secreta amb la clau privada de la plataforma 3. Desxifrar contingut amb la clau secreta extreta 4. Deserialitzar contingut del sobre a un objecte MARISMAData 5. Si (no es una instància de MARISMAData) Llençar una excepció 6. Buscar a la taula dels hash del codi dels agents el corresponent a l’agent id 7. Si (no coincideix amb el hash(C) de dins el MARISMAData) Llençar una excepció Sino Retornar el MARISMAData a l’agent
CryptoAlgorithm • Algorismes: • La operació criptogràfica en si. • Nombre ilimitat.
CryptoMethod • Mètodes: • Gestió dels CryptoAlgorithms • Conversió de la clau de la seva codificació a un objecte • Nombre fix: Un per cada mètode de la interfície
ExtensibleCryptoService • Putting it all together: • Primera implementació completa de la interfície • Gestió dels CryptoMethods
Elecció d’un Provider • IAIK: Molt bon suport per sobres digitals PKCS#7 i altres estàndards PKCS. Gran quantitat d’algorismes. Comercial. • Cryptix: No suport per sobres digitals PKCS#7. Quantitat d’algorismes mitjana. D’ús lliure. • BouncyCastle: No suport per sobres digitals PKCS#7. D’ús lliure. Elecció: Cryptix
Conclusions • Han tingut molta més força les implicacions dels agents lligades a la IA que la seva vessant com agents mòbils. • Els problemes de seguretat posen un fre a la seva implantació. • El llenguatge JAVA presenta característiques idònies per la programació d’agents mòbils. • El Servei de Criptografia proporciona mecanismes per tractar alguns dels problemes.
Línies de continuïtat • Separar els mètodes del SC en tres mètodes d’operació: init, update i finish • Construir una aplicació amb agents mòbils que faci ús de les capacitats del SC • Migrar la implementació a multithreading • Extendre el suport als tipus de l’estàndard PKCS#7 i altres PKCS • Mètodes de creació/lectura de certificats