Árvore de páginas


CONTEÚDO

  1. Arquivo ACPO
    1. Composição
    2. Geração
    3. Fluxo
    4. Serviços
    5. Controle de versionamento
  2. Consolidação das informações
    1. Fluxo Consolidação 
    2. Geração automática (Múltiplos GBDS)
  3. Serviços Monitor
  4. Chaves PGP - Criptografia Arquivos (linux)
  5. Chaves PGP - Criptografia Arquivos (windows) 
  6. Chaves SSH - SFTP
  7. Estrutura de diretórios (servidor)





01. ARQUIVO ACPO


        a. Composição de um arquivo ACPO


b. Geração de um arquivo ACPO


c. Fluxo de geração do arquivo ACPO111 Histórico de Créditos (São todas as operações contratadas pelo cliente e seus pagamentos em um determinado período, estabelecido pelo GBD.

OBS: Alguns GBD’s podem ou não enviar o arquivo de retorno ACPO112. 


d. Fluxo de serviços ACPO

e. Fluxo de controle de versionamento de envio e remessa


02. CONSOLIDAÇÃO DAS INFORMAÇÕES

a. Fluxo relacionado a consolidação das informações.


b. Geração automática (Múltiplos GBDS)

A geração dos arquivos ACPOS é executada de forma automatizada de acordo com parametrização aplicada no agendador, onde é possível configurar os horários de execução do JOB. Essa parametrização deverá seguir a grade horários de cada GBD. O processo executa através do CronMaker (O CronMaker usa o agendador de código aberto Quartz. As expressões geradas são baseadas no formato Quartz cron).

O agendamento para o JOB que executa o processamento dos arquivos deve ser realizado através de parametrização no banco de dados.

--Verificar o status referente ao tempo do agendador
SELECT * FROM TOTVS_CADPOSITIVO.T447CFPP;


--Alterar o tempo do agendador conforme demanda.

UPDATE TOTVS_CADPOSITIVO.T447CFPP
SET DS_EXP_TPO='0 0/10 * 1/1 * ? '    → Tempo estimado para rodar a cada 10 minutos.
WHERE ID_CPP=1;      →JOB de geração do ACPO107 e ACPO111


--Após o UPDATE acima, deve-se excluir as informações do QUARTZ para o sistema atualize o novo tempo programado.

Esquema: TOTVS_CADPOSITIVO

DELETE TOTVS_QUARTZ.T555_LOCKS tl WHERE sched_name='ServiceEjbScheduler';
DELETE TOTVS_QUARTZ.T555_CRON_TRIGGERS WHERE sched_name='ServiceEjbScheduler';
DELETE TOTVS_QUARTZ.T555_TRIGGERS WHERE sched_name='ServiceEjbScheduler';
DELETE TOTVS_QUARTZ.T555_JOB_DETAILS WHERE sched_name='ServiceEjbScheduler';


--Após executar um restart no serviço do Cadastro Positivo (CADPOS)


A geração automática dos arquivos pode ser verificada através da tela do Monitor.


Também é possível verificar pelo banco de dados onde é possível validar os horários de início e fim do JOB que faz a geração dos arquivos para todos os GBDS ativos e parametrizados na tela de Configurações Gerais.


03. SERVIÇOS DO MONITOR



04. Chaves PGP - Criptografia Arquivos (LINUX)

Pretty Good Privacy (PGP) é um padrão de criptografia reconhecido pelo setor que fornece privacidade e garante a autenticidade dos dados que você envia ou recebe. O PGP pode ser usado para criptografar e descriptografar textos, e-mails, arquivos ou partições de discos inteiros, bem como para criar assinaturas digitais.


a. OBJETIVO

Antes que os arquivos possam ser enviados para aos GBDS, é fundamental que seja feita uma preparação do mesmo, para garantir não só a segurança das informações transmitidas, mas a sua compatibilidade de comparação com os arquivos das demais fontes de dados.


b. ENCRIPTAR E ENVIAR O ARQUIVO

É importante encriptar o arquivo para a transmissão para garantir que apenas as pessoas autorizadas tenham acesso ao seu conteúdo. Portanto, os arquivos devem ser encriptados com PGP para “empacotar” o mesmo através da chave pública do GBD. 
O sistema de troca de chaves permite que apenas o GBD, de possa da chave privada, possa abrir o pacote e ter acesso ao conteúdo do arquivo.


c. CRIPTOGRAFIA PGP NO LINUX


GnuPG
Passo 01: Instale o software GnuPG

$sudo apt install gnupg

Após a instalação execute o comando gpg ou gpg2 para criar o diretório ~./gnupg que armazenará as chaves pública e privada. 

OBSERVAÇÃO: você pode utilizar tanto o gpg quanto o gpg2, este último é o mais atual $gpg

Quando executar o comando exibirá essa mensagem:

gpg: directory '/home/usuário./gnupg' created

gpg: keybox '/home/usuário./gnupg/pubring.kbx' created
gpg: WARNING: no command supplied. Trying to guess what you mean ...
gpg: Go ahead and type your message ...

Mate o processo (Ctrl+c) para que possa prosseguir . 

Passo 02: Gerando as chaves GnuPGP

Para gerar um par de chaves pessoais use o comando

$gpg --full-gen-key
ou se não funcionar tente
$gpg --gen-key

Caso o primeiro comando tenha sido bem sucedido, o GnuPG iniciará o processo de criação da nova chave 
detalhadamente, com a seguinte mensagem abaixo: Se somente o segundo funcionou, continue no passo onde você insere 
seus dados. 

Por favor selecione o tipo de chave desejado:
(1) RSA e RSA (padrão)
(2) DSA e Elgamal
(3) DSA (apenas assinar)
(4) RSA (apenas assinar)
Sua opção?

Nesse ponto você deve escolher o tipo de chave criptográfica. Selecione (1) RSA e RSA (padrão) a não ser que tenha necessidades específicas.

RSA chaves podem ter o seu comprimento entre 1024 e 4096 bits.
Que tamanho de chave você quer? (2048)

O tamanho sugerido é 4096 e suficiente para uma boa combinação de proteção/velocidade. Faça essa escolha e siga para o próximo passo. 

O tamanho sugerido é 4096 e suficiente para uma boa combinação de proteção/velocidade. Faça essa escolha e siga para o próximo passo. 

Agora escolha o período da validade de sua chave. A opção 0 (zero) é o padrão, a chave não expira. Mas é recomendável que a chave expire depois de um certo período. Informe um número positivo que terá o valor de dias. Esse número pode ser seguido das letras w (semanas), m (meses) ou y (anos). Por exemplo, "10w", "7m", "2y", "60". Obs: Após a validade, a chave será considerada inválida e deve ser gerada uma nova. O período sugerido é de 2 anos.

A chave é valida por? (0) 2y
A chave expira em sáb DD MM AAAA HH:MM:SS GMT
Está correto (s/N)?

Feito isso, uma confirmação da sua escolha será exibida como acima. Caso tenha certeza da sua escolha, confirme. 
Senão, repita esse passo.
Após confirmar será pedido seu nome completo, e-mail e comentário (opcional). Uma mensagem de confirmação é exibida no final deste passo

Nome completo: Nome Sobrenome

Email: [email protected]

Comentário:

Você selecionou este identificador de usuário:

"Nome Sobrenome <email@dominio.com>

" Muda (N)ome, (C)omentário, (E)mail ou (O)k/(S)air? O </email@dominio.com>

Informe sua senha:

A senha é uma senha que irá identificá-lo(a) como proprietário(a) da chave privada. É uma senha que pode conter espaços e não  há limite de caracteres.
Repita a senha:
Digite novamente a senha

Sua chave será gerada nesse momento. Para ajudar o processo da geração de sua chave, mova seu mouse pela tela aleatoriamente.


---------------------- COMANDOS BASICOS GPG -------------------

<ir até o arquivo>
cd CAMINHO_DO_ARQUIVO

<importar chave>
gpg --import CHAVE.asc

<exportar chave pública>
gpg --output public.pgp --armor --export <KEYID>

<exportar chave privada>
gpg --output private.pgp --armor --export-secret-key <KEYID>


<criptografar arquivo>
cd /CAMINHO_DO_ARQUIVO_DESCRIPTOGRFADO/
gpg --batch --yes --passphrase="<SENHA>" --default-key <CHAVE_PRIVADA> --trust-model always --output /CAMINHO_DE_SAIDA/NOME_ARQUIVO_SAIDA.gpg -se -r <CHAVE_PUBLICA_PARCEIRO> NOME_ARQUIVO_ENTRADA.txt

<descriptografar arquivo>
cd /CAMINHO_DO_ARQUIVO_CRIPTOGRAFADO/
gpg  --output /CAMINHO_SAIDA/NOME_ARQUIVO_SAIDA.txt -d NOME_ARQUIVO_ENTRADA.txt.asc


Passo 03:

Listando as chaves criadas.

Execute o comando:
$gpg --list-key

Será exibido no seguinte formato:
pub 4096R/CBA4A5BF 2017-07-02
uid Nome Sobrenome <email@dominio.com>
sub 4098g/84E0D512 2017-07-02
A primeira coluna exibe o tipo de chave: a palavra pub indica uma chave publica principal para assinaturas, enquanto a palavra sub indica uma chave publica subordinada;
A segunda coluna indica o tipo da chave, seguido da quantidade de bits e seu número de identificação (KEY-ID) em hexadecimal;
A terceira coluna é exibido a data de criação da chave (yyyy,mm,dd);
Por fim, a última coluna exibe o identificador do usuário.
OBSERVAÇÃO: Em caso da chave não ser exibida de imediato executar comando:
gpg --keyid-format short --list-keys 

b) Encriptar e decriptar arquivos usando PGP

