Веб-адрес силы для прохождения через HTTPS

На моей работе заблокирован http://twitter.com, но https://Твиттер не. Там какой-либо путь состоит в том, чтобы иметь весь доступ программ/браузеров этот URL с помощью протокола HTTPS вместо HTTP?

Это конкретно касается клиентов третьей части, которые должны получить доступ к сайту, но обычно трудно кодируются к HTTP без опции изменить их.

ОБНОВЛЕНИЕ: Я пытался создать сценарий скрипача, как предложено ниже, но я не мог получить его работающий правильно. Ответ со сценарием был бы самым полезным, или другой метод, состоящий полностью из доступа.

7
задан 27.06.2012, 13:46

9 ответов

Интересно, примут ли все сторонние приложения на самом деле настройки прокси во внимание. Или если изменение настроек прокси в масштабе всей системы могло бы вмешаться в другие приложения. (Как то, когда прокси компании требуется для доступа в Интернет, так не может быть изменен только для перенаправления трафика для twitter.com.) К счастью, когда приложение не использует HTTPS, затем это не может найти man-in-the-middle. Так: настройте man-in-the-middle для twitter.com на порте 80, с помощью DeleGate.

Следующие шаги были протестированы на Mac OS X 10.6 и Windows XP, с помощью учетных записей с полными административными правами.

  1. Загрузите DeleGate. Не позволяйте домашней странице 1990-х одурачить Вас: программа все еще сохраняется.

  2. Скажите DeleGate передавать все локальные запросы на порте 80 (и 443) к серверу HTTPS, на основе значения заголовка Хоста в Запросе HTTP. Как для Mac на Intel (где sudo требуется, чтобы использовать привилегированные порты ниже 1024):

    sudo ./macosxi-dg -v -P80,443 \
    SERVER=https \
    RELAY=vhost \
    RESOLV=cache,dns \
    STLS=-fcl,fsv \
    ADMIN=a@b.c
    

    Для Windows, если разархивировано к c:\:

    cd c:\dg9_9_4\bin
    dg9_9_4.exe -v -P80,443 SERVER=https RELAY=vhost RESOLV=cache,dns STLS=-fcl,fsv ADMIN=a@b.c
    

    Если Вы будете обязаны использовать прокси своей компании для доступа в Интернет, то DeleGate будет счастливо использовать это, если Вы добавите что-то как PROXY=proxy.example.com:8080 к командной строке.

  3. В Вашем /etc/hosts файл (c:\windows\system32\drivers\etc\hosts на Windows XP; посмотрите Википедию для местоположений на другой ОС), добавьте следующую строку для направления всех запросов на twitter.com к Вашему собственному компьютеру. Обратите внимание, что отображение от доменного имени до IP-адреса не принимает протокол во внимание. Так: это будет не только использоваться для HTTP, но также и для HTTPS (и все остальное, такого как команды как ping).

    127.0.0.1 twitter.com
    
  4. Удостоверьтесь, что Ваш браузер не настроен, чтобы использовать прокси-сервер или добавить twitter.com как исключение. На всякий случай Ваш браузер кэшировал IP-адрес Твиттера, Вы могли бы хотеть перезапустить его.

  5. Теперь, http://twitter.com на самом деле получает Вас (и все Ваши приложения) https://twitter.com.


Вывод показывает, что действительно от сайта HTTPS требуют https://twitter.com:

REQUEST - GET / HTTP/1.1
REQUEST = https://twitter.com:443/ GET / HTTP/1.1
[..]
ConnectToServer connected [16] {168.143.161.20:443 <- 192.168.1.68:57067}
## SSLway -- TLSxSNI: sent ru=0 ty=0 nm=localhost
## SSLway ## 0.459622 connected/accepted
## SSLway server's cert. = 
  **subject /
  C=US/
  O=twitter.com/
  OU=GT09721236/
  OU=See www.rapidssl.com/resources/cps (c)09/
  OU=Domain Control Validated - RapidSSL(R)/
  CN=twitter.com
  **issuer /
  C=US/
  O=Equifax Secure Inc./
  CN=Equifax Secure Global eBusiness CA-1


При использовании MOUNT="/* https://twitter.com/*" вместо RELAY=vhost затем ровный http://localhost дал бы тот https://twitter.com:

