8 декабря, 2024

ЖЖ: о паролях, адресах, и о восстановлении контроля в случае взлома.

Источник

1. Информация, хранящаяся в LiveJournal.

Для каждого дневника в LiveJournal хранится следующая информация, связанная с защитой доступа:

  • Текущий пароль. Первоначальный пароль юзер выбирает во время создания дневника. Впоследствии его всегда можно поменять на странице https://www.livejournal.com/changepassword.bml (обратите внимание на https:// в начале этой ссылки — это означает, что ваш новый пароль будет передан серверу в зашифрованном виде и никто не сможет его по дороге ‘подслушать’). Для того, чтобы изменить пароль на новый, необходимо знать текущий пароль. LiveJournal не сохраняет нигде предыдущие значения пароля после его смены. Если пароль сменили на новый, то старый пароль теряет всякое значение и ни для чего более не может пригодиться.
  • Текущий адрес (email address). Первоначальный адрес юзер выбирает во время создания дневника. Впоследствии его всегда можно поменять на странице http://www.livejournal.com/editinfo.bml . Для того, чтобы изменить адрес, достаточно знать текущий пароль (чтобы войти в систему), или даже просто контролировать какую-то сессию работы в LiveJournal (например, если вы зашли в LiveJournal в интернет-кафе, а потом ушли оттуда, забыв выйти из системы — сделать logout — и не закрыли браузер, или при входе в систему указали опцию перманентной сессии, то севший за этот компьютер после вас человек сможет работать в ЖЖ от вашего имени, и в том числе сменить адрес, даже если он не знает пароль).Текущий адрес может быть подтверждённым или неподтверждённым (по-английски это называется validated и non-validated). Когда вы меняете адрес на новый (или когда вносите первый адрес при создании дневника), на новый адрес приходит письмо от LiveJournal, в котором есть ссылка для подтверждения. По этой ссылке нужно пойти, чтобы сделать новый адрес подтверждённым. Если этого не сделать, он останется неподтверждённым. Адрес всегда следует подтверждать после его смены.
  • Список старых адресов. Каждый раз, когда вы меняете адрес на странице http://www.livejournal.com/editinfo.bml на новый, старый адрес не удаляется полностью и навсегда, а заносится в специальный список старых адресов. Для каждого из этих старых адресов сохраняется следующая информация:
    • сам адрес
    • точная дата и время, когда он перешёл из состояния «текущий» в список старых адресов
    • его статус в момент такого перехода — подтверждённый или нет.

    Если в момент перехода из текущего адреса в список старых какой-то адрес был неподтверждённым, то после этого он бесполезен и ни для чего не может использоваться. Это одна из причин, по которой всегда нужно подтверждать новые адреса.

    Список старых адресов своего дневника можно увидеть на странице http://www.livejournal.com/tools/emailmanage.bml . Там показывают только те адреса, которые были подтверждёнными в момент перехода в этот список (т.к. неподтверждённые совершенно бесполезны). На те адреса, которые показываются на этой странице, можно всегда выслать текущий пароль от дневника (как именно — объясняется ниже). Этот список можно редактировать, удаляя из него некоторые адреса, но не все — зачем это делать и как, тоже объяснено ниже.

Для защиты доступа к вашему дневнику важно знать и помнить о всех этих видах информации: текущий пароль, текущий адрес и список старых адресов.

2. Пароль по почте

В случае, если вы забыли свой пароль, его можно выслать себе, используя страницу http://www.livejournal.com/lostinfo.bml . Для этого не нужно знать ни текущий пароль, ни текущий адрес, ничего вообще, кроме имени пользователя. В частности, это может сделать любой человек, необязательно владелец дневника; но пароль придёт по почте именно на адрес владельца дневника, ни на какой другой.

