medina, gastón nicolás ingenieria en computacion

35
Construcción de Driver de usuario para dispositivo Encrypted PinPad utilizando Desarrollo Conducido por Modelos Medina, Gastón Nicolás INGENIERIA EN COMPUTACION Proyecto Integrador: Córdoba - 2010 U.N.C. Facultad de Cs. Exactas, Físicas y Naturales

Upload: ori-bridges

Post on 01-Jan-2016

33 views

Category:

Documents


2 download

DESCRIPTION

U.N.C. Facultad de Cs. Exactas, Físicas y Naturales. Proyecto Integrador:. Construcción de Driver de usuario para dispositivo Encrypted P in Pad utilizando Desarrollo Conducido por Modelos. Medina, Gastón Nicolás INGENIERIA EN COMPUTACION. Córdoba - 2010. Contenidos. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Construcción de Driver de usuario para dispositivo Encrypted PinPad utilizando

Desarrollo Conducido por ModelosMedina, Gastón Nicolás

INGENIERIA EN COMPUTACION

Proyecto Integrador:

Córdoba - 2010

U.N.C.Facultad de Cs. Exactas, Físicas y

Naturales

Page 2: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Contenidos Presentación del Proyecto Integrador

Descripción, motivación, objetivos, alcance. Características de los elementos del Sistema

Terminal Kiosk, Driver, Teclado Encriptado (Epp) y Aplicación Cliente Genérica (ACG)

Protocolos de Comunicación Metodología de Desarrollo

Patrones de Seguridad, Políticas de Seguridad y Construcción de Modelo Final del Sistema

Herramientas Utilizadas Demostración de los Productos Finales Conclusiones del Proyecto Integrador Preguntas Agradecimientos CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 3: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Introducción Descripción de Proyecto

Solución de software para la integración de un teclado encriptado (EPP) a aplicaciones para terminales Kiosk. Problema presentado por empresa Mediterránea S.A. a

Neosur S.A. Driver Encrypted Pin Pad (EPP)

No disponible en el mercado. No proporcionado por fabricante. Requerimientos específicos para prestar servicios a

aplicaciones de Terminales Kiosk. Aplicación Cliente Genérica (ACG)

Aplicación Cliente del Driver EPP. Validación y testing de todas las funcionalidades que el

Driver del dispositivo EPP soporta.CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 4: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Introducción Motivación

Solución de administración de dispositivos en Kiosco (Kiosk) No existente en el mercado.

Importancia del Proyecto Entidades Financieras (Bancos) Millones de usuarios Información critica

Alcance del Proyecto Driver dispositivo EPP (Encrypted Pin Pad) Aplicación Cliente Genérica (ACG - Testing)

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 5: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Introducción Objetivos

Principales Construir Driver para dispositivo EPP Construir ACG para testing de utilidad para simular

diferentes sistemas clientes consumidores del Driver. Secundarios

Utilizar un método conducido por Modelos Utilizar patrones de seguridad en etapas tempranas del

proceso de diseño.

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 6: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Terminal Kiosk Dispositivo independiente y de auto-servicio.

Utilizado para proveer un servicio particular a su usuario.

Beneficios: Comodidad a sus usuarios. Costos reducidos.

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 7: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Driver o Controlador de Dispositivos Definición:

Sistema de software que le permite a aplicaciones de alto nivel interactuar con un periférico de entrada y/o salida.

Propósito: Simplifica

su programación.

Dispositivos

Drivers

Computadora

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 8: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Driver o Controlador de Dispositivos Diseño Modularizado

Capa Lógica Capa Física

Modos de Ejecución Modo Kernel Modo Usuario

Driver

Aplicación de Usuario

Capa Lógica

Dispositivo Electrónico

Capa Física

PC

Sistema Operativo – Kernel

Servicios del Sistema Operativo

Aplicaciones espacio de usuario

Nivel 0Nivel 1Nivel 2Nivel 3

Supervisor

Usuario0 1 2 3

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 9: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Dispositivo Encrypted PinPad - EPP Dispositivo de encripción multipropósito. Teclado de alta durabilidad, resistencia a

vandalismos. Modelo KY3688/B. Cumple con los estándares:

“VM PCI certification” “China Banking system certification” “CE” “IP64”Servicio de Seguridad NormaDES SO8731-1 (igual a ANSI X3.92)3DES ANSI X9.52PIN ISO9564-1/2 (igual a ANSI X9.8) e IBM3624

MAC ISO8732 (igual a ANSI X9.9)

Seguridad general PCI

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 10: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Dispositivo Encrypted PinPad - EPP Funcionalidades:

Administración de Claves Ingreso de PIN Ingreso de Dígitos Individuales Desatendidas:

