Como eu posso verificar criptograficamente que alguém possui o site que eles reivindicam?

1

Mais especificamente, posso fazer com que assinem uma cadeia de texto com o certificado privado x509 e, em seguida, posso confirmá-la usando o certificado público usado pelo site em questão? Talvez eu pudesse fornecer-lhes um certificado não assinado para eles assinarem ou algo nesse sentido.

Agradecemos antecipadamente:)

    
por derrend 07.05.2015 / 04:29

3 respostas

2

Sim, como você sugeriu, você poderia enviar uma sequência de bytes (neste contexto poderíamos chamá-la de texto de desafio) e criptografá-la com a chave privada SSL / TLS de seu servidor e enviar de volta o texto cifrado. pode verificá-lo descriptografando-o com a chave pública de seu certificado de 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 para ela, descriptografá-la com a chave privada do servidor e fazer com que ela envie de volta o texto original.

Note, porém, que relativamente poucas pessoas sabem como fazer coisas como essa com sua chave privada SSL, portanto não se surpreenda se você tiver que fornecer instruções passo-a-passo para encontrar sua chave privada e criptografar ou decifrando seu desafio.

    
por 07.05.2015 / 05:32
0

Você pode fazer com que eles enviem um e-mail desse domínio ou façam um whois (CLI ou use o link ) para ver se contato é listado, ou você pode fazer com que eles enviem uma página de verificação para o site deles. url / yeaIownthis.html com alguma senha ou algo assim.

    
por 07.05.2015 / 04:58
0

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 extraído do este artigo.

    
por 07.05.2015 / 09:53