98 lines
3.5 KiB
Markdown
98 lines
3.5 KiB
Markdown
# Comprobar una descarga de Caudal
|
||
|
||
Cada versión se publica con dos ficheros más, junto a los instalables:
|
||
|
||
- `caudal-X.Y.Z-manifest.txt`: la huella SHA-256 de cada fichero de la versión.
|
||
- `caudal-X.Y.Z-manifest.txt.asc`: la firma PGP de ese manifiesto, hecha por
|
||
el autor.
|
||
|
||
Comprobar es dos cosas: que el manifiesto lo firmó quien dice (la firma) y que
|
||
lo que has descargado es lo que el manifiesto describe (la huella). Las dos
|
||
hacen falta: la firma sola no dice nada del instalable.
|
||
|
||
La clave pública del autor está en este repositorio, en `esetheyers.asc`
|
||
(`esetheyers <esetheyers@huveme.com>`). Su huella es:
|
||
|
||
```
|
||
3648 41BA B31F 9D0F 3D07 5629 C34F 1F5D 7116 CA10
|
||
```
|
||
|
||
Aparece también en la página del repositorio y en «Acerca de» dentro de la
|
||
aplicación: compárala en más de un sitio antes de fiarte de ella.
|
||
|
||
## Con Sparrow
|
||
|
||
Si tienes Sparrow (1.8.3 o posterior) no hace falta nada más:
|
||
|
||
1. Deja en la misma carpeta el instalable, el manifiesto y su `.asc`.
|
||
2. En Sparrow, **Herramientas › Verificar descarga** (o arrastra los ficheros
|
||
a su ventana).
|
||
3. Si Sparrow no conoce la clave, indícale el fichero `esetheyers.asc` en
|
||
«Public Key». Si la encuentra por su cuenta, ese campo queda desactivado y
|
||
puede que enseñe un correo antiguo del autor, `esetheyers@proton.me`: es la
|
||
misma clave, con una dirección que ya no usa.
|
||
4. Debe decir quién lo firmó y que la huella del fichero coincide.
|
||
|
||
## Con órdenes
|
||
|
||
Linux:
|
||
|
||
```
|
||
gpg --import esetheyers.asc
|
||
gpg --verify caudal-X.Y.Z-manifest.txt.asc caudal-X.Y.Z-manifest.txt
|
||
sha256sum --check caudal-X.Y.Z-manifest.txt --ignore-missing
|
||
```
|
||
|
||
macOS: igual, con `shasum -a 256 --check caudal-X.Y.Z-manifest.txt --ignore-missing`
|
||
en la última.
|
||
|
||
Windows (con Gpg4win instalado):
|
||
|
||
```
|
||
gpg --import esetheyers.asc
|
||
gpg --verify caudal-X.Y.Z-manifest.txt.asc caudal-X.Y.Z-manifest.txt
|
||
CertUtil -hashfile caudal-X.Y.Z-windows.exe SHA256
|
||
```
|
||
|
||
y compara a ojo esa huella con la línea del fichero en el manifiesto.
|
||
|
||
Qué debe salir: `gpg --verify` dice «Good signature» («Firma correcta») y
|
||
enseña la huella de la clave, que tiene que ser la del autor; `sha256sum`
|
||
dice `OK` junto al fichero que descargaste. El aviso de gpg de que la clave
|
||
«no está certificada con una firma de confianza» es normal: solo significa que
|
||
no le has dicho a tu gpg que te fías de ella.
|
||
|
||
## La aplicación de Android
|
||
|
||
El APK va en el manifiesto como los demás ficheros, así que se comprueba igual.
|
||
Además, Android solo instala una actualización si está firmada con la misma
|
||
clave que la versión que ya tienes. La huella SHA-256 del certificado con el
|
||
que el autor firma Caudal es:
|
||
|
||
```
|
||
08:0B:01:87:A5:92:76:1F:28:8C:6A:B9:EE:63:96:36:BC:37:2F:34:DF:56:98:E0:38:3D:B1:13:06:17:E5:1D
|
||
```
|
||
|
||
Para verla en el APK descargado:
|
||
|
||
```
|
||
apksigner verify --print-certs caudal-X.Y.Z-android.apk
|
||
```
|
||
|
||
(la línea «certificate SHA-256 digest»). En el teléfono, AppVerifier la
|
||
comprueba con el paquete `com.huveme.caudal`, y Obtainium la recuerda tras la
|
||
primera instalación: si un día no coincide, no instala.
|
||
|
||
## Para quien publica
|
||
|
||
```
|
||
sh empaquetado/firmar-version.sh <carpeta con los ficheros> X.Y.Z [clave]
|
||
```
|
||
|
||
genera el manifiesto y su firma y los comprueba.
|
||
|
||
El programa de escritorio de Linux se construye desde la etiqueta de la
|
||
versión con `empaquetado/escritorio/construir-linux.sh`, dentro de un
|
||
contenedor con Debian 11 (glibc 2.31) para que valga también en sistemas algo
|
||
antiguos. Puedes construirlo tú igual y comparar. El autor firma el manifiesto
|
||
en su equipo, con una clave que no sale de su llave de seguridad.
|