Chapter 3. Methodology
3.1 Comparative case study strategy
Se entiende que el proyecto pretende ser un ejemplo de la viabilidad de construir un sistema de control de acceso apoyado en las tecnologías libres que se encentran en el mercado, es por esto que dentro del desarrollo del producto se identificaron algunas características que aportarían un gran valor al producto, y sería pertinente que en un futuro se contara con una versión que las incluya, algunas de ellas son:
El usuario pueda identificarse con una forma alterna a la forma de identificación con que cuenta el sistema de forma predefinida.
El sistema Envíe notificaciones de accesos prohibidos a los administradores del sistema. Generación de Reportes de las estadísticas de cada una de las unidades.
El sistema permita hacer búsquedas de eventos por tipo y periodo de tiempo. Las unidades de acceso puedan ser administradas de forma remota.
El sistema pueda funcionar en clúster.
Cuando por alguna razón el servidor esta fuera de línea, cualquier unidad del sistema esté en la capacidad de asumir los servicios que el servidor central presta a todo el sistema. Cuando exista un alto volumen de información que llega el servidor y que congestione la
red, cualquier unidad del sistema esté en la capacidad de asumir los servicios que el servidor central presta a todo el sistema mientras se libera la congestión en el tráfico de datos.
Conclusiones
El análisis y diseño son la parte más importante del desarrollo de software, puesto que al hacer una plantificación detallada se reducen los tiempos de desarrollo y teniendo clara la arquitectura permite organizar y distribuir mejor los componentes relacionados, de forma tal que el sistema puede crecer fácilmente sin perderse el control sobre cada componente, así mismo al reconocer claramente las funcionalidades comunes se reduce la redundancia de código.
La documentación del código es esencial para poder entender y recordar las funcionalidades de cada clase, así como su utilidad y dominio sobre el negocio, permitiendo encontrar y corregir fácilmente los errores.
La estandarización de los nombres de las clases y las tablas reduce la complejidad del sistema al reunirlas por funcionalidades permitiendo una administración más sencilla.
El uso de archivos de configuración permite hacer modificaciones en las funcionalidades del sistema de forma tal que se puede cambiar el comportamiento de la aplicación rápidamente, también añaden características dinámicas extra.
Es importante mantener limpia la memoria usada, removiendo los objetos innecesarios, esto aumenta el desempeño de la aplicación y es fundamental en entornos embebidos.
Para una funcionalidad especializada es preferible tomar tiempo para buscar una implementación ya existente, y no emprender un desarrollo ya que el uso de bibliotecas dinámicas reduce considerablemente el tiempo de desarrollo.
La implementación de la capa SSL minimiza los riesgos inherentes a la transmisión de datos. Durante el proyecto se presentaron falencias en la definición de tiempos y esfuerzos para construir
el software a base de los requerimientos identificados, en la fase de cierre del proyecto se puede observar como la mala planeación del primer Sprint represento una sobreesfuerzo en tiempo, una mayor cantidad de errores y un tiempo mayor para la resolución de dichos errores a diferencia de los Sprints subsiguientes.
La metodología Scrum permitió evidenciar las falencias y corregirlas de forma oportuna durante la fase de desarrollo del producto, a su vez a medida que pasaban los Sprints, equilibrar las cargas de trabajo y esfuerzos requeridos por cada recurso para llevar a cabo las tareas planeadas.
El enfoque de “servicio” que se le dio a la forma de funcionar de cada una de las unidades que conforman el sistema permitió que el sistema en si sea escalable en hardware, ya que es adaptarlo a el número de las unidades requeridas para el funcionamiento del sistema.
El uso de motores de bases de datos NoSql permite una gran adaptabilidad a los cambios que surgen en el transcurso de la construcción del software como de los posibles cambios en los requerimientos iniciales; A diferencia de las bases relacionales donde los cambios en las estructuras de persistencia conllevan a mayores tiempos en la adaptación funcional por parte de los componentes desarrollados.
Las tecnologías libres que se encuentran en el mercado actual como el Raspberry Pi, tienen un gran potencial para ser usadas como puntos de integración entre diversas tecnologías más robustas como los lenguajes de programación, motores de Bases de datos y aplicaciones web.
Recomendaciones
Ya que el sistema es distribuido y no tiene reloj global, se recomienda implementar servicios NTP y configurar los diversos sistemas con dicho protocolo.
Se recomienda implementar SNMP y SYSLOG para la revisión extra de los dispositivos y el servidor en redes locales, una de las herramientas libres disponibles que permiten dicha integración es NAGIOS.
Para redes WAN o esquemas Cloud se recomienda la creación de CRON para la realización de tareas de mantenimiento como son: limpieza de registro de log, reinicio programado de procesos, actualización automática, etc.
Se recomienda el uso de logrotate, realizar labores de hardering sobre los servicios asociados al sistema y la revisión periódica de las políticas de firewall local de cada dispositivo.
Si el sistema servidor se publica en internet, se recomienda el uso de IPS, IDS y registro de eventos de seguridad con equipos especializados.
Bibliografía
CRAIG, Larman. UML y patrones. Introducción al análisis y diseño orientado a objetos 2a edición, 2003.
FALKNER, Jayson y JONES, Kevin. Servlets and JavaServer Pages™: The J2EE™ Technology Web Tier. Addison Wesley, 2003.
KURNIAWAN, Budi. Java for the Web with Servlets, JSP, and EJB: A Developer's Guide to J2EE Solutions. New Riders Publishing, 2004.
MARCHAL, Benoit, XML con ejemplos. Pearson Education. Mexico. 2001.
PRESSMAN, Roger S. Ingeniería del software. Un enfoque práctico MacGraw Hill, 2005 6ta Edición.
WEITZENFELD, Alfredo. Ingeniería de Software orientada a objetos con UML, JAVA e INTERNET. México: Thomson, 2005.
PROTOTIPO DE SISTEMA DE CONTROL DE ACCESO
DISTRIBUIDO CON TECNOLOGIAS LIBRES
Javier Alfonso. Alvaro Ronderos
Ingeniería en Telemática, Universidad Distrital Francisco José de Caldas, [email protected]
[email protected] Abril de 2015, Bogotá, Colombia
Resumen
- Este documento provee una vista general de los aspectos técnicos de la propuesta de grado
PROTOTIPO DE SISTEMA DE CONTROL DE ACCESO DISTRIBUIDO CON TECNOLOGIAS LIBRES. Este proyecto busca aprovechar las ventajas de las tecnologías libres para desarrollar un prototipo de sistema distribuido que permita el control de acceso en las organizaciones de tal forma que pueda adaptarse a diferentes contextos de seguridad; Sea escalable y económico de implementar.
Palabras claves- control de Acceso, desarrollo de software libre, la tecnología Java, los sistemas distribuidos, la seguridad física de las organizaciones y las Bases de datos.
1. INTRODUCCIÓN
La seguridad de los activos es uno de los ítems más importantes dentro de los planes de seguridad implantados por cada organización, en la actualidad las empresas y organizaciones comúnmente delegan la función de seguridad en terceros, generalmente una empresa de seguridad privada, estas empresas de seguridad se encargan de salvaguardar las instalaciones de las organizaciones y en algunos casos un cierto control en el acceso a las instalaciones por parte de
extraños. sin embargo el nivel de acceso privilegiado sobre ciertas áreas, recursos o activos de la empresa es tratado de forma trivial en muchos casos y en otros hace parte del plan general de la organización enfocado a la seguridad de los activos de información con que cuenta la empresa, la forma de control es mediante sistemas como el RFID (Radio Frequency IDentification, en español identificación por radiofrecuencia) que es un sistema de almacenamiento y recuperación de datos remoto que usa dispositivos denominados etiquetas, tarjetas, transpondedores o tags RFID. El propósito fundamental de la tecnología RFID es transmitir la identidad de un objeto (similar a un número de serie único) mediante ondas de radio. Las tecnologías RFID se agrupan dentro de las denominadas Auto ID (automatic identification, o identificación automática). Esta clase de tecnología permite garantizar el acceso, sin embargo no garantiza la identidad de quien accede, lo que representa una gran falencia, en el otro extremo se tienen los sistemas de control de acceso, con lectores biométricos, que cuyos esquemas de seguridad permiten controlar que a determinadas áreas de la organización solo ingresen las personas autorizadas. En estos sistemas de control de acceso se usa la huella digital, u otra cualidad diferencial, a manera de llave o pase de entrada por lo cual es plenamente identificable la identidad de las persona que intenta obtener acceso.
Los sistemas de identificación biométrica son esencialmente software que corre sobre un equipo que permite la identificación inequívoca de personas,
base de datos. Estas características físicas individuales no pueden ser falsificadas fácilmente. Habitualmente estas lecturas biométricas se basan en las características de las huellas digitales o cualquier otro identificador biométrico.
Para proveer movilidad al sistema de identificación de forma que permita ser transportado e instalado fácilmente, este debe cumplir con ciertas características como: ser liviano, permitir conectarse por diversos medios, poseer respaldo de datos externo, permitir guardar registros de transacciones, sincronizar las transacciones cuando se encuentre de nuevo en línea, permitir adicionar nuevo hardware de control, y las demás características de un sistema distribuido.
2. DESCRIPCIÓN DEL PROBLEMA
Las empresas se ven abocadas en la actualidad a proteger activos de gran valor para sus organizaciones, los controles establecidos para salvaguardar dichos activos no suelen ser muy efectivos ya que en gran parte se ven limitados por los proveedores de soluciones de seguridad, quienes en muchos casos no cuentan con productos adaptables a la necesidad de cada cliente, o en otros casos son muy costosas para ser implementadas, lo que limita a las empresas para establecer un esquema de seguridad adecuado y a su vez contribuye a que no puedan tener controles adecuados eficientes que se traduce en pérdidas de activos, como perdidas de información o fugas de información.
Las soluciones que ofrecen los proveedores de tecnología del área de la seguridad presentan costos elevados para ser implementadas porque dependen de una inversión económica para la adecuación de la infraestructura física, contratos de servicio por periodos de tiempo prefijados, cobros asociados a licencias de tecnologías propietarias con periodos de expiración y costos ocultos en la actualización de los esquemas de seguridad como lo menciona John LaFond en su
Licensing’:
“Al ampliar o actualizar los sistemas, todos los clientes son susceptibles a una amplia gama de honorarios por licencia (además de cualquier costo laboral o de hardware) que puede aumentar significativamente la cantidad que usted está pagando por las mejoras o actualizaciones de tecnología que su empresa quiere y necesita. Los costos ocultos pueden provenir de tarifas de servicios cloud, cliente o cobros de licencias de base de datos, comisiones por licencias de hardware, o cualquier combinación de éstos. Esto significa que cualquier momento que desee ampliar el número de puntos de acceso, implementar la integración de vídeo o tal vez actualizar su sistema con control de acceso al ascensor, le podría costar en múltiples niveles.” [1]
Los controles de seguridad que se ofrecen en la actualidad presentan problemas para las organizaciones debido a que no siempre es posible de adaptar la solución tecnológica a las necesidades de cada organización, la mayoría de soluciones no están enfocadas en las normas de calidad sino en el control de acceso a áreas y presentan dificultades en la escalabilidad del sistema a medida que la organización crece o cambia.
“La seguridad física para diferentes ubicaciones puede requerir variaciones en la implantación de las medidas que permitan que se adapten a las peculiaridades de cada sede o infraestructura. Por ello, niveles de protección deseables pueden variar dentro de una misma organización. Es recomendable implantar un sistema de gestión maduro, que evite redundancias en contratos y servicios, y que, por otra parte, no deje ningún activo sin salvaguardar, adaptándose a las necesidades específicas de cada lugar y los cambios de las amenazas en el tiempo.” [2]
alternativa a las soluciones actuales del mercado, que sea económica, confiable y adaptable a las empresas interesadas en proteger la integridad y confidencialidad de sus activos por medio de control de acceso?
3. OBJETIVOS
En la propuesta de grados se pretende cumplir los siguientes objetivos:
3.1. Objetivo General:
Desarrollar un prototipo de sistema de control de acceso distribuido de software libre, adaptable y de bajo costo de implementación.
3.2 Objetivos Específicos
Analizar los requerimientos para el desarrollo del sistema de control de acceso.
Diseñar una solución tecnológica que cumpla con los requerimientos identificados.
Desarrollar un prototipo de solución tecnológica para el control del acceso que permita ser usada con propósito general, que sea adaptable a diferentes contextos dentro de las organizaciones, permita la escalabilidad y adaptación a diversos componentes de hardware como lectores biométricos, teclados numéricos, tarjetas RFID o etiquetas NFC.
Implementar una solución Tecnológica que no tenga costos asociados al licenciamiento de las tecnologías utilizadas.
Probar el prototipo en la empresa A & G Tecnología para comprobar que el sistema desarrollado cumple con los objetivos planteados.
4. MARCO TEORICO
para el desarrollo del proyecto, teniendo en cuenta que son software libre y patrones de diseño disponibles para su uso.
4.1. Arquitectura MVC (Modelo vista Controlador). Fue descrita por primera vez en 1979 en el documento
“Applications Programming in Smalltalk-80(TM): How to use Model-View-Controller (MVC)” [3]. Dirigido al lenguaje de programación Smalltalk. Usada como el patrón clásico para aplicaciones donde el usuario interactúa constantemente con el sistema, “La arquitectura de diseño MVC (iniciales en inglés de “Model View Controller” o “Modelo Vista Controlador”) provee un mecanismo que posibilita separar los datos (el modelo) de la forma en que estos serán visualizados (la vista) Usando un puente entre los dos (El controlador)”[4], lo anterior se puede
observar en la figura 1.
Figura 1: Arquitectura MVC.
4.2 Arquitectura de un sistema distribuido bajo el patrón MVC:
En la figura 2 Se marca la disposición común con el cual se desarrolla un sistema distribuido bajo la arquitectura o patrón MVC, se muestra la forma en que interactúan las tres capas de información, se debe denotar que el usuario del sistema no debe tener acceso a la capa del Modelo (donde están los datos) por seguridad y dado que así lo
interactuar con la capa de vista o presentación a través del Controlador y es este último quien se comunica con todas las capas que componen la aplicación distribuida.
Figura 2: Arquitectura de un Sistema distribuido Bajo el patrón MVC.
4.3 Raspberry Pi.
El Raspberry Pi (Figura 3) es un ordenador del tamaño de una tarjeta de crédito, de bajo costo, se conecta a un monitor de ordenador o un televisor, y utiliza un teclado y un ratón estándar. Es un dispositivo poco capaz que permite a las personas de todas las edades para explorar la computación, y para aprender a programar en lenguajes como Python, C++, o incluso Java. Es capaz de hacer todo lo que espera un ordenador de sobremesa que hacer, desde navegar por Internet y reproducción de vídeo de alta definición, con la toma de hojas de cálculo, procesador de textos, y jugar juegos. Lo que es más, el Raspberry Pi tiene la capacidad de interactuar con el mundo exterior, y se ha utilizado en una amplia gama de proyectos fabricante digitales, como máquinas de música, detectores de padres, estaciones meteorológicas y twitteando casas de aves con cámaras infrarrojas. La fundación Raspberry Pi espera masificar el uso del Raspberry Pi como componente académico en todo el
funcionan los ordenadores [5].
Figura 3: Componentes de un Raspberry Pi
4.4. Metodología Scrum
Como lo menciona Juan Palacios en el documento “El Modelo Scrum”[6], Scrum es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto.
Scrum es una metodología ágil, y como tal:
Es un modo de desarrollo de carácter adaptable más que predictivo.
Orientado a las personas más que a los procesos. Emplea la estructura de desarrollo ágil:
Se comienza con la visión general del producto, especificando y dando detalle a las funcionalidades o partes que tienen mayor prioridad de desarrollo y que pueden llevarse a cabo en un periodo de tiempo breve (normalmente de 30 días).
Cada uno de estos periodos de desarrollo es una iteración que finaliza con la producción de un incremento operativo del producto.
Estas iteraciones son la base del desarrollo ágil, y Scrum gestiona su evolución a través de reuniones breves diarias en las que todo el equipo revisa el trabajo realizado el día anterior y el previsto para el día siguiente como lo muestra la figura 4.
Figura 4: Flujo de trabajo en Scrum
5. PERSPECTIVAS:
Se pretende hacer el uso de las tecnologías libres para construir un prototipo de sistema distribuido para el control de acceso que en el futuro se pueda volver un sistema mucho más robusto, cuyo costo de implementación sea menor al que actualmente ofrecen las demás soluciones tecnológicas que están en el mercado colombiano.
proyectos bajo la metodología de Scrum.
Se proyecta tener un sistema que use elementos de hardware y software libre, escalable y adaptable a nuevas tecnologías de carácter libre.
6.CONCLUSIONES
Los avances en tecnologías libres de software y hardware como el Raspberry Pi proveen una plataforma robusta para el desarrollo de aplicaciones de interacción con los humanos, debido a que poseen la potencia básica de un ordenador de escritorio bajo una arquitectura adaptable a sistemas embebidos.
Los Sistemas distribuidos son el presente de la computación, siendo a la par de la computación en la nube, las bases para los desarrollos de los sistemas ubicuos que interactúan con los seres humanos.
La metodología Scrum es aplicable a diversos proyectos de tecnología no solo de software por su enfoque de actividades y adaptabilidad al cambio constante en los requerimientos.
REFERENCIAS
[1] LaFond, John. Counting Up the Hidden Costs of Security Licensing. Publicado en Security Magazine. Junio 10 de 2014. [En línea]. [Consulta: 08 de febrero de 2015] Disponible en:
http://www.securitymagazine.com/articles/85588- counting-up-the-hidden-costs-of-security-licensing
[2] Rego, Miguel. La eficiencia y la eficacia en la Seguridad Patrimonial. [En línea]. [Consulta: 22 de febrero de 2015] Disponible en
eficiencia-y-la-eficacia-en-la-seguridad-patrimonial
[3] Burbeck, Steve. Applications Programming in Smalltalk-80(TM):
How to use Model-View-Controller (MVC) [en línea] [consulta: 08 de noviembre de 2014]. Disponible en: http://st-www.cs.illinois.edu/users/smarch/st-
docs/mvc.html
[4] Sznajdleder, Pablo. Java a fondo: estudio del lenguaje y desarrollo de aplicaciones 1ª ed. Buenos Aires, Alfaomega, 2010,528p.
[5] WHAT IS A RASPBERRY PI? [En línea] [Consulta: 08 de febrero de 2014]. Disponible en: https://www.raspberrypi.org/help/what-is-a-raspberry-pi/
[6] Palacios, Juan. El Modelo Scrum. [En línea] [Consulta. 10 de marzo de 2015]. Disponible en http://www.navegapolis.net/files/s/NST-010_01.pdf
Sobre los Autores
Javier Ricardo Alfonso Alba.
Es Tecnólogo grado I en la Contraloría General de la República, Culmino sus estudios de Ingeniería en telemática y es Tecnólogo en Sistematización de datos de la Universidad Distrital. Interesado en las redes, sistemas distribuidos y seguridad de la información. e-mail: [email protected]
Alvaro Iván Ronderos Acevedo,.
Es Ingeniero de Desarrollo en Grupo Dot S.A.S, Culmino sus estudios de Ingeniería en telemática y es Tecnólogo en Sistematización de datos de la Universidad Distrital. Interesado en la programación de portales web, la gerencia y administración de proyectos informáticos. e-mail: [email protected]