A B3 adotou como modelo de segurança para as APIs expostas o uso de fatores de segurança como o Mutual SSL ( Two Way SSL) com pinagem de certificado e tokens JWS obtidos com padrão OAuth 2.0.
OAuth 2.0
Trata-se de um protocolo de autorização que permite que os usuários autentiquem-se em um site ou aplicativo com suas credenciais em um provedor de identidade. JWT é um padrão para autenticação e troca de informações, nele é possível armazenar de forma segura e compacta objetos JSON.
Na B3 utilizamos o token JWS ( JSON Web Signature), que representa a assinatura do token.
Saiba mais em:
OAuth 2.0: https://tools.ietf.org/html/rfc6749
JWT: https://tools.ietf.org/html/rfc7519
Mutual SSL (Two Way SSL)
Para que o canal de comunicação entre cliente e servidor seja seguro e protegido contra uma série de ataques do tipo “ man in the middle”, é utilizado protocolo HTTPS, o que implica a apresentação de certificado pelo servidor para garantir sua autenticidade e criptografia dos dados trafegados.
Com o uso do Mutual SSL o cliente também deverá apresentar certificado ao servidor durante o handshake SSL, garantindo assim mútua autenticidade. O certificado de cliente será fornecido pela B3 juntamente com a senha utilizada para proteger a chave privada.
Protocolo HTTPS
Toda comunicação com as APIs da B3 requerem o uso de HTTPS, com TLS 1.2 ou superior.
Pinagem de Certificado
Pinagem do certificado é o processo de extrair a chave do certificado, para que possa ser inserida no código de sua aplicação, para ser enviada no processo de handshake ao conectar-se às APIs.
Os clientes que irão consumir as APIs deverão implementar a pinagem do certificado raiz do endereço de conexão, em suas aplicações, aceitando conexões vindas apenas daquela cadeia certificadora.
Rate Limit / Throttle
Para proteção dos recursos expostos e ataques de sobrecarga, regras de limitação de volume de requisições são aplicadas.
Quando estes limites forem excedidos será retornado o código de erro HTTP 429.
Clique aqui e saiba mais.
- Para exemplos e definição do modelo de autenticação adotado, consulte a documentação oficial da API