Siri su macOS dietro un proxy aziendale

2

Ho riscontrato un problema in cui Siri non è in grado di connettersi ai suoi server da dietro la nostra connessione proxy aziendale. Ciò che è interessante è che questo non è un problema sui nostri iPhone dietro lo stesso proxy.

Qualche idea?

    
posta Coby Almond 21.09.2016 - 22:58
fonte

5 risposte

4

Gestisco un proxy Squid per la mia organizzazione e quando cerco di utilizzare Siri in Sierra, vengono registrate le seguenti voci di registro:

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

Non sono del tutto sicuro di cosa stia richiedendo, quindi è tempo di rompere il martello tcpdump, immagino. Segnalerò se avrò ulteriori approfondimenti.

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

Sembra che Siri non stia utilizzando un URL valido quando richiede un proxy. Ecco le intestazioni HTTP di Squid dopo aver tentato una connessione 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

I dettagli nel messaggio di errore (inviato da Squid ma mai visto dall'utente) sono:

Invalid Request error was encountered while trying to process the request:

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

Some possible problems are:

  • Missing or unknown request method.
  • Missing HTTP Identifier (HTTP/1.0).
  • Request is too large.
  • Content-Length missing for POST or PUT requests.
  • Illegal character in hostname; underscores are not allowed.
  • HTTP/1.1 Expect: feature is being asked from an HTTP/1.0 software.

Quindi - sembra un po 'più tcpdump-hammer nel mio futuro mentre cerco di trovare come appare questo requst originale (dove sta andando ecc.). Resta sintonizzato.

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

Il problema è che Siri sta usando TCP / 443 ma non usa HTTPS. Di conseguenza, un proxy HTTP come Squid si strozzerà su queste connessioni. La buona notizia è che ho identificato che le connessioni in uscita da Siri stanno risolvendo un record A per origin.guzzoni-apple.com.akadns.net e quindi ci si connette alla porta 443. A questo punto avvia un handshake TLS e il resto viene crittografato. Quindi, grazie Apple per averlo crittografato, ma FU per aver utilizzato una porta riservata per il traffico non HTTPS. Seriamente - WTF?!

Ecco una soluzione

Ho esaminato molte query DNS ( molte ) e sembra che tutte risolvano origin.guzzoni-apple.com.akadns.net nell'intervallo di indirizzi 17.252.0.0/16 - questa è una porzione dell'intervallo% di 17.0.0.0/8 di Apple. Questo dovrebbe consentire di inviare qualsiasi cosa destinata a 17.252.0.0 diretta (tramite proxy config o PAC / WPAD). Sfortunatamente, questo può anche inghiottire altro traffico che non vuoi bypassare anche il tuo proxy: - /

Fino a quando Apple deciderà di utilizzare un vero protocollo HTTPS per Siri su Sierra o, usando una porta diversa (a differenza dell'attuale dirottamento di TCP / 443 !!!), siamo praticamente fregati.

    
risposta data 22.09.2016 - 12:40
fonte
0

Non tanto una risposta come "dove cominciare a cercare" ...

Esiste un elenco completo dei numeri di porta utilizzati da Apple in Apple KB: porte TCP e UDP utilizzate dai prodotti software Apple
[troppo da copiare qui]

Puoi anche aprire l'intero spazio degli indirizzi 17.x.x.x, dato che è tutto gestito da Apple.

Sostiene che Siri ha bisogno solo della porta 443, https / SSL [che immagino sarebbe comunque aperta]

    
risposta data 22.09.2016 - 08:40
fonte
0

Posso confermare i risultati di James nella mia organizzazione: Siri (macOS) funziona solo con proxy disabilitato. Stiamo utilizzando un prodotto proxy diverso (tramite file PAC, FYI), ma gli stessi risultati. Testato utilizzando la versione pubblica di macOS Sierra 10.12.2 (16C68).

@Tetsujin - Nonostante il "8 gennaio 2017", Apple non lo ha aggiornato per includere "Siri (macOS)"; attualmente specificano solo "Siri (iOS)". Per parafrasare il commento di James, "questo non è il Siri del tuo iPhone".

Inoltre, se i suoi registri di Squid sono corretti e origin.guzzoni-apple.com.akadns.net è quello che usa Siri (macOS); quindi l'esenzione con caratteri jolly per Apple 17.0.0.0/8 sarebbe moot (per il dominio "akadns.net").

    
risposta data 09.01.2017 - 21:00
fonte
0

Sono riuscito a farlo funzionare mettendo privoxy davanti al calamaro. Non ho idea del perché funzioni, bada bene, ma funziona in modo affidabile. Posso condividere i file di configurazione se vuoi. Ho provato prima WPAD / PAC, ma Siri non si conforma e passa comunque attraverso il calamaro.

    
risposta data 31.03.2017 - 00:30
fonte
0

Trovata questa soluzione per il file pac:

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

Fonte: link

    
risposta data 13.04.2017 - 13:40
fonte

Leggi altre domande sui tag