segunda-feira, 6 de junho de 2022

O § 2º do art. 1º do PROVIMENTO CSM N°2519/2019: ou como o TJ nos delega serviço sem qualquer objeção do Ministério Público (reflexões para o debate Institucional)

 

 

  1. 1. O PROVIMENTO CSM N°2519/2019 determina a tramitação direta dos inquéritos policiais entre Polícia Civil e Ministério Público, procedimento esse que é estimulado pelo CNJ e CNMP e já tem sido adotado em outros Estados da Federação.  


  1. 2. O TJSP, no entanto, não abriu mão de fiscalizar a tramitação direta (e, por óbvio, o MPSP). Previu no § 2º do art. 1º o “registro das movimentações no sistema eletrônico deste Tribunal”. Para efetivar esse comando, “disponibilizou” o SAJ Judiciário a usuários do MP, para que nele cadastremos o andamento dos feitos (em redundância, portanto, com os registros feitos no SIS MP Integrado). 


  1. 3. O trabalho acrescido não é trivial. O CAOCrim, o CTIC e os funcionários da Barra Funda, cientes disso, elaboraram um valioso material para a instrução dos nossos funcionários (gratidão a todos!). Vale a pena dar uma olhada nos documentos gerados pela Administração para se ter uma ideia do tamanho do desafio (Cf.: https://bit.ly/3szqSLF. Acesso restrito ao público interno).   


  1. 4. Não há qualquer sentido, porém, no trabalho adicional que o TJSP impõe ao MPSP, por, pelo menos, duas razões: 


  1. a) O SIS MP Integrado foi preparado para controlar o trâmite direto dos inquéritos policiais, nos termos do art. 2º, § 1º, da Resolução nº 1.178/2019-PGJ/CGMP (Protocolado nº 89.112/2018); 


  1. b) O SIS MP Integrado possui banco de dados estruturado. Para cumprir a PROVIMENTO (se entendermos que o ato do TJ cria obrigações para o MPSP), bastaria que o CTIC criasse scripts (consultas SQL) para gerar os relatórios das movimentações de inquéritos policiais e encaminhá-los ao TJSP. O investimento no desenvolvimento dessa funcionalidade pouparia o trabalho de inúmeros Oficiais de Promotoria, já bastante onerados com as rotinas administrativas “tradicionais”. É verdade que o TJSP também precisaria investir algum esforço (a meu, ver pequeno) para importar esses dados no SAJ, mas o ônus se justifica no desejo do Judiciário de controlar o fluxo de procedimentos externos (e, agora, estranhos) à Instituição. 


  1. 5. Tenho notado gente minimizando o problema, afinal “os inquéritos policiais físicos estão em extinção”. É uma meia-verdade. No dia 05/06/2022, a Promotoria de Justiça de Piracicaba possuía, no chamado “acervo vivo”, cerca de 1657 inquéritos físicos em andamento (dos 4.542 existentes). Em porcentagem: 36% do total de IPs. Suponho que esse cenário se repita em outras localidades.


  2. 6. Em conclusão: vamos conviver com IPs físicos por alguns anos ainda e isso justifica, a meu ver, refletirmos mais detidamente (e com urgência) sobre o problema.


06/06/2022 

José Eduardo de S. Pimentel 

--------------- 

Obs.  


1) A arte foi feita com números de IPs físicos do “acervo vivo” da Promotoria de Justiça de Piracicaba, com uso da ferramenta on line WordArt.com. 

2) Os números do “acervo vivo” são aproximados. Para saber mais sobre a forma de cálculo, consulte: https://github.com/jespimentel/acervo_sis_mp_integrado, com dados da Promotoria de Justiça de Piracicaba na data da implementação da tramitação direta. 

 

domingo, 27 de março de 2022

Criptografia

Introdução

A palavra criptografia tem origem no Grego e significa "escrita secreta".

Há distinção entre cifra e código. Na cifragem, a transformação ocorre caractere por caractere ou bit por bit. É o que se faz hoje em dia. No código, as palavras são substituídas por palavras ou símbolos. Exemplo de uso de código: os EUA recrutaram índios navajos na 2a. Guerra Mundial que transmitiam, na língua deles, as ordens militares aos marines.

 

Terminologia


  • Texto simples (plaintext):  mensagem a ser criptografada;
  • Texto cifrado (ciphertext): mensagem na saída do processo de criptografia; 
  • Algoritmo de cifragem: função parametrizada por uma chave;
  • Chave: é a informação (protocolo conhecido pelo remetente e destinatário) que, aplicada ao algoritmo, permite criptografar ou decifrar a mensagem;
  • Criptologia: arte de criar mensagens cifradas (criptografia);
  • Criptoanálise: arte de solucionar mensagens cifradas;
  • Fator de trabalho: é o nível de dificuldade para decifrar a mensagem. Aumenta exponencialmente conforme o tamanho da chave.

 

Algoritmo

Questão interessante na criptografia é que, em regra, o algoritmo é conhecido de todos. Pelo princípio de Kerckhoff se estabelece que:

  • "Todos os algoritmos devem ser públicos: apenas as chaves são secretas".

 

Criptografia simétrica

Na criptografia simétrica uma mesma chave é usada para codificar e decodificar a mensagem.

Métodos:

  • substituição;
  • transposição;
  • multiplicação de matrizes.

 

Criptografia assimétrica (ou de chave pública)

Utiliza um par de chaves (pública e privada) para a codificação e a decodificação das mensagens. 

Aplicações:

  • assinatura digital;
  • autenticação.

 

Hash

É um algoritmo usado para mapear (resumir) dados de qualquer tamanho em dados pequenos e de tamanho fixo. 

