Pular para o conteúdo principal

Troca de chaves

1. Requisição assinada

Toda a troca de informações entre APIs deverá utilizar o protocolo HTTPS¹ e uma assinatura assimétrica². Nosso modelo de implementação da assinatura é baseado no utilizado pela Amazon³, sendo a principal diferença o uso de chaves assimétricas que adicionam uma camada de não-repúdio na comunicação.

Atenção

Todas as nossas API's só aceitam requests HTTPS utilizando TLS 2.0

Toda a comunicação com a QI é assinada, tanto as requisições quanto as respostas, isso significa que existe um parâmetro nas mensagens que garante sua autenticidade. Para realizar tal assinatura, a QI usa um padrão com chaves assimétricas, portanto existem duas chaves diferentes, uma para assinatura (chave privada) e uma para leitura (chave pública). As assinaturas seguem o padrão JWT e o algoritmo de criptografia ECDSASHA512 (Recomendamos FORTEMENTE a exploração do site https://jwt.io/, nele você conseguirá validar JWTs e descobrir bibliotecas para lidar com esses tokens em basicamente qualquer linguagem moderna de programação).

O uso dessa combinação de tecnologias visa criar um canal de comunicação seguro e que garanta que as mensagens enviadas só poderiam vir de uma fonte que possui a chave privada para assiná-la. Por esse motivo o par de chaves pública-privada precisa ser criado de maneira independente por cada uma das partes e a chave privada deve ser guardada em segredo, não sendo divulgada para nenhum terceiro ou parte interessada, nem mesmo a QI.

2. Troca de chaves (pública e privada)

Para gerar sua chave privada em um computador UNIX faça:

$ ssh-keygen -t ecdsa -b 521 -m PEM -f jwtECDSASHA512.key

E a partir desta chave privada gere sua chave pública.

$ openssl ec -in jwtECDSASHA512.key -pubout -outform PEM -out jwtECDSASHA512.key.pub

3. Gerando a chave pública e de integração da QI Tech

Como parte da assinatura das requests e das respostas é necessário que você forneça sua chave pública a nós e que nós forneçamos uma chave pública para você, assim a leitura das mensagens poderá ser feita nas duas pontas da comunicação. Além disso forneçemos uma chave única do tipo UUID que representa sua integração via API dentro de nosso sistema.

Para receber as duas chaves faça login na plataforma QI Tech no ambiente sandbox. Clique em "Meu perfil", localizado no menu lateral esquerdo, depois entre na aba Integração. Após isso, insira sua chave pública no primeiro campo e clique no botão “SALVAR CHAVE”. Feito isto a chave pública e de integração da QI Tech estarão disponíveis nos campos inferiores.

Integracao

Atenção!

Nunca forneça sua chave privada, ela é de uso exclusivo seu e o compartilhamento da mesma no lugar da chave pública compromete a segurança de suas requests. Além disso, não compartilhe suas chaves públicas QI Tech e chave de integração pois eles são seu meio de comunicação com nossas APIS.