in

Nuevo: traslade el procesamiento de pagos a la nube con la criptografía de pagos de AWS | Servicios web de Amazon

La criptografía está en todas partes en nuestra vida diaria. Si está leyendo este blog, está utilizando HTTPS, una extensión de HTTP que utiliza cifrado para proteger las comunicaciones. En AWS, varios servicios y capacidades lo ayudan a administrar las claves y el cifrado, como:

Los HSM son dispositivos físicos que protegen de forma segura las operaciones criptográficas y las claves utilizadas por estas operaciones. Los HSM pueden ayudarlo a cumplir con sus requisitos de cumplimiento regulatorio, contractual y corporativo. Con CloudHSM, tiene acceso a HSM de uso general. Cuando se trata de pagos, existen HSM de pago específicos que ofrecen capacidades como generar y validar el número de identificación personal (PIN) y el código de seguridad de una tarjeta de crédito o débito.

Hoy, me complace compartir la disponibilidad de AWS Payment Cryptography, un servicio elástico que administra los HSM de pago y las claves para las aplicaciones de procesamiento de pagos en la nube.

Las aplicaciones que usan HSM de pagos tienen requisitos desafiantes porque el procesamiento de pagos es complejo, sensible al tiempo, altamente regulado y requiere la interacción de múltiples proveedores de servicios financieros y redes de pago. Cada vez que realiza un pago, los datos se intercambian entre dos o más proveedores de servicios financieros y deben descifrarse, transformarse y cifrarse nuevamente con una clave única en cada paso.

Este proceso requiere capacidades criptográficas de alto rendimiento y procedimientos de gestión de claves entre cada proveedor de servicios de pago. Estos proveedores pueden tener miles de claves para proteger, administrar, rotar y auditar, lo que hace que el proceso general sea costoso y difícil de escalar. Para agregar a eso, los HSM de pago históricamente emplean procesos complejos y propensos a errores, como el intercambio de claves en una habitación segura utilizando múltiples formularios en papel llevados a mano, cada uno con componentes clave separados impresos en ellos.

Introducción a la criptografía de pagos de AWS
La criptografía de pagos de AWS simplifica la implementación de funciones criptográficas y la administración de claves que se utilizan para proteger los datos en el procesamiento de pagos de acuerdo con varios estándares de la industria de tarjetas de pago (PCI).

Con AWS Payment Cryptography, puede eliminar la necesidad de aprovisionar y administrar HSM de pago locales y utilizar las herramientas proporcionadas para evitar procesos de intercambio de claves propensos a errores. Por ejemplo, con AWS Payment Cryptography, los proveedores de servicios financieros y de pago pueden comenzar el desarrollo en cuestión de minutos y planificar el intercambio de claves electrónicamente, eliminando los procesos manuales.

Para proporcionar sus capacidades criptográficas elásticas de manera compatible, AWS Payment Cryptography utiliza HSM con PCI PTS HSM aprobación del dispositivo. Estas capacidades incluyen el cifrado y descifrado de datos de tarjetas, la creación de claves y la traducción de pines. AWS Payment Cryptography también está diseñado de acuerdo con los estándares de seguridad de PCI, como PCI DSS, PCI PIN y PCI P2PE, y proporciona evidencia e informes para ayudarlo a satisfacer sus necesidades de cumplimiento.

Puede importar y exportar claves simétricas entre AWS Payment Cryptography y los HSM locales con clave de cifrado de clave (KEK) mediante el Protocolo ANSI X9 TR-31. También puede importar y exportar KEK simétricos con otros sistemas y dispositivos usando el Protocolo ANSI X9 TR-34que permite que el servicio intercambie claves simétricas utilizando técnicas asimétricas.

Para simplificar el traslado del procesamiento de pagos de los consumidores a la nube, las aplicaciones de pago con tarjeta existentes pueden utilizar la criptografía de pagos de AWS a través de los SDK de AWS. De esta forma, puede utilizar su lenguaje de programación favorito, como Java o Python, en lugar de las interfaces ASCII específicas del proveedor a través de conectores TCP, como es habitual en los HSM de pago.

El acceso se puede autorizar mediante políticas basadas en identidad de AWS Identity and Access Management (IAM), donde puede especificar qué acciones y recursos se permiten o deniegan y en qué condiciones.

El monitoreo es importante para mantener la confiabilidad, la disponibilidad y el rendimiento que necesita el procesamiento de pagos. Con la criptografía de pago de AWS, puede usar Amazon CloudWatch, AWS CloudTrail y Amazon EventBridge para comprender lo que sucede, informar cuando algo no está bien y tomar acciones automáticas cuando corresponda.

