Más específicamente, ¿puedo hacer que firmen una cadena de texto con su certificado privado x509 y luego puedo verificarlo utilizando el certificado público utilizado por el sitio web en cuestión? Quizás podría proporcionarles un certificado sin firmar para que lo firmen o algo por el estilo.
Gracias de antemano :)
Respuesta1
Sí, como sugirió, podría enviarles una cadena de bytes (en este contexto podríamos llamarlo texto de desafío) y hacer que lo cifren con la clave privada SSL/TLS de su servidor y devolver el texto cifrado, luego podrá verificarlo. descifrándolo con la clave pública de su certificado de servidor SSL/TLS.
O puede generar una cadena de bytes, cifrarla con la clave pública del certificado de su servidor, enviársela, hacer que la descifren con la clave privada de su servidor y pedirle que le envíe el texto sin formato original.
Sin embargo, tenga en cuenta que relativamente pocas personas saben cómo hacer este tipo de cosas con su clave privada SSL, así que no se sorprenda si tiene que proporcionarles instrucciones paso a paso para encontrar su clave privada y cifrar o descifrar su clave privada. desafío.
Respuesta2
Puedes hacer que te envíen un correo electrónico desde ese dominio o hacer un whois (CLI o usarhttps://www.whois.net/) y vea si su contacto aparece en la lista, o puede pedirle que cargue una página de verificación en su sitio. url/yeaIownthis.html con alguna contraseña o algo así.
Respuesta3
Aquí hay un método que usa M2Crypto y Python:
f = open(CERT_FILE)
cert_buffer = f.read()
f.close()
from M2Crypto import RSA, X509
cert = X509.load_cert_string(cert_<wbr>buffer, X509.FORMAT_PEM)
pub_key = cert.get_pubkey()
rsa_key = pub_key.get_rsa()
cipher = rsa_key.public_encrypt('<wbr>plaintext', RSA.pkcs1_padding)
print cipher
ReadRSA = RSA.load_key(KEY_FILE)
try:
plaintext = ReadRSA.private_decrypt (cipher, RSA.pkcs1_padding)
except:
print "Error: wrong key?"
plaintext = ""
print plaintext
Extracto tomado deesteartículo.