Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Python no incluye una gestión MSP propia. Lo que sí puede hacer es crear, leer y validar certificados X.509 y establecer conexiones TLS. Las reglas que deciden si una identidad es válida dentro de una red Hyperledger Fabric las define la configuración MSP de Fabric, y esa capa no se reproduce con las bibliotecas de Python. Si mezclas ambas capas, un certificado puede parecer correcto en Python y aun así no servir como identidad en la red.

En este artículo, MSP significa Membership Service Provider, el componente de Hyperledger Fabric que define qué identidades pertenecen a una organización. Si la sigla se refiere a otro producto, el texto no aplica.

Qué significa MSP en Fabric

Según el modelo de seguridad de Fabric, “a membership service provider (MSP) is the trusted authority that authenticates member identities”. Es decir, el MSP no es un certificado: es la autoridad de confianza que decide cómo se autentica cada miembro. La documentación de seguridad de Hyperledger Fabric describe ese papel dentro de la red.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

La implementación predeterminada se apoya en certificados X.509 y en una jerarquía PKI. Por eso Python aparece en la conversación: el formato del certificado es estándar. Pero un certificado por sí solo no basta. Fabric debe poder trazar su ruta hasta una raíz configurada y reconocer sus atributos según la configuración del MSP.

Qué valida Fabric en una identidad MSP

La guía MSP de Fabric describe una identidad X.509 válida como aquella que cumple estas tres condiciones:

  • Tiene una ruta verificable hacia exactamente una raíz de confianza del MSP.
  • No figura en la lista de revocación (CRL) que el MSP consulta.
  • Incluye una de las unidades organizacionales (OU) configuradas.

En el modelo que documenta esa guía, una identidad MSP no caduca por sí misma; se invalida mediante CRL. Eso no significa que los certificados de la red no tengan fecha de vencimiento. La fecha Not After de los certificados de inscripción y TLS se trata en la sección de renovación, porque es un asunto operativo distinto.

Certificados de inscripción frente a certificados TLS

Un error frecuente es tratar todos los certificados de un nodo como si cumplieran la misma función. La guía de gestión de certificados de Fabric separa dos tipos:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Aspecto Certificado de inscripción Certificado TLS
Qué representa Identidad de un admin, peer, orderer o cliente Protección de la comunicación entre nodos y clientes
Dónde se aplican las reglas Validación MSP: ruta a raíz, CRL y OU Validación de la conexión TLS; no sustituye las reglas MSP
Vencimiento Fecha Not After; reinscribir antes de que venza Fecha Not After; renovar antes de que venza
Tratamiento de la clave en el flujo HSM documentado Las claves de identidad MSP se tratan por separado Las claves TLS siguen basadas en archivos en ese flujo

Por eso una misma clave o un mismo certificado no conviene reutilizarlo para ambos fines sin revisar el diseño de la red.

Rank #2
Blockchain for Business with Hyperledger Fabric: A complete guide to enterprise Blockchain implementation using Hyperledger Fabric
  • Learn the basics of blockchain and distributed ledger technology from a business and enterprise perspective
  • Understand the advantages of hyperledger fabric and get acquainted with its architecture and tools used
  • Acquire skills to create, deploy and interact with chaincode in node.Js
  • Learn to set up a new hyperledger fabric network
  • Demystify chaincode, in fabric, for developers and operators

Qué aporta Python y qué no

Python ofrece dos piezas útiles. Ninguna de ellas implementa las reglas MSP de Fabric, y su documentación no las presenta como sustituto de la configuración de confianza de la red.

cryptography.x509: construir y leer certificados

La documentación X.509 de cryptography indica que la biblioteca implementa X.509 conforme a RFC 5280, con foco principal en WebPKI. Permite crear y analizar certificados, CSRs y extensiones. Su ejemplo de jerarquía de CA es ilustrativo y debe adaptarse a los requisitos de cada entorno. Generar un certificado no equivale a inscribirlo en un MSP.

Para inspeccionar un certificado de identidad, un punto de partida es este fragmento:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
from cryptography import x509

with open('identidad.pem', 'rb') as f:
    cert = x509.load_pem_x509_certificate(f.read())

print(cert.subject.rfc4514_string())