i. Encriptando dados
Use o comando gpg -e arquivo faz a encriptação de dados:
 gpg -e arquivo.txt
Será pedida a identificação de usuário, digite o nome que usou para criar a chave. O arquivo criado será encriptado usando a chave pública do usuário ( ~/.gnupg/pubring.gpg ) e terá a extensão .gpg adicionada ( arquivo.txt.gpg ). Além de criptografado, este arquivo é compactado (recomendável para grande quantidade de textos). A opção -a é usada para criar um arquivo criptografado com saída ASCII 7 bits:
 gpg -e -a arquivo.txt
O arquivo gerado terá a extensão .asc acrescentada ( arquivo.txt.asc ) e não será compactado. A opção -a é muito usada para o envio de e-mails. Para criptografar o arquivo para ser enviado a outro usuário, você deverá ter a chave pública do usuário cadastrado no seu e especificar a opção -r seguida do nome/e-mail/ID da chave pública:

gpg -r kov -e arquivo.txt
O exemplo acima utiliza a chave pública de kov para encriptar o arquivo arquivo.txt (somente ele poderá decriptar a mensagem usando sua chave privada). OBS: É recomendável especificar o nome de arquivo sempre como último argumento.

ii. Decriptando dados com o gpgAgora vamos fazer a operação reversa da acima, a opção -d é usada para decriptar os dados usando a chave privada:
 gpg -d --decrypt arquivo.txt.asc >arquivo.txt
 gpg -d --decrypt arquivo.txt.gpg >arquivo.txt
