¿Cómo pasar la pantalla inteligente en Win8 al instalar una aplicación firmada?

80

Somos desarrolladores y tenemos un instalador de aplicaciones firmado digitalmente. Cuando instalamos esta aplicación, aparece la pantalla inteligente que afecta la experiencia de instalación. Dice

Windows protegió su PC

Windows SmartScreen impidió que se iniciara una aplicación no reconocida. La ejecución de esta aplicación podría poner en riesgo su PC.

Creo que Microsoft tiene alguna estrategia para verificar la aplicación además de la firma digital. ¿Alguien tiene la experiencia para este problema y, por favor, dame alguna pista para solucionarlo?

Howard
fuente

Respuestas:

47

Si firmó el instalador con un certificado comprado de una CA, se supone que debe comunicarse con la CA para obtener una explicación sobre por qué no trabajaron con Microsoft para deshacerse de esta advertencia.

Si el certificado no es de una CA, sino un certificado autofirmado, tendrás que recurrir a una CA.

Microsoft ya tiene la mayor parte de la información publicada en su blog del equipo de Windows,

https://blogs.msdn.microsoft.com/ie/2012/08/14/microsoft-smartscreen-extended-validation-ev-code-signing-certificates/

Mejores prácticas

Los desarrolladores deben seguir las mejores prácticas que sugerimos en publicaciones de blogs anteriores. Hemos agregado a esa guía las opciones adicionales de distribución de aplicaciones a través de la Tienda Windows y la opción de firma de código EV:

  • Distribuya sus aplicaciones a través de la Tienda Windows

Se requieren aplicaciones de Windows 8 para aprobar el proceso de revisión de aplicaciones e incorporación de desarrolladores de la Tienda Windows. Las aplicaciones de Windows 8 no están dentro del alcance de las verificaciones o advertencias de reputación de las aplicaciones SmartScreen en Windows 8.

  • Firme digitalmente sus programas (firma de código estándar o EV)

La reputación se genera y asigna tanto a certificados digitales como a archivos específicos. Los certificados digitales permiten agregar y asignar datos a un solo certificado en lugar de a muchos programas individuales. Aunque no es obligatorio, los programas firmados por un certificado de firma de código EV pueden establecer inmediatamente una reputación con los servicios de reputación de SmartScreen incluso si no existe una reputación previa para ese archivo o editor. Los certificados de firma de código EV también tienen un identificador único que facilita el mantenimiento de la reputación en todas las renovaciones de certificados. Solo los certificados Authenticode emitidos por una CA que es miembro del programa de certificados raíz de Windows pueden establecer la reputación.

En este momento, Symantec y DigiCert ofrecen certificados de firma de código EV.

  • No firme ni distribuya código malicioso

La distribución de código detectado como malicioso eliminará la reputación de un archivo y también cualquier reputación del certificado digital asociado, incluso si está firmado con un certificado de firma de código EV.

  • Solicite una certificación de logotipo de Windows o aplicación de escritorio de Windows 8

Obtenga más información sobre estos programas aquí: Certificación de la aplicación de escritorio de Windows 8 (necesaria para las presentaciones de la Tienda Windows) Programa del logotipo de Windows

Lex Li
fuente
"Si el certificado no es de una CA, sino un certificado autofirmado, tendrás que recurrir a una CA". ¿A través de qué fuentes de ingresos debería un aficionado o micro-ISV recuperar la tarifa de aproximadamente $ 110 por año que cobran las CA?
Damian Yerrick
1
"Como hemos comentado en el pasado, SmartScreen crea reputación tanto para los programas individuales como para el certificado utilizado para firmar ese código". Citado de la publicación del blog de Microsoft vinculada. Muchos proyectos de código abierto confían en su reputación, mientras que también puede solicitar patrocinio para cubrir las tarifas si desea firmar.
Lex Li
48

Acabamos de pasar por todo el proceso de pasar de un certificado Authenticode antiguo a uno nuevo. uno (no un certificado EV, solo un certificado simple que se puede usar en nuestro proceso de compilación automatizado).

Microsoft ya no ofrece ningún medio para transferir la reputación de un certificado existente a uno nuevo. Así que no intente llamar a su apoyo. Perderás mucho tiempo y energía. Y no podrán ayudar.

Microsoft afirma que si los certificados nuevos y antiguos tienen el mismo contenido textual, la reputación se establece más rápido. Más específicamente, aquí está la respuesta que recibí del equipo de soporte de la función de reputación de aplicaciones del filtro SmartScreen® :

Tenga en cuenta que siempre que renueve un certificado con reputación conocida, es probable que vea algunas advertencias durante las descargas iniciales de archivos firmados con el certificado renovado. Sin embargo, la reputación conocida en el certificado renovado generalmente se establece más rápidamente que en un certificado nuevo. Si bien un certificado renovado establece la reputación, los usuarios aún pueden hacer clic para ejecutar o guardar la descarga. Para ello, seleccionan Acciones | Más opciones | Ejecutar de todos modos desde el Administrador de descargas.

