You are on page 1of 6

Especificación Formal de Requerimientos para un

Sistema de Seguridad de Visibilidad Limitada en un


Cajero Automático VDM++
Luis Jimenez, Estudiante1, Waldir Ortiz, Estudiante2, and Diego Maraza, Estudiante1
1
Universidad Nacional de San Agustín, Peru,ljimenezgo@unsa.edu.pe,wortizma@unsa.edu.pe,dmaraza@unsa.edu.pe

Abstract– El problema de los cajeros automáticos actuales es la VDM++. También se presenta la validación de las
seguridad con la que el usuario realiza sus operaciones. El problema especificaciones utilizando la herramienta VDM++ ToolBox.
de seguridad se da por causas que aunque se planteen, no pueden Finalmente en la sección 5 presentamos nuestras conclusiones.
ser anticipadas en su totalidad. El objetivo es poder incrementar el
nivel de seguridad cuando un usuario usa el cajero automático, en II. TRABAJOS RELACIONADOS
el aspecto de un campo de visión. Cuando un usuario ingresa
información mediante el teclado o pantalla táctil un observador El uso de la seguridad en cajeros automáticos es un tema
malicioso puede adquirir la informacion personal confidencial. Se mundial y muchos autores hicieron sus investigaciones, por
planteara el uso de especificaciones formales para lograr modelar ejemplo Edith[1] publica una patente donde nos muestra una
dicha seguridad y así un usuario tenga la confianza de poder usar forma de ocultar datos usando unas gafas que recibe
un cajero automático sin que otras personas puedas ver contraseñas información encriptada de la pantalla y las muestra al usuario
u operaciones que realice. para que así personas cercanas no tengan acceso a dicha
Keywords-- List at most 5 key index terms here. información.
El uso de tecnología para la seguridad de dispositivos de
I. INTRODUCCIÓN pago y retiro de dinero ya fue usado en otras investigaciones,
Actualmente el uso de pantallas táctiles ha sido de buena por ejemplo en la investigación de Houvener, Hoenisch y
utilidad principalmente por ser multidisciplinario, ya que es Schappler[4] se muestra el uso de técnicas de comparación de
fácil interacción con el usuario permitiendo dirigir el flujo de la imágenes para el reconocimiento del usuario que realiza la
información tocando solamente una pantalla esto hace que el transacción, sin embargo, presenta deficiencias críticas entre la
sistema sea más intuitivo. que destaca es el costo excesivo debido a las tecnologías que
usa ya que incluye dispositivos de visualización y escáner.
Sin embargo las pantallas táctiles tienen una serie de Dudasik en [3] presenta una invención para sistemas de
riesgos y peligros, ya sea de manera física con lo frágil que es visualización y usos seguros en dispositivos de acceso
y de manera interna donde se maneja la información, en el caso electrónico, especifica el uso de una pantalla de visualización
del manejo de información existe peligros como por ejemplo el polarizada cuenta con una dirección de polarización, de manera
espionaje de información confidencial ya sea por medio de que la información mostrada en la pantalla de visualización
programas como los hackers y por otro lado el espionaje visual. polarizada es visible para el usuario impidiendo que terceros
puedan aprovecharse viendo la información del usuario.
En el presente artículo muestra las especificaciones En [5] muestra un método de una invención orientada a la
formales de los requerimientos para un sistema de seguridad de seguridad de la pantalla de una computadora comprendiendo la
visibilidad en las pantallas táctiles orientado a cajeros manera de seguir las coordenadas de la visión de un usuario
automáticos. Para ello se usó la herramienta VDM++ (Vienna frente a una pantalla y como mostrar en la pantalla informacion
Development Method++), un lenguaje de especificación distorsionada estando fuera del área de contenido en la
formal, también se utilizó VDM++ ToolBox como herramienta ubicación de la mirada del usuario.
para validar las especificaciones [8][10]. Manu, Dan y Terry [2] muestra al usuario una alternativa
de seguridad mediante la posición en la que se encuentra, la idea
Este articulo esta organizado de la siguiente manera: en la básica es la visibilidad limitada que dificulta espiar a los
sección 2 se presenta los trabajos relacionados donde vemos observadores maliciosos, porque solo el usuario puede
algunas herramientas y aplicaciones con relación a la seguridad visualizar la información mediante su posición.
de visibilidad en pantallas táctiles. En la sección 3 se describe En nuestro trabajo mostraremos un cajero automático con
la definición de especificación formal, sus propiedades y un sistema de seguridad tomando una tecnología muy similar a
características.. En la sección 4 se presenta el caso de aplicación la propuesta por [2] y [5], a diferencia de lo propuesto por ellos,
que es la inseguridad que hay en las pantallas de los cajeros nosotros enfocaremos el uso de esta tecnología en la protección
automaticos tambien los requerimientos de manera informal de los clientes al usar cajeros automáticos, evitando problemas
para luego especificarlos de manera formal con la herramienta de pirateo actual tal y como el robo de nuestras cuentas