Descriptografa os arquivos arquivo.txt.asc e arquivo.txt.gpg recuperando seu conteúdo original. A sua "FraseSenha" será pedida para descriptografar os dados usando a chave privada ( ~/.gnupg/secring.gpg )
iii. Assinando arquivosAssinar um arquivo é garantir que você é a pessoa que realmente enviou aquele arquivo. Use a opção -s para assinar arquivos usando sua chave privada:
 gpg -s arquivo.txt
A "FraseSenha" será pedida para assinar os dados usando sua chave privada. Será gerado um arquivo arquivo.txt.gpg (assinado e compactado). Adicionalmente a opção --clearsign poderá ser usada para fazer uma assinatura em um texto plano, este é um recurso muito usado por programas de e-mails com suporte ao gpg:
 gpg -s --clearsign arquivo.txt
Será criado um arquivo chamado arquivo.txt.asc contendo o arquivo assinado e sem compactação.
iv. Checando assinaturasA checagem de assinatura consiste em verificar que quem nos enviou o arquivo é realmente quem diz ser e se os dados foram de alguma forma alterados. Você deverá ter a chave pública do usuário no seu chaveiro para fazer esta checagem.
Para verificar os dados assinados acima usamos a opção --verify:
 gpg --verify arquivo.txt.asc
