Pull to refresh

Локальный прокси-сервер для Siri

Reading time 2 min
Views 10K
История с недавним взломом протокола коммуникации Siri получила естественное продолжение: разработан прокси-сервер SiriProxy, с помощью которого можно легко добавить дополнительную функциональность к этой программе. Например, через голосовой интерфейс можно посылать текстовые сообщения на произвольные сайты или активировать голосовое управление устройствами в домашней сети. Скажем, вот плагин для термостата:

— Siri, какая сейчас температура в комнате?
— Двадцать градусов.
— Понизь до восемнадцати.
— OK.

Напомним, что после подделки SSL-сертификата и установки своего DNS-сервера программа Siri обменивается данным с вашим собственным сервером, а не с дефолтным guzzoni.apple.com.

Задача SiriProxy — подключать к Siri свои плагины для управления домашними устройствами, и маршрутизировать этот трафик не через интернет, а через домашнюю сеть, то есть локальный прокси-сервер. Программа не помогает использовать Siri на других устройствах, в том числе на Android, хотя если у вас есть валидный UDID и вы смогли установить Siri на Android, то вполне можно использовать также и SiriProxy.

Демо SiriProxy


Механизм установки своего прокси впервые описан разработчиками из компании Applidium, ну а сейчас на Youtube можно найти несколько видеоинструкций с описанием каждого этапа.

1. Создать собственный центр сертификации через OpenSSL,

/System/Library/OpenSSL/misc/CA.pl -newca

выдать своему серверу сертификат на имя guzzoni.apple.com. Секретный ключ и сертификат сохраняются под названиями server.passless.key и server.passless.crt в папке SiriProxy.

Пошаговая инструкция


2. Загрузить на телефон открытый сертификат центра сертификации, например, можно отправить его себе по почте и просто кликнуть мышкой.

3. Установить в локальной сети DNS-сервер, например, dnsmasq.



4. Установить компоненты Ruby:
  • httparty
  • open-uri
  • json
  • CFPropertyList
  • uuidtools
  • eventmachine
5. Запустить start.rb на правах рута (поскольку он должен слушать TCP/443)

6. Запустить программу Siri и проверить работоспособность прокси. На фразу «Test Siri proxy» он должен ответить «Siri Proxy is up and running!»

После этого можно подключать к программе свои модули, которые будут работать через свой прокси. Теоретически, можно тунеллировать трафик через VPN и управлять устройствами в домашней сети через интернет. Если iPhone 4s джейлбрейкнут, то можно внести изменения в /etc/hosts, чтобы туннелировать через домашнюю сеть только трафик Siri.

Со своего прокси вы можете направить трафик куда угодно. Например, вот плагин eliza.rb для общения с известным чатботом Elize.

Tags:
Hubs:
+44
Comments 11
Comments Comments 11

Articles