15th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Global Partnerships for
Development and Engineering Education”, 19-21 July 2017, Boca Raton Fl, United States. 1
bancarias por el espionaje de nuestra clave secreta, ya sea por elementos, reglas de asignación y la sintaxis para establecer
la visualización al momento de ingresar nuestra clave o por símbolos terminales y no terminales(minúsculas).
grabación de algún componente de video oculto.
III. ESPECIFICACIÓN FORMAL
A. Definición
Según se explica en [6] los métodos formales se utilizan
para referirse a cualquier actividad que depende de
representaciones matemáticas de software, esto incluye las
especificaciones del sistema formal, análisis de especificación
y prueba, desarrollo transformacional y programa de
verificación Una especificación de software. Todas las
actividades ya mencionadas dependen de una especificación
formal del software siendo esta una especificación en un idioma Fig. 1 Notacion BNF
el cual el vocabulario, sintaxis y semántica están formalmente
definidos. También se aclara que los métodos formales fueron Para representar una clase en VDM++ se utiliza la palabra
la mejor forma de mejorar la calidad del software, ya que el reservada ‘class’ la cual va seguida del nombre que se le dara,
rigor de un análisis detallado es la mejor forma de concebir la estructura de la clase está descrita en la Fig. 2, en la que
programas con menos errores. podemos observar elementos como 1) Class-Identifier, la cual
En [6] también se especifica dos enfoques fundamentales representa el nombre de la clase. 2) Optional-Superclass-
de especificación formal para sistemas de software: Indication, la cual nos permite especificar herencia. 3)
- Un enfoque algebraico: Donde los sistemas se describe Instance-Variable-Part, modela el estado interno del objeto. 4)
en términos de operaciones y sus relaciones. Method-list, permite que los métodos se definen como
- Un enfoque basado en modelos: Se construye un especificaciones completas, usando pre-post condiciones, tales
modelo del sistema usando elementos matemáticos, como “not yet defined here” o “is subclass responsibility”, este
tales como conjuntos y secuencia, estas formas son las último es útil para delegar responsabilidades a subclases y a los
que modifican el estado del sistema. objetos creados para ellos mismos, similar a las superclases
Los lenguajes que estan basados en modelos Z, VDM y B abstractas.[11]
pueden describir sistemas para la especificación formar
arbitrariamente generales y tienen un estado potencialmente
infinito, esta generalidad tiene un inconveniente ya que se hace
que el razonamiento sea menos susceptible a la automatización,
caso contrario a los lenguajes de especificación basados en
estados finitos tal y como se discute en [7].

B. VDM++
VDM++ es una extensión del método de desarrollo de
Viena(VDM) orientada a objetos, Gorm en [8] define a VDM
como un lenguaje de especificación que esta estandarizado por
la organización internacional para la estandarización. Grom en
[8] también sustenta que VDM es uno de los métodos formales Fig. 2 Estructura de clase VDM++
más maduros, siendo diseñado principalmente para la
D. Tipos de Datos
especificación formal y posteriormente en el desarrollo de
aspectos funcionales de los sistemas de software. En VDM++ podemos trabajar con múltiples tipos de datos,
Tanto VDM como su extensión VDM++ están basados en entre los tipos de datos numéricos tenemos int, nat, real, tipos
VDM-SL[9]. En este trabajo utilizaremos como lenguaje de de datos booleanos bool , caracteres char.
especificación formal VDM++ para la verificacion y validacion
También podemos encontrar tipos de datos avanzados, por
de los sistemas correspondientes.
ejemplo Token, conjunto contable de valores. Set , que se refiere
C. Clases y Sintaxis a un conjunto desordenado de valores. Seq, es una secuencia de
elementos indexados donde existe una longitud de secuencia.
Para el lenguaje de especificación VDM++ la sintaxis está
descrita en un dialecto BNF[10]. Como se aprecia en la Fig. 1 D. Invariante
la notación BNF contiene símbolos de concatenación, símbolos
Las invariantes son restricciones a las variables sobre valores
definidos de separación, así como símbolos para englobar
que no deberían permitirse, esta herramienta permite restringir
valores que no permitidos. Esta restricción nos permite obtener