Se a saída for "Assinatura Correta", significa que a origem do arquivo é segura e que ele não foi de qualquer forma modificado.
 gpg --verify arquivo.txt.gpg
Se a saída for "Assinatura INCORRETA" significa que ou o usuário que enviou o arquivo não confere ou o arquivo enviado foi de alguma forma modificado
Observações
  1. A chave pública deverá ser enviada ao GBD e a chave privada deverá ser copiada para um diretório de onde seja possível fazer o upload na aplicação (cadastro positivo)
  2.  


05. Chaves PGP - Criptografia Arquivos (Windows)


Kleópatra

Para a criação das chaves PGP, por indicação dos GBDS utilizamos o software Kleopatra porém, a solução fica a critério do cliente, desde que as chaves atendam os requisitos de segurança solicitados.

LINK para Download: https://gpg4win.org/download.html

Criando Novos Pares de Chaves

  • O item do menu Arquivo → Novo Certificado... (Ctrl+N) inicia o Assistente de Criação do Certificado que o guiará por um conjunto de passos para criar um pedido de certificado.

Sempre que terminar um passo no assistente, clique em Próximo para passar ao passo seguinte (ou Anterior para rever os passos já completos). A criação do pedido do certificado poderá ser cancelada a qualquer momento clicando no botão Cancelar.

  • Na primeira página do assistente, escolha o tipo de certificado que deseja criar, selecionar a opção: Criar um par de chaves do OpenPGP pessoal

Você terá que inserir um Nome, E-Mail e uma senha.

O próximo passo do assistente é inserir os seus dados pessoais para o certificado. Os campos a preencher são:

  • Nome Comum (CN): O seu nome ou nome da empresa;
  • Endereço de e-mail (EMAIL): O seu endereço de e-mail; certifique-se de inseri-lo corretamente—será este o endereço para onde as pessoas irão enviar as mensagens sempre que usarem o seu certificado.

Selecionar a opção -Proteger a chave gerada com senha

Clicar em Configurações Avançadas


  • Em Configurações Avançadas:

Material da chave - Conforme imagem abaixo

Seleciona Assinatura

Válido até: Selecionar a data vencimento da chave.

Clicar em OK


  • Clicar em Criar


Exportando a chave Privada

Após a criação da chave Privada, a mesma deverá ser exportada para um diretório do Servidor.

  • Escolher uma nomenclatura adequada ao arquivo e clicar em "Salvar"



Exportar a chave Pública

  • Clicar em Exportar, seleciona o diretório no servidor e “Salvar”

O usuário é o oracle e a permissão pode ser ajustada com “chmod 600 nome-do-arquivo”.

  • Escolher uma nomenclatura adequada ao arquivo e clicar em "Salvar"


OBS:

  1. Deverá ser feito o upload do arquivo referente a chave privada na tela de Configurações Gerais do GBD em Chave PGP Privada.
  2. A chave pública gerada, deverá ser enviada ao referido GBD. 
  3. O GBD retornará com uma chave pública, deverá ser feito o upload na tela de Configurações Gerais em Chave PGP Pública.




06. Chaves SSH- Plataforma Windows

PuTTYgenPara a criação da chave SSH, por indicação dos GBDS utilizamos a solução Puttygen.

Criando chave através do PuTTYgen

  1. Faça o download dele em: putty.org/puttygen. Abra o aplicativo e clique no botão "Generate"

2. Depois que o PuTTYgen gerar a chave, selecione toda a área criptografada e dê um CTRL + C para copiar tudo e anote-a em um bloco de notas.

3. Crie uma senha em Key passphrase

Salvar chave Pública

Clique no botão Save public key para salvar a chave gerada. 


Salvar chave Privada

Clique no botão Save private key para salvar a chave gerada. 


Conversão das chaves

Para que a aplicação reconheça os arquivos, a chave deve ser convertida antes de ser copiada para o servidor.

Abrir o PuTTY Key Generator

Em Conversions>>Import Key

Selecionar a chave SSH a ser convertida, informar a senha.

Selecionar Conversions>>Export OpenSSH Key


Informar nomenclatura que identifique corretamente a chave, clicar em  "Salvar"


Observações:

  1. A chave pública deverá ser enviada ao GBD e a chave privada deverá ser copiada para a estrutura do servidor
  2. Deverá ser dado a permissão de acesso SSH ao arquivo da chave privada (CHMOD = 600)