Outra denominação: Message Digest (MD), ou “sumário da mensagem”.

Aplicações:

  • busca de elementos em base de dados;
  • verificação de integridade de dados grandes; e
  • armazenamento de senhas com segurança.

 

Fonte: TANENBAUM, Andrew S.; WETHERALL, David. Redes de computadores. 5a. ed. Trad. Daniel Vieira. São Paulo: Pearson Prentice Hall, 2011, p. 481-506.


segunda-feira, 21 de março de 2022

O básico da rede SOHO (Small Office Home Office)

Introdução

As redes de computadores permitem que os dispositivos eletrônicos se comuniquem uns com os outros e compartilhem recursos.


A interconexão entre os equipamentos ocorre, normalmente,  por cabos de cobre, cabos de fibra óptica ou rádio (wireless).


As regras e requisitos para que a comunicação se estabeleça são conhecidos como protocolos, dos quais o IP (Internet Protocol) é exemplo.


Podemos pensar numa rede interna básica de pequeno porte (SOHO ou Small Office Home Office) constituída por:

  1. um roteador, que reúne os serviços de:

    1. conexão externa (para a Internet), que usa o endereço IP atribuído pelo provedor de internet (ISP ou Internet Service Provider), ao qual está conectado;

    2. uma conexão interna (ou placa de rede), com um endereço privado (normalmente 192.168.1.1);

    3. DHCP (Dynamic Host Configuration Protocol), que faz a configuração automática dos hosts;

    4. Firewall básico;

    5. DNS (Domain Name Service), que resolve (traduz) os endereços IP para torná-los mais adequados aos usuários.  

  2. computador A;

  3. computador B.


Endereços privados

Quando se olha para os dispositivos da rede interna, vê-se que possuem endereços privados (ou IPs privados), que foram configurados manualmente ou pelo DHCP. 


Esses endereços privados (que se repetem em outras redes) não se comunicam com a Internet. São rejeitados pelos demais roteadores.


É aí que entra o NAT (Network Address Translation), também conhecido como masquerading, que é uma função do roteador que converte os endereços privados dos computadores A e B (da rede interna) em endereços válidos para a Internet.


Gateway default

Roteadores possuem um caminho para que as redes internas possam "sair" para a Internet, que é conhecido como Gateway default. Funciona como a única estrada que serve para sair de uma cidadezinha.






Referência:

BROAD, James e BINDER, Andrew. Hacking com Kali Linux: técnicas práticas para testes de invasão. São Paulo: Novatec, 2014, p. 61-66.


segunda-feira, 24 de janeiro de 2022

O Menino da Internet

No último fim de semana, assisti ao documentário "O Menino da Internet: a história de Aaron Swartz" (The Internet's Own Boy: The Story of Aaron Swartz, 2014), distribuído pela Filmbuff e Participant Media, e que está disponível em vários canais do YouTube, inclusive com legenda. Trata-se da biografia do hackativista americano Aaron Swartz (1986-2013), co-criador do RSS, da linguagem de marcação Markdown (uso bastante...), das licenças Creative Commons (CC), do framework Web.py e da Reddit. 


A produção realça o empenho de Aaron em compartilhar artigos da revista científica JSTOR, de acesso restrito, que ele obtinha rodando um script feito em Python (o keepgrabbing.py) nos computadores do MIT.


O documentário também interessa aos operadores do Direito, porque mostra bastidores dos acordos de colaboração premiada, já que o FBI pretendia enquadrar Swartz na Lei de Fraude e Abuso de Computadores (Computer Fraud and Abuse Act - CFAA), com previsão de penas altíssimas.


Nesse ponto, a curiosidade fica por conta da participação de Quinn Norton, uma ex-namorada de Aaron e co-autora do Guerilla Open Access Manifesto (vale a pena pesquisar sobre o tema), falando do seu dia de rainha (Queen for a day), ou seja, da ocasião em que o Promotor e o suspeito tentam acordar os termos da delação e que, por razões ético-processuais, se garante à parte que o conversado não será usado contra ela caso o ajuste não seja concretizado. 


____________


Observações:


1. O promotor de justiça do MPSP Cleber Masson explica, em menos de 5 minutos, de que se trata o "Queen for a day". Cf. em: <https://www.youtube.com/watch?v=jGZuJHtfzmE>. Acesso em 24 jan. 2022.


2. O código-fonte do keepgrabbing.py pode ser facilmente encontrado. A título de exemplo, com explicações: AKMUT, Camille. Aaron Swartz’s JSTOR Code : Keepgrabbing.py. Further Research Notes. OSF Preprints. 2019. Disponível em: <https://osf.io/bnd2h>. Acesso em 24 jan. 2022.

domingo, 23 de janeiro de 2022

Instalação do MySQL no MacOS

 A instalação do MySQL no Mac deve ser feita via Terminal, usando a linha de comando:

brew install mysql


Para que tudo funcione bem, dois outros comandos devem ser dados previamente:


sudo chown -R $(whoami) /usr/local/share/man    /usr/local/share/man/man1              


e


chmod u+w /usr/local/share/man /usr/local/share/man/man1


O primeiro comando faz de você o “proprietário” (owner) dos diretórios man e man/man1. O segundo comando lhe dá permissão de escrita nesses diretórios.


Após a instalação, pode ser necessários inicializar o serviço com:


brew services start mysql


Para iterar com o shell do MySQL:


mysql -u root -p


Obs. O comando brew invoca o gerenciador de pacotes Homebrew. É um software não nativo do S.O., de código aberto e muito popular. Cf. em: <https://brew.sh/>