Mais especificamente, posso fazer com que eles assinem uma sequência de texto com seu certificado privado x509 e depois verificá-lo usando o certificado público usado pelo site em questão? Talvez eu pudesse fornecer-lhes um certificado não assinado para assinarem ou algo nesse sentido.
Desde já, obrigado :)
Responder1
Sim, como você sugeriu, você pode enviar a eles uma sequência de bytes (neste contexto, podemos chamá-lo de texto de desafio) e fazer com que eles a criptografem com a chave privada SSL/TLS do servidor e enviem de volta o texto cifrado, então você pode verificá-lo descriptografando-o com a chave pública do certificado do servidor SSL/TLS.
Ou você pode gerar uma sequência de bytes, criptografá-la com a chave pública do certificado do servidor, enviá-la a eles, fazer com que eles a descriptografem com a chave privada do servidor e enviar de volta o texto não criptografado original.
Observe, porém, que relativamente poucas pessoas sabem como fazer coisas assim com sua chave privada SSL, então não se surpreenda se você tiver que fornecer instruções passo a passo para encontrar sua chave privada e criptografar ou descriptografar sua chave privada. desafio.
Responder2
Você pode fazer com que eles lhe enviem um e-mail desse domínio ou façam um whois (CLI ou usemhttps://www.whois.net/) e veja se o contato está listado ou peça que carreguem uma página de verificação no site. url/yeaIownthis.html com alguma senha ou algo assim.
Responder3
Aqui está um método usando M2Crypto e 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
Trecho retirado deesseartigo.