PresentacionPFC_ppt

27 de Feb de 2016
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
PresentacionPFC_ppt
1 de 38

Más contenido relacionado

Destacado

Charla de seguridad en dispositivos móvilesCharla de seguridad en dispositivos móviles
Charla de seguridad en dispositivos móvilesGissim
Con19 contrato auditoria_proteccion_datosCon19 contrato auditoria_proteccion_datos
Con19 contrato auditoria_proteccion_datosClubdelasesorIntersoft
Aplicaciones Móviles para Negocios | Incrementa Productividad Aplicaciones Móviles para Negocios | Incrementa Productividad
Aplicaciones Móviles para Negocios | Incrementa Productividad Hispanic Chamber of E-Commerce
seguridad de soseguridad de so
seguridad de soEduardo Sanchez Piña
CienciasCiencias
CienciasAlberto Bejarano
Conferencia Android Cparty11Conferencia Android Cparty11
Conferencia Android Cparty11jssernac

Similar a PresentacionPFC_ppt

Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisQuobis
Software libre y Sistemas de Información GeográficaSoftware libre y Sistemas de Información Geográfica
Software libre y Sistemas de Información GeográficaKudos S.A.S
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonManuel Pérez
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
Tecnologías clave para la transformación digital en las empresasTecnologías clave para la transformación digital en las empresas
Tecnologías clave para la transformación digital en las empresasQindel Group
Introducción a silverlightIntroducción a silverlight
Introducción a silverlightricardomeanaG9

PresentacionPFC_ppt

