Администратор сайта без имени пользователя и пароля - PullRequest
1 голос
/ 24 апреля 2009

Прямо сейчас я создаю личный сайт / блог, и у меня все получилось так, как я хочу, за исключением того, что у меня есть два мнения о том, как добавлять к нему сообщения.

Только я буду добавлять посты, и для меня наличие пароля пользователя / имени для входа кажется довольно утомительным;).

Я ищу альтернативы, чтобы поиграть и поэкспериментировать, и у меня есть одна идея:

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

Мне просто интересно узнать о каких-либо предостережениях, на которые мне следует обратить внимание, или, если кто-то считает, что это плохая идея, возможно, альтернативу, которую я мог бы попробовать?

Ответы [ 5 ]

7 голосов
/ 24 апреля 2009

Почему бы просто не ввести имя пользователя и пароль, а также не забыть логин в веб-браузере или не отправить файл cookie для аутентификации обратно, срок действия которого не истек. Используйте самозаверяющий сертификат SSL для защиты канала связи. Если вы хотите использовать шифрование с открытым / закрытым ключом, просто настройте SSH-туннель и отправьте сообщение с локального хоста на ваш сервер. Поверьте мне, лучше повторно использовать заведомо хорошую крипто / безопасность, чем пытаться свернуть свою собственную.

3 голосов
/ 24 апреля 2009

Почему бы не пойти на шаг дальше от вашего предложения и поместить зашифрованную строку в URL?

Например, превратить текущую дату и время в строку - например. 0904240905 - зашифруйте его своим закрытым ключом и добавьте его в URL, например, http://yoursite.com/admin/dksjfh4d392s где dksjfh4d392s - зашифрованная строка. Затем на вашем сайте есть сервлет, который извлекает зашифрованную строку из URL-адреса, проверяет, расшифровывает ли он до последнего времени, а затем выдает файл cookie сеанса, в то время как позволяет выполнять задачи администратора.

1 голос
/ 24 апреля 2009

Я думаю, что асимметричный ключ - элегантное решение, но имя пользователя / пароль почти наверняка будет проще реализовать.

Если вы создаете свой собственный сайт, то вы просто делаете это для удовольствия (в противном случае вы бы использовали WordPress, Drupal, Django и т. Д.), Так почему бы не сделать все иначе?

Вы можете обнаружить, что необходимость носить с собой приложение с клавишами может стать немного ограничительной, если вы захотите вести блог, но не сможете идентифицировать себя.

Но, тем не менее, @Kurt имеет правильную идею для крипто - DIY почти наверняка будет хуже, чем использование чего-то уже опробованного и протестированного.

0 голосов
/ 24 апреля 2009

Сертификаты клиента SSL делают это в любом случае. Почему бы просто не использовать один из них?

Основная причина, по которой все больше людей не используют клиентские сертификаты SSL, заключается в том, что они являются административным кошмаром - вы должны заставить конечных пользователей создавать ключи, затем подписывать их сертификаты, а затем убедиться, что конечные пользователи не теряют свои ключи (когда они теряют свой ноутбук, обновляются до новой ОС и т. д.), что они обычно делают, поэтому вы должны подписать ДАЛЕЕ сертификаты, когда конечные пользователи теряют свои закрытые ключи.

0 голосов
/ 24 апреля 2009

Одним из самых мудрых утверждений о безопасности, которое я когда-либо слышал, было «не пытайся заново его изобретать».

Онлайн-безопасность прошла через столько итераций, что весьма вероятно, что у любой яркой идеи, с которой вы столкнетесь, есть какой-то недостаток, который был ранее найден, рассмотрен и исправлен.

Если вы хотите «случайную» безопасность, защитите свой сайт с помощью имени пользователя и пароля. Если вы хотите «сильной» безопасности, прикрепите SSL-сертификат поверх него. Если вам нужна защита «банка», добавьте защиту от нажатия клавиш.

...