Как Netflix знает мой пароль?

8046
Raven Dreamer

Всякий раз, когда я захожу на главную страницу Netflix в Firefox, я автоматически захожу в систему.

Однако, когда я открываю список сохраненных паролей Firefox, я замечаю, что Netflix не входит в число сайтов, для которых Firefox хранит пароли ( Options -> Security -> Saved Passwords)

Как Netflix знает пароль, если Firefox не хранит его, и где он хранится?

8
Я не вижу, какая часть этого сценария заставляет вас думать, что они знают ваш пароль. По сути, все, что вы сказали: «Я только что получил Chromecast». и «Firefox не сохранил мой пароль Netflix». Что в этих двух фактах заставляет вас думать, что у Netflix есть ваш пароль? Я предполагаю, что это недоразумение возникло не из того, что вы перечислили в своем текущем вопросе. Возможно, вы могли бы отредактировать, чтобы объяснить, что это за «что-то»? Ajedi32 9 лет назад 20
@ Ajedi32 Честно говоря, у меня только что произошла осечка, и я предположил, что, поскольку я вхожу в систему всякий раз, когда открываю Netflix, это был Firefox, выполняющий вход в систему. Совершенно забыл, что куки были вещи. Raven Dreamer 9 лет назад 1
Так что на самом деле Chromecast совершенно не имеет значения. David Z 9 лет назад 4
@DavidZ Если у кого-то не было информации о том, как использовать его через Firefox ... да. Raven Dreamer 9 лет назад 0
@RavenDreamer Это был бы другой вопрос; так не имеет значения независимо. OJFord 9 лет назад 0

4 ответа на вопрос

31
Vinayak

To answer your first question, Netflix doesn't know your password.

What Netflix and every other competent website out there does is hash your password using a one-way hashing scheme (MD5, SHA-1, SHA-2, etc.).

What this does is essentially create a unique fixed-length hexadecimal fingerprint that identifies the string of text that is your password. For instance, here's what my-secure-password looks like after being hashed using MD5:

MD5 hashing

They store this hash in their internal database and every time you log into Netflix, the password you supply during the login process is hashed once again using the same scheme and is matched against the copy of the hashed password stored in their database.

If they match, they know that you've entered the correct password and you're granted access. If they don't, you're not authenticated. This is why when you click on some variation of the Forgot password link they don't send you your old password but rather ask you to choose a new one. It's because they don't know what your password is either.

So how are you logged in if Firefox did not store the password for Netflix?

The answer to that is session cookies. When you logged into Netflix (maybe a while ago), you may have chosen to remember your session.
remember me?

If you did, Firefox stores a small tidbit of information on your computer that uniquely identifies you whenever you visit Netflix. These 'cookies' as they are called generally persist for a short period time until the session is active and then expire. Some however may last weeks or longer. Delete that cookie and Netflix won't remember you.

Netflix cookies

Regarding your second question, if Firefox didn't 'remember' the password, it isn't stored anywhere. What's stored is the cookie. Firefox stores them in its Profiles folder in the file cookies.sqlite which is a SQLite database file.

Lastly, if you opted to log in through your Facebook account, you wouldn't need a password and so Firefox wouldn't store one.

login using Facebook

However, a cookie would still be created to identify your session.