Generación de Nonce. Algoritmo MAC.

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 11: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Dispositivo Encrypted PinPad - EPP Administración de Claves:

Clave de Administrador Clave de Transmisión Clave de Autenticación Clave Máster Clave de Trabajo

0 a la 3: PIN. 4 a la 7: MAC. 8 a la 11: Nonce. 12 a la 15: Dígitos.

Claves de Administraci

ón

Claves de Transmisión

Claves Maestras

Claves de Autenticació

n

Claves de Trabajo

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 12: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Dispositivo Encrypted PinPad - EPP Ingreso PIN

Etapas:

Ingreso Dígitos

Etapas:

HOST EPPPIN ‘*’

Ingresa Digito

‘*’

Ingresa Digito

‘*’

Ingresa Digito

PINBLOCK

Ingresa

ENTER

HOST EPPDIGIT DIGITBLOCK

Ingresa Digito

DIGITBLOCK

Ingresa Digito

1.Pedido de Pin

2.Recepción de Dígitos Ocultos

3.Recepción de Pinblock

1.Pedido de Dígitos 2.Recepción de DigitBlock

Ingresa

ENTER

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 13: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Aplicación Cliente Genérica - ACG Aplicación capaz de consumir todas las

funcionalidades que soporta el Driver del EPP. Testing y validación. Pertenece al producto final. Utilizada por el centro de

desarrollo del cliente final como guía para la construcción de Aplicaciones de Auto-consulta especificas.

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 14: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Protocolo de Comunicación ACG – Driver:

Modelo Cliente- Servidor. Protocolo TCP (IP:Puerto - LocalBind) [Registro]

Formato de codificación de Request/Response (XML). Request (3 componentes):

XML Versión Comando Parámetros

0 3

EOT

<?xml version="1.0" encoding="UTF-8" ?><{comando}> <{ parámetro_x }>{value_x}</{ parámetro_x }> <{ parámetro_y }>{value_y}</{ parámetro_y }></{comando}>

Length Request 0000

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 15: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Protocolo de Comunicación Response (4 componentes):

XML Versión Comando Result Result_data

Driver – EPP Puerto Rs232 (Usb Converter)

SOC (Start of Command): 0x02 EOC (End of Command): 0x03 BCC: LEN ^ CMD ^ DATA

<?xml version="1.0" encoding="UTF-8" ?><{comando}> <result> <code>{errCode}</code> <message>{errMessage}</message> </result><result_data>{data}</result_data></{comando}>

SOCLEN

EOCCMD DATA BCC

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 16: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Protocolo de Comunicación Sistema ACG - Driver - EPP

Rs232/Usb

Socket

Driver EPP

CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |

Page 17: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Patrones de Seguridad Políticas de Seguridad Construcción de Modelos

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 18: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Patrones de Seguridad

“los patrones de seguridad describen problemas particulares y recurrentes de seguridad que se dan en contextos específicos, y presentan esquemas genéricos bien definidos para su solución”

Presentados en formato de Templates Campos (Sinopsis, Contexto, Problema, Fuerzas,

Solución) Estructura Estática (Diagrama de Clases) Estructura Dinámica (Diagrama de Secuencia)

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 19: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Políticas de Seguridad

Asignación de Roles Administrador - Usuario

Control de Autorización Claves

Control de Auditoría Archivo Log

Autenticación de Usuarios Administrador

Autenticación de Operaciones Ingresar Pin Ingresar Dígitos Descargar Clave de Trabajo

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 20: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Autenticación de Operaciones

Autenticación mutua y activación de clave de trabajo

Referencias

N1-N2 Nonce

IDA Identificación

EKUB - EKUB Claves Publicas

EKRA - EKRB Claves Privadas

KS Clave Secreta Criptografía Simétrica

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 21: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Autenticación mutua y activación de clave de

trabajoHOST EPP

1) <A_Key_No> + <S_Key_No> + <NH>

2) <NH_3des = 3DESH<A_Key_No>(< NH >)>

3) <ACK>

4) <A_Key_No> + <S_Key_No> + < NK >

5) <NK_3des = 3DESK<A_Key_No>(< NK >)>

6) <ACK>

Referencias

A_Key_No Numero de Clave de Autenticación

S_Key_No Numero de Clave de Trabajo

NX_3des Nonce encriptado

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 22: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Construcción de Modelos

Desarrollo de un modelo contextual del dominio del sistema LEL (Léxico Extendido del Lenguaje) Escenarios Tarjetas CRC (Clase, Responsabilidad y Colaboración)

Gestión de requerimientos Requerimientos Dinámicos Trazabilidad

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 23: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Léxico Extendido del lenguaje (LEL)

