Информационные технологии
Операционные системы
Информационные технологии
Информационные технологии представляют собой широкий класс дисциплин и сфер деятельности, которые относятся к технологиям создания, хранения, управления, ... читать далее »
Новости ИТ
27.11.2008 11:19

Яндекс.Атака «Человек посередине»: простой перехват логинов и паролей. Информационные технологии.

Система авторизации Яндекса подвержена MITM (Man-In-The-Middle)-атаке: можно заставить Яндекс передавать логины и пароли в открытом виде, что влечет за собой угрозу их перехвата. Для тех, кто не в курсе, что такое MITM (цитата из Википедии):

Атака «человек посередине» (англ. Man in the middle, MitM-атака) — термин в криптографии, обозначающий ситуацию, когда атакующий способен читать и видоизменять по своей воле сообщения, которыми обмениваются корреспонденты, причём ни один из последних не может догадаться о его присутствии в канале.


Применительно к сетям, возможность перехватывать и в отдельных случаях изменять передаваемый трафик. Это грозит раскрытием логинов и паролей к сайтам. Для защиты от этого применяется SSL.

MITM на Яндексе

При входе на Яндекс логин и пароль честно передаются по SSL-протоколу. Но взглянем на часть исходного кода страницы авторизации с описание формы:

<form name="MainLogin" action="http://passport.yandex.ru/passport?mode=auth" method="post" onSubmit="return Validate(this)">
<input type="hidden" name="idkey" value = "09J1227657094S_n12UHU4">



Изначально в форме указано, что данные должны передаваться по нешифровнному каналу:

action="http://passport.yandex.ru/passport?mode=auth"

Передавать данные по SSL заставляет скрипт forcehttps.js, который у всех форм меняет в свойстве action «http» на «https»:

// Force HTTPS javascript
//
// $Id: forcehttps.js,v 1.3 2006-12-12 14:05:01 shurukhin Exp $

(function(){
var frm = document.forms.MainLogin;
if(frm) {
frm.action=frm.action.replace(/^http:/i, 'https:')
frm.action=frm.action.replace(/^\//,'https://'+document.domain+'/')
}
})();



Если же этот скрипт не выполнится, то логин и пароль будут пересылаться в открытом виде.

Вывод

Если у атакующего есть возможность подменить или заблокировать скачивание forcehttps.js, то логин и пароль передадутся на сервер в открытую. Например, админ в офисе просто заблокировал скачивание forcehttps.js на прокси-сервере (офис ходит в инет через него), то он легко может перехватить логин и пароль от аккаунта на яндексе, принадлежащие сотрудникам офиса.

Источник


© WIKI.RU, 2008–2017 г. Все права защищены.