SOLUÇÕES KEYPASCO

AUTENTICAÇÃO MULTIFATOR COM ALTO GRAU DE SEGURANÇA E EFICÁCIA

Soluções Keypasco, Autenticação & Segurança

A  autenticação é o ato de confirmar a verdade de um atributo ou de uma entidade e é um componente crítico do desenvolvimento seguro de negócios da Internet. Isso só pode ser feito através da verificação da identidade de uma pessoa ou programa de software. Na Internet, isso é feito principalmente pelo uso de credenciais de usuários, mas estas têm limitações.

A Keypasco desenvolveu uma opção com menos limitações.

Keypasco oferece uma solução de autenticação que não requer tokens hardware. O serviço combina fatores como impressões digitais, autenticação de dispositivos, geolocalizações, uma estrutura de 2 canais, proximidade de dispositivos móveis e uma análise de comportamento de risco para oferecer autenticação multi-fator forte.

 

O sistema Keypasco é dividido em:

  • Servidor chamado Borgen
  • Client chamado Vakten

Os clients estão instalados em um navegador, computador desktop ou laptop ou em dispositivos de smartphone.

O servidor é um aplicativo Java que está sendo executado na nuvem ou no local nas instalações do cliente (ICP).


Vakten – Client
O Vakten client é parte do Sistema da Keypasco no dispositivo do usuário final

Desktop

A aplicação está disponível nos ambientes:

  • Linux Ubuntu >v14.04
  • Windows XP and up
  • OS X >v10.7

A interface entre o desktop client e ICP é javascript. Portanto, o usuário final deve permitir javascript (ou o do ICP especificamente), para rodar a aplicação no browser. Ainda, qualquer firewall precisa permitir a troca de dados com a aplicação Vakten.

Mobile

O mobile SDK é o recurso mais pesado. Está disponível para plataformas Android e iOS, através de comunicação via APIs.

Ambientes suportados pelo mobile SDK:

  • Android >v10
  • iOS >v7

Os apps incluindo o SDK necessitam de permissões como acesso a localização, etc. Estão especificadas no arquivo “Keypasco Android / iOS documentations”

Browser

É um javascript que o cliente do sistema da Keypasco (ICP) inclui no seu próprio website.

Browsers suportados:

  • Chrome >v32
  • Internet Explorer >v9
  • Mozilla Firefox >v27
  • Safari >v6

Usuário final deve permitir javascript no browser.

FUNDAMENTOS

Modelo cliente-servidor

  • É uma estrutura que divide as tarefas entre os provedores de um recurso ou serviço, chamados servidores e solicitadores de serviço, chamados clientes.
  • Muitas vezes, clientes e servidores se comunicam através de uma rede de computadores em hardware separados. Um cliente não compartilha nenhum dos seus recursos, mas solicita a função de conteúdo ou serviço de um servidor. Os clientes iniciam sessões de comunicação com servidores que aguardam pedidos recebidos.
  • No sistema Keypasco, o servidor (Borgen) é acessado pelo cliente (também conhecido como ICP) e pelos clients Vakten. O servidor Borgen aguarda e responde às chamadas do ICP e dos clientes da Vakten.

Comunicação de cliente e servidor

  • Em geral, um serviço é uma abstração de recursos de computador e um cliente não precisa se preocupar com a forma como o servidor executa enquanto cumpre o pedido e entrega a resposta. O cliente só precisa entender a resposta com base no protocolo de aplicação bem conhecido, ou seja, o conteúdo e a formatação dos dados para o serviço solicitado.
  • Clientes e servidores trocam mensagens em um padrão de solicitação-resposta: o cliente envia uma solicitação e o servidor retorna uma resposta. Para se comunicar, o cliente e o servidor devem ter um idioma comum, e eles devem seguir as regras para que tanto o cliente como o servidor saibam o que esperar.

Criptografia

  • A criptografia é a prática e estudo de técnicas de comunicação segura e proteção de dados na presença de terceiros. De forma mais geral, neste contexto, a criptografia é sobre a codificação de informações antes de enviá-lo pela Internet ou armazená-lo em um banco de dados. Como a Internet é uma rede aberta e insegura, qualquer pessoa pode recuperar e estudar qualquer mensagem enviada. Para que as informações secretas permaneçam seguras, essas mensagens não devem estar em texto claro, mas devem ser criptografadas de forma que apenas o receptor pretendido possa descriptografar a mensagem para recuperar o texto em branco.
  • Existem duas formas de criptografia; simétrica e assimétrica. Criptografia simétrica significa que o mesmo valor da chave é usado tanto para criptografia quanto para descriptografia. Criptografia assimétrica significa que um par de chaves relacionadas são usadas, uma para criptografia e outra para descriptografia. Essas chaves são chamadas de chaves públicas e privadas.