Veamos cómo funciona esto en la práctica.

Uso de la criptografía de pagos de AWS
Mediante la interfaz de línea de comandos de AWS (AWS CLI), creo un archivo de doble longitud 3DES clave para ser utilizada como clave de verificación de tarjeta (CVK). Un CVK es una clave utilizada para generar y verificar códigos de seguridad de tarjetas como CVV, CVV2 y valores similares.

Tenga en cuenta que hay dos comandos para la CLI (y, de manera similar, dos puntos finales para la API y los SDK):

  • payment-cryptography para la operación del plano de control, como enumerar y crear claves y alias.
  • payment-cryptography-data para operaciones criptográficas que utilizan claves, por ejemplo, para generar PIN o datos de validación de tarjetas.

Crear una clave es una operación del plano de control:

aws payment-cryptography create-key \
    --no-exportable \
    --key-attributes KeyAlgorithm=TDES_2KEY,
                     KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,
                     KeyClass=SYMMETRIC_KEY,
                     KeyModesOfUse="{Generate=true,Verify=true}"

{
    "Key": {
        "KeyArn": "arn:aws:payment-cryptography:us-west-2:123412341234:key/42cdc4ocf45mg54h",
        "KeyAttributes": {
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyAlgorithm": "TDES_2KEY",
            "KeyModesOfUse": {
                "Encrypt": false,
                "Decrypt": false,
                "Wrap": false,
                "Unwrap": false,
                "Generate": true,
                "Sign": false,
                "Verify": true,
                "DeriveKey": false,
                "NoRestrictions": false
            }
        },
        "KeyCheckValue": "B2DD4E",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "Enabled": true,
        "Exportable": false,
        "KeyState": "CREATE_COMPLETE",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "CreateTimestamp": "2023-05-26T14:25:48.240000+01:00",
        "UsageStartTimestamp": "2023-05-26T14:25:48.220000+01:00"
    }
}

Para hacer referencia a esta clave en los siguientes pasos, puedo usar el Nombre de recurso de Amazon (ARN) como se encuentra en el KeyARN propiedad, o puedo crear un alias. Un alias es un nombre descriptivo que me permite referirme a una clave sin tener que usar el ARN completo. Puedo actualizar un alias para hacer referencia a una clave diferente. Cuando necesito reemplazar una clave, puedo simplemente actualizar el alias sin tener que cambiar la configuración o el código de sus aplicaciones. Para ser reconocidos fácilmente, los nombres de alias comienzan con alias/. Por ejemplo, el siguiente comando crea el alias alias/my-key para la clave que acabo de crear:

aws payment-cryptography create-alias --alias-name alias/my-key \
    --key-arn arn:aws:payment-cryptography:us-west-2:123412341234:key/42cdc4ocf45mg54h

{
    "Alias": {
        "AliasName": "alias/my-key",
        "KeyArn": "arn:aws:payment-cryptography:us-west-2:123412341234:key/42cdc4ocf45mg54h"
    }
}

Antes de comenzar a usar la nueva clave, hago una lista de todas mis claves para verificar su estado:

aws payment-cryptography list-keys

{
    "Keys": [
        {
            "KeyArn": "arn:aws:payment-cryptography:us-west-2:123421341234:key/42cdc4ocf45mg54h",
            "KeyAttributes": {
                "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
                "KeyClass": "SYMMETRIC_KEY",
                "KeyAlgorithm": "TDES_2KEY",
                "KeyModesOfUse": {
                    "Encrypt": false,
                    "Decrypt": false,
                    "Wrap": false,
                    "Unwrap": false,
                    "Generate": true,
                    "Sign": false,
                    "Verify": true,
                    "DeriveKey": false,
                    "NoRestrictions": false
                }
            },
            "KeyCheckValue": "B2DD4E",
            "Enabled": true,
            "Exportable": false,
            "KeyState": "CREATE_COMPLETE"
        },
        {
            "KeyArn": "arn:aws:payment-cryptography:us-west-2:123412341234:key/ok4oliaxyxbjuibp",
            "KeyAttributes": {
                "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
                "KeyClass": "SYMMETRIC_KEY",
                "KeyAlgorithm": "TDES_2KEY",
                "KeyModesOfUse": {
                    "Encrypt": false,
                    "Decrypt": false,
                    "Wrap": false,
                    "Unwrap": false,
                    "Generate": true,
                    "Sign": false,
                    "Verify": true,
                    "DeriveKey": false,
                    "NoRestrictions": false
                }
            },
            "KeyCheckValue": "905848",
            "Enabled": true,
            "Exportable": false,
            "KeyState": "DELETE_PENDING"
        }
    ]
}

