ASAR Integrity
Plataformas soportadas
Actualmente la comprobación de integridad de ASAR sólo es compatible con macOS.
Requisitos
Electron Forge / Electron Packager
If you are using >= @electron/packager
, >= electron-packager@15.4.0
or >= @electron-forge/core@6.0.0-beta.61
then all these requirements are met for you automatically and you can skip to Toggling the Fuse.
Otros sistemas de construcción
Para habilitar la comprobación de Integridad ASAR necesitas asegurarte que tu archivo app.asar
fue generado por una versión del paquete npm asar
que soporta la integridad asar. El soporte fue introducido en la versión 3.1.0
.
Debe rellenar un bloque de diccionario ElectronAsarIntegrity
válido en tus aplicaciones empaquetadas Info.plist
. Un ejemplo se incluye a continuación.
<key>ElectronAsarIntegrity</key>
<dict>
<key>Resources/app.asar</key>
<dict>
<key>algorithm</key>
<string>SHA256</string>
<key>hash</key>
<string>9d1f61ea03c4bb62b4416387a521101b81151da0cfbe18c9f8c8b818c5cebfac</string>
</dict>
</dict>
Los valores válidos de algorithm
son SHA256
solamente. El hash
es un hash del encabezado ASAR usando el algoritmo dado. El paquete asar
expone un método getRawHeader
cuyo resultado puede ser cifrado para generar este valor.
Activando Fuse
La comprobación de integridad de ASAR está actualmente desactivada por defecto y puede ser habilitada al activar un fuse. Vea Fuses de Electron para más información sobre qué son los Fuses de Electron y cómo funcionan. Cuando se habilita este fusible, normalmente también desea habilitar el fuse onlyLoadAppFromAsar
, de lo contrario la comprobación de validez se puede omitir a través de la ruta de búsqueda de código de la aplicación Electron.
const { flipFuses, FuseVersion, FuseV1Options } = require('@electron/fuses')
flipFuses(
// E.g. /a/b/Foo.app
pathToPackagedApp,
{
version: FuseVersion.V1,
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
[FuseV1Options.OnlyLoadAppFromAsar]: true
}
)