MD5 больше не является «односторонним». Такие инструменты, как Google и несколько других огромных баз данных, которые предварительно вычисляют все комбинации, могут легко позволить вам вернуть исходную строку. Проверка пароля на самом деле довольно сложный процесс в наши дни. Derek 朕會功夫 9 лет назад 2
MD5 ** ** односторонний, потому что это хеш-функция. Сказать, что это не так, означает, что вы можете каким-то образом получить исходные данные из хеша MD5 с помощью криптографического процесса. Ты не можешь Упомянутые вами инструменты могут «перевернуть» хеш-код только потому, что они вложили значительные вычислительные ресурсы в компьютер для того, чтобы все возможные комбинации паролей пришли к исходной строке пароля. Это не значит, что MD5 обратим. Хеширование отличается от шифрования, где вы можете расшифровать данные, если у вас есть ключ. Также с хэшированием, независимо от того, как долго вводится, вывод всегда фиксированной длины. Vinayak 9 лет назад 23
Итак, если бы я сгенерировал хэш MD5 для очень большого набора данных (скажем, простой текстовый файл размером 15 килобайт - это просто текст, так что вы могли бы думать о нем как о очень длинном пароле), я бы все равно получал хеш длиной 32 байта. Я не думаю, что какой-либо компьютер в мире способен «перевернуть» этот хэш, чтобы воссоздать исходный текстовый файл. Vinayak 9 лет назад 2
Очевидно, что хеширование не должно быть обратимым, однако дело в том, что старый или плохой дизайн можно легко изменить, например, расшифровывать закодированную строку, поэтому компании не будут использовать MD5 для проверки пароля, а только для проверки файлов. Derek 朕會功夫 9 лет назад 0
@ Дерек 朕 會 功夫 Я согласен. MD5 недостаточно безопасен для хранения пользовательских паролей, потому что вычисление хэшей MD5 занимает гораздо меньше времени, чем, скажем, вычисление хэшей SHA-2, поэтому, вероятно, атака хэшей MD5 все еще жизнеспособна. Недостаточно хорошо хранить слабые пароли, такие как ** `password` **, но, опять же, SHA-2 тоже не сильно поможет, если пользователи используют слова паролей в своих паролях. Vinayak 9 лет назад 0
@Derek 朕 會 功夫 MD5 криптографически «сломан», но речь идет о ** коллизиях **, а не о предварительных изображениях (что важно для паролей). MD5 также плохо подходит для паролей, но это потому, что он ** быстрый **, так что вы можете за короткое время взломать много паролей (и то же самое для более современных хеш-функций, таких как SHA) -2 и ША-3). См. Http://crypto.stackexchange.com/a/28/58. Paŭlo Ebermann 9 лет назад 16
Я должен понизить только для примера MD5, каким бы хорошим ни был ответ. Это просто не то, что вы хотите прочитать в 2014 году (скоро будет 2015). Никогда не было хорошей идеей использовать сырой MD5 (даже с солью) для хранения паролей, и большинство людей поняли это за последние 10 лет. -1 Thomas 9 лет назад 9
@ Томас Мне жаль, что ты так думаешь, но мой ответ никогда не должен был служить руководством для выбора наилучшей схемы хеширования. SuperUser - это не StackOverflow и, нравится это или нет, MD5 по-прежнему является криптографической хеш-функцией, поэтому я не вижу, что не так с объяснением того, что такое хеш-код на примере MD5. Vinayak 9 лет назад 8
Вы, ребята, используете два разных определения термина «односторонний». Есть [математическое определение] (http://mathworld.wolfram.com/Many-to-One.html), которое просто означает «не инъективный», а затем есть [определение информатики] (http: //en.wikipedia .org / wiki / One-way_function), что означает «криптографически безопасный». При обсуждении криптографических хеш-функций мы всегда используем второе определение, поэтому утверждение «MD5 больше не является односторонним» является правильным. BlueRaja - Danny Pflughoeft 9 лет назад 3
@Thomas Использование соли и одного вызова MD5 намного безопаснее, чем метод, который обычно использовался до внедрения подхода MD5. И фактически до сегодняшнего дня использование одного вызова MD5 с солью все еще безопасно для тех пользователей, которые используют надежные пароли. Более сильные алгоритмы предназначены исключительно для тех пользователей, которые не могут выбрать хорошие пароли. Тем не менее, никто, проектирующий новую систему сегодня, не должен полагаться на что-то более слабое, чем SHA2. kasperd 9 лет назад 0
@kasperd "И фактически до сегодняшнего дня использование одного вызова MD5 с солью все еще безопасно для тех пользователей, которые используют надежные пароли." Пожалуйста, не распространяйте дезинформацию. Одного вызова MD5 совершенно недостаточно. Ayrx 9 лет назад 7
@TerryChia Вот соленый хэш моего пароля. И, зная его силу, я ни капельки не беспокоюсь о том, что соленый хеш публично известен как $ 1 $ 6kXWoBde $ ycaVUKClUGuqnugceZVn..`. На самом деле я так уверен, что даже покажу несоленый MD5 с тем же паролем. `888adeb452573003f3ea87f2b9f817ca`. Уверяю вас, никто не поймет, что это за пароль. MD5 достаточно для пароля, который я использую. Слабые пароли не так много, но я не выбираю слабые пароли. kasperd 9 лет назад 3
@kasperd * Большинство людей * не имеют надежных паролей из 20 символов и используют один и тот же пароль в нескольких разных местах, поэтому в общем случае нам нужны эти функции медленного хеширования паролей. Если у всех был надежный пароль, и он никогда не использовался повторно на любых двух сайтах, вы можете даже утверждать, что вам не нужна соль вообще. Но это не так в реальном мире, поэтому практически любая реальная система должна обслуживать большинство пользователей, которые «не могут выбрать хорошие пароли». Поэтому использование дискуссионных систем хеширования паролей с солью MD5 + сомнительно (или академическое упражнение). Thomas 9 лет назад 0
@kasperd: могут создаваться коллизии [по требованию для MD5] (http://www.crypto-hash.fr/modules/wfdownloads/singlefile.php?cid=13&lid=14), что делает их совершенно небезопасными. Обратите внимание, что это не та же самая уязвимость, что и «выяснение вашего пароля». Ваш аргумент [соломенный человек] (http://en.wikipedia.org/wiki/Straw_man); пожалуйста, прекратите распространять дезинформацию. BlueRaja - Danny Pflughoeft 9 лет назад 0
@BlueRaja Я не тот, кто распространяет дезинформацию. Утверждать, что никогда не было хорошей идеей использовать MD5 для хеширования паролей, просто неправильно. Стандартный алгоритм хеширования паролей с помощью MD5 был опубликован до появления первой уязвимости в MD5. Кроме того, этот алгоритм был значительно сильнее, чем алгоритмы, которые он заменил. Сегодня у нас есть лучшие алгоритмы, поэтому ни одна новая система не должна использовать MD5. Но факт, что хеширование паролей на основе MD5 еще не сломано. kasperd 9 лет назад 0
Этот аргумент неконструктивен. Вопрос не был в хешировании. Если вы хотите улучшить ответ, сделайте это - спорить о том, подходит ли этот пример, бессмысленно. Я бы порекомендовал сначала изучить, что использует Netflix (если он общеизвестен), так как это было бы наиболее актуально для реального вопроса. zeel 9 лет назад 1
10
grawity

Netflix – like most other websites – doesn't care about your password during normal browsing. Instead, when you log in, Netflix has the browser store a 'cookie' with the login session ID. The browser sends it back every time it requests a new page. (Likewise, the password storage in Firefox is not used during normal browsing, but only for auto-filling the password field in login pages.)

The session cookies are usually generated randomly and don't have any relation to your login or password – only Netflix itself can link it to your account.

To see them, right-click the page, select "View Page Info", and under "Security" click "View Cookies".

5
Cornelius

There's nothing wrong with Netflix. Just like almost all websites that you can log on, it stores a cookie on your PC which among other things, stores an encrypted data representing your password.

Haven't you seen the same behavior on Google, Facebook, Yahoo, Windows Live and whatever account you may think of?

Some web services may use cookies that are valid only for a short period of time or only in the current session (for example Yahoo and Facebook unless you select a Remember me on this computer option). But apparently Netflix uses cookies that are valid for a longer period of time which keeps you logged on unless you delete your browser history - especially cookies.

Now, you may be asking what's the use of password store in the browser. That's very simple. If you log out from Netflix (or whatever else) the cookie gets deleted. If you want to log back in you'll have to enter both the account username and the password. If you have saved your password in the browser, it will autocomplete that field when you type the username.

Уточнение - куки не содержат никаких данных, представляющих пароли. Скорее, они содержат случайные данные, которые идентифицируют * сеанс *, связанный с вашей учетной записью. Сессии хранятся на сервере. ntoskrnl 9 лет назад 10
0
hymie

Did you check your cookies? Your password, or an encrypted copy of your password, might be there.

Это был бы ужасно небезопасный дизайн. Обычной практикой является использование файла cookie сеанса, который никак не связан с паролем. kasperd 9 лет назад 5
Это не имеет особого значения, что именно он там находит. Он должен проверить его печенье. hymie 9 лет назад 0