Twitter through DeleGate


При явном запросе использования HTTPS https://twitter.com, затем доверяемая цепочка сертификата повреждается: осведомленное о HTTPS применимое обнаружит атаку "человек посередине" и перестанет работать, если она не может попросить у Вас Вашего разрешения продолжиться:

Man-in-the-middle


После тестирования, для выполнения как услуга в Windows, просто удаляют -v параметр. Это установит программу как услуга. Это будет затем работать в фоновом режиме и спрашивать Вас, если Вы захотите выполнить его на запуске:

Trying to start as a service [DeleGate Server -P80,443] ...
Set Automatic Start on System Startup ? [y] / n :

После выполнения вышеупомянутой команды без -v параметр: посмотрите Панель управления» Средства администрирования» Сервисы, чтобы вручную запустить или остановить DeleGate. Обратите внимание, что этот сервис обратится к местоположению, с которого Вы первоначально запустили dg9_9_4.exe программа. Так, Вы не должны удалять или перемещать ту программу; обязательно разархивируйте загрузку к, например, c:\dg9_9_4 избегать ссылки на некоторый каталог Downloads, который Вы могли бы удалить в будущем.

Для удаления сервиса просто удостоверьтесь для определения того же значения для -P параметр:

dg9_9_4.exe -P80,443 ADMIN=a@b.c
[..]
The service `DeleGate Server -P80,443' exists.  Delete it ? [y] / n : y
OK. DELETEd the previous service.
Create a new service ? [y] / n : n


Наконец, можно задаться вопросом, как DeleGate знает IP-адрес twitter.com (поскольку мы отобразили это на 127.0.0.1 в hosts файл). DeleGate на самом деле получает это само, из-за RESOLV=cache,dns:

MOUNT[5]X[2] /* https://twitter.com/*  
{R} SOA got [162.143.168.in-addr.arpa][ns1.dn.net]
  [dnsadmin.enterprise.verio.net] 2008121001 10800 3600 604800 86400
8
ответ дан 07.12.2019, 14:34

Вам нужен некоторый прокси-сервер с переписать поддержкой правила. Я подозреваю, что в отсутствие лучшего предлагаемого ответа Вы могли записать правило модификатора, чтобы Скрипач сделал это. Правила скрипача записаны в JavaScript и онлайн существует несколько примеров.

Править: Посмотрите и голосуйте, ответ Eric Law на этой странице.

5
ответ дан 07.12.2019, 14:34
  • 1
    я думаю, что это будет способом пойти, я буду вниз загружать Скрипача и видеть, как трудно он должен был бы записать сценарий – dancramer 16.07.2009, 18:26
  • 2
    Хорошо, я приложил усилие по добросовестности для подъема этого и работающий без удачи. Я испытываю необходимость в примере сценария для реального получения этого движения. – dancramer 09.09.2009, 22:53
  • 3
    И прокси-сервер должен быть вне брандмауэра, если блокирования не происходит в на прикладной уровень на Вашей собственной машине. – reinierpost 17.09.2009, 13:23
  • 4
    Сценарий Скрипача будет тривиален, но система комментария здесь переформатировать код в комментарии, таким образом, я добавлю дополнительный ответ со сценарием. – EricLaw 06.11.2009, 07:42

Вы могли выйти из всего осуждения при помощи VPN и туннелирующий из Вашей сети работы.

Туннелирование VPN включает установление и поддержание логического сетевого соединения (который может содержать промежуточные переходы). На этом соединении пакеты, созданные в определенном формате протокола VPN, инкапсулируются в рамках некоторого другого основного или протокола несущей, затем передали между клиентом VPN и сервером, и наконец de-encapsulated на стороне получения.

То, что это означает, - то, что все Ваши пакеты отправляются через посредника в Интернете. Этот посредник не будет обычно блокироваться брандмауэром Вашей компании, и он передает все Ваши пакеты их месту назначения и затем дает полученные ответы к Вашему компьютеру. Кроме того, соединение VPN гарантирует, что все Ваши пакеты оба пути кодируются и защищают от любопытных глаз.

Вы получите лучшее обслуживание от коммерческих продуктов, но некоторые свободны и не слишком плохо. Например, Клиент Туннеля HTTP является очень хорошим продуктом.

2
ответ дан 07.12.2019, 14:34

Это не свободно, но у Charles (веб-прокси отладки) есть Карта Удаленная функция Настроек, которой можно было сказать отобразиться http://twitter.com кому: https://twitter.com легко использование GUI. Можно загрузить пробную версию с сайта, чтобы видеть, удовлетворяет ли он потребности.

alt text

1
ответ дан 07.12.2019, 14:34

Правило Скрипача довольно просто. В OnBeforeRequest добавьте:

if (oSession.fullUrl.StartsWith("http://twitter.com/"))
{
    oSession.oRequest.headers.UriScheme = "https";
}
3
ответ дан 07.12.2019, 14:34
  • 1
    Хороший. (Надо надеяться, все сторонние приложения действительно соблюдали настройки прокси в масштабе всей системы. Если также не использовали некоторый прокси компании для соединения с Интернетом, то, по-видимому, Скрипач также является "Цепочкой к восходящему прокси шлюза" в его настройках.) – Arjan 06.11.2009, 09:52

Вы могли записать сценарий Механика с Firefox. Вот один для FriendFeed.

Править: Сценарий для Твиттера.

0
ответ дан 07.12.2019, 14:34

Я думаю, что нет = /

Кто-то может разоблачить способ сделать это, но рассматривающий это как разработчика программного обеспечения: многим приложениям трудно кодировали http://twitter.com, и с тех пор не, только адрес, но и протокол отличаются, я не вижу способ сделать это автоволшебно, не изменяя приложение. Некоторое приложение может работать с обоими, таким образом, можно настроить его.

Примечание: веб-приложения являются большим количеством hacky, чем настольные.

Править: хороший, crb. Прокси-сервер, в зависимости от способа, которым блокируется Твиттер, мог помочь ему.

-1
ответ дан 07.12.2019, 14:34
  • 1
    Это то, где прокси-сервер можно обычно пригождаться :) – crb 15.07.2009, 16:24

В соответствии с Firefox, кажется, что дополнительный TLS силы отвечает на Вашу проблему.
Кавычка:

Вот то, как это работает:

  1. Сайт x.com, врученный через HTTPS, предоставляет заголовку X-Force-TLS в своем ответе. Заголовок содержит значение макс. возраста (сколько времени помнить принудительный TLS), и дополнительно флаг includeSubDomains.
  2. Браузер получает этот заголовок и добавляет его к базе данных Force TLS.
  3. В будущем любые запросы на x.com изменяются, чтобы быть через HTTPS, если они предприняты через HTTP, прежде чем запрос поразит сеть.
  4. Если какие-либо субдомены, *.x.com требуют через HTTP и флаг includeSubDomains, были установлены, они также вынуждены быть HTTPS.
0
ответ дан 07.12.2019, 14:34
  • 1
    решение для всех браузеров довольно сложен. Я полагаю, что OP предпочитает простое решение. – harrymc 17.09.2009, 15:27
  • 2
    OP не нужно решение ни для какого браузера (можно легко вручную ввести https в браузере). Именно о программном обеспечении только соединяется с HTTP, и в котором не может быть изменен URL. – Arjan 17.09.2009, 15:57
  • 3
    я верю ему скорее, соединяется через https со страницей, содержащей http ссылки, которые он должен преобразовать в https, так как http на тот сайт заблокирован. – harrymc 17.09.2009, 16:06
  • 4
    Ну, он действительно пишет, что Это конкретно касается третьих клиентов части [y], которые должны получить доступ к сайту, но обычно трудно кодируются к http без опции изменить их.... – Arjan 17.09.2009, 16:37
  • 5
    Вы могли бы быть правы - я добавил другой ответ, который обращается ко всем программам на компьютере, с помощью туннелирования VPN. ре – harrymc 17.09.2009, 17:11

Другое решение, возможно, состояло бы в том, чтобы использовать клиент, как DestroyTwitter или TweetDeck. Они не используют twitter.com непосредственно, но пишут в Твиттере и прочитывают API, который, вероятно, не заблокирован.

-1
ответ дан 07.12.2019, 14:34

Теги

Похожие вопросы