¿Qué molestias o problemas reales pueden ocurrir cuando se rompe la firma digital de una aplicación Mac?
Las aplicaciones en una Mac se pueden firmar digitalmente. Cuando la firma se rompe de alguna manera, sé que algunas aplicaciones pueden notarlo. Pero no sé con qué detalle serán solo molestias o realmente romperán las cosas:
Es posible que el firewall de OS X no pueda establecer correctamente una firma ad hoc, lo que hace que se le pregunte repetidamente "¿Desea que la aplicación '[..]' acepte conexiones de red entrantes? '
¿Es posible que las aplicaciones permitidas por el Control parental ya no se ejecuten?
¿El acceso al llavero podría estar roto?
Algunos dicen que la actualización del software de Apple podría fallar. Si es cierto, entonces me pregunto si esto realmente depende de la firma de Firma de Código, o sería causado por algún hash no coincidente para toda la aplicación, o la información de los archivos BOM .
Más información de fondo a continuación.
Los detalles de firma de código se pueden mostrar usando:
codesign --display -vv /Applications/iTunes.app/
... que produciría algo como lo siguiente (pero no advertiría sobre modificaciones):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
La firma se puede validar usando:
codesign --verify -vv /Applications/iTunes.app/
Lo que produciría:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... o (incluso cuando simplemente coloca algún archivo adicional en la carpeta ./Contents/Resources de una aplicación):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... o (quizás peor que el mensaje anterior):
/Applications/iTunes.app/: code or signature modified
La firma de código se remonta a OS 9 o anterior, pero la implementación actual se introdujo en 10.5 Leopard. Ars Technica escribe :
La firma de código vincula una identidad verificable criptográficamente a una colección de código y garantiza que se detecte cualquier modificación a ese código. No se hacen garantías sobre las partes involucradas. Por ejemplo, si descarga una aplicación firmada por Acme Inc., no puede probar nada al respecto, excepto que proviene de la misma entidad que afirma ser Acme Inc. la última vez que descargó algo de su sitio web.
Este ejemplo realmente resalta la aplicación más útil de la tecnología desde la perspectiva del consumidor. Al actualizar una aplicación Mac OS X hoy [en 10.4 Tiger, AvB], a menudo se le pide al usuario que vuelva a verificar que esta aplicación tenga acceso al Llavero para recuperar nombres de usuario y contraseñas. Esto parece una buena característica de seguridad, pero todo lo que realmente hace es capacitar a los usuarios de Mac para que hagan clic ciegamente en "Permitir siempre" cada vez que aparece. Y realmente, ¿qué va a hacer el usuario promedio, ejecutar el ejecutable a través de un desensamblador y verificar manualmente que el código sea seguro?
Una aplicación firmada, por otro lado, puede demostrar matemáticamente que, de hecho, es una nueva versión de la misma aplicación del mismo proveedor por el que expresó confianza en el pasado. El resultado es el final de los cuadros de diálogo que le piden que confirme una elección cuya seguridad no tiene una forma razonable de verificar.
Para el firewall en 10.5 Leopard, Apple explica :
Cuando agrega una aplicación a esta lista, Mac OS X firma digitalmente la aplicación (si aún no se ha firmado). Si la aplicación se modifica posteriormente, se le solicitará que permita o denegue las conexiones de red entrantes. La mayoría de las aplicaciones no se modifican a sí mismas, y esta es una característica de seguridad que le notifica el cambio.
[..]
Todas las aplicaciones que no están en la lista y que han sido firmadas digitalmente por una Autoridad de Certificación en la que confía el sistema (con el propósito de firmar el código) pueden recibir conexiones entrantes. Todas las aplicaciones de Apple en Leopard han sido firmadas por Apple y pueden recibir conexiones entrantes. Si desea rechazar una aplicación firmada digitalmente, primero debe agregarla a la lista y luego rechazarla explícitamente.
En 10.6 Snow Leopard, este último se hace más explícito (y se puede deshabilitar) como "Permitir automáticamente que el software firmado reciba conexiones entrantes. Permite que el software firmado por una autoridad de certificación válida proporcione servicios a los que se accede desde la red".
(En 10.6, las opciones 10.5.1 "Permitir todas las conexiones entrantes", "Permitir solo servicios esenciales" y "Establecer acceso para servicios y aplicaciones específicos" se han actualizado en una opción para "Bloquear todas las conexiones entrantes" o una lista de las aplicaciones y opciones permitidas "Permitir automáticamente que el software firmado reciba conexiones entrantes" y "Habilitar el modo oculto". Antes de la actualización 10.5.1 , "Permitir solo servicios esenciales" en realidad se llamaba "Bloquear todas las conexiones entrantes".
Para las aplicaciones (de Apple) que de alguna manera tienen su firma original rota, esta firma ad hoc podría de alguna manera no ser persistente, y se sabe que causó problemas para configd, mDNSResponder y racoon.
Respuestas:
Un ejemplo de dónde la firma de código 'romperá' una aplicación:
Fuente: Lista de correo de Apple y la irrealidad de Jaharmi
fuente
Lo que puedo decirte es que Candybar, la aplicación de personalización de íconos utilizada por muchas personas, rompe la firma digital de al menos Finder y Dock (y probablemente algunas otras aplicaciones centrales del sistema) ya que cambia los archivos de recursos, y hasta ahora nada ha sido reportado como un problema debido a esto. Por lo tanto, una muestra en la naturaleza utilizando componentes principales del sistema operativo diría: ¡no mucho!
EDITAR: aquí está el resultado de verificar la firma de mi código para mi Dock en Snow Leopard:
fuente
En la revisión de Snow Leopard de ars technica se proporciona una explicación algo detallada de la firma de código en Snow Leopard . Por lo que puedo decir, romper la firma de código realmente no romperá nada. Sin embargo, hará que las aplicaciones no sean confiables, lo que significa tener que verificar más de sus acciones.
fuente
Estaba reparando mis permisos de disco el otro día (desde la Utilidad de Discos), y recibí esta advertencia:
Entonces hay algo que sucederá. No sé lo significativo que es eso.
fuente
codesign --verify
hecho muestra una firma rota?La implementación actual de la firma de código es bastante inofensiva y probablemente se apresuró a salir en beneficio de los desarrolladores de iPhone. Con suerte, será obligatorio en algún momento en el futuro, y con suerte también será mucho más fácil y más barato para ese momento.
fuente