Секретные URL действительно безопасны? - PullRequest
44 голосов
/ 29 января 2011

Я никогда не оставляю бэкдоры в своей системе, но из любопытства мне было интересно, если бы я оставил секретный URL-адрес, такой как / x52d23r, который позволял бы обходить какую-то защиту, и это было только для моего личного использования - это было бы каким-то образом обнаружен третьей стороной без получения от меня информации?

Например, секретные порты можно сканировать и сканировать по отпечаткам пальцев, но можно ли применить такую ​​же тактику для секретных URL-адресов?

Ответы [ 8 ]

93 голосов
/ 22 июля 2011

Причина, по которой «секретный URL» обычно небезопасен, не в том, что это «безопасность через неизвестность». В теории информации секретный URL-адрес ничем не отличается от пароля или закрытого ключа. Считают ли пароли и закрытые ключи плохой практикой, потому что они «безопасность через мрак»? Нет.

Так в чем же разница между трудно угадываемым URL-адресом и трудно угадываемым паролем?

Разница заключается в бесчисленных небезопасных местах и ​​способах хранения, отображения и передачи URL-адресов. Примеры:

  1. В адресных строках, истории и кеше веб-браузера *
  2. Заголовки HTTP Referer, отправленные на другие сайты *
  3. В журналах доступа к веб-серверу *
  4. В журналах прокси и брандмауэра уровня 7
  5. В дампах пакетов
  6. В отчетах о посещаемости веб-статистики (например, AWStats, Google Analytics) *

HTTPS может защитить некоторые из них, но не все (элементы, отмеченные *, не защищены от использования HTTPS.)

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

29 голосов
/ 29 января 2011

Оригинальный ответ: Безопасность через неизвестность - это то, что должно никогда не практиковаться.


Я хотел бы остановиться на этом, как я вижуДо сих пор ведутся споры о том, что секретный URL-адрес ничем не отличается от пароля.Я бы очень не согласился с этим сравнением.Секретный URL и пароль do имеют одну сходную характеристику: они известны одному или нескольким конкретным людям / людям.На этом сходство заканчивается.

Надежность паролей

  • Создание пароля из серии случайных слов делает парольочень сильный и очень трудно угадать или грубой силой .

  • Пароль должен быть связан с именем пользователя, что также может повысить безопасность, если имя пользователя не является распространенным.

  • Комбинации имени пользователя и пароля статически не отображаются на экране и не сохраняются в любом месте браузера (если только вы не решили, чтобы ваш браузер "сохранял" свои учетные данные для входа).

  • В случае взлома пароли могут быть изменены без необходимости изменения точки входа в систему.

  • Хорошие парольные системы нехраните их в виде простого текста в файловой системе.

Слабость секретного URL

  • Если не используется в "Инкогнито", Режим «Приват» и т. Д., URL будет храниться в вашей локальной истории / кэше.

  • URL-адреса отображаются в окне браузера и могут быть доступны для блуждающих глаз.

  • Если секретный URL-адрес скомпрометирован, его необходимо изменить иоповестить любого, кто его использует.

  • URL-адрес существует в виде обычного текста на сервере где-либо, будь то реальный каталог / файлы или перезапись (однако перезапись может быть значительно нижеуровень).

  • Все остальное, что @Mike Clark упомянул в свой ответ .

Что этона самом деле сводится к:

  • Секретные URL-адреса обеспечивают безопасность только через мрак.Вот и все.

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

Рекомендация: Используйте как "секретный" URL, так и очень сильный комбинация имени пользователя и пароля.Не полагайтесь на JUST «секретный» URL.

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

10 голосов
/ 29 января 2011

Это небезопасно.

Для HTTP-трафика ваш секретный URL станет общедоступным, как только вы его используете. Без какой-либо защиты паролем перехватчик, прослушивающий ваш сетевой трафик, может увидеть отправленный вами URL-адрес и затем посетить ту же страницу.

8 голосов
/ 22 мая 2011

