Como funciona a segurança digital no Open Banking?
- Stark Bank
- Feb 11, 2020
- 4 min read
Updated: Aug 20, 2020
Stark Bank utiliza algoritmo ECDSA, método usado pelo Bitcoin e governo americano para garantir a integridade e autenticidade das transações bancárias

Segurança no ambiente digital é um tema fundamental e, tratando-se de sistemas bancários, a atenção e o cuidado devem ser redobrados. É isso que vamos explicar nesse post: os métodos de proteção oferecidos pela Stark Bank em sua API bancária, que visam garantir a integridade e autenticidade das transações bancárias de seus clientes (emissão de boletos, transferências, etc.), dando maior proteção para elas.
A Stark Bank utiliza encriptação, assinatura digital do tipo ECDSA e 2FA. Mas o que são esses métodos e como eles funcionam?
Encriptação:
O objetivo da encriptação é modificar a mensagem para que somente o transmissor e o receptor da mensagem saibam como ler o conteúdo, mesmo que outras pessoas tenham acesso à essa mensagem.
A forma mais simples de encriptação é conhecida como Cifra de César. Nela, cada letra do texto é substituída por outra que se encontra depois dela no alfabeto um número fixo de vezes (no exemplo abaixo, 3). Esse número é chamado de chave criptográfica e apenas as pessoas que trocarão as mensagens devem conhecê-lo.

No exemplo acima, mesmo sem saber o valor da chave, a mensagem poderia ser decodificada em, no máximo, 25 tentativas. Por isso, esse algoritmo de encriptação não é utilizado em aplicações reais. Existem diversos métodos de criptografia com níveis de segurança muito maiores, que podem requerer um número muito alto de tentativas para se quebrar a chave através de tentativa e erro, o que pode ser inviável com os computadores que temos hoje. Assim, quanto maior a quantidade de tentativas necessárias para decodificar a mensagem, mais seguro é o algoritmo.
Existem dois grandes grupos de criptografia: a simétrica e a assimétrica. Na simétrica, tanto o transmissor quanto o receptor da mensagem possuem a mesma chave. Na criptografia assimétrica, existem duas chaves: uma pública, usada para “encriptar” as mensagens e distribuída publicamente; e uma privada, usada para “desencriptar” as mensagens encriptadas com a chave pública.
Como analogia, podemos pensar em um cofre que tenha uma senha para trancar (chave pública, que pode ser possuída por qualquer pessoa) e outra senha para abrir (chave privada, que apenas o dono do cofre possui).
Qualquer pessoa que queira enviar uma mensagem para o receptor, coloca-a dentro do cofre e usa a chave pública do receptor para trancá-lo. Por mais que outras pessoas possam ver o cofre, sem a chave privada do receptor elas não conseguem abrir o cofre e ver o que há dentro.
Na Stark Bank utilizamos TLS para encriptar toda a comunição dos usuários ao nosso sistema. Dessa forma, as mensagem são enviadas sem que outras pessoas na internet sejam capazes de lê-las.
Assinatura Digital
O objetivo da assinatura digital não é esconder a mensagem como na encriptação, mas sim garantir a sua integridade, ou seja, garantir que ela não seja modificada durante sua transmissão.
Assim como a criptografia assimétrica, a assinatura digital também utiliza um sistema de par de chaves (pública e privada). Assim, o transmissor gera a sua chave privada e envia ao receptor sua chave pública. A partir daí, o transmissor utiliza sua chave privada para assinar a mensagem e a manda com a assinatura para o receptor. Este, por sua vez, usa a chave pública do transmissor para verificar se a assinatura é válida, rejeitando a mensagem, caso não seja.
Assim, a assinatura nada mais é que um código único que apenas o transmissor é capaz de gerar, usando sua chave privada para comprovar a integridade da mensagem enviada.
Se um hacker alterar a mensagem durante sua transmissão, ele teria que gerar uma nova assinatura para a mensagem adulterada. Sem saber a chave privada do transmissor, seriam necessárias muitas tentativas para gerar uma assinatura correta, o que torna esse processo computacionalmente inviável caso as partes usem um algoritmo robusto, como o ECDSA.
ECDSA
O Algoritmo de Assinatura Digital com Curvas Elípticas (ECDSA) é um método amplamente testado e usado pelo Bitcoin, Ethereum e governo americano. Esse algoritmo é considerado um dos mais seguros do mundo, pois para quebrá-lo seria necessário até 10⁷⁷ (1 com 77 zeros ao lado) tentativas, o que levaria trilhões de anos para se conseguir, mesmo com todo o poder computacional atual do planeta trabalhando junto.
Para exemplificar, seria o equivalente a você escolher uma partícula aleatória do universo e depois pedir para a outra pessoa adivinhar qual partícula você escolheu. Já os sistemas bancários usuais encontrados no Brasil utilizam métodos de segurança que podem ser derrubados com até 10⁶ (um milhão) de tentativas.
Como mencionamos anteriormente, a segurança de um algoritmo é proporcional ao número de tentativas necessárias para quebrá-lo. Assim, por requerer um número extremamente alto de tentativas, o ECDSA é considerado um dos mais seguros do planeta.
Autenticidade
Autenticidade é garantir que a identidade apresentada é verdadeira e pertence a pessoa a está apresentando.
Na Stark Bank, o ECDSA é utilizado para gerar assinaturas digitais a fim de garantir a integridade das transações bancárias, bem como sua autenticidade.
Two-factor authentication (2FA)
Para sistemas que não requerem um grau elevado de segurança, a senha de uma pessoa é suficiente para garantir a autenticidade da sua comunicação. No entanto, sua senha pode ser exposta por diversos motivos, permitindo que terceiros se passem pelo dono da senha.
Para combater programas que interceptam e enviam seus dados a criminosos, sistemas mais seguros solicitam um código de acesso adicional que poder ser enviado e acessado por um canal independente confiável, como e-mail, SMS, WhatsApp ou aplicativos de OTP, desde que apenas as pessoas certas tenham acesso.
Esse tipo de verificação adicional de autenticidade que envia uma senha temporária por algum meio secundário é conhecido como autenticação de dois fatores (do inglês Two-factor authentication ou 2FA). A senha temporária é utilizada para realizar todas das operações críticas, como transferências e pagamentos.
Postaremos mais conteúdos sobre novas funcionalidades e sobre o universo Open Banking em nosso blog.
Comments