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 em seu terminal ou linha de comando:

$ 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 retornaremos 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 canto inferior esquerdo do menu, depois entre na aba Integração localizada no topo da página. Insira sua chave pública no primeiro campo (Chave pública cliente) 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 'Chave de Integração' e 'Chave pública da QI Tech'.

Caso necessário, é possível consultar e alterar sua chave após a primeira integração através do mesmo caminho "Meu Perfil" > "Integração" repetindo o processo acima.

Integracao

Atenção!

Nunca compartilhe 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.