Chaves

Introdução #

Chaves sao usadas em toda comunicacao realizada com o Mastodon. Utilizando pares de chaves para assinar e verificar a autentidade das menssagens.

Gerar chaves #

Deve-se gerar um par de chaves ECDSA, uma privada e uma publica.

A chave privada deve ser guardade e preservada de forma segura.

A chave publica deve ser enviada para o time StarOne. Ela sera' usada para verificar a autencidade das menssagens envidadas para o Mastodon.

OpenSSL #

Partindo do princípio de que o terminal utilizado tem OpenSSL instalado e devidamente configurado:

Chave privada #

Para criar a chave privada, digite:

openssl ecparam -name prime256v1 -genkey -noout -out private.key

Vai gerar um arquivo chamado private.key. Ele é a chave privada. Guarde de forma segura e confiável. Pois ela vai ser responsável por garantir que o log guardado no Mastodon seja de seu sistema.

Chave pública #

Para gerar uma chave pública, digite apos ter criado a chave privada:

openssl ec -in private.key -pubout -out public.key

O arquivo gerado, public.key, é a chave pública que deve ser enviada para o e-mail devops@starone.one na troca de credenciais. Essa chave vai ser usada para verificar os logs enviados pelo seu sistema no Mastodon, garantindo a seguranca dos mesmos.

Erlang #

A partir do princípio de que o terminal utilizado tem Erlang instalado e devidamente configurado:

Gerando ambas as chaves #

{Pub, Prv} = crypto:generate_key(ecdh, prime256v1).

A chave pública e a privada são retornadas nesta ordem.

Como assinar o payload #

Devemos usar o digest como sha256 e a curva elíptica como prime256v1.

Erlang #

Processo completo de criação de chaves a sua assinatura e verificação da mesma:

Payload = <<"nosso log">>,
{Pub, Prv} = crypto:generate_key(ecdh, prime256v1),
Sign = crypto:sign(ecdsa, sha256, Payload, [Prv, prime256v1]),
true = crypto:verify(ecdsa, sha256, Payload, Sign, [Pub, prime256v1]).