Middleware do Cartão de Cidadão

O Cartão de Cidadão Português é mais do que um documento de identificação. Desde a sua introdução, tornou-se a pedra angular da infraestrutura pública digital de Portugal. Como resultado, os cidadãos podem agora autenticar-se online, assinar documentos com validade legal e aceder a serviços de saúde e fiscais sem nunca terem de se deslocar. Por trás de cada uma destas interações, a funcionar silenciosamente, está o Citizen Card Middleware desenvolvido pela Caixa Mágica Software.

Desde 2011, a Caixa Mágica Software tem sido a principal responsável pelo desenvolvimento e manutenção deste *middleware* de código aberto e multiplataforma. Este *software* liga o cartão físico inteligente ao mundo digital. Importante, não se trata de uma ferramenta técnica de nicho; todos os cidadãos e empresas em Portugal utilizam-no, direta ou indiretamente, todos os dias. Além disso, continua a evoluir através da colaboração ativa com a Imprensa Nacional-Casa da Moeda (INCM), a Agência para a Modernização Administrativa (AMA) e o Instituto dos Registos e do Notariado (IRN).

O Desafio do Middleware do Cartão de Cidadão

Em 2011, a agenda de transformação digital de Portugal exigiu uma atualização fundamental na forma como os cidadãos interagiam com o Estado online. O Cartão de Cidadão Português estava em circulação desde 2007, consolidando cinco documentos de identidade separados num único cartão inteligente com um chip criptográfico incorporado. Esses documentos eram: o cartão de identidade, o cartão de contribuinte, o cartão de segurança social, o cartão do serviço nacional de saúde e o cartão de registo eleitoral.

Porque é que o Middleware era essencial

O chip continha certificados digitais qualificados que poderiam permitir aos cidadãos assinar documentos com a mesma força legal de uma assinatura manuscrita. No entanto, para que tudo isto funcionasse na prática, era necessária uma camada de software fiável e multiplataforma entre o cartão e as aplicações que pretendiam utilizá-lo. Sem essa camada, o Middleware do Cartão de Cidadão, as capacidades criptográficas do cartão eram inacessíveis aos cidadãos comuns e aos programadores.

Contudo, o desafio era formidável por várias razões. Primeiro, o middleware tinha de funcionar em múltiplos sistemas operativos, Windows, Linux e macOS, cada um com o seu próprio modelo de segurança e requisitos de integração de aplicações. Segundo, tinha de suportar múltiplos ambientes de navegador. Terceiro, e mais importante, tinha de ser mantível a longo prazo, dado que o próprio cartão seria utilizado durante décadas. Crucialmente, também tinha de ser de código aberto, transparente para investigadores de segurança, auditável por entidades governamentais e de livre acesso a qualquer programador.

Equilibrar Simplicidade e Fiabilidade

Além dos requisitos técnicos, existia uma dimensão humana significativa. O Middleware do Cartão do Cidadão seria, em última análise, utilizado por milhões de cidadãos sem conhecimentos técnicos. Assim, teria de ser suficientemente simples para um reformado a declarar impostos o utilizar sem assistência. Ao mesmo tempo, necessitava de ser suficientemente sofisticado para um profissional de direito a assinar um documento notarial confiar plenamente. Estes dois requisitos, simplicidade extrema para os utilizadores finais e fiabilidade extrema para os profissionais, teveram de coexistir numa única peça de software. A Caixa Mágica Software aceitou este desafio e iniciou uma colaboração com o governo português que perdura até hoje.

A Solução Middleware do Cartão de Cidadão

Escolhas Tecnológicas

A Caixa Mágica Software optou por construir o middleware utilizando o Qt Framework e a linguagem de programação C/C++. Adicionalmente, a equipa incorporou bibliotecas de código aberto estabelecidas, incluindo o OpenSSL para operações criptográficas e o Poppler para o manuseamento de PDFs. Estas escolhas foram deliberadas e estratégicas.

O Qt forneceu uma base multiplataforma que permitiu que a mesma base de código funcionasse no Windows, Linux e macOS. Como resultado, não foram necessárias equipas de desenvolvimento distintas para cada sistema operativo. C/C++ proporcionou o desempenho e o acesso de baixo nível ao hardware necessários para operações com cartões inteligentes. Além disso, o OpenSSL, a biblioteca criptográfica mais auditada do mundo, forneceu as bases de segurança que um sistema de identidade nacional exige.

