Relatório
Mais de seis semanas após o término do prazo estabelecido em lei para o fornecimento de uma resposta, a Receita Federal afirmou já haver publicado a documentação solicitada, isto é, supostamente suficiente para o desenvolvimento de programas alternativos geradores de declarações de IRPF. Recusou-se a fornecer o código fonte dos programas de preparação de declarações de IRPF por ela contratados e distribuídos, alegando que sua publicação poria em risco o sigilo fiscal dos contribuintes, na medida em que tornaria públicas medidas de segurança adotadas pela Receita Federal nos programas solicitados, geradores de declarações de imposto de renda para pessoa física de 2007 em diante. Não forneceu qualquer resposta à solicitação adicional de publicação do código fonte do programa ReceitaNET.
A documentação publicada não é suficiente para atender à solicitação, não tendo sido apresentado qualquer argumento para omitir da publicação os dados adicionais requisitados desde 2007. Os programas geradores, caso exibissem as vulnerabilidades alegadas, demandariam medidas imediatas para sua correção, já que os detalhes internos supostamente secretos desses programas estão disponíveis publicamente e, mesmo que não estivessem, seriam acessíveis sem grandes dificuldades. Assim sendo, não é difícil comprovar que as alegações são falsas e que não só faltam justificativas para evitar a publicação do software em questão, como há embasamento legal adicional que exige sua publicação. Mesmo que as alegações fossem verdadeiras, não eximiriam de publicação a maior parte dos programas, que tão somente implementam normas já públicas.
Documentação insuficiente
A documentação publicada não é suficiente para atender à solicitação. A documentação dos campos NR_CONTROLE e NR_HASH, mencionados em correio eletrônico enviado ao Sr Joaquim Adir Figueiredo em 25 de março de 2007, pouco tempo após a publicação do leiaute do IRPF 2007, continua ausente na documentação do leiaute do IRPF 2012.
http://www.fsfla.org/pipermail/softwares-impostos/2007-March/000022.html
http://www.receita.fazenda.gov.br/publico/programas/irpf/2012/LeiauteIRPF2012.docDiversos outros campos em linhas de totalização, com valores consolidados a partir de outros, não documentam as fórmulas que devem ser utilizadas para calculá-los, embora seguramente tenham circulado documentos de requisitos e de implementação com as fórmulas implementadas nos programas. Campos que se utilizam de códigos numéricos (Cidades, Bancos, Tipos de Pagamentos, etc) não têm qualquer especificação da codificação utilizada, embora os códigos sejam mantidos e constantemente atualizados em arquivos internos do IRPF. No registro 26, de pagamentos, não há especificação de quais tipos de pagamento (CD_PAGTO) permitem ou exigem especificação de dependentes ou alimentandos, nem dos limites de dedução para cada tipo de pagamento. Esses são apenas alguns dos exemplos de insuficiência da documentação oferecida.
Essas informações não fornecidas na documentação, muitas delas também ausentes de quaisquer leis ou normas publicadas pela Receita Federal, só podem ser obtidas mediante engenharia reversa do programa IRPF publicado pela Receita Federal. Estando presentes no programa, qual resulta patente que a documentação publicada é apenas um subconjunto da documentação de requisitos gerada internamente na preparação do programa. A publicação de documentação adicional sobre a evolução dos requisitos ao longo dos anos, mesmo que não consolidada, ou a documentação interna (código fonte, comentários e demais documentos) da versão atual dos programas em questão, poderia se mostrar suficiente para satisfazer a solicitação e completar, em relação às leis e normas já publicadas, as normas que regulam as exigências sobre declarações de imposto de renda de pessoa física.
Sigilo fiscal
Incompetência técnica e falsidade ideológica: conforme enunciado explicitamente na resposta fornecida pela Receita Federal, os programas publicados pela Receita Federal não contêm qualquer informação fiscal de contribuintes específicos. Alega-se tão somente que a publicação de seu código fonte evidenciaria procedimentos de segurança adotados pela Receita Federal para resguardar a segurança dos dados fiscais por ela recebidos, uma alegação não apenas desprovida de fundamento, mas comprovadamente falsa, conforme exposição a seguir. Seu uso como argumento contra a publicação fornece indícios não apenas de absoluta incompetência técnica em questões de segurança de informação por parte da requerida, mas também de má fé na recusa do fornecimento de informação pública.
Publicidade das normas jurídicas: os programas geradores de declaração cumprem a função de solicitar aos contribuintes informação que por lei podem estar obrigados a declarar, efetuar cálculos conforme leis e normas fiscais que são ou deveriam ser públicas e gerar arquivos de declaração com valores informados, intermediários e finais dispostos no formato exigido porém insuficientemente especificado pela Receita Federal. Nenhum desses comportamentos é passível de sigilo. Sugerir ou aceitar que quaisquer desses comportamentos devam ser sigilosos implicaria sujeitar cidadãos a normas jurídicas não públicas, algo inadmissível em qualquer estado de direito.
Nenhum desses comportamentos é sigiloso: no momento em que os programas são publicados, seu comportamento passa a ser facilmente observável por quem detenha o conhecimento e as ferramentas adequadas. A despeito das vãs tentativas de obscurecimento do código interpretável por máquinas virtuais Java, os comportamentos externo e interno dos programas são inspecionáveis e transparentes, razão pela qual se conclui que a informação relativa a procedimentos cujo sigilo a Receita Federal pretende pleitear já foi tornada pública pela própria! Argumentar que tal informação permanece secreta porque sua publicação se deu num idioma conhecido por uma parcela não muito grande da população é perigosamente ingênuo.
A recusa do fornecimento em formato acessível a todos da informação publicada em formato obscurecido é discriminatória: o próprio solicitante, longe de ser um especialista em engenharia reversa, tem sido capaz de obter a informação solicitada utilizando ferramentas amadoras de engenharia reversa disponíveis publicamente, algumas integrantes do próprio conjunto de ferramentas padrão de desenvolvimento da linguagem Java. Porém, na ausência de publicação de tal informação em formato mais acessível, somente aqueles que dispõem de um mínimo de conhecimento técnico podem ter acesso a uma informação que, por direito, é pública.
A existência de procedimentos sigilosos em programas publicados seria perigosa: dada a facilidade de engenharia reversa da informação já publicada, na forma dos programas interpretáveis por máquinas virtuais Java, qualquer interessado em obter vantagem ilícita dessa informação não encontraria grandes dificuldades para fazê-lo. Após a resposta aqui contestada, que pretende admitir a fragilidade do sistema, teriam incentivo ainda maior para tentar o acesso indevido. Conclui-se que, caso os programas codificassem quaisquer procedimentos cujo conhecimento possa ser abusado de modo a por em risco o sigilo fiscal de terceiros, a publicação de tais programas deveria ser interrompida imediatamente, as formas de acesso às bases de dados contendo informações fiscais através dos mecanismos presentes nos programas deveriam ser bloqueadas, e investigações deveriam ser iniciadas para apurar a possibilidade de que acessos indevidos já tenham ocorrido, desde a primeira publicação desses programas. Versões futuras dos programas não devem expor tais supostas vulnerabilidades, pois é ponto pacífico há mais de um século na ciência da segurança da informação que depender da obscuridade para segurança da informação é um erro, infelizmente bastante comum entre leigos. A robustez do sistema se observa quando ele apresenta resistência a ataques mesmo de oponentes que conheçam os detalhes dos procedimentos de segurança.
http://www.petitcolas.net/fabien/kerckhoffs/
http://en.wikipedia.org/wiki/Kerckhoffs%27s_principle
http://en.wikipedia.org/wiki/Security_through_obscurityNão há procedimentos sigilosos nos programas geradores: os esforços de engenharia reversa do IRPF e manutenção de uma versão alternativa, que venho conduzindo há mais de 5 anos, têm sido mais que suficientes para constatar que é falsa a alegação da Receita Federal de que há procedimentos nos programas geradores que, caso expostos, poderiam colocar o sigilo de informação fiscal nos bancos de dados da Receita Federal em risco. De fato, a alegação é ainda mais absurda ao se considerar que os programas geradores jamais sequer entram em contato com as bases de dados da Receita Federal, nem mesmo fazem (ou necessitam fazer) qualquer contato externo através da rede, portanto não contêm (nem deveriam conter) procedimentos que possibilitariam o vazamento de dados, nem das bases de dados da Receita Federal, nem dos dados no computador do próprio usuário, algo que todo usuário deveria poder verificar de forma independente.
Falta de fundamentação para a alegação: caso de fato houvesse procedimentos que necessitassem sigilo no programa IRPF, particularmente na versão de 2007 (um dos itens solicitados e negados), seria urgente que me fossem informados, não só no sentido de emprestar um mínimo de credibilidade à alegação, mas também para que as informações que exporiam a vulnerabilidade do sistema da Receita Federal, que supostamente poderiam por em risco o sigilo fiscal de quaisquer contribuintes, pudessem ser removidas do código fonte mecanicamente descompilado daquela versão, que tem sido amplamente divulgado e tem estado disponível para o público em geral há mais de cinco anos, sem qualquer incidente, atualmente no seguinte endereço:
http://fsfla.org/svn/fsfla/software/irpf-livre-2007/Publicação parcial: ainda que houvesse componentes dos programas geradores cuja exposição pudesse colocar em risco a segurança dos dados fiscais armazenados nos bancos de dados da Receita Federal, sua suposta existência não serve como excusa para não publicar os demais componentes que, conforme experiência pessoal, são suficientes para permitir a entrada de dados, os cálculos e a formatação dos arquivos para transmissão. Admitir tal excusa viabilizaria a violação do princípio da transparência, de má fé, pelo subterfúgio de adicionar fragmentos de informação sigilosa a qualquer documento que, por direito, deveria ser público para, em seguida, recusar-se a publicar sequer os fragmentos não sigilosos.
Segurança do protocolo de envio: o único programa solicitado que contém procedimentos de transmissão de informações, e que o faz (ou deveria fazer) de forma segura, é o ReceitaNet, sequer mencionado na resposta, embora tenha sido explicitamente mencionado na solicitação. Sendo esse um programa que somente envia informações fiscais dos contribuintes à Receita Federal, é razoável supor que os protocolos de comuncação por ele utilizados e os processos nele codificados não forneçam qualquer mecanismo para permitir a obtenção, por parte de contribuintes ou terceiros, de informações fiscais armazenadas nos bancos de dados sigilosos da Receita Federal. A presença de tais mecanismos em programas publicados, mesmo de forma obscurecida, demandaria o imediato bloqueio desses mecanismos desnecessários! Não seria a publicação do código fonte, mas a existência desses mecanismos no programa ou no protocolo de comunicação que colocaria em risco a segurança das bases de dados da Receita Federal. Tal existência denunciaria um amadorismo inaceitável da parte da equipe técnica encarregada do desenvolvimento dos programas e da segurança da informação fiscal: o sistema e o protocolo projetados para transmitir declarações do contribuinte para a Receita Federal não deveria permitir o fluxo da informação fiscal sigilosa no sentido oposto.
Integridade dos programas publicados: o único risco potencial ao sigilo fiscal, relacionado aos programas, adviria da possibilidade de publicação de versões modificadas dos programas, que secretamente transmitissem informações fiscais a terceiros. A possibilidade existe, mesmo sem a publicação do código fonte, conforme já alertei em comunicações públicas e particulares aos responsáveis da Receita Federal, porém a Receita Federal lamentavelmente não tem tomado qualquer medida para permitir ao contribuinte autenticar a origem dos programas após sua obtenção. Ao contrário, incentiva que os programas sejam obtidos através de canais inseguros (HTTP ao invés de HTTPS) e não fornece quaisquer assinaturas digitais para verificação da consistência contra corrupção acidental ou adulteração intencional dos programas durante seu trânsito na rede.
Usos comerciais
Vasto uso comercial: os programas são frequentemente utilizados comercialmente por contadores e outros profissionais que prestam serviços de preenchimento de declarações de IRPF. É no mínimo questionável o pleito da Receita Federal de restrigir o uso comercial do programa em alguns casos, porém não em outros.
Bens públicos: os programas publicados pela Receita Federal relacionados ao IRPF são públicos, no sentido de pertencerem à sociedade, conforme corrobora a titularidade dos programas, atribuída a um órgão do poder público.
Licenciamento restritivo: a licença restritiva que hoje rege o código interpretável publicado já coíbe o “uso comercial indevido” temido pela Receita Federal, ainda que tecnicamente tais usos seriam possíveis. A publicação do código fonte sob licença igualmente restritiva não teria efeitos técnica ou juridicamente diferentes.
Software Público: a publicação de software de titularidade pública com código fonte sob licenças livres é não só reconhecida como legítima pelo Tribunal de Contas da União, como é obrigatória para contratações de software pela Receita Federal e demais integrantes do Sistema de Administração dos Recursos de Informação e Informática - SISP, conforme Instrução Normativa 04/2008/SLTI. Na IN 01/2011/SLTI detalham-se os procedimentos, entre eles o licenciamento do código fonte sob a licença GNU GPL que, como qualquer licença de Software Livre, permite os usos comerciais que a Receita Federal pretende considerar impróprios.
http://www.comprasnet.gov.br/legislacao/in/in04_08.htm
http://softwarepublico.gov.br/spb/download/file/in_spb_01.pdf
Conclusão
- A documentação publicada não atende à solicitação, mas complementada ou aliada ao código fonte, poderia atendê-la. O código fonte correspondente aos programas publicados não só não explicitaria informação sigilosa alguma como, se o fizesse, demonstraria a insegurança do sistema, demandando ação imediata para sua correção. Ao contrário, a publicação é obrigatória para atender ao princípio da transparência e à lei de acesso à informação, como também, para atender às normas do SISP, deve ser feita sob uma licença de Software Livre: a GNU GPL.