PKI – Infraestrutura de chave pública

  • Este é o nome comum de um conjunto de regras e políticas que monitoram a criação, compartilhamento e gerenciamento de certificados digitais e chaves públicas. Um certificado digital é um arquivo que inclui informações sobre uma pessoa ou entidade, a chave pública da pessoa ou entidade e datas entre as quais o certificado é válido. Os certificados digitais são emitidos por uma autoridade de certificação, comumente chamada CA.

O SISTEMA DA KEYPASCO

O sistema Keypasco possui uma série de recursos a partir dos quais o cliente pode selecionar aqueles que ele deseja utilizar no processo de autenticação de seus usuários finais.

A seleção de recursos depende do nível de segurança exigido, envolvendo ou não o usuário final na inscrição e autenticação, seja necessário ou não a integração de um terceiro externo, quantos usuários acessam o sistema etc.

SERVIDOR BORGEN

Instalação

O servidor Borgen é desenvolvido em Java e é executado em alguns sistemas operacionais Linux; Ubuntu, Debian e RedHat.

Pode ser instalado on-site (no local/ escritórios do cliente), ou também pode ser instalado “na nuvem”.

Atualmente, as instalações da Borgen funcionam nos serviços da nuvem Amazon, em vários locais em todo o mundo e em várias instalações dos clientes.

APIs

O servidor Borgen no sistema Keypasco, tem vários conjuntos de definições de funções claramente especificadas. São as APIs -Interfaces de programação de aplicações. Essas interfaces mostram como os clientes podem se comunicar com o servidor Borgen.

Existem três interfaces entre um ICP e Borgen: API genérica, API do cliente e Extensão PKI.

  • A interface entre o Borgen e os clientes Vakten é chamada de API do cliente.
  • O ICP precisa usar a API genérica ou do cliente para adicionar um usuário, lista negra de um dispositivo, criar uma tarefa para o usuário assinar etc.
  • A comunicação entre o cliente Vakten e a API do Client Borgen é ativada através do aplicativo em execução e do usuário final dispositivo.

Banco de Dados

O próprio servidor Borgen é apátrido. Uma instância do servidor Borgen precisa de um banco de dados para poder funcionar. Aqui é onde todos os dados relevantes sobre o sistema estão armazenados. Por exemplo, os dados analisados pelo motor de risco, todos os usuários, seus dispositivos, informações sobre esses dispositivos e as configurações que especificam como o servidor deve funcionar no ambiente em que foi instalado.

Existem dois tipos diferentes de bancos de dados; bancos de dados relacionais usando SQL e bancos de dados não relacionais, muitas vezes referidos como NoSQL. Cada um desses tipos tem várias implementações diferentes.

  • Bancos de dados relacionais suportados por Borgen são DB2, Oracle, PostgreSQL e Microsoft SQL Server.
  • Banco de dados NoSQL suportado é o Couchbase.

Sempre que um servidor Borgen é implantado na nuvem, ou seja, usar servidores fornecidos por um terceiro, como Amazon, a Couchbase sempre é usada. Em outros casos, a Couchbase ou qualquer uma das bases de dados relacionais podem ser usadas.

CLIENT – VAKTEN

O cliente Vakten é parte do sistema Keypasco executado no lado do usuário final. Ele é executado em um dispositivo que pertence ao usuário. Ele se autenticará em um servidor Borgen e poderá assinar tarefas enviadas ao usuário pelo ICP.

O cliente Vakten existe em três formas:

  • javascript para navegadores
  • como um aplicativo para a área de trabalho
  • como um SDK para aplicativos móveis – O SDK é um pacote de software desenvolvido em C que pode ser incluído em outros aplicativos como Android ou iOS.

Este é o componente principal em torno do qual os clientes do sistema Keypasco podem criar suas próprias funcionalidades e interfaces gráficas de usuário.

ESPECIFICAÇÕES:

  • SERVIDOR BORGEN
    • Instalação

    – O Servidor Borgen , necessita Java JVM versão 8.

    – Linux operating systems

    • Ubuntu > v14.4
    • RedHat > v5
    • APIs

    – O servidor Borgen, tem vários conjuntos de APIs:

    • Admin API – A RESTful interface (with a proprietary Keypasco GUI)
    • Client API – A RESTful interface.
    • Generic API – defined by a WSDL file, SOAP communication.
    • Customer API – defined by a WSDL file, SOAP communication.
    • Extension PKI – defined by a WSDL file, SOAP communication.
    • Databases

    Os bancos de dados relacionais suportados são:

    • DB2 > v10
    • PostgreSQL > v9
    • Microsoft SQL Server > v12
    • Oracle > v10 
