Qual é a maneira mais simples de executar a criptografia de chave pública?

0

Estou me candidatando a um emprego e eles me pediram para enviar meu SSN para eles por e-mail. Me chame de paranóico, mas isso não é bom para mim.

Então, estou procurando uma forma simples de criptografia de chave pública que uma pessoa de RH não técnica possa gerar uma chave pública, enviá-la para mim, criptografar meu SSN, enviá-lo e, em seguida, a pessoa de RH poderia descriptografar usando sua chave privada.

Talvez algo como este link , mas neste site, a criptografia não funciona sem a chave privada (base e módulo ... são provavelmente regenerados)

    
por user4757074 24.03.2017 / 20:19

2 respostas

0

Use um site como o link para gerar chaves públicas e privadas do PGP. Peça à pessoa de RH que lhe envie sua chave pública. Com sua chave pública criptografando seu SSN, envie-o para a pessoa do RH, que poderá descriptografá-lo com sua chave privada.

    
por 15.09.2017 / 05:59
1

What's the simplest way to perform public key encryption?

Mais simples para quem? Eu acho que você quer dizer para a pessoa do departamento de RH. O protocolo mais fácil que vejo que pode ser implementado para que eles precisem acessar o site duas vezes sem nenhuma ação adicional da parte deles.

Você precisaria criar um site não-estático em seu servidor pessoal, no qual tenha certeza razoável de que o provedor do servidor não está procurando no disco rígido do servidor.

Vamos ver os passos (os detalhes da implementação estão entrelaçados com o protocolo):

  1. Gere dois URLs enigmáticos no seu servidor e envie o primeiro URL para a pessoa do RH (destinatário a partir de agora). Você pede ao destinatário para ligar para você assim que clicar no URL.

  2. O destinatário clica no URL e várias coisas acontecem:

    • O servidor verifica se esse URL foi solicitado antes e mostrará um erro, se foi. Nesse caso, esse processo deve ser iniciado novamente.

    • Se esta for a primeira vez que o URL é chamado, o JavaScript gera um par de chaves (public + private).

      • A chave pública é enviada para o servidor e armazenada nela, e a chave privada é armazenada no localStorage no navegador de destinatários.

      • Além disso, o navegador de destinatários gera uma cadeia aleatória (chamada de token), armazena-a no localStorage e a envia ao servidor em que ela está armazenada.

  3. Agora, o destinatário liga para você. Nesse momento, você pergunta se houve um erro. Se não houver, você precisará abrir a segunda URL criptografada gerada na etapa 1. Essa URL criptografada está vinculada às informações recebidas do destinatário na etapa 2 e contém um formulário no qual você pode digitar seu SSN.

  4. O SSN é criptografado com a chave pública armazenada e o texto cifrado é publicado em um terceiro URL criptográfico baseado no token da etapa 2.

  5. Você pede ao destinatário que clique no link novamente e receba uma página de erro, mas essa página de erro é ocultada rapidamente, pois há valores adicionais no localStorage, o que significa que é uma solicitação legítima. O navegador do destinatário faz o seguinte:

    • Ele busca o token do localStorage e consulta o texto cifrado.

    • Ele obtém a chave privada do localStorage e descriptografa o texto cifrado.

    • Exibe o SSN.

Este protocolo resolve o problema de que o SSN nunca é armazenado em texto não criptografado no servidor e, se alguém clicasse no link antes ou depois do destinatário pretendido, ele não veria nada. Embora isso possa ainda ser vulnerável à interceptação SSL por um host mal-intencionado e há pontos de entrada para engenharia social.

Você pode melhorar isso usando long-polling ou web sockets se não quiser que o destinatário clique na URL uma segunda vez.

Se você quer dizer mais simples para você, então você precisa comprometer a segurança ou ir pessoalmente ao escritório deles.

Você não deve usar o JSEncrypt para isso. Seria difícil integrá-lo aqui. Você deve optar por falsificar (fornece RSA e tudo ao seu redor) ou sjcl (fornece criptografia ElGamal por meio do KEM, que precisaria ser implementada junto com o AES-GCM; portanto, também não é realmente fácil).

    
por 24.03.2017 / 22:16