====== ProvTransaction - Manual de Integração ====== ===== 1. Introdução ===== Este manual foi desenvolvido para tratar unicamente da implementação do processo de integração da plataforma ProvTransaction com a aplicação de Retaguarda e Canais. Neste estão disponíveis também os procedimentos e regras de uso e validação. ===== 2. Configuração ===== A primeira providência é instalar o ambiente Python em hardware definido na especificação do projeto, considerando a quantidade de //sementes// que serão armazenadas no banco de dados de objetos residente em memória. **__Importante__: Cada componente com semente ocupa 915 Bytes. Portanto, cada 1GB de RAM suporta em torno de 1 milhão de componentes.** ==== 2.1 Ambiente Python ==== O Python pode ser encontrado no [[https://www.python.org/|site do projeto]], que oferece instaladores, fontes, scripts e todos os procedimentos necessários para instalação nos sistemas operacionais Windows e Linux. === 2.1.1 REDIS === É responsável pelo processamento criptográfico sendo customizado através de plugins que implementam o algoritmo OATH gerados previamente distribuídos aos usuários.Tem número fixo e muitos estão persistidos. * **Instalação:** O Redis deve ser instalado no seu ambiente utilizando o gerenciamento de instalação de pacotes/programas do sistema operacional escolhido. Após a instalação ele pode rodar como aplicativo ou serviço. === 2.1.2 TORNADO === É o responsável pela conectividade, integração e interação com o formulário da transação é customizável através de extensions que são criadas dinamicamente a cada nova conexão sendo eles que se conectam ao Redis localizando um componente através do número de série gerando um novo código provTransaction ou validando um digitado no canal. * **Instalação:** Como no caso do Redis, você deve utilizar o gerenciamento de pacotes da sua distribuição para adicionar o Tornado ao seu Python. === 2.1.3 MÓDULOS ADICIONAIS === Módulos Python também necessários: **Pycrypto** e **Pyinstaller**. **__Importante__: Durante o uso //o canal// se conecta ao //Tornado// e e suas extensions buscam os plugins //Redis//, sendo essa relação imprevisível porquê dependem de quem está conectado no momento.** ==== 2.2 Plataforma ProvTansaction ==== A plataforma ProvTransaction é o resultado de implementações Python dentro da estrutura de customização previstas no [[provmed:provtransaction:integracao#ambiente_python|Redis e Tornado]], que otimizam esses módulos tornando-os mais rápidos e protegidos. * **Instalação:** Para instalação da plataforma ProvTransaction, entre em contado com a equipe técnica da Provmed TI. === 2.2.1 PACOTES === “seed” : Gera exclusivamente sementes “em claro” diretamente em arquivos texto. “seedk”: Gera sementes criptografadas em arquivo texto. “seedjs”: Gera componentes e sementes criptografadas em arquivo json. ”seedict1”: Gera componentes e sementes criptografadas no Redis. *** existem aplicações de importação/exportação/ de/para armazenamento texto/json/Redis por faixas de tokens incluindo funções leitura e apagamento geral do componentes no Redis que pode ser demorado para quantidades massivas por causa dos “snapshots” persistidos. “tkrd” : Gera código ProvTransaction de uma semente e desafio dados. “qrled”: POC da aplicação mobile para apresentações em desktop usando webcam. “totp”: Apresenta em display gráfico o código ProvTransaction de um componente dado armazenado no Redis com desafio fixo na janela de tempo para ser usado em testes e homologações. “zig”: Geração e armazenamento seguro via software da chave de criptografia de sementes. “zag”: Recuperação da chave armazenada de criptografia de sementes função que internamente pode ser agregado a geradores de sementes. === 2.2.2 CONECTIVIDADE (TORNADO) === Os recursos de segurança utilizados para uso na plataforma são extensions Tornado chamadas através de conexão http/https através de comandos “post” ou “get”. * **Funções online previstas na provTransation:** http://localhost:8888/oath/ – Geração de código ProvTransaction utilizada para o envio de códigos de aprovação através de canais paralelos como SMS ao invés de Qrcoode. http://localhost:8888/ocra/ – Validação básica informando serial, semente e desafio. http://localhost:8888/seed/ – Exportação de sementes a partir de um número de série utilizado na ativação da App mobile. http://localhost:8888/monitora/ – Medição número de usuários conectados no Redis e volume de transações por segundo além de status de memória em uso/disponível em/para operação no banco de dados. **__Importante__: ** Substitua "localhost" pelo número IP ou URL do servidor que hospeda a plataforma ProvTransaction. === 2.2.3 QRCODE (COMPOSIÇÃO) === O usuário tem disponível em seu smartphone um estoque local de sementes além da chave de criptografia de Qrcode, previamente distribuídos na fase de[[provmed:provtransaction:integracao#ativacao| ativação.]] No momento de publicar o formulário da transação o banco cria um Qrcode (versão "10", nível de correção "L") incluindo 3 informações agrupadas e criptografadas (AES256) em uma sequência de caracteres, a saber: EXEMPLO: (1) (2) (3) Aberto: 4000000-123-1234567890 Cifrado: LIQz5+VC5mLwQjQMQ/FME98SvJA= - **Numero de série:** de uma das sementes presentes no smartphone do usuário escolhida aleatoriamente; - **Desafio de sessão:** valor aleatório a ser agregado na semente no cálculo do código de confirmação; - **Chave de criptografia de sementes:** obtida diretamente da plataforma usada para abrir sementes no smartphone; {{:provmed:provtransaction:qr_aberto.jpg|Aberto}} {{:provmed:provtransaction:qr_cifrado.jpg|Cifrado}} Na transação o App lê o Qrcode recuperando a semente realizando a geração do cálculo OATH. ===== 3. Processos ===== Após o ambiente estar em conformidade com as especificações necessárias, e a plataforma ProvTransaction homologada, os pacotes estarão disponíveis para utilização. Para cada processo existem utilitários e aplicativos específicos, que serão descritos nos próximos tópicos. ==== 3.1 Preparação ==== ==== 3.2 Distribuição ==== ==== 3.3 Ativação ==== ==== 3.4 Aprovação ==== ===== 4. Conclusão ===== [[provmed:provtransaction|]]