Medina, Gastón Nicolás INGENIERIA EN COMPUTACION
-
Upload
ori-bridges -
Category
Documents
-
view
33 -
download
2
description
Transcript of 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
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Protocolo de Comunicación Sistema ACG - Driver - EPP
Rs232/Usb
Socket
Driver EPP
CONTENIDOS | INTRODUCCIÓN | KIOSK | DRIVER | EPP | ACG | PROTOCOLO |
Metodología de Desarrollo Patrones de Seguridad Políticas de Seguridad Construcción de Modelos
METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION
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
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
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
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
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
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
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
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
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
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
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
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
Demostración Pruebas de Aplicación Cliente Genérica –
Driver – EPP
METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION
Demostración
METODOLOGIA | PATRON DE SEGURIDAD | DIAGRAMA | MODELO FINAL | DEMOSTRACION
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
Futuro Seguridad no garantizada en implementación
del sistema. Gestión de requerimientos por Missuse Cases Construcción de EPP
CONCLUSIONES | FUTURO | PREGUNTAS | AGRADECIMIENTOS
Preguntas Consultas o dudas generadas en el transcurso
de la presentación.
CONCLUSIONES | FUTURO | PREGUNTAS | AGRADECIMIENTOS
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