Saltar al contenido principal

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
}
)