Я бы сказал, если вы будете осторожны, они могут быть в безопасности. Самая большая дыра в безопасности была бы людьми, использующими это. Он будет непреднамеренно опубликован или размещен где-то, где Google его проиндексирует. Разработайте для этого и используйте его соответствующим образом - например, метод обмена документами Google «Любой, у кого есть эта ссылка».

  1. Использовать HTTPS

    Останавливает отправку URL-адреса в виде текста

    Не устанавливает заголовки реферера , если они нажимают ссылку HTTP

  2. Если люди получают доступ к вашему секретному URL-адресу через HTTP, предупредите их и немедленно измените его

  3. Это не безопасность через мрак - это неправильное понимание нормального использования фразы.

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

    В отличие от этого, вы открыты для реализации и дизайна.

    Я не вижу, чтобы он был менее безопасным, чем средний пароль, при использовании с длинным секретным URL-адресом (64 символа? 2000 - domain_length ?) В сочетании с tar-ямой.

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

8 голосов
/ 29 января 2011

Не очень хорошая идея, потому что:

  1. Кто-то может сообщить, что ваш URL получает локальный доступ к вашей системе / базе данных / приложению
  2. Однажды какой-нибудь администратор сделает ваши журналы доступа открытыми, и Google найдет их.
  3. Вы перенесете / обновите что-то в настройках вашего сервера и забудете защитить / скрыть эти URL
7 голосов
/ 22 июля 2011

Веб-сервер Waterken представляет собой веб-платформу, разработанную специалистами по безопасности при проведении исследований HP в отношении секретных (в особенности криптографически неумышленных) URL.

Приложения, построенные на нем, в результате имеют очень интересные свойства безопасности.

Правильно, криптографически надежные секретные URL-адреса могут обеспечить высокий уровень безопасности.

ACL Не - это документ от команды Waterken об их архитектуре безопасности.

Сравнение предлагаемой защиты с решением на основе возможностей для сценария компиляции и снова при условии Unix-подобной системы: URL-адрес похож на фи lename; и неузнаваемый токен подобен файлу дескриптор, аппроксимирующий неоправданность способности с неузнаваемостью. Законная страница из Сайт биржевого брокера впервые открывает покупку акций Ресурс, получивший неузнаваемый секрет. Браузер затем использует этот неузнаваемый секрет, чтобы написать в запас ресурс покупки.

1 голос
/ 19 июля 2016

это на самом деле довольно разумная идея, если вы используете большой и случайно сгенерированный URL .Есть много систем, которые на самом деле уже работают так.Например, в Google Docs вы можете создать ссылку, которую любой пользователь с этой ссылкой сможет редактировать.Это достаточно долго, чтобы вы никогда не могли реально угадать эту ссылку.Кроме того, ссылки для сброса пароля в основном таковы, за исключением того, что (надеюсь) их можно использовать только один раз.(см. ниже)

Вам необходимо убедиться, что секрет не раскрыт.Это означает, что нужно использовать https, не регистрировать доступ или возвращать секрет в других вызовах API.

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

Кроме того, любой секрет только секрет обратно пропорционален тому, как много людей его знают.Может быть заманчиво поделиться URL-адресом с другими людьми, которым требуется доступ.Гораздо лучшая система может состоять в том, чтобы каждый URL работал один раз, но добавьте cookie в браузер пользователя, что является фактическим токеном.В основном, как поток сброса пароля / поток подтверждения электронной почты, за исключением паролей.

1 голос
/ 22 июля 2011

будет ли это как-то обнаружено третьей стороной без получения от меня информации? Например, секретные порты можно сканировать и сканировать с помощью отпечатков пальцев, но можно ли использовать такую ​​же тактику для секретных URL-адресов?

Да. Вы думаете об этой угрозе как о человеке, сидящем за компьютером, который набирает URL в своем браузере. Реальность такова, что злоумышленники используют автоматизированные программы, которые проводят разведку на системах и используют эту информацию для осуществления различных атак. Использование случайных URL-адресов обходится автоматизированной системе дешевле, чем сотня запросов HTTP в секунду. Во-вторых, как уже отмечали другие, когда вы используете URL, он больше не является секретным. Эти автоматизированные программы прослушивают интернет-трафик и собирают URL-адреса для совершения атак. Тот факт, что только вы знаете URL, означает, что никакой другой человек не может разглашать его значение. Это не мешает техническим средствам разглашать ценность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...