(если вам на почту приходит письмо с паролем, а вы его не запрашивали, необязательно нужно паниковать. Может, кто-то просто разыгрывает вас, или набрал ваше имя на странице высылки пароля по ошибке. Однако стоит задуматься над тем, нет ли у кого-то доступа к вашей почте, не взломали ли её. Проверить сохранность паролей к почтовому адресу, подумать о том, кто бы мог к нему получить доступ и как, не давали ли вы пароль кому-то, кому не стоило его давать. В случае, если есть подозрения, стоит изменить пароль доступа к почте или принять другие действия по обеспечению её безопасности (зависит от того, как и где вы читаете почту). Но помните, что это может быть и просто невинной шуткой или ошибкой; любой человек может выслать вам ваш пароль. Кстати, в письме с паролем есть IP-адрес (компьютерный адрес) того компьютера, через который пароль был запрошен; если вы кого-то подозреваете, этот адрес может помочь вам (или вашим друзьям, лучше вас разбирающимся в компьютерах и интернете) обнаружить какую-то информацию о нём, а может и не помочь).

В первой форме на странице http://www.livejournal.com/lostinfo.bml есть два поля: имя юзера и адрес. Обычно поле адреса можно оставить пустым, и тогда пароль будет выслан на текущий адрес (вне зависимости от того, подтверждён он или нет). Кроме того, если текущий адрес не был подтверждён, вместе с паролем в письме автоматически придёт ссылка для его подтверждения. Поэтому если по какой-то причине вы не получили ссылку для подтверждения после смены адреса, используйте страницу http://www.livejournal.com/lostinfo.bml для того, чтобы выслать себе пароль, а вместе с ним опять придёт эта ссылка.

Кроме того, в поле адреса можно вписать один из адресов в списке старых адресов (а в поле имени юзера — правильное имя юзера, конечно), и тогда пароль будет выслан на старый адрес. В качестве такого старого адреса можно использовать только адрес, который был подтверждён перед тем, как стал «старым». Иными словами, выслать свой пароль можно только на те старые адреса, которые вы можете увидеть на странице http://www.livejournal.com/tools/emailmanage.bml , и ни на какие другие. Как и в случае высылки на текущий адрес, эту операцию может произвести любой, а не только владелец дневника, и для неё не нужно знать текущий пароль или ещё что-либо (кроме самого адреса, естественно).

Обратите внимание, что высылка пароля по почте — обоюдоострое оружие:

  • Высылкой на текущий адрес может воспользоваться легитимный владелец дневника, если он просто забыл пароль.
  • Высылкой на текущий адрес может воспользоваться взломщик, если он взломал доступ к почтовому ящику владельца дневника — чтобы получить доступ к паролю; или если у взломщика есть доступ к открытой сессии в LiveJournal, но он не знает пароль, он может сменить текущий адрес на новый, свой, и выслать на него пароль.
  • Высылкой на старый адрес может воспользоваться легитимный владелец дневника: если взломщик изменил текущий адрес, узнал пароль и изменил его, как описано в предыдущем пункте, владелец дневника может выслать новый пароль на свой старый адрес и таким образом узнать его.
  • Высылкок на старый адрес может воспользоваться взломщик: если он взломал доступ к одному из старых адресов дневника, а не к текущему адресу, это достаточно для того, чтобы выслать на него пароль и получить доступ к дневнику.

Вывод из этого надо сделать следующий: надо следить за тем, чтобы в вашем списке старых адресов не было таких, которые легко взломать, к которым легко подобрать пароль, или таких, которые вы более не контролируете. Если такие адреса там есть, надо удалить их с помощью страницы http://www.livejournal.com/tools/emailmanage.bml , если она позволяет их удалить (об этом ниже). С другой стороны, ваш текущий адрес всегда должен быть подтверждённым и надёжным; тогда, если взломщик сменит ваш пароль и текущий адрес, ваш текущий адрес перейдёт в список старых адресов, и вы сможете выслать на него новый пароль, чтобы восстановить контроль над вашим дневником. Обратите внимание, однако, что если ваш текущий адрес надёжен и подтверждён, но в списке старых адресов есть более ранние и ненадёжные адреса, то взломщик, если он получит доступ к одному из них, сможет подтвердить его заново и стереть ваш надёжный адрес из списка старых адресов с помощью той же страницы http://www.livejournal.com/tools/emailmanage.bml . Поэтому недостаточно иметь надёжный и подтверждённый текущий адрес — следует помнить о списке старых адресов.

3. Редактирование списка старых адресов

