Está en la página 1de 17

SOCIALIZACION API-GENERADOR QR

DESMATERIALIZACIÓN SOAT FASECOLDA

SOCIALIZACION API-GENERADOR QR DESMATERIALIZACIÓN SOAT FASECOLDA 07 04 2017

07 04 2017

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.

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)

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 1234seria 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

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 Implementación.docx

Código JAVA en donde se detalla el pasos a paso para la creación de un QR, contiene la lógica del componente

GenQr

Protocolo Generación QR.docx

Describe el como se genera un código QR valido de forma 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

haciendo uso del Software OpenSSL, como resultado del proceso se obtiene un nuevo archivo de extensión

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.

y paquetes de los cuales se compone el proyecto, describe los tipos de datos recibidos y

¿PREGUNTAS?

¿PREGUNTAS? 07 04 2017

07 04 2017

¿PREGUNTAS? 07 04 2017