====== ProvTransaction - Descritivo ====== ===== Descrição ===== É uma plataforma de alta performance e baixo custo para aprovação de transações online baseada em tokens componente, dirigida a canais eletrônicos bancários. ===== Características ===== Confirmação individual de transações associando tokens por transação a partir de uma //semente//. É constituída por elementos de alto desempenho que apresentam facilidade de integração e performance de chamada a componentes. Processamento criptográfico de validação distribuído em componentes armazenados em banco de dados residente em memória, instalado em servidor fora do perímetro das aplicações. Não é uma plataforma de autenticação de usuários e portanto não pode ser considerada como fator adicional de autenticação, mas sim uma solução de confirmação de transações. ===== Funcionalidades ===== Um utilitário da plataforma gera um determinado número de registros (//sementes//) no banco de dados de objetos, preparando assim a base de componentes que serão utilizados pela aplicação de negócios. No momento da ativação do //App Mobile// ou //Mobile Banking//, a base corporativa distribuirá uma faixa de tokens sorteadas que armazenadas no dispositivo do usuário serão utilizados no momento da aprovação de transações. ==== O Processo: ==== ---- . === I. A Preparação === O conta-corrente calcula o volume de transações anuais de cada usuário medindo o consumo de volume de transações efetuadas, sendo o total disso o número de componentes de tokens gerados com as respectivas //sementes// aleatórias armazenadas criptografadas a serem persistidos e armazenados no banco de dados noSQL Redis, instalado na rede acessável através de um webservice REST. No final, na base de usuários, ficarão armazenados o volume de tokens componente que serão distribuídos a ele; === II. A Distribuição === Cada token componente tem um número de série individual. A cada registro de um usuário na base corporativa dos canais devem ser acrescidos dois campos de caracteres; Um para a chave de criptografia original da base de tokens e outro para armazenar a faixa de números seriais atribuídos a esse usuário consumidos da base de tokens como “pilha”; Do maior para o menor, lembrando que essa base não é relacional; === III. A Ativação === Tanto na App mobile que embarcará as múltiplas //sementes// como, opcionalmente, no mobile banking, após a instalação do aplicativo na primeira carga será baixada a chave de criptografia do Qrcode e as //sementes// que virão criptografadas fazendo parte da resposta HTTP em formato padrão (?var1=valor1&var2=valor2&…), sendo imediatamente armazenadas como foram geradas originalmente na [[provmed:provtransaction:descritivo#o_processo|preparação(I)]]; === IV. O Uso === O canal dispõe da chave de criptografia das //sementes// geradas durante a [[provmed:provtransaction:descritivo#o_processo|preparação(I)]] e conhece a faixa de tokens sorteadas ao usuário e armazenadas em seu smartphone durante a[[provmed:provtransaction:descritivo#o_processo| distribuição(II)]]; Durante a montagem da tela da transação a ser aprovada é inserida uma imagem de Qrcode criptografado, usando a chave já enviada durante a[[provmed:provtransaction:descritivo#o_processo| ativação(III)]] incluindo a chave de criptografia das //sementes// dos tokens componente, e um número de série de uma das //sementes// presentes no smartphone; Na transação o smartphone lê e decodifica o Qrcode descriptografando usando a chave já armazenada obtendo a chave de criptografia das //sementes// armazenados e o número escolhido do token gerando uma resposta apresentada no display que será digitado na tela de transação; A validação segue o padrão OATH a partir da //semente// do componente token previamente selecionado; == Sobre o Mobile Banking == O processo é idêntico entre as fases de I-III mas as geração da senha variável no tempo é transparente ao usuário incluída automaticamente na transação; ===== Elementos da Arquitetura ===== ==== Plataforma ProvTransaction: ==== A plataforma ProvTransaction em termos de arquitetura é formada pela associação do servidor web Tornado e pelo banco de dados noSQL Redis. -** Python** - Ambiente, módulos e utilitários; - **Redis** - Database: É o banco de dados em rede open-source, para armazenamento de chaves com durabilidade opcional, também conhecido por NOSQL (Not Only SQL); - **Tornado** - Webservice: É um framework web Python e uma biblioteca de rede assíncrona. Usando I/O de rede sem bloqueio, o Tornado pode ser dimensionado para dezenas de milhares de conexões abertas, tornando-o ideal para pesquisas longas, WebSockets e outros aplicativos que exigem uma conexão duradoura com cada usuário. ==== Aplicação de Negócios: ==== - Retaguarda; - Canais (ATM, Internet Banking, Mobile Banking); [[provmed:provtransaction|]]