La mejor manera de asegurarse de que SmartScreen no advierta a los usuarios es ejecutar el Kit de certificación de aplicaciones de Windows (WACK), que debe incluirse en la descarga del SDK de Windows:

Kit de certificación de aplicaciones de Windows

Después de ejecutar las pruebas, WACK explica cómo proceder:

Informe final: validación aprobada

Cargue el resultado XML de una certificación de aplicación exitosa a https://sysdev.microsoft.com . Unos días después, SmartScreen conocerá la firma digital utilizada para el programa certificado y ya no advertirá a los usuarios sobre la descarga.

Nota No pudimos certificar nuestra aplicación en las últimas actualizaciones de Windows 8.1 y tuvimos que usar una instalación limpia de Windows 8.1 para que WACK valide con éxito todos nuestros programas.

Pierre Arnaud
fuente
15
Me gustaría mencionar que este proceso me tomó alrededor de 2 horas (tal vez un poco más) para completar. No estoy seguro de si el tamaño del proyecto es un factor, pero este no es un proceso de 2 minutos.
leigero
8
Parece que MS retiró sysdev.microsoft.com. ¿Sabes dónde ahora cargar el archivo?
Shchvova
2
Parece que MS retiró sysdev.microsoft.com. ¿Sabes dónde ahora cargar el archivo?
Phoenix
2
En su lugar, envíe los archivos aquí: microsoft.com/en-us/wdsi/filesubmission
Rami A.
15

He estado buscando por un tiempo, así que compartiré lo que encontré hasta ahora.

No he encontrado ninguna documentación sobre esta función en Windows 8 de Microsoft, pero es posible que esté buscando en los lugares equivocados.

La mayoría de los artículos que leo discuten que el filtro SmartScreen funciona de la siguiente manera:

  • Antes de ejecutar un instalador o ejecutable que se descargó, Windows 8 consulta con una base de datos.
  • La base de datos puede informar si ese programa ha sido:
    • reportado como malicioso / phishing (y verificado por un empleado de Microsoft).
    • utilizado / dirigido por muchas personas.

Si suficientes personas han ejecutado ese instalador, sin reportarlo como malicioso, eventualmente ese programa será marcado como seguro y otros usuarios no recibirán el molesto mensaje.

algunas fuentes: ( aquí ) ( aquí )

La información enviada a Microsoft cuando un usuario instala un programa incluye la dirección IP, un hash del instalador y la firma digital, y posiblemente el nombre de archivo de la aplicación. ( ver aquí )

Los empleados de Microsoft tendrían acceso directo a la base de datos para agregar y marcar como seguras todas las aplicaciones de Microsoft.

Quizás Microsoft haya configurado una forma de precertificar su instalador con ellos, de lo contrario, es posible que deba esperar hasta que suficientes personas ejecuten el instalador. (pero no estoy seguro de cuántos serían).

Xantix
fuente
El enlace log.nadim.cc/?p=78está roto e incluso Way Back Machine no revela ningún contenido. ¿Existen ubicaciones alternativas para el contenido?
Uwe Keim
11

Acabo de pasar por este proceso y agregaré algunos fragmentos de información a esto.

1) Consigue un vehículo eléctrico. Vale la pena. La próxima vez que actualice sus certificados, actualice a un certificado EV. El precio es de unos $ 100 más por año. Los certificados EV se consideran más seguros porque son más difíciles de robar. Cuando se le entregue, se le entregará un dispositivo de token de hardware para completar la señal. Desafortunadamente, la señal final no es compatible con las compilaciones automatizadas.

No es tan terrible como parece. Le proporcionarán un segundo certificado para firmar sus ejecutables (dentro del instalador) que sigue siendo compatible con la automatización. La firma en el instalador debe estar firmada junto con el token de hardware.

2) Si no desea obtener un certificado EV, necesita reputación. Si está actualizando, Microsoft transferirá la reputación de su certificado anterior al nuevo. Debe comunicarse con el soporte técnico de MSDN y en aproximadamente una semana estará listo. Envié mis instaladores antiguos y nuevos, con certificados nuevos y antiguos, y lo arreglaron.

3) Si este es su primer certificado, estará atascado con SmartScreen hasta que obtenga reputación. Probablemente debería obtener la certificación de su aplicación a través de sysdev.microsoft.com. Pero, realmente no se sabe cuántas descargas necesita antes de ganar una reputación positiva con Microsoft.

Esa es mi experiencia.

Lompican
fuente
3
¿Podría decirme dónde enviar una aplicación para transferir la reputación de mi certificado anterior?
CITBL
1
Usé mi suscripción a MSDN para realizar una solicitud de soporte para desarrolladores.
Lompican
2
Acabo de pasar por todo el proceso con Microsoft. Aparentemente, el soporte técnico de MSDN ya no brinda asistencia sobre este tema. Realmente necesita establecer cierta reputación para que desaparezcan las advertencias de SmartScreen . La más simple sería verificar su aplicación con el Kit de certificación de aplicaciones de Windows y luego cargar los resultados en sysdev.microsoft.com.
Pierre Arnaud
¿Los vehículos eléctricos están disponibles para individuos, a diferencia de corporaciones? ¿Y qué pasos debe tomar un aficionado para recaudar el dinero para uno?
Damian Yerrick
5