15th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Global Partnerships for
Development and Engineering Education”, 19-21 July 2017, Boca Raton Fl, United States. 2
un conjunto de valores que podrán ser adoptados por la variable C. Diagrama de clases
[10]. En Fig. 3 se muestra el diagrama de clases donde se indican los
atributos y métodos de las clases Tarjeta y Cajero
E. Operaciones
En VDM++ las operaciones definen algoritmos las cuales
pueden manipular las variables globales y locales para cumplir
con el objetivo del algoritmo. Una accion similar a las
operaciones son las funciones, pero a diferencia de la ya
menciona,a las funciones solo pueden trabajar con las variables
locales[10].
E. La Herramienta
VDM++ToolBox[10] es una herramienta que soporta modelos
VDM++ via analisis sintactico, analisis de tipos y generación
de condiciones de integridad y análisis de cobertura, esta
herramienta también permite la generación de sus proyectos en
codigos Java y C++. Esta herramienta también nos permite
convertir diagramas de clase en UML hechos en Rational Rouse Fig. 3 Diagrama de clases
en especificación VDM++. Una vez que ya se realizo la
operacion el analizador sintáctico nos informa si hay algún error D. Especificación en VDM++
en la sintaxis, una vez terminado. Una vez concluido el En Fig. 4 se presenta la especificación formal en VDM++ de la
analizador sintáctico reporta los errores, si los hay, realiza clase tarjeta y en Fig. 5 se presenta de la clase Cajero.
supuestos sobre cuál pudo haber sido su error.
IV. CASO DE APLICACIÓN

A. Descripción del problema


Extraer dinero en cajeros automáticos ya es una tarea
común en esta sociedad, al igual que la inseguridad. El ingreso
a un cajero cajero automático es sinónimo de tensión, para
algunos usuarios, por el temor de que sus datos personales sean
visto por otras personas y sus cuentas bancarias sean
comprometidas.
El modo de uso de un cajero automático consta en la
introducción de su tarjeta, digitando su clave secreta para luego
hacer sus operaciones.

B. Propuesta de solución

La seguridad en la realización de transacciones bancarias a


través de un cajero es el objetivo principal de este artículo, este
trabajo busca desarrollar una representación del proceso de
login y operaciones adicionales del usuario en un cajero
automático representada en un lenguaje de especificación
formal.
Podemos enumerar las restricciones que tendrá el usuario
al realizar este proceso, en este caso tenemos:
R1: El usuario introducirá su tarjeta y se encenderá la
pantalla.
R2: El usuario establecerá la posición de la pantalla.
R3: Una vez establecida la posición de la pantalla se
activará la mini pantalla de números aleatorios
para introducir su contraseña e iniciar sesión.
R4: El usuario al retirar su tarjeta, la pantalla volverá
automáticamente su posición original.

15th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Global Partnerships for
Development and Engineering Education”, 19-21 July 2017, Boca Raton Fl, United States. 3
Fig. 4 Especificación de la clase Tarjeta
Fig. 5 Especificación de la clase Cajero parte 1
En Fig. 4 en las líneas 8 al 11 se especifican los atributos de la
clase tarjeta. Desde la línea 13 a 39 se indican el constructor y
En Fig. 5 en las líneas 8 al 13 se especifican los atributos de la
los metodos set y get.
clase tarjeta: movAbajo(Movimiento hacia Abajo),
movArriba(Movimiento hacia Arriba), estadoTarjeta(Estado de
la tarjeta) y estadoTeclado(Estado del teclado). Desde la línea
14 a la 21 se especifican las invariantes: En la línea 15 nos dice
que el movimiento hacia abajo debe de ser menor o igual a 25,
en la línea 17, nos dice que el movimiento hacia arriba debe ser
menor o igual a 25, en la línea 19 nos dice que el movimiento
hacia abajo debe ser mayor o igual a cero y en la línea 21 nos
dice que el movimiento hacia arriba debe ser mayor o igual a
cero. Desde la línea 25 a 41 se indican los metodos set y get.

15th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Global Partnerships for
Development and Engineering Education”, 19-21 July 2017, Boca Raton Fl, United States. 4
Fig. 8 Clase Test1

