Está en la página 1de 17

SOCIALIZACION API-GENERADOR QR

DESMATERIALIZACIÓN SOAT
FASECOLDA
07 04 2017
AGENDA

1. Objetivo de la reunión
2. Modelo funcional – Generador QR
3. Componente lenguaje JAVA
4. Componente lenguaje .NET
5. Protocolo de generación códigos QR
6. Generación de Llaves
7. Java doc
OBJETIVOS DE LA REUNIÓN

Presentación del API y protocolo para la


generación de códigos QR a nivel
técnico y funcional, para su posterior
implementación en los sistemas
expedidores de SOAT.
MODELO FUNCIONAL
GENERADOR QR
FUNCIONAMIENTO
1. Las aseguradoras solicitan la generación de la póliza SOAT desde el software
que cada una utilice.
2. Al momento en que el usuario le solicita al software (que debe ser .NET o
JAVA), que realice la generación de la póliza SOAT, el software realiza un
llamado al componente de software.
3. Posterior al llamado del componente de software, se realiza el envío de los
datos planos necesarios para la construcción del código QR.
4. El componente de software valida que los datos planos recibidos sean los
definidos en el estándar para la correcta construcción del código QR.
5. Posteriormente, el componente de software realiza la encriptación de cada uno
de los datos planos recibidos con una llave AES-256 instalada en el
componente.
FUNCIONAMIENTO
6. Luego, se realiza el firmado de la cadena de cadena de caracteres a partir
de una llave privada generada en base al certificado de cada una de las
aseguradoras, y antepone el código de identificación único de la compañía
aseguradora.
7. Después de encriptados los datos, se concatenan para generar una cadena
de caracteres bajo la cual se hará la generación del código QR.
8. Se genera el código QR en base a la cadena de caracteres recibida, el cual
será el que se le retorna al software que está consumiendo el componente
de software.
9. El código bidimensional QR es alojado dentro del mismo documento que
constituye la póliza desmaterializada.
10. Se realiza la entrega de la póliza SOAT desmaterializada al cliente por
medio impreso o digital.
COMPONENTE JAVA
La lógica de generación del código QR se encuentra encapsulada dentro
del archivo “GenQr.jar”, en este se encuentran los métodos necesarios
para la generación del QR:

• createImageQrToDisk(String textQr,String insurranceCarrier,String


pathPrivate,String pathPublic,String passwordKeyPublic,String
pathDestination)

• createImageQr(String textQr,String insurranceCarrier,String pathPrivate,


String pathPublic,String passwordKeyPublic)

*Versión mínima de Java 1.6


COMPONENTE JAVA
Este componente debe ser agregado a un proyecto nuevo o existen en el
cual se van a generar los códigos QR, se relacionan los entregables para
JAVA:

Entregable Descripción
Cliente_Prueba Proyecto compilado en NetBeans que implementa
el archivo “GenQr.jar”
GenQr.jar Componente que encapsula la creación del QR
Manual Cliente JAVA.docx Instrucciones para agregar el componente
“GenQr.jar” en un proyecto
COMPONENTE .NET
La lógica de generación del código QR se encuentra encapsulada dentro
del archivo “GenQr.dll”, en este se encuentran los métodos necesarios
para la generación del QR:

• createImageQr(String textQr,String insurranceCarrier,String pathPrivate,


String pathPublic,String passwordKeyPublic)

• createImageQrToDisk(String textQr,String insurranceCarrier,String


pathPrivate,String pathPublic,String passwordKeyPublic,String
pathDestination)
*Versión mínima de FrameWork 4.0
COMPONENTE .NET
Este componente debe ser agregado a un proyecto nuevo o existen en el
cual se van a generar los códigos QR, se relacionan los entregables para
NET:

Entregable Descripción
Cliente_Prueba Proyecto compilado en Visual Studio que
implementa el archivo “GenQr.dll”
GenQr.dll Componente que encapsula la creación del QR
Manual Cliente NET.docx Instrucciones para agregar el componente
“GenQr.dll” en un proyecto
PROTOCOLO GENERACIÓN QR
1. Se invierte el ID asignado por aseguradora, por ejemplo “1234” seria “4321”
2. Se obtienen los dos últimos dígitos del dato obtenido en el punto 1.
3. Se multiplica el ID invertido de la aseguradora con los últimos dos dígitos
obtenidos en el punto 2.
4. Al resultado de la multiplicación, se le aplica el algoritmo SHA1 y el resultado
se convierte a hexadecimal.
5. A la cadena obtenida en hexadecimal se le agrega las letras "oxw“
6. Se cifra la cadena de datos del SOAT, usando como semilla la cadena
resultante del punto 5 mediante el algoritmo AES-256
PROTOCOLO GENERACIÓN QR
7. Se firma la información obtenida en el punto 6 usando la llave privada (.pfx).
En este mismo punto se verifica que el certificado de firma sea válido.
8. Se obtienen todos los números de la firma del punto 7 para obtener un valor
entero
9. Se obtienen los dos últimos dígitos del número obtenido en el punto 8.
10. Se toma la cadena resultante del punto 7 desde la posición 0 hasta la
posición calculada en el punto 9, se concatenan el valor obtenido en el punto 6,
el valor “IOl0X” , y el valor del punto 7 desde la posición calculada en el punto 9
hasta el fin de la cadena del punto 7.
11. Se verifica la firma.
12. Se concatena el ID de la aseguradora con el valor obtenido en el punto 10
13. Se genera el código QR con el valor obtenido en el punto 12
PROTOCOLO GENERACIÓN QR
• El estándar de firma adoptado corresponde a SHA1withRSA
• El cifrado de datos se realiza con AES-256
• El protocolo de generación garantiza confidencialidad y autenticidad de cada
uno de los códigos QR

Entregable Descripción
Anexo. Lógica de Código JAVA en donde se detalla el pasos a paso para la
Implementación.docx creación de un QR, contiene la lógica del componente
GenQr
Protocolo Generación Describe el como se genera un código QR valido de forma
QR.docx general, para su implementación en cualquier lenguaje de
programación
GENERACIÓN DE LLAVES
La verificación de los QR esta basada en la infraestructura de PKI en
donde se genera un par de llaves para la comunicación de dos
interlocutores de forma asimétrica, en el documento Manual Generación
de Llaves.docx se detalla como generar este par de llaves en base a un
certificado digital haciendo uso del Software OpenSSL, como resultado del
proceso se obtiene un nuevo archivo de extensión .PEM y .PFX
JAVADOC

Documentación del código JAVA del componente GenQr en el cual se


obtiene un detalle completo de cada uno de los métodos y propiedades de
las clases y paquetes de los cuales se compone el proyecto, describe los
tipos de datos recibidos y retornados para cada método.
¿PREGUNTAS?

07 04 2017

También podría gustarte