Dado que Windows 8.1 está fuera.

  • Microsoft desactivó todos los Certificados de firma de código estándar para que sea de confianza cuando los descarga a través de Internet a su PC e intenta instalarlos, pero la aplicación Certificados de firma de código estándar funciona si distribuye su aplicación a través de USB o CD-ROM.

  • No use el signtool.exepara verificar ( signtool.exe verify /pa mysetup.exemostrará éxito pero fallará cuando otros usuarios lo descarguen e intenten instalar una ventana emergente SmartScreen que seguirá apareciendo)

Utilice el kit de certificación de aplicaciones de Windows (WACK)

ingrese la descripción de la imagen aquí

  • Estos certificados de firma de código estándar están muertos. Significa que si tiene un certificado de firma de código estándar, ya no funcionará de manera confiable como lo era en el pasado, aunque el Kit de certificación de aplicaciones de Windows (WACK) muestra PASS con ADVERTENCIA, no significa que su 100% de verificación sea exitosa

ingrese la descripción de la imagen aquí

Tienes que comprar el certificado EV ( https://www.globalsign.com/en/code-signing/ )

Entonces, para tener un 100% de éxito, siga la alimentación con cuchara:

Paso 1: vaya a https://sysdev.microsoft.com e inicie sesión

a) Cree una cuenta de empresa> siguiente

b) Descargue el archivo winqual.exe que es un archivo zip proporcionado por microsoft, ahora firme el winqual.exe con su certificado estándar o certificado EV y luego haga clic en siguiente para cargar el archivo para su validación.

En mi caso, falló porque tengo un certificado estándar que Microsoft dejó de permitir. Entonces, todo lo que tienen que hacer ahora es comprar una licencia de EV, de lo contrario, están jodidos y pueden pasar su vida resolviendo este problema sin ninguna pista.

ingrese la descripción de la imagen aquí


fuente
4
Esto es para el desarrollo de controladores.
crea7or
Entonces, ¿todos deben comprar ese certificado que cuesta $ 290 por año para evitar la pantalla inteligente?
user3304007
4

He probado la solución de certificación EV y funciona.

Lamentablemente, también mencionaré que los certificados EV son incompatibles con TeamBuild, que ejecuta la firma en el contexto de un servicio. Los certificados EV requieren un token de hardware que interactúe con el proveedor de servicios criptográficos proporcionado por SafeNet, Inc. para su uso con todos los proveedores de certificados EV autorizados (VeriSign y DigiCert).

Cuando se produce la firma, los controladores de Safenet solicitarán una contraseña que es algo incompatible con la ejecución en el contexto de un servicio. Además, Safenet proporciona protección que evita la firma desde cualquier cosa que no sea la consola real. Ni siquiera puede iniciar sesión desde una sesión de escritorio remoto. Entonces, firmar desde dentro de Teambuild es problemático en el mejor de los casos y no es posible en el peor.

He trabajado con Microsoft y no han podido proporcionar una solución alternativa para la firma o cualquier otra forma de lograr una reputación instantánea en SmartScreen.

Chris
fuente
1

Desafortunadamente, no tengo suficiente representante para simplemente comentar una de las respuestas anteriores. Sin embargo, si especifica la confianza parcial para su aplicación publicada (elegí la zona de Internet) y tiene un certificado de firma de código en su lugar, no se muestra ninguna advertencia de pantalla inteligente (marcada en Win10).

Daniel
fuente
1

Firmo mi solicitud de manera automatizada usando un certificado EV en un token (GlobalSign). Utilice un archivo .bat. en el archivo ".bat", escriba ex: (para sha1)

SignTool.exe sign /n "Exact Enterprise name in the cert - token" /t "http://timestamp.globalsign.com/scripts/timstamp.dll" "c:\Patch_to_file\Filename.exe"

El "Nombre empresarial exacto en el certificado - token" debe ser el nombre exacto que está en el certificado (token)

Luciano Arruda
fuente
1
¿Y eliminó el cuadro de diálogo de la pantalla inteligente?
user3304007
0

"La versión del archivo no es compatible con la versión de Windows que está ejecutando". En el servidor Windows 2008 no hay ningún botón "Más información" para elegir instalar de todos modos.

A medida que desarrollamos software de escritorio de Windows (no 'Aplicaciones') utilizando productos que no son de Microsoft (Delphi) y usamos Innosetup para nuestro instalador, la validación de la aplicación no tiene sentido. Se queda allí durante 30 minutos sin hacer nada, simplemente iniciamos la aplicación, luego cerramos la aplicación manualmente y genera un informe de aprobación.

Codificamos todos nuestros lanzamientos y cada ejecutable dentro de ellos.

Cuando cargamos el XML a Microsoft, el XML certificado se encuentra en un sitio no relacionado con nuestra cuenta principal de desarrollador, sin forma de publicarlo en Microsoft Store. 45 minutos desperdiciados por aplicación.

Simon Carter
fuente