Blog de Amazon Web Services (AWS)

Firma de facturas electrónicas con AWS CloudHSM

En los últimos años, Brasil ha recibido grandes inversiones internas y externas en el sector tecnológico, especialmente en computación en nube. Una parte significativa de estas inversiones encontró en los servicios financieros un nicho atractivo para la innovación, causando una gran expansión en los actores de este mercado, especialmente en los segmentos bancario y de pago. Debido a esta inundación de nuevas empresas digitales, instituciones más tradicionales han buscado una mayor agilidad en sus operaciones, para competir y seguir atrayendo la atención de los consumidores.

 

En AWS, la seguridad es la máxima prioridad. El segmento financiero también tiene su pilar principal en materia de seguridad. La gran pregunta para muchas empresas al pensar en mudarse a la nube es: « ¿Puedo mantener mi estándar de seguridad actual?»

 

En 2019, AWS puso a disposición en la región de Brasil el servicio de hardware de cifrado y almacenamiento de claves denominado AWS CloudHSM. Esta es una versión en la nube de un Hardware Secure Module (HSM), dispositivo utilizado por un gran número de empresas para mantener los niveles más altos de seguridad para sus claves de cifrado, con la ayuda de múltiples capas de protección lógica y física.

 

En otras palabras, esta clase de equipos puede ayudar a almacenar, controlar y proteger la identidad digital de una empresa a través de sus certificados digitales y claves de cifrado. AWS CloudHSM ofrece un nivel avanzado de protección y control al almacenar claves en equipos dedicados para clientes con certificación FIPS 140-2 Nivel 3, además de características de elasticidad, automatización e interoperabilidad con otros servicios de AWS, manteniendo las expectativas de un servicio en la nube.

 

CloudHSM se puede utilizar en un gran número de casos de uso que requieren el uso de claves criptográficas, ya sean simétricas o asimétricas. Por ejemplo, CloudHSM puede administrar la clave que protege una cartera en una base de datos Oracle o la clave que cifra los datos enviados a través de Internet (público-privada). Además, las arquitecturas más modernas, como las claves privadas de billetera Ethereum, pueden permanecer en CloudHSM para ser utilizadas al firmar una transacción enviada de una billetera a otra.

 

Aprovechando el momento en que tenemos una demanda de firma digital de documentos por parte de empresas de la industria de medios de pago, y celebrando la llegada de AWS CloudHSM a la región de Brasil, creamos un microservicio que tiene como objetivo demostrar las capacidades de CloudHSM en el proceso de firma de documentos XML, como las facturas electrónicas (NF-e).

 

La creación de este microservicio pretende demostrar agilidad en el modelo operativo de cloud computing en AWS. Por este motivo, elegimos utilizar el servicio de contenedores gestionados de AWS, Amazon Elastic Container Service (ECS), junto con el servicio informático de contenedores, AWS Fargate. Fargate también llegó recientemente a la región de Brasil y, en el área operativa, trae una propuesta única en el mercado: es un servicio informático para contenedores «sin servidor», donde el cliente no necesita administrar servidores.

 

De esta manera, tratamos de demostrar cómo aprovechar la agilidad en el uso de la nube aprovechando nuestra gama de servicios e implementando un microservicio de firma de facturas electrónicas que utiliza una infraestructura mínima en términos de recursos utilizados y gastos operativos.

 

El microservicio desarrollado (xmlsigner) se escribió en Java, utilizando la máquina virtual Amazon Corretto, Java (JVM), tecnología multiplataforma basada en el Open Java Development Kit (OpenJDK), sin costo alguno y una excelente opción para el Oracle JDK, ahora licenciado. AWS mantiene Corretto con soporte a largo plazo, proporcionando actualizaciones trimestrales de rendimiento y correcciones de seguridad críticas para su uso en el desarrollo de aplicaciones empresariales.

 

El módulo de cifrado utilizado es Amazon Corretto Crypto Provider (ACCP), que hace que el proceso de realizar operaciones criptográficas sea hasta 20 veces más eficiente en comparación con Oracle JDK.

 

El microservicio expone, a través de API, la capacidad de enumerar y crear claves digitales y certificados, y firmar y validar documentos XML. Utiliza AWS CloudHSM para almacenar claves de cifrado.

Para implementar el servicio, simplemente ejecute 3 scripts de CloudFormation y, además, tres sencillos pasos manuales. En aproximadamente 40 minutos, se implementará la siguiente arquitectura en su cuenta de AWS:

 

En la arquitectura anterior, el servicio CloudHSM utiliza una sola zona de disponibilidad, sin proporcionar un nivel de disponibilidad recomendado para aplicaciones en un entorno de producción. Aunque AWS CloudHSM permite el funcionamiento en configuración Multi-AZ (redundante), el microservicio está diseñado para la demostración y experimentación de las tecnologías implicadas (CloudHSM y Contenedores). Además, optamos por eliminar la redundancia para optimizar los costos.

Si le interesa que la implementación del servicio de suscripción de NF-e funcione con CloudHSM de forma redundante (Multi-AZ), simplemente póngase en contacto con un arquitecto de soluciones de AWS.

La instalación de la solución, se realiza en 3 etapas:[MOU1]

1.     Creación de la red y el clúster de CloudHSM;

2.     Crear una alfombrilla de integración continua con AWS Codebuild que se encarga de: iniciar el clúster CloudHSM (con una sola instancia); crear la aplicación Java; crear una imagen de contenedor que contenga la aplicación y el software necesarios para funcionar, y publicar esta imagen en un repositorio de Amazon ECR;

3.     Implementación del servicio en un contenedor en Amazon Elastic Container Service (ECS) mediante AWS Fargate.

 

En el proceso de integración y funcionamiento de la aplicación se han utilizado otros servicios de AWS:[MOU2]

·       AWS Systems Manager Parameter Store para almacenar los parámetros de configuración del contenedor;

·       AWS Secrets Manager para el almacenamiento seguro de credenciales de acceso a CloudHSM;

·       Amazon S3 para almacenar objetos «KeyStore», que contienen certificados digitales y metadatos clave utilizados por el microservicio.

 

Una vez completada la creación del microservicio, simplemente acceda a su API [MOU3] para interactuar con la solución de trabajo. A través de URL, puede administrar claves criptográficas, firmar y validar un documento firmado.

 

El microservicio xmlsigner se probó utilizando facturas electrónicas reales (NF-e), lo que le permite firmar un documento de 6KB (NF-e) en unos 30ms o menos (dependiendo de la cantidad de recursos computacionales en el contenedor).

 

Los invito a probar AWS CloudHSM, ahora en Brasil, empezando aquí.

 

Luiz Henrique Decaro

Decaro es Arquitecto de Soluciones con un enfoque en clientes del sector financiero. Maestro en Ingeniería de Software con 18 años de experiencia en el desarrollo y arquitectura de sistemas de misión crítica en el área de TI.

 

Daniel García

Daniel es un arquitecto especialista en soluciones de seguridad con más de 20 años de experiencia en tecnología de la información y seguridad. Daniel trabaja continuamente para ayudar a las empresas a través de múltiples segmentos y rangos geográficos a definir, planificar e implementar con éxito sus estrategias de ciberseguridad.