Список старых адресов, возможность высылать на них текущий пароль, и возможность их редактировать — система, продуманная очень тщательно, специально так, чтобы дать легитимному хозяину возможность полностью восстановить контроль над своим дневником. Попробую объяснить это в двух словах. Если бы списка старых адресов вообще не было, то взломщик, заполучивший каким-то образом пароль, мог бы изменить текущий адрес и навсегда получить контроль над дневником, без надежды настоящего хозяина вернуть его. Список старых адресов нужен в первую очередь для того, чтобы настоящий хозяин мог выслать себе изменённый пароль на один из них, и восстановить с его помощью доступ к дневнику. Но вместе с тем представьте себе такую ситуацию: взломщик получает доступ к дневнику, меняет текущий адрес на свой. Потом возвращается хозяин и меняет пароль опять, и возвращает свой адрес. Но теперь адрес взломщика находится в списке старых адресов, и он может в любой момент восстановить свой контроль над дневником, выслав на него текущий пароль так, как описано в пункте 2. выше. Поэтому хозяин дневника в такой ситуации не сможет восстановить полный контроль над дневником — взломщик в любой момент может получить его обратно.

Так обстояли дела в LiveJournal когда-то давно. Для того, чтобы исправить эту ситуацию, была введена возможность просматривать список старых адресов на странице http://www.livejournal.com/tools/emailmanage.bml и удалять некоторые из них. Теперь хозяин дневника, восстановив контроль над ним, может пойти на эту страницу и удалить «чужеродный» адрес взломщика из списка; после этого взломщик не сможет заново выслать себе пароль. Казалось бы, всё прекрасно! Но нет, опять проблема: что если взломщик, получив контроль над дневником, пойдёт на эту страницу и удалит оттуда как раз адреса настоящего хозяина? Тогда как раз хозяин не сможет выслать себе пароль на старый адрес и восстановить контроль над дневником! Для того, чтобы избежать этого, система устроена так, что на этой странице удалить можно не все старые адреса, а только некоторые. Те адреса, которые нельзя выделить для удаления в форме, удалить невозможно. Какие именно адреса можно удалить, а какие нельзя, и почему — понять не так уж просто, но я попробую объяснить подробно.

(Важно: вы можете пропустить длинное объяснение с примерами ниже, если вам не хочется или нет времени его читать. Это не самая важная информация, и к ней можно вернуться позже. Но в таком случае пролистайте к следующему пункту, про первый адрес, и прочтите обязательно хотя бы его).

Удалять можно только те адреса из списка старых адресов, которые вошли в него после того, как текущий адрес впервые вошёл в него, при условии, что текущий адрес сейчас подтверждён. Это наверняка не будет понятно сразу, поэтому я поясню с помощью нескольких примеров.

Пример первый, простой. Предположим, текущий адрес дневника — какой-то совсем новый, который ни разу ещё не использовался в прошлом. Может, это адрес взломщика, а может, новый адрес хозяина. Скажем, в старом списке есть адреса: old1@example.com, old2@example.com, old3@example.com, а текущий адрес дневника — new@anotherexample.org . Тогда со страницы http://www.livejournal.com/tools/emailmanage.bml невозможно будет удалить ни один адрес — потому что текущего адреса вообще нет в этом списке, даже если он и подтверждён.

Пример второй, сложный. Предположим, в списке старых адресов есть следующие адреса вместе с датами их перехода в этот список:

1) old1@example.com — 5 марта 2003-го года
2) old2@example.com — 1 апреля 2003-го года
3) old1@example.com — 2 апреля 2003-го года
4) bad@hacker.com — 1 января 2004-го года
5) new@example.com — 2 января 2004-го года
6) new2@example.com — 10 января 2004-го года

Предположим, что над всеми адресами в домене example.com есть контроль у настоящего хозяина дневника, а над адресом bad@hacker.com — у взломщика (он поменял текущий адрес на этот, когда взламывал дневник, а потом хозяин выслал себе пароль на один из старых адресов, и получил контроль над дневником обратно, и ещё несколько раз поменял адреса).

Пусть дневник сейчас контролирует хозяин, и текущий его адрес — new3@example.com . Тогда, как и в первом примере выше, он не может удалить из этого списка ни один адрес, включая адрес взломщика. Это плохо, т.к. взломщик может вернуться и выслать себе пароль на адрес bad@hacker.com .

Но хозяин дневника контролирует все старые адреса. Он может изменить текущий адрес на один из старых, например, new@example.com, и подтвердить его. Что случится в этом случае? Список будет выглядеть так:

