Делаем программу слежения АНБ бесполезной в три клика
https://t.me/kdetective_comЕще в 2013 году Эдвард Сноуден говорил о том, что Агентство Национальной Безопасности (АНБ) способно перехватывать VPN-трафик и взламывать практически любое шифрование (в том числе, SSH и HTTPS). Однако Сноуден не объяснял, каким образом АНБ это делает. Годом ранее, о той же проблеме писал и Джеймс Бамфорд (James Bamford), ссылаясь на анонимные источники. Теперь завеса тайны над методами АНБ приоткрыта. Информация экспертов не являлась преувеличением, вероятнее всего, АНБ пользуется слабыми местами в протоколе Диффи-Хеллмана.
Не так давно иследователи ALEX HALDERMAN и NADIA HENINGER опубликовали иследование в котором открывают каким образом АНБ удается взламывать большое количество HTTPS, SSH и VPN соединений. Да друзья мои, ваши VPN больше не защищают вас.
Слабое место, скрытое в протоколе обмена ключами, обнаружили ученые. 14 криптографов представили свой доклад (.pdf) на конференции ACM Conference on Computer and Communications Security. Главными идейными вдохновителями исследования стали профессора Алекс Холдерман (Alex Halderman) и Надя Хенигер (Nadia Heninger) из университетов Мичигана и Пенсильвании.
Также исследователи напоминают, что по данным Сноудена, неофициальный бюджет АНБ составляет 11 млрд долларов в год. Агентство определенно могло позволить себе, построить суперкомпьютер за несколько сотен миллионов и, фактически, взломать протокол Диффиеллмана. Это вполне разумная инвестиция. Так, среди миллиона самых популярных HTTPS-доменов в мире, по версии Alexa, 92% используют два одинаковых простых числа в алгоритме Диффи-Хеллмана. Теоретически, АНБ может прослушивать их все.
Но не все так плохо как кажется на первый взгляд. К счастью, расшифровке подвержены не все алгоритмы используемые в браузерах. И отключив в настройках слабые алгоритмы, мы, таким образом заставляем наш браузер работать по более стойкому протоколу и таким образом держать наше соединение в безопасности. Ниже я раскажу какие настройки нужно необходимо сделать.
Для начала проверим какие алогоритмы использует ваш браузер на странице – How’s My SSL?
Внизу страницы имеется секция: Given Cipher Suites. Вам нужно проверить наличие значений “_DHE_”. Если эти значения присутствуют – ваш браузер уязвим к вышеописаной атаке. Для защиты, нам необходимо отключить уязвимый алгоритм шифрования и таким образом заставить наш браузер работать по надежному алгоритму шифрования.
1. FIREFOX
В адресной строке набираем:
1
about:config
Нажимаем Enter, браузер нам задаст вопрос – “I’ll be careful, I promise!” соглашаемся. Далее в строку поиска вводим:
1
.dhe_
Наш браузер выдаст нам два результата:
1
2
"security.ssl3.dhe_rsa_aes_128_sha"
"security.ssl3.dhe_rsa_aes_256_sha"
Двойным кликом по каждому переводим его из состояния True в False
Повторно открываем страницу – How’s My SSL? и проверяем чтобы слабые алгоритмы шифрования отсутствовали.
2. CHROME
Находим значек запуска нашего Google chrome на рабочем столе или в панели быстрого запуска. Правым кликом открываем его свойства.
В строчке “Target” в конец уже существующей команды дописываем:
1
--cipher-suite-blacklist=0x0033,0x0039,0x009E,0xcc15
В итоге ваша строчка “Target” должна иметь вид:
1
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --cipher-suite-blacklist=0x0033,0x0039,0x009E,0xcc15
После этого запускаем ваш Chrome этим ярлыком.
3. OSX
(Тестировано на 46.0.2490.71, OSX 10.10.5)
Открываем “automator” и делаем двойной клик на “Run Shell Script”. Заменяем “cat” команду на следующее значение:
1
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --cipher-suite-blacklist=0x0033,0x0039,0x009E,0xcc15
Сохраняем приложение в вашей папке приложений а также можете перетащить его иконку в док и в дальнейшем используем его для запуска вашего Google Chrome без уязвимых протоколов шифрования.
4. Linux
В Linux вам необходимо запускать Chrome из командной строки посредством следующей команды:
1
google-chrome --cipher-suite-blacklist=0x0033,0x0039,0x009E,0xcc15
5. OpenVPN
Большинство кофигураций клиентов OpenVPN содержать конфигурационный файл с расширением .ovpn который как правило находится папке установки программы /config/
Для проверки установленых алгоритмов шифрования выполняем команду
1
c:\Program Files\OpenVPN\bin\openvpn.exe --show-tls >1.txt
Далее в этой папке открываем файл 1.txt и проверяем установленые у вас алгоритмы:
[spoiler title=’результат вывода команды:’ style=’default’ collapse_link=’true’]Available TLS Ciphers, listed in order of preference: TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384 TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384 TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA TLS-SRP-SHA-DSS-WITH-AES-256-CBC-SHA TLS-SRP-SHA-RSA-WITH-AES-256-CBC-SHA SRP-AES-256-CBC-SHA (No IANA name known to OpenVPN, use OpenSSL name.) TLS-DHE-DSS-WITH-AES-256-GCM-SHA384 TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 TLS-DHE-DSS-WITH-AES-256-CBC-SHA256 TLS-DHE-RSA-WITH-AES-256-CBC-SHA TLS-DHE-DSS-WITH-AES-256-CBC-SHA TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384 TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384 TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384 TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384 TLS-ECDH-RSA-WITH-AES-256-CBC-SHA TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA TLS-RSA-WITH-AES-256-GCM-SHA384 TLS-RSA-WITH-AES-256-CBC-SHA256 TLS-RSA-WITH-AES-256-CBC-SHA TLS-RSA-WITH-CAMELLIA-256-CBC-SHA TLS-PSK-WITH-AES-256-CBC-SHA TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256 TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256 TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA TLS-SRP-SHA-DSS-WITH-AES-128-CBC-SHA TLS-SRP-SHA-RSA-WITH-AES-128-CBC-SHA SRP-AES-128-CBC-SHA (No IANA name known to OpenVPN, use OpenSSL name.) TLS-DHE-DSS-WITH-AES-128-GCM-SHA256 TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 TLS-DHE-DSS-WITH-AES-128-CBC-SHA256 TLS-DHE-RSA-WITH-AES-128-CBC-SHA TLS-DHE-DSS-WITH-AES-128-CBC-SHA TLS-DHE-RSA-WITH-SEED-CBC-SHA TLS-DHE-DSS-WITH-SEED-CBC-SHA TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256 TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256 TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256 TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256 TLS-ECDH-RSA-WITH-AES-128-CBC-SHA TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA TLS-RSA-WITH-AES-128-GCM-SHA256 TLS-RSA-WITH-AES-128-CBC-SHA256 TLS-RSA-WITH-AES-128-CBC-SHA TLS-RSA-WITH-SEED-CBC-SHA TLS-RSA-WITH-CAMELLIA-128-CBC-SHA IDEA-CBC-SHA (No IANA name known to OpenVPN, use OpenSSL name.) TLS-PSK-WITH-AES-128-CBC-SHA TLS-ECDHE-RSA-WITH-RC4-128-SHA TLS-ECDHE-ECDSA-WITH-RC4-128-SHA TLS-ECDH-RSA-WITH-RC4-128-SHA TLS-ECDH-ECDSA-WITH-RC4-128-SHA TLS-RSA-WITH-RC4-128-SHA TLS-RSA-WITH-RC4-128-MD5 TLS-PSK-WITH-RC4-128-SHA TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA TLS-SRP-SHA-DSS-WITH-3DES-EDE-CBC-SHA TLS-SRP-SHA-RSA-WITH-3DES-EDE-CBC-SHA SRP-3DES-EDE-CBC-SHA (No IANA name known to OpenVPN, use OpenSSL name.) TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA TLS-RSA-WITH-3DES-EDE-CBC-SHA TLS-PSK-WITH-3DES-EDE-CBC-SHA TLS-DHE-RSA-WITH-DES-CBC-SHA TLS-DHE-DSS-WITH-DES-CBC-SHA TLS-RSA-WITH-DES-CBC-SHA Be aware that that whether a cipher suite in this list can actually work depends on the specific setup of both peers. See the man page entries of –tls-cipher and –show-tls for more details.[/spoiler]
Вам необходимо запросить у вашего VPN провайдера использование более стойких алгоритмов шифрования и после этого прописать их в файле .ovpn командой:
1
tls-cipher [cipher-1]:[cipher-2]:[cipher-3]