Fig. 6 Especificación de la clase Cajero parte 2 En Fig. 8 en las líneas 22 al 27 es el método que crea una
Tarjeta con numero y clave. En la línea 14 se crea un cajero.
En Fig. 6 desde la línea 43 a 59 se indican los metodos set y get. En la línea 15 se cambia el estado de la tarjeta, suponiendo
Desde la línea 61 al 66 y la línea 73 se especifica la restricción que ya ha sido introducida. En la línea 16 se crea la tarjeta. En
R3. la línea 17 el usuario mueve la pantalla. En la línea 18 ingresa
su clave. En la línea 19 el usuario retira su tarjeta. En la línea
20 la pantalla vuelve a su estado inicial.

V. Conclusiones

En este articulo se ha presentado las especificaciones


formales de requerimientos para un sistema en seguridad de
visibilidad. Al usar especificaciones formales nos permitió
reducir las ambigüedades que podrían causar problemas de
seguridad en la informacion confidencial de un usuario. Las
Fig. 7 Especificación de la clase Cajero parte 3 especificaciones formales se desarrollaron un el lenguaje de
especificación formal, VDM++. En conjunto con la
En Fig. 7 desde la línea 68 al 72 y 74 al 76 se especifica la herramienta que soporta este lenguaje, VDM++ ToolBox, se
restricción R2. Desde la linea 78 al 81 se especifica la consiguio mejorar el nivel de seguridad de la informacion
restricción R1. Desde la línea 82 al 87 se especifica la confidencial de un usuario al usar una pantalla tactil en un
restricción R4. cajero automatico.
E. Validación REFERENCES
[1] H. Edith y E. Barry, “Secure method for providing privately viewable data
in a publicly viewable display”. En linea. Disponible en

15th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Global Partnerships for
Development and Engineering Education”, 19-21 July 2017, Boca Raton Fl, United States. 5
https://www.google.com/patents/US7191338. Ultimo
acceso:03/12/2017.
[2] K. Manu, G. Tal, B. Dan and W. Terry, “Reducing shoulder-surfing by
using gaze-based password entry”. En linea. Disponible en
https://dl.acm.org/citation.cfm?id=1280683. Ultimo acceso: 03/12/2007.
[3] Edward Dudasik, “Device, method, and system of display for controlled
viewing”. En linea. Disponible en
https://www.google.com/patents/US6552850. Ultimo
acceso:03/12/2017.
[4] Robert C. Houvener, Ian P. Hoenisch and Joseph Schappler, “Positive
identification display device and scanner for low cost collection and
display of graphic and text data in a secure manner”. En linea. Disponible
en https://www.google.com/patents/US6202055. Ultimo acceso:
29/11/2017.
[5] Priya Baliga, Lydia Mai Do, Mary P. Kusko, Fang Lu "Enhancing
computer screen security using customized control of displayed content
area" Nov 5, 2009
[6] Easterbrook, S., Lutz, R., Covington, R., Kelly, J., Ampo, Y. and
Hamilton, D. (1998). 'Experiences using Lightweight Formal Methods for
Requirements Modeling'. IEEE Trans. on Software.
[7] Hierons, R. M., Bogdanov, K., Bowen, J. P., Cleaveland, R., Derrick, J.,
Dick, J., Gheorghe, M., Harman, M., Kapoor, K., Krause, P., L¨ uttgen,
G., Simons, A. J. H., Vilkomir, S., Woodward, M. R., and Zedan, H. 2009.
Using formal specifications to support testing. ACM Comput. Surv. 41,
2, Article 9 (February 2009), 76 pages DOI = 10.1145/1459352.1459354/
/http://doi.acm.org/10.1145/ 1459352.1459354
[8] Peter Gorm Larsen, “Ten years of historical Development ‘Bootstrapping’
VDMTools”, In Journal of Universal Computer Science, volumen 7(8),
2001
[9] J. Fitzgerald and P.Gorm Larsen, “Modelling Systems Practical Tools and
Techniques in Software Development”, Cambridge University
[10] The VDM++ Language Manual, VDMTools CSK systems corporation,
2009.
[11] Eugene Durr, Jan van Katwijk, “VDM++, a Formal Specification
Language For Object-Oriented Desingns”, 1992.

15th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Global Partnerships for
Development and Engineering Education”, 19-21 July 2017, Boca Raton Fl, United States. 6

You might also like