1) old1@example.com — 5 марта 2003-го года
2) old2@example.com — 1 апреля 2003-го года
3) old1@example.com — 2 апреля 2003-го года
4) bad@hacker.com — 1 января 2004-го года
5) new@example.com — 2 января 2004-го года
6) new2@example.com — 10 января 2004-го года
7) new3@example.com — сегодня

Адрес new3@example.com вошёл в список старых адресов. Текущий адрес теперь new@example.com, он подтверждён заново только что хозяином с помощью ссылки, пришедшей на него (если он не подтверждён, то хозяин ничего не сможет удалить), и впервые он же встречается в списке старых адресов под номером 5, поэтому я выделил эту строку. Теперь хозяин может удалить любую строку после пятой из списка, потому что они выполняют главное условие — они «вошли в список после того, как текущий адрес впервые вошёл в него, при условии, что текущий адрес сейчас подтверждён». Надеюсь, это понятно.

Хозяин, таким образом, может удалить из списка адреса new2@example.com и new3@example.com, но не адрес взломщика, потому что тот вошёл в список раньше, чем первое вхождение текущего адреса. Это недостаточно хорошо. Но хозяин может поступить по-другому. Начав с первоначального списка, он может изменить текущий адрес не на new@example.com, а, скажем, на old2@example.com . Тогда список будет выглядеть так:

1) old1@example.com — 5 марта 2003-го года
2) old2@example.com — 1 апреля 2003-го года
3) old1@example.com — 2 апреля 2003-го года
4) bad@hacker.com — 1 января 2004-го года
5) new@example.com — 2 января 2004-го года
6) new2@example.com — 10 января 2004-го года
7) new3@example.com — сегодня

Теперь текущий (и подтверждённый) адрес впервые вошёл в список в графе 2), и поэтому хозяин сможет удалить любой из адресов 3) — 7), включая, самое важное, номер 4) — адрес взломщика. Именно это ему следует сделать как можно скорее.

Теперь представьте себе, что в первоначальной ситуации вернулся хакер, выслал себе пароль на старый адрес bad@hacker.com, с помощью этого пароля восстановил контроль над дневником, и поменял текущий адрес опять на bad@hacker.com, и подтвердил его. Тогда список старых адресов будет выглядеть так:

1) old1@example.com — 5 марта 2003-го года
2) old2@example.com — 1 апреля 2003-го года
3) old1@example.com — 2 апреля 2003-го года
4) bad@hacker.com — 1 января 2004-го года
5) new@example.com — 2 января 2004-го года
6) new2@example.com — 10 января 2004-го года
7) new3@example.com — сегодня

Хакер сможет удалить все адреса, которые вошли в список после того, как впервые вошёл текущий подтверждённый адрес bad@hacker.com, т.е. строки 5) — 7) . Но он не сможет удалить первые три строки, поэтому хозяин — если он сохраняет контроль над одним из адресов old1@example.com или old2@example.com — сможет восстановить впоследствии доступ к своему дневнику и в свою очередь удалить адрес хакера.

Но если у хозяина к моменту первого «внедрения» взломщика был плохой, ненадёжный список адресов — если он не может сейчас прочитать почту на адресах old1@example.com и old2@example.com — тогда его дела плохи. Он не сможет удалить адрес взломщика из списка старых адресов, потому что не сможет подтвердить один из них заново.

Отсюда, в частности, следует очень важный вывод:

4. Первый адрес

Самый первый использованный (и подтверждённый) адрес невозможно удалить из списка старых адресов. Тот адрес, который вы впервые подтвердили после создания дневника (обычно это тот самый адрес, который вы указываете при создании, если только вы не передумали сразу и не сменили его, не подтверждая), всегда может быть использован для получения пароля к вашему дневнику. Я хочу подчеркнуть ещё и ещё раз: самый первый адрес — самый важный и самый уязвимый. С одной стороны, вы всегда можете использовать его, если сохраняете доступ к нему, для защиты от любых взломщиков (всегда можете выслать на него текущий пароль, войти в систему, сменить текущий адрес на него, подтвердить, зайти в список старых адресов и стереть все другие). С другой стороны, если вы потеряли доступ к нему, у вас нет никакой возможности полностью и абсолютно надёжно защитить свой дневник. Кто-то, кто получит к нему доступ, всегда сможет забрать у вас контроль над дневником.