Como puede ver, hay otra clave que creé antes, que desde entonces se eliminó. Cuando se elimina una clave, se marca para su eliminación (DELETE_PENDING). La eliminación real ocurre después de un período configurable (por defecto, 7 días). Este es un mecanismo de seguridad para evitar el borrado accidental o malintencionado de una clave. Las claves marcadas para su eliminación no están disponibles para su uso, pero se pueden restaurar.

De manera similar, enumero todos mis alias para ver a qué teclas se refieren:

aws payment-cryptography list-aliases

{
    "Aliases": [
        {
            "AliasName": "alias/my-key",
            "KeyArn": "arn:aws:payment-cryptography:us-west-2:123412341234:key/42cdc4ocf45mg54h"
        }
    ]
}

Ahora uso la clave para generar un código de seguridad de la tarjeta con el sistema de autenticación CVV2. Es posible que esté familiarizado con los números CVV2 que generalmente se escriben en el reverso de una tarjeta de crédito. Esta es la forma en que se calculan. Proporciono como entrada el número de cuenta principal de la tarjeta de crédito, la fecha de vencimiento de la tarjeta y la clave del paso anterior. Para especificar la clave, uso su alias. Esta es una operación de plano de datos:

aws payment-cryptography-data generate-card-validation-data \
    --key-identifier alias/my-key \
    --primary-account-number=171234567890123 \
    --generation-attributes CardVerificationValue2={CardExpiryDate=0124}

{
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:123412341234:key/42cdc4ocf45mg54h",
    "KeyCheckValue": "B2DD4E",
    "ValidationData": "343"
}

Tomo nota de los tres dígitos en el ValidationData propiedad. Al procesar un pago, puedo verificar que el valor de los datos de la tarjeta es correcto:

aws payment-cryptography-data verify-card-validation-data \
    --key-identifier alias/my-key \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0124} \
    --validation-data 343

{
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:123412341234:key/42cdc4ocf45mg54h",
    "KeyCheckValue": "B2DD4E"
}

La verificación es exitosa y, a cambio, recibo lo mismo. KeyCheckValue como cuando generé los datos de validación.

Como era de esperar, si uso los datos de validación incorrectos, la verificación no es exitosa y obtengo un error:

aws payment-cryptography-data verify-card-validation-data \
    --key-identifier alias/my-key \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0124} \
    --validation-data 999

An error occurred (com.amazonaws.paymentcryptography.exception#VerificationFailedException)
when calling the VerifyCardValidationData operation:
Card validation data verification failed

En la consola de criptografía de pagos de AWS, elijo Ver claves para ver la lista de llaves.

Captura de pantalla de la consola.

Opcionalmente, puedo habilitar más columnas, por ejemplo, para ver el tipo de clave (simétrica/asimétrica) y el algoritmo utilizado.

Captura de pantalla de la consola.

Elijo la clave que usé en el ejemplo anterior para obtener más detalles. Aquí veo la configuración criptográfica, las etiquetas asignadas a la clave y los alias que hacen referencia a esta clave.

Captura de pantalla de la consola.

AWS Payment Cryptography admite muchas más operaciones que las que mostré aquí. Para este tutorial, utilicé la CLI de AWS. En sus aplicaciones, puede utilizar la criptografía de pagos de AWS a través de cualquiera de los SDK de AWS.

Disponibilidad y precios
La criptografía de pagos de AWS ya está disponible en las siguientes regiones de AWS: EE. UU. Este (Norte de Virginia) y EE. UU. Oeste (Oregón).

Con la criptografía de pago de AWS, solo paga por lo que usa en función de la cantidad de claves activas y llamadas a la API sin compromiso inicial ni tarifa mínima. Para obtener más información, consulte Precios de criptografía de pago de AWS.

AWS Payment Cryptography elimina sus dependencias de los HSM de pago dedicados y los sistemas de administración de claves heredados, lo que simplifica su integración con las API nativas de AWS. Además, al operar toda la aplicación de pago en la nube, puede minimizar las comunicaciones de ida y vuelta y la latencia.

Mueva sus aplicaciones de procesamiento de pagos a la nube con AWS Payment Cryptography.

Danilo



Fuente

Samsung lanza el monitor inteligente actualizado tipo iMac M8 y el monitor curvo para juegos Odyssey OLED G9 de 49 pulgadas

Cómo jugar acceso anticipado a Starfield

Cómo jugar el acceso anticipado a Starfield, explicado