Siri en macOS detrás de un proxy corporativo

2

Estoy teniendo un problema en el que Siri no puede conectarse a sus servidores detrás de nuestra conexión de proxy corporativo. Lo interesante es que esto no es un problema en nuestros iPhones detrás del mismo proxy.

¿Alguna idea?

    
pregunta Coby Almond 21.09.2016 - 22:58

5 respuestas

4

Administro un proxy Squid para mi organización y cuando trato de usar Siri en Sierra, se registran las siguientes entradas de registro:

1474540244.610      0 macos-sierra-host.local TAG_NONE/400 4410 NONE error:invalid-request - HIER_NONE/- text/html

No estoy completamente seguro de lo que está solicitando, así que supongo que es hora de romper el tcpdump-hammer. Informaré si tengo más ideas.

EDIT 1 - 22-Sep-2016 10:58 UTC

Parece que Siri no está utilizando una URL válida al realizar la solicitud a través de un proxy. Aquí están los encabezados HTTP de Squid después de intentar una conexión Siri:

HTTP/1.1 400 Bad Request
Server: squid/3.5.20
Mime-Version: 1.0
Date: Thu, 22 Sep 2016 10:42:01 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 4064
X-Squid-Error: ERR_INVALID_REQ 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from proxy.local
Via: 1.1 proxy.local (squid/3.5.20)
Connection: close

Los detalles en el mensaje de error (enviados desde Squid pero nunca vistos por el usuario) son:

  

Se encontró un error de solicitud no válida al intentar procesar el   solicitud:

     

&# 22;&# 3;&# 1;

     

Algunos problemas posibles son:

     
  • Método de solicitud faltante o desconocido.
  •   
  • Falta el identificador de HTTP (HTTP / 1.0).
  •   
  • La solicitud es demasiado grande.
  •   
  • Falta la longitud del contenido para las solicitudes POST o PUT.
  •   
  • Carácter ilegal en el nombre de host; los guiones bajos no están permitidos.
  •   
  • HTTP / 1.1 Expect: la función se solicita desde un software HTTP / 1.0.
  •   

Entonces, parece un poco más de tcpdump-hammer en mi futuro mientras trato de encontrar cómo se ve este requisito original (hacia dónde se dirige, etc.). Estad atentos.

EDIT 2 - 22-Sep-2016 11:16 UTC

El problema es que Siri está usando TCP / 443 pero no usa HTTPS. En consecuencia, un proxy HTTP como Squid se ahogará con estas conexiones. La buena noticia es que he identificado que las conexiones salientes de Siri están resolviendo un registro A para origin.guzzoni-apple.com.akadns.net y luego se conectan a él en el puerto 443. En este punto, se inicia un protocolo de enlace TLS y el resto se cifra. Entonces, gracias a Apple por cifrarlo, pero a FU por usar un puerto reservado para el tráfico no HTTPS. En serio, ¿¡WTF ?!

Aquí hay una solución

He hurgado en muchas ( muchas ) consultas DNS y parece que todas resuelven origin.guzzoni-apple.com.akadns.net en el rango de direcciones 17.252.0.0/16 . Esta es una porción del rango más amplio de 17.0.0.0/8 de Apple. Esto debería permitirle enviar cualquier cosa destinada a 17.252.0.0 directo (ya sea a través de la configuración de proxy o PAC / WPAD). Desafortunadamente, esto también puede engullir otro tráfico que no desea que no pase por su proxy también: - /

Hasta que Apple decida usar un protocolo HTTPS real para Siri en Sierra o, use un puerto diferente (a diferencia del secuestro actual de TCP / 443!), estamos bastante jodidos.

    
respondido por el James G 22.09.2016 - 12:40
0

No es tanto una respuesta como un "dónde comenzar a buscar" ...

Hay una lista completa de números de puerto utilizados por Apple en
Apple KB: puertos TCP y UDP utilizados por los productos de software de Apple
[demasiado para copiar aquí]

También puedes abrir prácticamente todo el espacio de direcciones 17.x.x.x, ya que es propiedad de Apple.

Afirma que Siri solo necesita el puerto 443, https / SSL [lo cual me imagino que estaría abierto de todos modos]

    
respondido por el Tetsujin 22.09.2016 - 08:40
0

Puedo confirmar los hallazgos de James en mi organización: Siri (macOS) solo funciona con el proxy desactivado. Estamos utilizando un producto proxy diferente (a través del archivo PAC, FYI), pero con los mismos resultados. Probado utilizando la versión pública de macOS Sierra 10.12.2 (16C68).

@Tetsujin - A pesar del "8 de enero de 2017", Apple no lo ha actualizado para incluir "Siri (macOS)"; actualmente solo especifican "Siri (iOS)". Parafraseando el comentario de James, "esta no es la Siri de tu iPhone".

También, si sus registros de Squid son correctos y origin.guzzoni-apple.com.akadns.net es lo que Siri (macOS) utiliza; entonces la exención de comodín para el 17.0.0.0/8 de Apple sería discutible (según el dominio "akadns.net").

    
respondido por el Luddite admin 09.01.2017 - 21:00
0

Me las arreglé para hacer que funcionara poniendo privoxy delante del calamar. No tengo idea de por qué funciona, no importa, pero funciona de manera confiable. Puedo compartir archivos de configuración si quieres. Intenté WPAD / PAC antes, pero Siri no cumple y pasa por el calamar de todos modos.

    
respondido por el Phtagn 31.03.2017 - 00:30
0

Encontré esta solución para el archivo pac:

if (
   (shExpMatch(url, "*guzzoni.apple.com*")) ||
   (shExpMatch(url, "*.guzzoni-apple.com.akadns.net*"))
)
return "DIRECT";

Fuente: enlace

    
respondido por el eMaX 13.04.2017 - 13:40

Lea otras preguntas en las etiquetas