windows 8 - mac - ¿Cómo puedo hacer que SmartScreen Filter confíe en un certificado autofirmado?
internet explorer windows 10 (4)
Al usar una versión de prueba de 90 días de Windows 8 de Microsoft, he podido verificar que mi solución no funciona. Si desea pagar un certificado de firma de código una vez y solo una vez en lugar de pagar las tarifas anuales, este método también debería funcionar para usted, pero no puedo hacer ninguna garantía. Mi solución es por máquina, pero debería ser fácil de convertir al trabajo por usuario.
Esta es mi solución:
- Configure su propia infraestructura de certificados.
- Publique copias de su certificado de CA raíz, cualquier certificado de CA intermedio emitido por su raíz y cualquier certificado de firma de código emitido por su CA intermedia a su sitio web como archivos .cer.
- Instale un certificado SSL en su sitio web que fue emitido por su CA raíz.
- Cree una aplicación de instalación / descarga que realice las siguientes tareas:
- Instala el certificado de CA raíz (de su sitio web, paso 2) en el almacén de Autoridades de certificación de raíz de confianza para la máquina del usuario final.
- Deshabilita el filtro SmartScreen para la zona de Internet de Sitios de confianza configurando HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion / Internet Settings / Zones / 2! 2301 a 0.
- Agrega su sitio web al mapa de zona agregando la (s) clave (s) de registro HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion / Internet Settings / ZoneMap / Domains / yourdomain.com / yoursdominio.
- Asigna su dominio a la zona de sitios de confianza mediante la creación de un DWORD denominado https con un valor de 2 en la clave creada en el paso anterior.
- Compre un certificado de firma de código de un miembro del programa Trusted Root de Microsoft, preferiblemente un certificado EV.
- Antes de su compra, asegúrese de que el certificado y el esquema de marca de tiempo utilizados por la CA para su certificado de firma de código no resulten en el 1.3.6.1.4.1.311.10.3.13 o 1.3.6.1.4.1.311.10.3.14 del OID, ya que estos la firma caduca cuando el certificado expira, ya sea con marca de tiempo o no.
- Firme y marque la marca de tiempo de su descargador / instalador con el certificado comprado en el paso 5. Verifique la ausencia de limitaciones de por vida en la firma. Si todo está bien, puede colocar su certificado de firma de código comprado en un lugar seguro y guardarlo.
- Publique su programa de descarga / instalador en su sitio web. Haz que sea una descarga de requisitos previos para todos tus productos.
- A partir de este momento, puede usar los certificados de firma de código (y otros certificados, en este caso) emitidos por sus propias autoridades de certificación internas sin que el filtro SmartScreen sea una molestia.
La peor advertencia que he recibido al utilizar este método hasta ahora ha sido "Este tipo de archivo podría dañar su computadora". Ese es el típico "¡Está descargando un archivo ejecutable!" advertencia. No oculta la opción Ejecutar y no aparece para las implementaciones de ClickOnce que utilizan la página web bootstrap generada al hacer clic en "Publicar" en VS2010.
Gracias por todos los comentarios y enlaces.
El filtro SmartScreen de Microsoft bajo Windows 8 es la peor pesadilla de un pequeño desarrollador.
Si bien me doy cuenta de los beneficios para los usuarios finales y la efectividad para evitar que los programas maliciosos se instalen en las computadoras de los usuarios finales, yo y muchos otros desarrolladores preferiríamos no pagar las tarifas de renovación anual de un Certificado de firma de código o, lo que es peor, un EV Código de firma del certificado. Además, cuando los productos desarrollados para su uso interno se firman con un certificado de confianza de una CA interna, almacenados en el almacén de editores de confianza, aún son presa del comportamiento exagerado del filtro.
Los desarrolladores y administradores solían poder deshabilitar las advertencias e indicaciones instalando el Certificado de firma de código de un editor en el almacén de editores de confianza. Los desarrolladores creativos podrían instalar su certificado de firma de código autofirmado allí cuando instalen un requisito previo firmado y con marca de tiempo con un certificado de firma de código autenticodo pagado. Después de eso, los programas firmados por el editor serían de confianza y no dispararían las alarmas del filtro SmartScreen. Esencialmente, una vez que se confiaba, un editor estaba libre de las tarifas recurrentes.
Los cambios recientes en el filtro SmartScreen (y su inclusión como una "característica" del sistema operativo en Windows 8) dejan en claro que Microsoft quiere que compre un certificado de firma de código en lugar de solucionar el problema que han creado para usted. ¿Alguien ha descubierto un nuevo método para confiar en los editores que utilizan sus Certificados de firma de código autofirmados de forma predeterminada (es decir, no muestra las indicaciones)? A menos que el filtro se apague por completo, ¿qué pueden hacer los usuarios finales para que el filtro SmartScreen sepa que siempre debe confiar en un certificado autofirmado?
Tenga en cuenta que comprar un Certificado de firma de código no es una respuesta a esta pregunta. Estoy buscando una manera de decirle a SmartScreen Filter que confíe en un editor que no compra certificados de una fuente externa, sino que emite los suyos para usar dentro de su organización.
ACTUALIZACIÓN: Creo que podría haber encontrado una solución alternativa! Desde MSDN , el Filtro SmartScreen se puede deshabilitar en Windows 8 e Internet Explorer 10 para los sitios listados como Sitios de confianza. Si alguien pudiera verificar que este método funciona para los programas de instalación descargados y ejecutados desde un sitio de confianza en Windows 8, eso sería muy apreciado y ayudaría a muchos ISV y equipos de desarrollo internos. También sería la solución necesaria para responder a esta pregunta. Los Sitios de confianza se pueden configurar por política de grupo, por lo que sería sencillo desde allí.
Programáticamente, se puede desactivar el Filtro SmartScreen para la Zona de Sitios Confiables configurando HKLM / Software / Policies / Microsoft / Windows / CurrentVersion / Internet Settings / Zones / 2! 2301 para la máquina o HKCU / Software / Policies / Microsoft / Windows / CurrentVersion / Internet Settings / Zones / 2! 2301 para el usuario en 0, y agregar el sitio para que sea de confianza a la Zona de sitios de confianza se puede hacer como se muestra en esta pregunta .
¿Podría alguien verificar que mi solución propuesta funciona en Windows 8 para un ejecutable sin firma o autofirmado descargado de un sitio de confianza? No estoy usando Windows 8 por mi cuenta, ya que gasté mi presupuesto de actualización del SO en tarifas de certificados.
Aquí hay una buena explicación de cómo apagar el SmartScreen:
- Windows SmartScreen - Activar o desactivar en Windows 8
- Desmarque la opción en Opciones de carpeta
¿Qué utilicé y qué funcionó para mí? Era la "opción uno" del primer enlace:
- Abra el Panel de control (vista de iconos) y haga clic / toque en el icono del Centro de acción .
- En el panel izquierdo de Action Center, haga clic / toque en el enlace Cambiar configuración de Windows SmartScreen .
- Si se lo solicita el UAC , haga clic / toque en Sí .
- Seleccione (punto) la opción de cómo quiere que Windows SmartScreen maneje programas no reconocidos, luego haga clic / toque en Aceptar .
NOTA: La opción predeterminada es Obtener la aprobación del administrador antes de ejecutar una aplicación no reconocida desde Internet . - Cuando haya terminado, puede cerrar el Centro de Acción si lo desea.
Espero que esto sea lo que estabas buscando. :)
He encontrado una manera realmente fácil de omitir el filtro incluso sin privilegios de administrador. Lo que necesitas hacer es:
- Bloc de notas abierto
- Escriba la siguiente línea:
@%*
- Guarde el archivo como
"SkipSmartScreen.bat"
(sí, con las comillas) en la misma carpeta que su aplicación. Puede cambiar el nombre del archivo por lotes más tarde - Para iniciar su aplicación, arrastre su archivo ejecutable al archivo por lotes
Esto luego pasará por alto el filtro de pantalla inteligente.
Probado en Windows 10 Home, Pro y Enterprise, y Windows 8 Pro.
Cómo funciona:
-
@
- Esto es solo para apariencias, oculta el nombre del comando que se ejecuta -
%*
- Esto se expande a todos los argumentos de línea de comando pasados (por ejemplo, el archivo que colocó en el archivo por lotes) - Todo esto: ejecuta el archivo a través del archivo por lotes como si fuera una línea en el archivo por lotes. Por alguna razón, Windows no realiza ninguna comprobación de los archivos que se ejecutan desde un archivo por lotes.
Para citar desde el sitio web de MSDN :
Los detractores pueden afirmar que SmartScreen está "forzando" a los desarrolladores a gastar dinero en certificados. Debe destacarse que los certificados de firma de código EV no son necesarios para construir o mantener la reputación con SmartScreen. Los archivos firmados con certificados de firma de código estándar e incluso los archivos sin firmar continúan construyendo reputación como lo han hecho desde que se introdujo Reputación de la aplicación en IE9 el año pasado. Sin embargo, la presencia de un certificado de firma de código EV es un indicador sólido de que el archivo fue firmado por una entidad que ha pasado un riguroso proceso de validación y se firmó con un hardware que permite a nuestros sistemas establecer la reputación de esa entidad más rápidamente que sin firma o sin firma. Código -EV programas firmados.
En otras palabras, la validación EV (pagada) es solo un factor en un algoritmo grande que determina si la advertencia de SmartScreen se muestra o no. Si hay muchas personas que descargan su programa, o si el enlace de descarga de su programa no ha cambiado por un tiempo, con algunos trabajos puede hacer que su programa no muestre la advertencia. Además, al firmar digitalmente su código, puede aumentar su reputación de aplicación. Esto es directamente de la página web de Microsoft sobre el tema .