Ir al contenido

Integración mediante CSP/CNG

Microsoft CryptoAPI es una librería de funciones criptográficas disponible en plataformas Microsoft Windows. Esta biblioteca no implementa los algoritmos directamente, dejando esta tarea a componentes denominados proveedores de servicios criptográficos (CSP), que son extensiones (DLL) desarrolladas tanto por la propia Microsoft como por terceros.

CryptoAPI es la librería de encriptación recomendada para ser utilizada en aplicaciones desarrolladas para la plataforma Windows. Aplicaciones como MS Outlook y Exchange utilizan esta biblioteca.

HSM Dinamo, además de su API nativa, proporciona una CSP compatible con CryptoAPI para que las soluciones existentes puedan integrarse fácilmente con HSM locales o servicios en la nube.

El CSP se basa en la biblioteca nativa Dinamo y admite todos los algoritmos disponibles en el HSM.

Afinidad sesión-hilo

Las sesiones de HSM tienen afinidad sesión-hilo. Esto significa que la misma sesión no puede ser utilizada por varios hilos al mismo tiempo.

Proveedor de CSP

Nombre del proveedor: Dinamo HSM Cryptographic Provider
Tipo de proveedor: 1 - PROV_RSA_FULL
  MD5 (MD5)
    dwDefaultLen=128 dwMinLen=128 dwMaxLen=128
    CALG_MD5
    Clase de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Subidentificación del algoritmo: 0x3(3) ALG_SID_MD5
  SHA-1 (SHA-1)
    dwDefaultLen=160 dwMinLen=160 dwMaxLen=160
    CALG_SHA1
    Clase de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Subidentificación del algoritmo: 0x4(4) ALG_SID_SHA1
  SHA-256 (SHA-256)
    dwDefaultLen=256 dwMinLen=256 dwMaxLen=256
    CALG_SHA_256
    Clase de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Subidentificación del algoritmo: 0xc(12) ALG_SID_SHA_256
  SHA-384 (SHA-384)
    dwDefaultLen=384 dwMinLen=384 dwMaxLen=384
    CALG_SHA_384
    Clase de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Subidentificación del algoritmo: 0xd(13) ALG_SID_SHA_384
  SHA-512 (SHA-512)
    dwDefaultLen=512 dwMinLen=512 dwMaxLen=512
    CALG_SHA_512
    Clase de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Subidentificación del algoritmo: 0xe(14) ALG_SID_SHA_512
  SSL3 SHAMD5 (SSL3 SHAMD5)
    dwDefaultLen=288 dwMinLen=288 dwMaxLen=288
    CALG_SSL3_SHAMD5
    Clase de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Subidentificación del algoritmo: 0x8(8) ALG_SID_SSL3SHAMD5
  RSA SIGN (FIRMA RSA)
    dwDefaultLen=1024 dwMinLen=512 dwMaxLen=4096
    CALG_RSA_SIGN
    Clase de algoritmo: 0x2000(1) ALG_CLASS_SIGNATURE
    Tipo de algoritmo: 0x400(2) ALG_TYPE_RSA
    Subidentificación del algoritmo: 0x0(0) ALG_SID_RSA_ANY
  RSA KEYX (CLAVE RSAX)
    dwDefaultLen=1024 dwMinLen=512 dwMaxLen=4096
    CALG_RSA_KEYX
    Clase de algoritmo: 0xa000(5) ALG_CLASS_KEY_EXCHANGE
    Tipo de algoritmo: 0x400(2) ALG_TYPE_RSA
    Subidentificación del algoritmo: 0x0(0) ALG_SID_RSA_ANY
  DES (DES)
    dwDefaultLen=56 dwMinLen=56 dwMaxLen=56
    CALG_DES
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Subidentificación del algoritmo: 0x1(1) ALG_SID_DES
  3DES-EDE (3DES-EDE)
    dwDefaultLen=112 dwMinLen=112 dwMaxLen=112
    CALG_3DES_112
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Subidentificación del algoritmo: 0x9(9) ALG_SID_3DES_112
  3DES-EDE (3DES-EDE)
    dwDefaultLen=168 dwMinLen=168 dwMaxLen=168
    CALG_3DES
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Subidentificación del algoritmo: 0x3(3) ALG_SID_3DES
  CALG_RC4 (CALG_RC4)
    dwDefaultLen=128 dwMinLen=128 dwMaxLen=128
    CALG_RC4
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x800(4) ALG_TYPE_STREAM
    Subidentificación del algoritmo: 0x1(1) ALG_SID_RC4
  AES-128 (AES-128)
    dwDefaultLen=128 dwMinLen=128 dwMaxLen=128
    CALG_AES_128
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Subidentificación del algoritmo: 0xe(14) ALG_SID_AES_128
  AES-192 (AES-192)
    dwDefaultLen=192 dwMinLen=192 dwMaxLen=192
    CALG_AES_192
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Subidentificación del algoritmo: 0xf(15) ALG_SID_AES_192
  AES-256 (AES-256)
    dwDefaultLen=256 dwMinLen=256 dwMaxLen=256
    CALG_AES_256
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Subidentificación del algoritmo: 0x10(16) ALG_SID_AES_256
  CALG_RC2 (CALG_RC2)
    dwDefaultLen=112 dwMinLen=112 dwMaxLen=112
    CALG_RC2
    Clase de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-id del algoritmo: 0x2(2) ALG_SID_RC2

Proveedor de GNC

Nombre del proveedor: Dinamo HSM Cryptographic Provider
  Módulo del proveedor:
      UNO(1): tacndcsp.dll
      0(1): 10001, 1
        0: KEY_STORAGE

  Algoritmos de cifrado asimétrico:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)

  Algoritmos de firma:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)

  Algoritmos asimétricos:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)

    NCryptCreatePersistedKey(Dinamo Proveedor criptográfico HSM, RSA)
  Nombre:
  Grupo de algoritmos: RSA
  Nombre del algoritmo: RSA
  Longitud: 2048 (0x800)
  Longitudes:
    dwMinLength = 512 (0x200)
    dwMaxLength = 8192 (0x2000)
    dwIncrement = 64 (0x40)
    dwDefaultLength = 2048 (0x800)
  Política de exportación: 0 (0x0)
      (NCRYPT_ALLOW_EXPORT_FLAG -- 1)
      (NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG -- 2)
      (NCRYPT_ALLOW_ARCHIVING_FLAG -- 4)
      (NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG -- 8)

  Tipo de impl: 9 (0x9)
    NCRYPT_IMPL_HARDWARE_FLAG -- 1
      (NCRYPT_IMPL_SOFTWARE_FLAG -- 2)
    NCRYPT_IMPL_REMOVABLE_FLAG -- 8
      (NCRYPT_IMPL_HARDWARE_RNG_FLAG -- 10 (16))

  Uso de la clave: 16777215 (0xffffff)
    NCRYPT_ALLOW_DECRYPT_FLAG -- 1
    NCRYPT_ALLOW_SIGNING_FLAG -- 2
    NCRYPT_ALLOW_KEY_AGREEMENT_FLAG -- 4
    NCRYPT_ALLOW_KEY_IMPORT_FLAG -- 8
    NCRYPT_ALLOW_ALL_USAGES -- ffffff (16777215)

  Security Descr: D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;S-1-5-21-414208720-3607778739-1988866334-1002)(A;ID;FA;;;S-1-5-21-414208720-3607778739-1988866334-1010)
  APROBADO

  Todos los algoritmos:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)