07. Chaves SSH- Plataforma Linux

LinuxPara a criação da chave SSH via linha de comando

Criando chave através do Linux

No Linux é preciso gerar uma chave RSA.

Execute o comando ssh-keygen;
• Digite o nome do arquivo da chave;

• O sistema criará 2 arquivos:

O arquivo com a extensão .pub será a chave pública. Envie a chave pública ao GBD para que eles possam configurar no seu logon;

O outro arquivo será a chave privada. Altere a permissão do arquivo da chave privada:
o Chmod 700 nome-do-arquivo-da-chave-privada

• O arquivo da chave privada deverá ser copiado para o diretório: /opt/totvs/tfs/keys/


Parametrização a aplicação 

Na tela de configurações Gerais>>SFTP

No campo Chave SSH deverá ser informado o caminho do diretório onde a chave está alocada. 


08. Estrutura de diretórios (Servidor)


Na tela de configurações gerais, no item Configuração de Arquivo ACPO, no campo "Caminho" o usuário deverá informar a pasta onde os arquivos de remessa serão gerados e os arquivos de retorno serão disponibilizados pelo GBD para processamento da aplicação.


Dessa forma, se faz necessário que os seguintes diretórios sejam criados na estrutura de pastas do servidor;

mkdir -p /totvs/cad_pos/BOA_VISTA/REMESSA_CLIENTES/
mkdir -p /totvs/cad_pos/BOA_VISTA/REMESSA_CONGLOMERADO/
mkdir -p /totvs/cad_pos/BOA_VISTA/REMESSA_CONTESTACAO/
mkdir -p /totvs/cad_pos/BOA_VISTA/REMESSA_HISTORICO/
mkdir -p /totvs/cad_pos/BOA_VISTA/RETORNO_CANCELAMENTO/
mkdir -p /totvs/cad_pos/BOA_VISTA/RETORNO_CLIENTES/
mkdir -p /totvs/cad_pos/BOA_VISTA/RETORNO_CONTESTACAO/
mkdir -p /totvs/cad_pos/BOA_VISTA/RETORNO_HISTORICO/
mkdir -p /totvs/cad_pos/QUOD/REMESSA_CLIENTES/
mkdir -p /totvs/cad_pos/QUOD/REMESSA_CONGLOMERADO/
mkdir -p /totvs/cad_pos/QUOD/REMESSA_CONTESTACAO/
mkdir -p /totvs/cad_pos/QUOD/REMESSA_HISTORICO/
mkdir -p /totvs/cad_pos/QUOD/RETORNO_CANCELAMENTO/
mkdir -p /totvs/cad_pos/QUOD/RETORNO_CLIENTES/
mkdir -p /totvs/cad_pos/QUOD/RETORNO_CONTESTACAO/
mkdir -p /totvs/cad_pos/QUOD/RETORNO_HISTORICO/
mkdir -p /totvs/cad_pos/SERASA/REMESSA_CLIENTES/
mkdir -p /totvs/cad_pos/SERASA/REMESSA_CONGLOMERADO/
mkdir -p /totvs/cad_pos/SERASA/REMESSA_CONTESTACAO/
mkdir -p /totvs/cad_pos/SERASA/REMESSA_HISTORICO/
mkdir -p /totvs/cad_pos/SERASA/RETORNO_CANCELAMENTO/
mkdir -p /totvs/cad_pos/SERASA/RETORNO_CONTESTACAO/
mkdir -p /totvs/cad_pos/SERASA/RETORNO_HISTORICO/
mkdir -p /totvs/cad_pos/SPC/REMESSA_CLIENTES/
mkdir -p /totvs/cad_pos/SPC/REMESSA_CONGLOMERADO/
mkdir -p /totvs/cad_pos/SPC/REMESSA_CONTESTACAO/
mkdir -p /totvs/cad_pos/SPC/REMESSA_HISTORICO/
mkdir -p /totvs/cad_pos/SPC/RETORNO_CANCELAMENTO/
mkdir -p /totvs/cad_pos/SPC/RETORNO_CONTESTACAO/
mkdir -p /totvs/cad_pos/SPC/RETORNO_HISTORICO/