Signatura electrònica nativa.
Sense Java, sense espera.
Aplicació d'escriptori en Rust i React que substitueix la interfície Swing i els servidors locals d'AutoFirma, amb la criptografia oficial de l'Administració.
- Codi obert, EUPL 1.2
- La clau privada no surt del teu equip
- CAdES, PAdES, XAdES i FacturaE
- En cinc idiomes
Així es signa un document
Document carregat
rFirma obre el PDF i mostra el que conté: pàgines, mida i les signatures que ja porta. Si n'hi ha una de prèvia, la teva serà una cosignatura.
Triar certificat
La llista es compon amb els magatzems del sistema, els perfils del navegador i els mòduls PKCS#11. Els caducats i revocats es mostren, però no es poden fer servir.
Introduir el PIN
El PIN es demana en un diàleg natiu, no en una finestra web, i s'esborra de la memòria en acabar la signatura.
Signatura completada
El PDF signat es desa al costat de l'original, i el resum n'indica el format.




Quatre decisions de disseny
Substitueix la interfície Swing i els servidors locals d'AutoFirma; el motor criptogràfic és el mateix, el de clienteafirma.
Rendiment natiu
Escriptori en Tauri v2, Rust i React. Sense JVM i sense servidors locals a l'escolta.
La clau privada no surt del sistema
La signatura es fa al teu equip, a través dels magatzems del sistema i dels mòduls PKCS#11. Java no la veu mai.
Criptografia oficial
CAdES, PAdES, XAdES i FacturaE surten del codi de clienteafirma, compilat a binari natiu amb GraalVM.
Signatura visible arrossegable
Col·loca i dimensiona la rúbrica sobre la pàgina, amb previsualització fidel. Sense coordenades a cegues.
AutoFirma versus rFirma
| Aspecte | AutoFirma (oficial) | rFirma |
|---|---|---|
| Arquitectura | Java Swing sobre JVM | Tauri v2 (Rust + React) amb el motor de clienteafirma en GraalVM Native Image |
| On es processa la clau privada | Al procés Java | Al magatzem del sistema o al mòdul PKCS#11; no en surt |
| Protecció del PIN en memòria | S'esborra només en part i pot acabar al disc | Protegit a la memòria, no va mai al disc i s'esborra després d'usar-lo |
| Signatura amb DNIe | Sí, amb jMulticard | En desenvolupament |
Certificats en fitxer (.p12) | Es registra la ruta del fitxer en un diàleg de magatzems amb sis opcions | Magatzem propi i xifrat, que s'obre amb la teva sessió |
| Cerca de certificats | Només cerca al magatzem que triïs | Tots en una llista amb cercador, un certificat per fila |
| Col·locació de la signatura visible | Coordenades o requadre sense context | Arrossegament sobre la pàgina, amb models de text i previsualització fidel |
| Confiança del navegador en el servidor local | L'instal·lador registra la CA al sistema, amb privilegis | L'aplicació registra la seva CA als magatzems NSS de la persona, sense root |
| Idiomes | Només castellà, amb les cadenes dels diàlegs Swing | Castellà, català, euskara, gallec i anglès, amb catàleg propi i canvi des de Preferències |
| Gestor de documents | — | Recorda els documents recents i l'últim certificat utilitzat |
| Sistemes operatius | Windows, macOS, Linux, Android i iOS | Linux i Windows; macOS, en desenvolupament |
| Canal d'actualització | Descàrrega manual de .deb o .rpm | Repositoris natius: APT, DNF i Flatpak; a Windows, des de la mateixa aplicació |
| Integració amb l'escriptori | Aparença pròpia de Swing | Segueix l'estil de l'escriptori, amb tema clar i fosc |
Un repositori per al teu sistema operatiu
Els canals de rFirma són repositoris natius. Un cop afegit el del teu sistema, els pedaços de seguretat s'instal·len amb el gestor de paquets.
Per a Debian, Ubuntu i distribucions derivades. Configura el repositori mitjançant el format modern deb822 amb la clau GPG verificada a /usr/share/keyrings/.
curl -fsSL https://rfirma.sgomez.me/rfirma.asc | sudo tee /usr/share/keyrings/rfirma.asc >/dev/null sudo tee /etc/apt/sources.list.d/rfirma.sources <<'EOF' Types: deb URIs: https://rfirma.sgomez.me/apt/ Suites: stable Components: main Signed-By: /usr/share/keyrings/rfirma.asc EOF sudo apt update && sudo apt install rfirma
Per a Fedora i derivades basades en paquets RPM. Configura el repositori amb comprovació criptogràfica estricta de metadades i paquets (gpgcheck=1 i repo_gpgcheck=1).
sudo tee /etc/yum.repos.d/rfirma.repo <<'EOF' [rfirma] name=rfirma baseurl=https://rfirma.sgomez.me/rpm/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://rfirma.sgomez.me/rfirma.asc EOF sudo dnf install rfirma
Recomanada per a les distribucions de Linux que no fan servir APT ni DNF. Es resol des del remot ostree propi de rFirma, i el runtime org.gnome.Platform es descarrega de Flathub sense configurar res. Només cal tenir instal·lats flatpak i xdg-desktop-portal.
flatpak install https://rfirma.sgomez.me/rfirma.flatpakref
També pots descarregar i instal·lar amb doble clic el fitxer rfirma.flatpakref si el teu escriptori ho admet.
Instal·lador per al teu usuari, sense permisos d'administrador. Fa servir directament l'emmagatzem de certificats de Windows (MS-CAPI / CNG) i, un cop instal·lat, s'actualitza des de la mateixa aplicació: cada versió nova arriba amb la seua signatura minisign, que es comprova abans d'instal·lar-la.
Verifica el que descarregues: baixa SHA256SUMS de la Release i comprova que el hash de l'instal·lador coincideix amb la seua línia. L'instal·lador no està signat amb Authenticode, així que SmartScreen t'avisarà en obrir-lo.
Get-FileHash .\rFirma_*_x64-setup.exe -Algorithm SHA256 Select-String rFirma_ .\SHA256SUMS
La versió nativa per a macOS està en fase de desenvolupament actiu. S'integrarà amb el Keychain d'Apple i CryptoTokenKit per a un accés fluid i segur a les identitats digitals del sistema.
Es distribuirà com a imatge de disc .dmg i mitjançant fórmula de Homebrew. Pots seguir l'avenç del projecte a GitHub.
Tot el codi, a la vista
rFirma és programari lliure i auditable sota llicència EUPL 1.2. El codi i el motor criptogràfic viuen en dos repositoris públics.
Aplicació i pont FFI
A sgomez/rfirma hi ha la interfície en Tauri (Rust + React), el pont FFI (rfirma-native-bridge) i l'empaquetament.
Motor criptogràfic original
La lògica de signatura consumeix els artefactes de ctt-gob-es/clienteafirma, compilats en una biblioteca nativa amb GraalVM Native Image.
Clau de signatura de paquets
Clau pública a rfirma.asc. Comprova la seva empremta després de descarregar-la amb gpg --show-keys rfirma.asc:
C8D6 A81C 1ED4 3A28 D426 8112 A6E0 EE02 2344 6A16