Permite capturar el lenguaje de un dominio Identificación y definición de los símbolos propios de un

contexto Objetivo:

Conocer el vocabulario del problema Registrar signos (palabras o frases) los cuales son

peculiares a un dominio

Sinónimos Identifica la entrada del LEL

Noción Se describe que es el símbolo

Impacto Se describe como repercute en el sistema

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 24: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo LEL, Escenarios y Tarjetas CRC

LEL y Escenarios se utilizan para capturar y abstraer conocimiento y comportamiento del dominio en el cual se utilizará un sistema de software.

Reglas de Derivación de Tarjetas CRC de Leonardi. Obtenidas a partir de

Entradas LEL y Escenarios

Trazabilidad

LEL

Escenarios

REGLAS

Tarjetas

CRC

Cambios en el dominio del sistema?

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 25: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Metodología de Desarrollo Baseline Mentor Workbench (BMW)

Problema:La tarea de determinar los cambios producidos en LEL y Escenarios, seleccionar la regla adecuada y aplicarla, es una tarea ardua, propensa a errores.

Solución:Automatizar el proceso dederivación de Tarjetas CRC.

BMW es una herramienta que administra las entradas de LEL, Escenarios y las tarjetas CRC implementando las reglas de Leonardi.

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 26: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Detección de Patrón de Seguridad No existe una técnica especifica.

Tarea no automatizada Funcionalidad

Encripción / Desencripción Problema

Confidencialidad Solución

Arquitectura Criptográfica Orientada a Objetos Genérica (GOOCA) Arquitectura de software genérica para aplicaciones

criptográficas Desacoplamiento

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 27: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Detección de Patrón de Seguridad Patrón de diseño

criptográfico y sus relaciones

Estructura GOOCA

GOOCA

Envío con Autenticación

Confidencialidad con Envío

Autenticado

Confidencialidad

Confidencialidad con Firma

Confidencialidad con Firma con

Apéndice

Firma

Firma con Apéndice

Integridad del Mensaje

Confidencialidad con Integridad

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 28: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Diagrama de Metodología de Desarrollo

Análisis de Patrones de Seguridad

Análisis Especifico del dominio

Modelo de análisis con Patrones de Seguridad

embebidos

Conocimiento Dominio de Seguridad

• Lenguaje + Comportamiento

Conocimiento especifico del

Dominio• Lenguaje +

ComportamientoPatrones de Seguridad• Problem• Forces• Solution

Patrones de Seguridad-LEL-Escenarios-Tarjetas CRC

Dominio Especifico-LEL-Escenarios-Tarjetas CRC

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 29: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Bob

+ send()+ recieve()

Alice

+ send()+ recieve()

Modelo Final del Sistema Sistema ACG – Driver – EPP

ACG

+ send()+ recieve()

EPP

+ send()+ recieve()

Codificador

+ f()

Decodificador

+ g()

Algoritmo Criptográfico

x = f(m)

d = recieve(x)

Transformación

Criptográfica

m = g(d)m = g(x)

m = g(f(m))

send(x)

Driver

Protocolo de Comunicación

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 30: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Demostración Pruebas de Aplicación Cliente Genérica –

Driver – EPP

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 31: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Demostración

METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION

Page 32: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Conclusiones Productos Finales

Driver EPP (único a producción) y ACG Metodología para el modelado y gestión de

requerimientos LEL, Escenarios y CRC

Relación con el Cliente BMW

Trazabilidad y cambios de requerimientos Modelo del sistema Integración con Patrones de Seguridad

Seguridad en Etapas Tempranas del ciclo de desarrollo Reducción de Costos

Solución de ingeniería de software Mejor solución

CONCLUSIONES | FUTURO | PREGUNTAS | AGRADECIMIENTOS

Page 33: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Futuro Seguridad no garantizada en implementación

del sistema. Gestión de requerimientos por Missuse Cases Construcción de EPP

CONCLUSIONES | FUTURO | PREGUNTAS | AGRADECIMIENTOS

Page 34: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Preguntas Consultas o dudas generadas en el transcurso

de la presentación.

CONCLUSIONES | FUTURO | PREGUNTAS | AGRADECIMIENTOS

Page 35: Medina, Gastón Nicolás INGENIERIA EN COMPUTACION

Agradecimientos A mi Familia. Neosur S.A. Mediterránea S.A. Director Miguel Solinas y Co-Director Pablo

Passera Eduardo Gaite, Gino Turco y Emanuel

Villarruel, colaboradores directos del proyecto. Todos mis Compañeros e integrantes de la

comunidad de Ingeniería en Computación.

CONCLUSIONES | FUTURO | PREGUNTAS | AGRADECIMIENTOS