Поэтому выбирайте свой первый адрес как следует, вдумчиво. Не используйте для него какие-нибудь бесплатные службы, в надёжности которых вы не уверены, или адрес, про который вы через пару лет наверняка забудете и его могут закрыть (потому что потом кто-то другой сможет открыть его заново, если он знает его). Даже если вы потом десять раз поменяете адреса на самые надёжные и хорошие, первый подтверждённый адрес останется вашей ахиллесовой пятой. Поэтому подумайте десять раз и выберите его с умом.

Теперь, используя все вышеописанные данные, вы сами сможете, наверное, подробно описать, что нужно сделать для восстановления доступа к своему дневнику. Но тем не менее  — вот подробное описание:

5. Восстановление доступа к дневнику и контроля над ним.

Доступ к дневнику и полный контроль над ним — разные вещи. Предположим, вы знаете, что кто-то заполучил ваш пароль, но (ещё, по крайней мере) не изменил его. Или изменил его, но вы смогли выслать новый пароль себе на старый адрес. Многие в такой ситуации меняют пароль на ещё какой-нибудь новый, и всё. Это восстанавливает доступ над дневником, но (необязятельно) контроль над ним. Ведь взломщик мог успеть поменять текущий адрес, возможно, несколько раз, и внести таким образом один из своих адресов в список старых адресов. Если вы его оттуда не удалите, он всегда сможет в будущем выслать себе пароль заново.

Полный контроль над своим дневником — это ситуация, когда:

  • Вы знаете пароль от дневника, а больше его никто не знает.
  • Текущий адрес дневника на странице http://www.livejournal.com/editinfo.bml подтверждён, а также контролируется вами и больше никем.
  • В списке старых адресов на странице http://www.livejournal.com/tools/emailmanage.bml все адреса контролируются вами и больше никем.
  • Нигде не осталось никаких старых открытых сессий в LiveJournal.com, не контролируемых вами.

Замечу сразу, что по поводу последнего пункта в контексте восстановления контроля над дневником обычно волноваться не нужно, т.к. при смене пароля (что вам всё равно придётся делать) все старые сессии автоматически уничтожаются (происходит автоматический logout), с какого бы компьютера они ни были подключены.

Итак, предположим, что в один прекрасный день вы пытаетесь зайти в ваш дневник и не можете: кто-то поменял пароль. Или ещё каким-то другим образом вы обнаруживаете, что кто-то взломал ваш дневник (оставляют записи или комментарии от вашего имени итп.). Вам необходимо восстановить контроль. Что вы делаете?

1) Задумайтесь в первую очередь о безопасности адреса почты, который вы обычно используете для ЖЖ. Если это веб-почта, попробуйте зайти на свой аккаунт; если вы берёте почту у провайдера с помощью почтового клиента, проверьте, что всё работает и пароль не изменился. Если у вас слишком простой или тривиальный пароль для почты, самое время его изменить. Возможно, ваш дневник взломали не через почту, но это в любом случае не помешает. Если вам кажется, что с почтой всё в порядке и никто к ней доступа не имеет, кроме вас, продолжайте дальше, но держите на всякий случай эту возможность в уме, и если всё остальное не поможет, вернитесь к ней в последствии и поменяйте пароли доступа к почте.

2) Попробуйте зайти в систему со своим обычным паролем. Получилось? Хорошо, но это ещё не всё. Переходите к пункту 5) ниже. Если не получилось, тогда первая задача — восстановить доступ к дневнику, т.е. получить пароль. Переходите к следующему пункту.

3) Зайдите на страницу http://www.livejournal.com/lostinfo.bml и вышлите себе свой пароль. Обязательно введите свой адрес во втором поле, чтобы пароль был выслан именно на него, а не на текущий адрес — ведь взломщик мог уже изменить текущий адрес, и тогда письмо с паролем получит он, и будет знать, что вы пытаетесь восстановить контроль над дневником, а вам очень важно, чтобы он этого не знал, это сильно облегчает ваш труд. Исключение: если на странице профиля у вас не «спрятан» адрес дневника, и вы видите, что он действительно ваш, можете высылать на текущий. Ещё одно исключение: если вы уверены, что просто забыли пароль и никак не можете его вспомнить, и что это не взлом (никаких следов взлома, записей/комментариев от вашего имени, изменений личной информации в профиле итп. нет, и вы действительно не уверены, что правильно помните пароль), можете высылать на текущий адрес. Во всех остальных случаях обязательно впишите ваш адрес во втором поле (да и в «исключениях» выше это тоже помешать не может).