O projeto está licenciado sob a EUPL — European Union Public Licence 1.2. Esta licença foi concebida especificamente para software do setor público europeu, garantindo transparência, abertura e compatibilidade legal em todos os estados membros da UE. O código fonte completo está publicamente disponível em GitHub, onde continua a receber commits regulares e contribuições da comunidade.

O desenvolvimento segue metodologias ágeis, com ciclos de atualização regulares. Consequentemente, o middleware acompanha as atualizações do sistema operativo, novas versões de navegadores e a evolução dos requisitos de segurança. Ao longo de quinze anos, os sistemas Windows, macOS e as principais distribuições Linux passaram cada um por várias versões principais. No entanto, o middleware acompanhou todas estas alterações sem interrupção para os milhões de cidadãos que dele dependem.

Capacidades Principais do Middleware do Cartão de Cidadão

Gestão de Certificados Digitais

O Cartão de Cidadão Português contém múltiplos certificados digitais, cada um com um propósito diferente. O middleware gere estes certificados, garantindo que estão atualizados e disponíveis para uso em operações de autenticação e assinatura. Além disso, trata da descoberta de certificados, da validação contra os centros de confiança do governo português e da sua apresentação à loja de certificados do sistema operativo. Como resultado, qualquer aplicação ciente de certificados pode utilizar o cartão sem necessidade de trabalho de integração dedicado.

Acesso a Dados Pessoais

Para aplicações que precisam de verificar a identidade do cidadão, portais governamentais, aplicações bancárias, sistemas de saúde, o middleware fornece acesso controlado a dados pessoais armazenados no cartão. Isto inclui nome, número de identificação, fotografia e morada oficial. No entanto, o acesso está sempre sujeito ao consentimento do titular do cartão e às permissões estabelecidas pela autorização da aplicação. Portanto, nenhuma aplicação pode aceder a dados do cartão sem as permissões adequadas.

Assinatura Digital

Uma das capacidades mais significativas do middleware do Cartão de Cidadão é o seu suporte para assinaturas digitais qualificadas. Através do middleware, os cidadãos podem assinar documentos PDF, contratos, declarações fiscais e submissões legais. É importante notar que estas assinaturas têm o mesmo valor legal que as assinaturas manuscritas ao abrigo da lei portuguesa e europeia. O middleware gere o fluxo de trabalho completo de assinatura, desde a apresentação do documento ao cidadão para revisão, passando pela verificação do PIN, até à operação criptográfica de assinatura.

Esta capacidade transformou inúmeros fluxos de trabalho profissionais e administrativos em Portugal. Documentos notariais, despachos judiciais e transações imobiliárias que antes exigiam presença física agora fluem digitalmente. Além disso, declarações fiscais que anteriormente requeriam visitas presenciais são agora concluídas inteiramente online.

Autenticação

Para além da assinatura de documentos, o middleware permite que os cidadãos utilizem o seu Cartão de Cidadão como uma credencial de autenticação forte para serviços online. Em vez de dependerem de palavras-passe que podem ser esquecidas, roubadas ou adivinhadas, os serviços podem exigir a autenticação através do Cartão de Cidadão. Isto proporciona um nível de garantia de identidade que os sistemas baseados em palavras-passe não conseguem igualar. O middleware implementa isto através das interfaces padrão PKCS#11 e CSP/KSP. Consequentemente, qualquer aplicação que suporte estes protocolos padrão pode integrar a autenticação através do Cartão de Cidadão sem necessidade de desenvolvimento específico.

Integração de Chave Digital Móvel

Reconhecendo que nem todos os cidadãos possuem leitores de cartões inteligentes, o governo português desenvolveu a Chave Móvel Digital (CMD). Este é um sistema de autenticação e assinatura ligado ao número de telemóvel do cidadão, em vez de um cartão físico. A Caixa Mágica Software integrou o suporte da CMD diretamente no Citizen Card Middleware. Como resultado, o mesmo software que gere as operações do cartão físico também suporta assinaturas CMD na sua própria aplicação gráfica e noutras aplicações do sistema. Assim, os cidadãos podem optar pelo método de autenticação que melhor se adequa à sua situação – cartão ou telemóvel – utilizando a mesma interface de software familiar.

SCAP — Certificação de Atributos Profissionais

