Profile

coolwolf0: (Default)
coolwolf0

July 2025

S M T W T F S
  123 45
6789101112
13141516171819
20212223242526
2728293031  

Custom Text

Я тут потихоньку ваяю код для полноценного аггрегатора RSS, чтоб базировался на вебе, с мордой от Bootstrap. Мой древний самопал бежит строго на локальной машине, а это бардак и каменный век с точки зрения доступа. Про внешнее оформление в стиле Веб-1.0 вообще молчу.
Уже сейчас имеется подкачка RSS-лент с сайтов по списку и умное хранение обновлений в базе, постраничное отображение статей, отметка прочитанного, редактирование кое-каких деталей имеющихся лент, поддержка клавиатурных шорткатов, плюс адаптивный дизайн под десктоп и смартфон.

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

Итак, задача номер один: как секьюрно передать первоначальный пароль в систему, с учётом того, что хакеры могут прослушивать траффик. Идея состоит в том, что я вообще не собираюсь принимать от пользователя какой-то пароль при регистрации. Он оставляет на сайте свой запрос и получает от меня первоначальный пароль мейлом. При этом я не храню сам пароль в системе, а только его чексумму.

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

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

Фактически, я разрубил гордиев узел несекьюрного канала при помощи вспомогательного канала (мейл).
Насколько мой сценарий опасен с точки зрения реальной жизни? Есть какие идеи?
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Expand Cut Tags

No cut tags

Style Credit