4) Проверьте этот адрес. Обычно письмо с паролем приходит практически мгновенно. Если оно не пришло в течение 5-10 минут, задумайтесь: может, вашу почту взломали? (см. пункт 1) ). Может, LiveJournal барахлит и есть задержки с почтой? (редко, но бывает; можно проверить сайт http://status.livejournal.com и посмотреть, нет ли там сообщений о проблемах. Ещё они нередко бывают по-русски в коммьюнити rulj). Может, вы неправильно ввели адрес? — попробуйте ещё раз.

Наконец, есть ещё одна возможность — что если взломщик уже удалил ваш обычный адрес из списка старых адресов? Вам придётся вспомнить какой-нибудь адрес постарше, лучше всего — самый первый подтверждённый адрес, который вы использовали в вашем дневнике, и выслать пароль на него. Это надёжнее всего, т.к. самый первый адрес невозможно удалить из списка адресов (см. 3-ю и 4-ю секции этого документа, там есть подробные разъяснения).

5) Предположим, у вас есть правильный пароль — либо взломщик его не менял, либо вы получили его по почте.Пытаетесь зайти в систему с ним. Ура, получилось! Что дальше?

6) Сразу же (это и все последующие действия следует делать сразу и как можно быстрее, т.к. есть вероятнось того, что взломщик в этот же самый момент пытается вам помешать) идите на страницу http://www.livejournal.com/editinfo.bml и посмотрите, не изменил ли взломщик ваш текущий адрес. Если изменил, измените его на свой. Сразу же после этого идите проверять свою почту, ждите там письма со ссылкой на подтверждение (должно придти практически мгновенно), идите по ней и подтверждайте свой адрес.

7) Если пароль, который у вас есть — не ваш (т.е. пароль взломщика, к-й вы получили по почте в пунктах 3)-4), то сейчас идите на страницу http://www.livejournal.com/changepassword.bml и измените пароль на другой. Внимание! Сначала выполните пункт 6 (смена текущего адреса), потом пункт 7 (смена пароля), т.к. иначе взломщик получит извещение о смене пароля на свой текущий адрес и будет знать о ваших действиях.

8) Заходите на страницу http://www.livejournal.com/tools/emailmanage.bml и проверьте, весьма тщательно, список старых адресов. Удалите из него все адреса, которые не принадлежат вам или которые вы не контролируете полностью, особенно те, которые вошли в него недавно (см. по датам), но и все остальные тоже заодно проверьте.

Если вам нужно удалить какой-то из адресов в этом списке, но система не даёт его выбрать, это значит, что ваш текущий адрес слишком новый, вам нужно поменять его (и подтвердить!) на один из более старых, вошедших в список до того, который вы хотите удалить. Прочитайте внимательно 3-ю секцию этого документа и поймёте, что и как нужно делать.

9) После того, как вы удалили все подозрительные старые адреса, проверьте ещё раз, что между тем не изменился ваш текущий адрес на http://www.livejournal.com/editinfo.bml (взломщик мог его изменить тем временем) и обязательно измените ещё раз свой пароль на странице http://www.livejournal.com/changepassword.bml , т.к. пока вы разбирались со списком старых адресов, взломщик мог выслать пароль, который вы сменили в пункте 7), на один из них. Не пропускайте этот шаг (бывало много раз, что взломщик успевал получить таким образом новый пароль, но не пользовался им сразу, а выжидал пару дней, пока хозяин успокоится, и опять захватывал дневник).

10) Теперь вы восстановили контроль над своим дневником. Поздравляю! Пожалуйста, помните о том, что свой пароль не следует выдавать никому и никогда ни при каких обстоятельствах. Помните и о том, что он должен быть нетривиальным, и даже хорошо знающие вас люди не должны суметь его отгадать. Не забывайте, наконец, о безопасности и хорошем контроле над доступом к вашим почтовым адресам.

Обсуждение — в комментариях на источнике

С уважением,

Ющук Евгений Леонидович