El fragmento muestra el sujeto del certificado. Comprobar si ese sujeto y su cadena encajan con el MSP es un paso aparte.

ssl: validar la conexión TLS

El módulo estándar ssl configura TLS con OpenSSL, carga certificados y cadenas, y valida el certificado del servidor durante la conexión. La referencia enlazada corresponde a Python 3.10; revisa la documentación de la versión que uses.

Para usar material de confianza explícito, puedes crear el contexto así:

import ssl

contexto = ssl.create_default_context(cafile='ca.pem')

Esa validación responde a si la conexión TLS es confiable. Que el cliente acepte el servidor no demuestra que la identidad tenga permiso dentro de la red Fabric.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

PEP 748: una API en propuesta

La PEP 748 propone una API TLS unificada. Es una propuesta, no una garantía de disponibilidad en tu versión de Python. El texto también aclara que el objeto de certificado previsto no parsearía ni inspeccionaría certificados por sí solo.

Verificación de cadenas con cryptography: cuidado con la estabilidad

La documentación PDF de cryptography describe APIs para verificar rutas X.509, pero advierte que son inestables y todavía no están sujetas a su política de compatibilidad hacia atrás. Si las usas en producción, fija la versión exacta de la biblioteca en tu archivo de dependencias y repite las pruebas de verificación antes de actualizarla. La documentación PDF de verificación de cryptography es la referencia para este punto.

Flujo operativo para una identidad o un certificado TLS

  1. Clasifica el certificado: ¿es de inscripción o TLS?, ¿quién lo emite? y ¿qué servicio lo consume?
  2. Obtén el certificado y su clave mediante el proceso de CA y enrollment de Fabric. Mantén la clave privada fuera del certificado público y limita su acceso al proceso que la usa.
  3. En la configuración del MSP, registra las raíces e intermedios necesarios y comprueba la ruta a raíz, la CRL y las OU.
  4. En los clientes Python, usa ssl con material de confianza explícito, como en el ejemplo anterior.
  5. Vigila la fecha Not After y programa la reinscripción o renovación con antelación.
  6. Evalúa un HSM solo si tu modelo de amenaza lo justifica.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Renovación y vencimientos

La guía de gestión de certificados de Fabric pide vigilar la fecha Not After y reinscribir antes del vencimiento. Esto no es opcional en una red en producción: un certificado vencido impide la comunicación TLS o la autenticación de la identidad, según el caso.

Para poner el problema en contexto, el resumen de la guía de NIST publicada el 16 de junio de 2020 afirma: “Despite the critical importance of these certificates, many organizations lack a formal TLS certificate management program and do not have the ability to centrally monitor and manage their certificates.” La guía está dirigida a organizaciones medianas y grandes, y la cita es una afirmación cualitativa, no una estadística.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Reinscripción manual en Fabric

Si gestionas los certificados a mano, la tarea es un calendario de reinscripción ligado a la fecha Not After de cada identidad y cada certificado TLS. El riesgo principal es olvidar uno de los dos tipos, porque la red suele seguir funcionando hasta el día del vencimiento.

cert-manager en Kubernetes

Si tu despliegue corre en Kubernetes, la documentación de cert-manager describe recursos Certificate asociados a un Issuer o ClusterIssuer, con renovación automática. Esto automatiza la emisión y renovación de certificados administrados. No sustituye las reglas MSP: el certificado renovado debe seguir cumpliendo la ruta a raíz, la CRL y las OU configuradas.

HSM: cuándo tiene sentido

Fabric puede delegar operaciones criptográficas de los nodos a un HSM mediante PKCS#11. La guía de HSM de Fabric distingue las claves de identidad MSP de las claves TLS basadas en archivos en ese flujo, y advierte que las imágenes Docker preconstruidas no vienen con PKCS#11 habilitado.

Antes de decidir, revisa estos puntos:

  • Compatibilidad del módulo PKCS#11 con la versión de Fabric que usas.
  • Biblioteca del fabricante del HSM y su configuración en los nodos.
  • Empaquetado: imagen propia con PKCS#11 habilitado, según la guía.
  • Soporte del proveedor del HSM para el modelo de despliegue previsto.

Un HSM protege las claves de los nodos. No es un requisito para usar X.509 desde Python.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.