The single NoSQL database supported is Couchbase v4.1.

     

    Configuração recomendada do hardware

    Two Loadbalancers:

    • Processor: Xeon 4 physical core, 3.3 Ghz 8 Mb Cache (E3-1230-v3-8M-Cache-3_30-GHz)
    • Ram: 8Gb ECC
    • Disk setup: 40Gb (Raid 1)
    • Redundant power supply; network adapters

     

    Two Application Servers
Processor:

    • Xeon 4 physical core, 3.30 Ghz 8 Mb Cache (E3-1230-v3-8M-Cache-3_30-GHz)
    • Ram: 8Gb ECC
Disk setup: 100Gb (Raid 1)
Redundant power supply; network adapters

     

    Three Database Servers

    • Processor: Xeon 6 physical core, 2.1 Ghz 15 Mb Cache (E5-2620-v2-15M-Cache-2_10-GHz)
    • Ram: 16 Gb ECC
    • Disk setup: 300 Gb Raid 10
    • Redundant power supply; network adapters

ARQUITETURA:

  1. O usuário final tenta acessar alguma função no ICP, por exemplo, logar ou solicitar uma transação monetária.
  2. O ICP chama o servidor Borgen para criar uma tarefa para o usuário final assinar como forma de verificar se o usuário final está agindo intencionalmente.
  3. O client Vakten no dispositivo do usuário final recupera a tarefa do servidor Borgen através da API do Cliente. O usuário final então analisa a mensagem da tarefa e confirma ou nega que ele ou ela deseja prosseguir com esta transação ou login.
  4. O client Vakten responde com a resposta do usuário final.
  5. O ICP verifica com o servidor Borgen para ver qual é a resposta do usuário final à tarefa.
  6. O ICP permite que a transação ocorra ou não, dependendo da resposta do usuário final à tarefa.

FATORES DE AUTENTICAÇÃO:

Existem vários fatores de autenticação disponíveis no sistema Keypasco, além da autenticação básica do usuário final (login e senha). Todos esses fatores funcionam com base em que algum tipo de dispositivo está vinculado ou associado a um usuário final. Exemplos de dispositivos são smartphones, laptops e navegadores. O fator fundamental do sistema Keypasco é a “IMPRESÃO DIGITAL” do dispositivo, que é o único fator obrigatório e ativo por padrão.

Impressora digital do dispositivo

Onde o software client Vakten for instalado e associado a um usuário no sistema Keypasco, ele irá extrair uma série de propriedades e registrar informações comportamentais que podem definir de forma exclusiva aquele smartphone, computador PC ou Mac ou navegador. As chaves e propriedades adicionais são recuperadas do servidor e armazenadas no dispositivo. Juntos, esses dados formam o que é chamado de impressão digital desse dispositivo; ou seja, algo que identifica de forma exclusiva este dispositivo e o separa de todos os outros dispositivos.

A impressão digital pode mudar um pouco, mas se mudar de tal forma que o servidor Borgen julgue ser uma tentativa de criar um clone ou manipular o dispositivo, a autenticação de impressão digital falha e a conexão entre o dispositivo e o usuário final é removido.

Geolocalização

Um client Vakten fornecerá informações sobre sua localização geográfica no servidor Borgen. Isso é feito pelo recurso GPS em smartphones, usando o posicionamento Wi-Fi ou através do IP. A informação de localização é fornecida ao ICP, que então é capaz de analisar e, se necessário, reagir.

  • Proximidade – Sempre que dois client Vakten ligados a um único usuário estão ativos simultaneamente, o sistema Keypasco pode determinar se estão ou não na mesma região. Por exemplo, o usuário faz logon no site do ICP usando um laptop com um navegador que possui o cliente Vakten Browser instalado. O ICP solicita a Borgen que envie uma tarefa para ser assinada no smartphone do usuário, que possui o Vakten Mobile instalado. A posição é então correlacionada para determinar se o navegador e o smartphone estão localizados na mesma região.
  • Offline – Se um usuário final que tenha um smartphone com um client Vakten estiver off-line, ele ou ela pode usar a Geolocation One Time Password ou o GeoOTP. Este recurso utiliza o GPS do smartphone para gerar um código de 12 dígitos que é específico para a localização, hora e smartphone em que é gerado. Este código pode então, através do ICP, ser submetido ao servidor Borgen para verificar a localização e a posição do dispositivo.
  • Proximidade Bluetooth – Um usuário final pode associar um hardware capaz de se comunicar via Bluetooth, como uma pulseira ou um smartwatch para o perfil dele. Para que a autenticação do client Vakten desse usuário em execução em um laptop ou smartphone seja bem sucedida, o dispositivo Bluetooth adicional também deve estar lá. Se o dispositivo Bluetooth adicional não estiver ao alcance do cliente Vakten, a autenticação falhará.

