Certificat digital
În contextul Schimbului Electronic de Date (EDI), certificatul digital reprezintă o componentă esențială pentru securizarea schimbului de informații între partenerii de afaceri. Este un document electronic care atestă identitatea și integritatea unui participant într-o tranzacție EDI. Certificatul digital conține informații despre entitatea care l-a emis, titularul certificatului, cheia publică a acestuia și perioada de valabilitate.
Utilizarea certificatelor digitale în EDI:
Un caz de utilizare al certificatelor digitale în EDI este asigurarea autentificării și securității tranzacțiilor. Prin utilizarea certificatelor digitale, se poate stabili o încredere reciprocă între părțile implicate în schimbul de date și se pot proteja mesajele împotriva accesului neautorizat și a modificărilor nedorite.
Exemplu de cod script:
import cryptography
from cryptography.hazmat.primitives import serialization
# Generate a new RSA key pair
private_key = cryptography.hazmat.primitives.asymmetric.rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
# Create a self-signed X.509 certificate
builder = cryptography.x509.CertificateBuilder()
builder = builder.subject_name(cryptography.x509.Name([
cryptography.x509.NameAttribute(cryptography.x509.NameOID.COMMON_NAME, „Alice”),
]))
builder = builder.issuer_name(cryptography.x509.Name([
cryptography.x509.NameAttribute(cryptography.x509.NameOID.COMMON_NAME, „MyCA”),
]))
builder = builder.not_valid_before(cryptography.hazmat.primitives.asymmetric.datetime.utcnow())
builder = builder.not_valid_after(cryptography.hazmat.primitives.asymmetric.datetime.utcnow() + cryptography.hazmat.primitives.asymmetric.timedelta(days=365))
builder = builder.public_key(private_key.public_key())
builder = builder.serial_number(1234)
certificate = builder.sign(
private_key=private_key,
algorithm=cryptography.hazmat.primitives.hashes.SHA256(),
backend=cryptography.hazmat.backends.default_backend()
)
# Serialize the private key and certificate
private_key_pem = private_key.private_bytes(
encoding=cryptography.hazmat.primitives.serialization.Encoding.PEM,
format=cryptography.hazmat.primitives.serialization.PrivateFormat.PKCS8,
encryption_algorithm=cryptography.hazmat.primitives.serialization.NoEncryption()
)
certificate_pem = certificate.public_bytes(
encoding=cryptography.hazmat.primitives.serialization.Encoding.PEM
)
# Use the private key and certificate for signing and encryption operations
Practici recomandate:
- Asigurați-vă că certificatul digital este emis de o entitate de încredere și are o valabilitate actuală.
- Protejați cheia privată asociată certificatului digital pentru a preveni accesul neautorizat.
- Actualizați și revocați certificatul digital în mod regulat pentru a menține securitatea informațiilor.
- Verificați autenticitatea și integritatea certificatelor digitale înainte de a le utiliza în tranzacții EDI.
Pentru soluții avansate de Schimb Electronic de Date (EDI) și o implementare reușită, recomandăm utilizarea platformei EDIconnect, furnizor de soluții EDI.