4 votos

Verificar la firma del código de un instalador de paquetes

En MacOS cuando abres una aplicación descargada de internet Gatekeeper verifica automáticamente la firma del código y en caso de algún problema te avisa y bloquea la aplicación. Por lo que tengo entendido eso solo ocurre con las aplicaciones (extensión .app) y Gatekeeper no hace lo mismo con los instaladores de paquetes (extensión .pkg).

Decidí hacer un experimento para comprobarlo. Utilicé un instalador de paquetes ( 1Password-7.8.pkg ) con una firma válida y eliminé la firma por completo, esencialmente hice lo siguiente:

  1. pkgutil --expand 1Password-7.8.pkg Unsigned.unpkg
  2. pkgutil --flatten Unsigned.unpkg Unsigned.pkg
  3. pkgutil --check-signature Unsigned.pkg

El resultado de los 3 pasos es:

Package "Unsigned.pkg":
   Status: no signature

Luego hice doble clic en el Unsigned.pkg y pudo realizar la instalación sin ningún tipo de advertencia o bloqueo por parte del Gatekeeper. Este experimento demuestra que Gatekeeper no verifica la firma del código de un instalador de paquetes (extensión .pkg) automáticamente, ¿estoy en lo cierto?

Si la suposición anterior es actual, nos lleva a la segunda pregunta. ¿Cómo puedo verificar manualmente la firma de un instalador de paquetes antes de ejecutarlo?

Apple tiene un gran artículo sobre cómo comprobar la firma de un instalador de paquetes: https://support.apple.com/en-us/HT202369 : sólo tienes que abrir el instalador y hacer clic en el candado de la esquina superior derecha. Esto funciona sin problemas en la mayoría de los casos. Pero si un instalador contiene el preinstalar script, al abrir el instalador aparece una ventana emergente con el texto "Este paquete ejecutará un programa para determinar si se puede instalar el software". la ventana emergente tiene el siguiente aspecto: enter image description here En ese caso, el candado aparece en gris y no puedes hacer clic en él hasta que hagas clic en "Permitir". El problema es que cuando se hace clic en "Permitir" el preinstalar scriptse ejecutará y significa que está ejecutando algún tipo de scriptantes de comprobar su autenticidad. Por lo general, el preinstalar script sólo comprueba los requisitos y la compatibilidad como se indica en el título de la ventana emergente. Pero potencialmente puede hacer cosas arbitrarias, por ejemplo, el caso del instalador de zoom: https://twitter.com/c1truz_/status/1244737672930824193

Entonces, ¿existe una opción para verificar la firma del código de un instalador de paquetes desde la interfaz gráfica de usuario antes de ejecutarlo o Apple simplemente se ha saltado ese caso y tengo que enviarles una solicitud de función?

Por supuesto, siempre se puede verificar la firma desde el terminal así: `pkgutil --check-signature, pero ejecutar ese comando para cualquier instalador de paquetes descargado de internet no parece correcto y debería haber una forma nativa y más conveniente de hacerlo.

Gracias.

8voto

Steve Evans Puntos 155

Actualmente no hay forma de verificar la firma utilizando Installer.app antes de aceptar el scriptprevio al vuelo. Se trata de un antiguo descuido de los ingenieros de Apple.

Por favor, proporcionar información o, si es un desarrollador, formalmente informar de este problema a Apple.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X