Extensão PKI

A camada superior dos fatores de autenticação do sistema Keypasco é o recurso de extensão PKI.

O recurso PKI só está disponível para os client Vakten do smartphone.

  • Objetivo – O recurso permite que o usuário final gere um par de chaves; um público e um privado. A chave pública é usada para solicitar um certificado de um terceiro (CA). A chave pública que foi gerada é inserida no certificado. A chave privada é usada para criar uma assinatura digital, que pode ser verificada pelo servidor Borgen ou pela CA, que ambos possuem o certificado, incluindo a chave pública. Desta forma, o sistema Keypasco verificou que era titular da chave privada que criou a assinatura e ninguém mais.
  • Implementação – O par de chaves pode ser gerado pelo Borgen ou pelo client Vakten. Após a geração, a chave privada é dividida entre o smartphone e o servidor. No smartphone, o código PIN do usuário é usado para criar uma chave que criptografe a parte da chave privada armazenada lá. O servidor armazena a outra metade em seu banco de dados, criptografado com outra chave. Desta forma, um invasor precisa acessar o banco de dados do servidor, o smartphone e o código PIN do usuário para derivar a chave privada.
  • Integração de CA – Existe um plugin no servidor Borgen que é usado para se integrar na CA da escolha do cliente.

Motor de risco

O mecanismo de análise de risco fornece informações ao ICP sobre comportamentos suspeitos do lado do usuário e do dispositivo. Os parâmetros que são utilizados como entrada e linha de base para os recursos de análise de risco podem ser modificados no servidor Borgen, juntamente com as regras do que deve acontecer quando uma ameaça é detectada.

Uma seleção de três das regras no motor de risco são apresentadas brevemente abaixo:

  • Velocidade do dispositivo – Quando um dispositivo foi usado em um local específico, e então usado tão cedo em um local tão distante que o proprietário não pode ter viajado lá. O risco é que um invasor tenha clonado com sucesso um dispositivo e o clone usado em um local muito diferente de onde o dispositivo original é usado. O sistema Keypasco irá acompanhar esse movimento, o que pode levar à suspensão deste dispositivo para evitar que ele seja usado para autenticar qualquer pessoa real.
  • Verificação de credencial – Se vários usuários diferentes tentarem usar um dispositivo específico para autenticação em relação a um ICP e não fornecerem credenciais corretas, há uma chance de este dispositivo ser usado para atividades fraudulentas. O sistema Keypasco acompanhará esse comportamento, o que pode levar a uma lista negra deste dispositivo para evitar que ele seja usado para autenticar qualquer pessoa real.
  • Detecção de zona quente – No caso de registrar um client Vakten significa que o usuário final ganhará algo, o registro pode ser usado como um instrumento de fraude. A detecção de zona quente alertará o ICP se houver um número elevado de clients Vakten se registrando no mesmo local dentro de um período de tempo configurável.

Adicional

O sistema Keypasco também fornecerá ao ICP informações que, dependendo da situação e do ambiente, podem afetar a validade da autenticação. Os dados enviados para o servidor Borgen pelo client Vakten contém essas informações adicionais sobre o estado do dispositivo no qual o client Vakten está sendo executado.

  • Alertas de limpeza – Por exemplo, em um smartphone, o aplicativo Vakten indicará o dispositivo “rooted/jailbroken”, ou mesmo “debuggers” conectados. Caso o ICP considere que isso é um risco muito alto, ele pode negar que o usuário tente autenticar-se no acesso aos serviços do ICP.
  • Detecção de emulador – O client Vakten detectará se o ambiente em que ele está sendo executado não é o real. Por exemplo, se o smartphone com um cliente Vakten móvel for emulado em um PC, esta informação é fornecida ao ICP. Atualmente, mais de 20 emuladores de Android podem ser detectados, e o trabalho para detectar novos está constantemente em andamento.

MÓVEL:

SDK móvel, disponível para plataformas Android e iOS. Utiliza o SQLite como um banco de dados local para fins de armazenamento.

MÓVEL:

  1. SDK móvel, disponível para plataformas Android e iOS. Utiliza o SQLite como um banco de dados local para fins de armazenamento.

NAVEGADOR:

É um javascript que o cliente do sistema Keypasco (ICP) inclui em seu próprio site.

Desta forma, será executado no navegador do usuário final à medida que ele acessa o site do ICP.