O Sistema de Certificação de Atributos Profissionais (SCAP) estende as capacidades do Middleware do Cartão de Cidadão para contextos profissionais. Através da integração do SCAP, os cidadãos podem assinar documentos na sua capacidade profissional, como médico, advogado, engenheiro ou administrador de empresa. Adicionalmente, estas assinaturas carregam credenciais profissionais verificadas, não apenas a identidade pessoal. A integração do SCAP no middleware liga-se à infraestrutura oficial de certificação profissional, garantindo que estas assinaturas são legalmente válidas e verificáveis.

Integração com Serviços Digitais

A ligação do Cartão de Cidadão a serviços de declaração fiscal (Portal das Finanças), plataformas de saúde (SNS) e sistemas de segurança social foi outro marco fundamental. Seguiram-se portais judiciais, serviços de registo comercial e aplicações do sector privado, incluindo banca e seguros. Cada nova integração torna o cartão mais valioso para os cidadãos e reduz o custo da verificação de identidade para as organizações.

Impacto do Middleware do Cartão de Cidadão

Escala Nacional

Para além das conquistas técnicas, o Middleware do Cartão de Cidadão teve um profundo impacto social. Alterou fundamentalmente a relação entre os cidadãos portugueses e o Estado.

Todos os cidadãos e empresas em Portugal interagem com o middleware, direta ou indiretamente. Por exemplo, quando um cidadão português submete a sua declaração de IRS online, está a utilizar o middleware. Da mesma forma, quando um advogado assina eletronicamente uma peça processual, está a utilizar o middleware. Quando um administrador de uma empresa assina documentos junto do Registo Comercial, está também a utilizar o middleware. Adicionalmente, quando um cidadão se autentica para aceder aos seus registos de saúde no SNS, o middleware está a funcionar em segundo plano.

Código Aberto como uma Força

A natureza de código aberto do projeto provou ser uma das suas maiores forças. Ao publicar o código fonte e adotar uma licença aberta, a Caixa Mágica Software e os seus parceiros governamentais criaram um sistema com vantagens significativas a longo prazo. Primeiro, a comunidade de pesquisa em segurança pode examinar o código a qualquer momento. Segundo, os desenvolvedores podem construir sobre ele sem custos de licenciamento. Terceiro, e mais importante, este sistema irá perdurar para além do envolvimento de qualquer organização individual.
Adicionalmente, o middleware tornou-se a solução exclusiva para assinaturas em documentos governamentais e concursos públicos. Isto estabeleceu um padrão para autenticação digital confiável na contratação pública. O uso privado continua também a expandir-se, com os cidadãos a recorrer cada vez mais a assinaturas digitais para transações pessoais que anteriormente exigiam intervenção notarial. Entretanto, a integração com a Conservatória do Registo Comercial permite aos cidadãos assinarem como administradores de empresas com credenciais verificadas. Profissionais qualificados, arquitetos, engenheiros, médicos e advogados podem adicionalmente assinar documentos na sua capacidade profissional através do SCAP.

Colaboração e Continuidade do Middleware do Cartão de Cidadão

O Middleware do Cartão de Cidadão não é um projeto concluído. Pelo contrário, é uma infraestrutura viva que a Caixa Mágica Software continua a desenvolver e a manter. Este trabalho contínuo acontece em estreita colaboração com três parceiros governamentais: a Imprensa Nacional Casa da Moeda (INCM), a Agência para a Modernização Administrativa (AMA) e o Instituto dos Registos e Notariado (IRN).

Um Modelo de Parceria Público-Privada

Este modelo de colaboração, uma empresa privada de software a trabalhar em conjunto com várias agências governamentais num código aberto partilhado, provou ser altamente eficaz. Por um lado, os parceiros governamentais fornecem conhecimento especializado da área, requisitos de segurança e acesso à infraestrutura de cartões e certificação. Por outro lado, a Caixa Mágica Software fornece liderança em engenharia de software, experiência em multiplataforma e a capacidade de desenvolvimento ágil necessária para acompanhar um panorama tecnológico em rápida evolução.

O financiamento governamental assegura a sustentabilidade financeira a longo prazo do projeto. Adicionalmente, a participação da comunidade e a gestão técnica da Caixa Mágica garantem a sua vitalidade técnica contínua. Em última análise, esta combinação produziu uma infraestrutura nacional que tem servido Portugal de forma fiável durante mais de quinze anos. Portanto, está bem posicionada para continuar a fazê-lo por muitos mais.

Por fim, o código fonte completo permanece disponível em GitHub.