Notas del editor

  1. Hola a todos. Soy Adrià Navarro y a continuación realizaré al defensa de mi proyecto ESTUDIO E IMPLEMENTACIÓN DE UN FRAMEWORK DE DESARROLLO DE APLICACIONES CON FUNCIONES DE SEGURIDAD Y PRIVACIDAD PARA MÓVILES. El proyecto es el resultado de un convenio de cooperación educativa entre la UPC y la empresa Safelayer.
  2. Empezamos viendo las principales secciones en las que se estructurará la presentación: - Primero especificaré en qué contexto se ha realizado el proyecto. - Después introduciré algunos conceptos de seguridad informática importantes para comprender los aspectos clave de las funcionalidades. - Qué són las herramientas de desarrollo multiplataforma - Luego entraremos en las secciones de implementación: El framework desarrollado y la aplicación que se ha creado para validar su funcionamiento (en esta seccion veremos una pequeña demo). - Para acabar daré detalles sobre la planificación y - Unas conclusiones En el contexto se explicarán estos puntos
  3. La empresa Safelayer.. con la que se ha realizado en convenio está especializada en el desarrollo de productos software que utilizan la tecnología PKI (que explicaré en breve). Sus dos líneas de productos principales son Keyone y TrustedX (una plataforma de firma electrónica) El proyecto se emmarca dentro del plan avanza del ministerio de industria, y concretamente dentro del marco privacy...
  4. El estado del arte de los terminales móviles es que existe una gran presencia de dispositivos móviles inteligentes o smartphones pero sin embargo en el campo de la seguridad se encuentran bastante limitados y carentes de funcionalidades, tanto para los usuarios como los desarrolladores.
  5. Esto es justamente lo que motiva este proyecto, y por eso se quiere dar un framework multiplataforma que facilite a los desarrolladores crear aplicaciones con funcionalidades de seguridad. En concreto se ha creado un framework que permite la firma electrónica.
  6. Los objetivos, pues, son los siguientes: - Primero estudiar a fondo las tecnologías PKI, vitales para crear el framework. - Segundo estudiar las herramientas de desarrollo multiplataforma más usadas en el mercado actual. - Tercero desarrollar el framework de firma electronica incorporandolo a una de las herramientas anteriores - Cuarto desarrollar una aplicacion que utilice el framework creado y valide su correcto funcionamiento - Y por ultimo añadir algunas otras funcionalidades a la aplicación, concretamente integrarlo con servicios en la nube Google Drive y TrustedX.
  7. Ahora introduciré algunos conceptos de seguridad informática para facilitar la comprensión del proyecto.
  8. En cualquier comunicación entre dos personas o entidades a través de internet donde la seguridad puede estar comprometida se plantean las dudas de si realmente el mensaje se procede del que afirma ser el autor o de si una tercera persona puede haber modificado el mensaje original.
  9. Existe una manera de garantizar la seguridad digital de las comunicaciones mensajes y documentos. La infraestructura de clave publica, llamada PKI en inglés.
  10. La PKI es un conjunto de varias tecnologías que consigue securizar las comunicaciones. Entre ellas se encuentra la criptografía. Se basa en la confianza, es decir, existen una estructura de entidades que permiten garantizar la autenticidad de los autores de mensajes o documentos. Para poder validar esa autenticidad hay que confiar en ellas. Podemos encontrar PKI tanto en sitios de comercio electrónico, las principales entidades bancárias y gubernamentales, por ejemplo, el DNI electrónico utiliza tecnología PKI
  11. Qué elementos podemos encontrar? Los más conocidos sean quizas los certificados digitales, el cifrado o la firma electrónica. Pero todos ellos se apoyan en otros muchos elementos, lo que convierte a la PKI en una tecnología muy complicada. Lo que busca este proyecto es intentar facilitar la tarea de integración en los móviles de esta tecnología.
  12. Ahora veremos que son las herramientas multiplataforma, que provlema solventan y cual es la herramienta que se ha utilizado en este proyecto para integrar el framework.
  13. Si nos paramos a ver la oferta de móviles en el mercado es fácil observar que existen multitud de plataformas diferentes,algunas mas populares que otras, como apple android blackberry symbian o samsung bada... Esto implica que los desarrolladores tengan que invertir una gran cantidad de tiempo y recursos para alcanzar el mayor número de público posible. Ya que generalmente una aplicación se implementará de forma diferente para cada una de las plataformas.
  14. Las CPT son frameworks que permiten que una misma implementación funcione en diferentes plataformas. Siguen el principio write once run anywhere. Es decir, los desarrolladores únicamente tienen que escribir un código y éste código tiene que funcionar igual en varios dispositivos móviles, por ejemplo en un iOS como en un android como en un blackberry.
  15. Las webapps, que basicamente son páginas web adaptadas a los dispositivos móviles. Esto es multiplataforma porque basta con que el móvil disponga de una navegador web para ejecutar el código. Sin embargo esto impide que la aplicación se distribuya en los mercados oficiales (google play app store) porque no se puede INSTALAR. Las CPT nativas permiten escribir en lugar de usando código web, utilizando lenguajes nativos, por ejemplo C#. Para convertir esto en un codigo multiplataforma algunas CPT utilizan traductores de codigo fuente o runtimes (una capa intermedia entre el programador y el desarrollador). Esta aplicaciones se pueden distribuir en los mercados ya que se pueden instalar. Por ultimo las aplicaciones híbridas permiten crear apps con codigo web y que a su vez se puedan instalar, por lo tanto son distribuibles y monetizables.
  16. Después de un estudio exhaustivo se decidió utilizar PhoneGap. Ya que es híbrido por lo que permite crear aplicaciones monetizables. Tiene un coste 0 y se puede extender fácilmente, cosa que permite añadir el framework de firma como una funcionalidad más de PhoneGap
  17. A continuación explicaré qué framework se ha desarrollado, como se ha integrado con PhoneGap y las dificultades que me ha supuesto.
  18. La funcionalidad del framework es permitir la firma electrónica en el dispositivo móvil, mediante las claves de firma que almacena. Como ya he comentado, PhoneGap dispone de una API que permite acceder a los recursos nativos del telefono, como la camara los contactos o los sensores. El framework que se ha desarrollado se incorpora a esta API como un plugin más. Esto permite que el desarrollador pueda acceder a las funcionalidades de firma desarrolladas mediante una sencilla llamada JavaScript.
  19. En cuanto a el desarrollo de los plugins, se han hecho dos versiones: una para iOS y otra para Android, dado que son las plataformas que dominan el mercado. A pesar de que luego el desarrollador acceda a ellos mediante código web, para implementar los plugins se ha tenido que desarrollar con el lenguaje nativo de cada plataforma: Objective-C para iOS y Java para Android. Después se ha tenido que crear una API JavaScript que encapsule las llamadas a las funcionalidades nativas. Ésta es la API a la que accederá el desarrollador, independientemente de si está haciendo una app para iOS o para Android, para el es exactamente lo mismo.
  20. En cuanto a las dificultades: Tuve que invertir bastante tiempo en realizar un estudio de las CPT más usadas del mercado para finalmente escoger PhoneGap. Una vez escogido tuve que aprender a utilizarlo y más importante, a añadir a extenderlo con funcionalidades extra. Para realizar el plugin para iOS tuve que aprender a desarrollar con el lenguaje Objective-C y el framework Cocoa Touch. Para el plugin de Android no hizo falta una inversión tan grande ya que ya tenia experiencias previas. Con lo que no tenia tantas experiencias previas fue con el desarrollo web, necesario para implementar la API JavaScript así que tuve que familiarizarme con ellas. Y por ultimo tuve que hacer que ambas versiones del plugin se comportaran de la misma forma para ambas plataformas: Android y iOS.
  21. Una vez desarrollado el framework, hubo que probarlo para validar su funcionamiento. Ahora veremos como se probó, la arquitectura del sistema sus funcionalidades, que dificultades presentó y al final una pequeña demo.
  22. Para probar el framework se creó una aplicación con PhoneGap que lo utilizaba
  23. A grandes rasgos lo que hace es firmar documentos PDF. Para añadir a la aplicación tecnologías de actualidad se integró con servicios en al nube. Los documentos PDF en lugar de estar en el telefono se almacenan en Google Drive. Y también se ha incorporado al posibilidad de firmar con claves almacenadas remotamente mediante el producto TrustedX de Safelayer, que a su vez tambien actua de proveedor de identidad para realizar las autenticaciones en la aplicación.
  24. Y este es un esquema general de la arquitectura de todo el sistema. El usuario final tiene un smartphone con la aplicación phonegap que incorpora el plugin de firma. Este smartphone tambien almacena claves de firma del usuario. El usuario tambien esta autenticado en Google Drive y en TrustedX donde almacena los documentos PDF y otras claves remotas respectivamente. Todo esto se gestiona mediante un servidor intermedio cuyas funcionalidades también se han implementado Este servidor se encarga de gestionar las autenticaciones OAuth y descargar los documentos PDF. Utiliza una base de datos mysql para almacenar los datos de los usuarios.
  25. Ahora veremos las funcionalidades de la aplicación movil y despues las del servidor. La aplicacion permite autenitcarte mediante OAuth 2.0 con TrustedX como proveedor de identidad. De forma análoga a como lo hace Facebook, por ejemplo. Con un formulario basico de autenticación. Una vez autenticado, si el usuario esta logeado en Google tambien muestra los documentos que tiene almacenados en Drive. Cuando el usuario quiere firmar se llama a una de las funcionalidades del framework desarrollado para obtener los certificados de firma del dispositivo. Dado que el plugin por dentro es diferente en iOS y en Android el aspecto del selector de certificados tambien es diferente: este es el aspecto de Android y este el de iOS. Por último se realiza la firma con la clave que se ha seleccionado este en TrustedX o en el dispositivo.
  26. En cuanto a las funcionalidades del servidor, las principales son: Almacenar todos los token de las autenticaciones OAuth 2.0 tanto de Google Drive como TrustedX para todos los usuarios. A pesar de que la firma propiamiente dicha no se realiza en el servidor, sino en el movil mediante el framework o en TrustedX, el servidor compone los PDF firmados utilizando un framework un gestion de PDFs. La firma, al final, se realiza de forma diferida entre el movil o TrustedX y el servidor. Por ultimo tambien se encarga de bajar y subir los documentos de Google Drive. Estos documentos nunca viajan fuera del servidor, unicamente se mandan los bytes indispensables para poder calcular las firmas, y como acabo de comentar, despues se reciben los bytes de firma, se componen los documentos firmados y se suben de vuelta a Google Drive.
  27. Ahora veremos de forma rapida que tecnologías hay implicadas en las implementaciones tanto de la aplicacion movil como del servidor. Los entornos de desarrollo utilizados son los siguientes.
  28. Las dificultades con las que me he encontrado creando este sistema para probar el framework de firma han sido: Aprender a utilizar el producto de Safelayer TrustedX e integrarlo en el sistema. Aprender como funciona el protocolo OAuth 2.0 para poder realizar las autenticaciones y acceder a los recursos de TrustedX y Google Drive en nombre del usuario. Aprender a utilizar al API de Google Drive para poder utilizar su servicio de almacenamiento. Y por ultimo aprender a utilizar el framework de gestion de documentos PDF iText para componer las firmas, que de otra manera hubiera sido una tarea mucho mas pesada.
  29. Ahora veremos una demo de esta aplicación demostradora de las funcionalidades del framework asi como de sus servicios añadidos, TrustedX y Google Drive.
  30. Ya hemos acabado con la parte tecnica y ahora veremos como ha sido la planificación y ejecución del proyecto y un diagrama de Gantt.
  31. El proyecto empezó en abril de año pasado y acabó a finales de marzo de este año. Aproximadamente ha durado 11 meses a una jornada de 35 horas a la semana. Esta jornada se compaginaba con otras tareas de soporte a la empresa y con periodos de vacaciones.
  32. En este gantt podemos ver a grandes rasgos como se ha planificado el proyecto. Tiene una fuerte etapa de formacion e investigación seguida de las tipicas etapas de ingenieria del software. La documentación se fue generando a lo largo de todo el proyecto, en paralelo.
  33. Y ya para acabar daré las concusiones.
  34. Primero unas conclusiones técnicas sobre el proyecto: Hemos visto que la PKI es un conjunto de tecnologías muy complicado. Esto hace que sea muy dificil de integrar por un desarrollador no experto en el tema. En cuanto a las plataformas moviles, tampoco disponen de demasiadas funcionalidades de seguridad y tampoco faciles de utilizar. Tambien hemos visto que las CPT permiten alcanzar de forma facil muchas plataformas moviles a la vez. Pero en general todo este ecosistema admite muchas mejoras en el campo de la seguridad, tanto a nivel funcional como de usabilidad. El principal objetivo de este proyecto era comprobar que esto se podia solucionar.
  35. Respecto a las conclusiones personales, trabajar en Safelayer me ha brindado la oportunidad de experimentar el desarrollo en un entorno profesional, aprender sus metodologías de trabajo y experimentar con nuevas tecnologías.
  36. Y ya para acabar con las lineas futuras de desarrollo, respecto a la aplicación demostradora se para hacerla más versátil se pueden añadir nuevos servicios de almacenamiento, como dropbox o box y ver que su funcionamiento se mantiene igual. Y en cuanto al framework, una futura linea de desarrollo que ya se está definiendo en la empresa es la de dar un sdk movil orientado a clientes reales. Esto implicaría eliminar el servidor intermedio ya que es un obstaculo en cuanto a recursos y tambien añadir mas funcionalidades de la pki aparte de la firma electronica.
  37. Esto es todo, muchas gracias.