Configuração de Credenciais

Documentação - Configuração de Credenciais

Essa Wiki tem como objetivo apresentar o processo de configuração de credencias do OSB.

1. CompanyAuthentication

A tabela CompanyAuthentication é responsavel por manter os dados criptografados que são gerados na parte do OSB Encryption bem como Salt (Valor aleatório usado para criptografar a secret), UserName e Password, usada para autenticação das requisições do OSB à API's externas. Também é usado para que processos sejam autenticados como a parte de Response em FindAccountBalanceResponse:

  • Relacionamento no Banco de Dados

  • Registro
    O registro de uma CompanyAuthentication é feito de forma manual na tabela de mesmo nome. Para isso, antes, deve-se gerar os dados criptografados utilizando o método EncryptCompanyAuthenticationPasswords() presente no projeto OSB Encryption. Essas chaves são secretas e não devem ser compartilhadas por serem responsáveis por proteger os demais dados e operações a serem efetuadas (Vale também para a UserCredential).

O PartnerId e a Secret fazem parte das credenciais de integração que são fornecidas pela equipe de suporte do FitBank na fase de integração.

  • Código

2. UserCredential

A Tabela UserCredential é responsável por manter os dados sensíveis que são criptografados no método Encrypt. O Password é criptografado usando o tipo de algoritmo de hash HMACSHA512 chave que é construído a partir da função de hash SHA-512 no método SHA512Provider no código, que é usada para autenticação de usuários no OSB a partir de uma condição que compara o que já foi criptografado (No momento do cadastro das credencias) com os dados inseridos no login do usuário que também será criptografado.

  • Registro
    Assim como CompanyAuthentication os dados a serem registrados na tabela UserCredential são criptografados no OSB Encryption, recebendo os dados de entrada: (UserCredentialId e Senha) inseridos manualmente no banco de dados.

  • Relacionamento no Banco de Dados

3. OSB Encryption

O projeto OSB Encryption é utilizado para criptografar dos dados sensíveis do usuário como o Password.

Criptografias usadas:

- SHA512

SHA512 gera o hash (às vezes chamado de 'digest') de uma mensagem de entrada, com base no algoritmo SHA-512 da família SHA-2.

Uma função HASH gera uma informação de tamanho fixo a partir de dados de tamanho variável. Trata-se de uma forma de gerar um identificador diferente de tamanho fixo para informações quaisquer. Uma função de HASH criptográfico também é chama de função de dispersão criptográfica. Um HASH é uma função de criptografia unidirecional, isto é, não reversível — um HASH gerado a partir de uma informação não permite recuperar a informação original.

Em linhas gerais, trata-se do uso de uma (entre várias) metodologias de codificação e decodificação de um bloco de dados, reversível, onde o método empregado pode tornar de difícil a impossível recuperar o seu conteúdo original, e apenas quem codificou ou quem sabe decodificar a mensagem consegue fazê-lo. Este recurso é usado para armazenamento e tráfego de dados sensíveis, onde mesmo que alguém intercepte ou veja os dados, o uso de um método criptográfico “forte”, torna impossível saber o que aquilo significa realmente.

  • Exemplo criptografia do tipo SHA512

- AES Encyption

O AES (Padrão de Criptografia Avançado) é um algoritmo de criptografia simétrica (o que significa que as chaves de criptografia e descriptografia são as mesmas). Como AES é uma cifra de bloco, os dados são divididos em blocos de 128 bits antes de criptografá-los com a chave de 256 bits. A criptografia AES de 256 bits é um padrão internacional que garante uma segurança de dados superior e é reconhecida pelo governo dos Estados Unidos entre outros. A criptografia AES-256 é basicamente indecifrável fazendo com que ela seja o padrão de criptografia mais forte disponível.