Автор Тема: кирилические пароли  (Прочитано 1229 раз)

Оффлайн Olej

  • Участник
  • *
  • Сообщений: 201
кирилические пароли
« : 28.01.2017 15:36:55 »
Сложность пароля
Цитировать
Сложность пароля в компьютерной индустрии обычно оценивают в терминах информационной энтропии (понятие из теории информации), измеряемой в битах. Вместо количества попыток, которые необходимо предпринять для угадывания пароля, вычисляется логарифм по основанию 2 от этого числа, и полученное число называется количеством «битов энтропии» в пароле. Пароль со, скажем, 42-битной сложностью, посчитанной таким способом, будет соответствовать случайно сгенерированному паролю длиной в 42 бита. Другими словами, чтобы методом полного перебора найти пароль с 42-битной сложностью, необходимо создать 2^42 паролей и попытаться использовать их; один из 2^42 паролей окажется правильным. Согласно формуле при увеличении длины пароля на один бит количество возможных паролей удвоится, что сделает задачу атакующего в два раза сложнее. В среднем атакующий должен будет проверить половину из всех возможных паролей до того, как найдет правильный.
Если в качестве алфавита для генерации пароля используются все печатные символы ASCII (арабские цифры, строчные и заглавные буквы латинского алфавита: a-z, A-Z, 0-9, спецсимволы и знаки препинания) то число таких символов (алфавит) 95, а энтропия на 1 символ оценивается как 6,5699 бит. Тогда для 6-символьного пароля энтропия ~39 бит, а 8-символьного — 53 бит, а числа полного перебора составят, соответственно, 239 = 550×10⁹ и 253 = 9×10¹⁵. Рост сложности пароля от длины будет, как понятно, экспоненциальный.

Возникло такое ... смешное соображение  ;-D: в качестве пароля использовать его набранным на русской раскладке, в кодировке UTF-8, которая принята сейчас повсеместно в Linux:
[olej@dell ~]$ sudo passwd stupid
[sudo] пароль для olej:
Изменяется пароль пользователя stupid.
Новый пароль :
Повторите ввод нового пароля :
passwd: все данные аутентификации успешно обновлены.
[olej@dell ~]$ su - stupid
Пароль:
[stupid@dell ~]$ whoami
stupid
(я даже в качестве пароля здесь установил тоже "stupid", но набранное на русской раскладке клавиатуры - я даже не знаю что там я набирал)

Это будет большим сюрпризом для того, кто попытался бы подобрать такой пароль.   :-o
То, что кирилическая 'К' (болшая) будет 2 байта D0 9A - для малолетних сопливых "хакеров" может быть большим откровением ... тем более, что они дальше Windows ничего не слышали, а про UTF-8 не догадываются.

P.S. Тем более, что даже зная пароль к Linux системе они там у себя, в вынь-де, при удалённом доступе просто не смогут его набрать в UTF-8 ... в своих окошках ввода.

Хотелось бы выслушать мнения и возражения по этому поводу.

И попутно вот такой вопрос:
[olej@dell ~]$ ssh stupid@192.168.1.103
stupid@192.168.1.103's password:
Permission denied, please try again.
stupid@192.168.1.103's password:
Permission denied, please try again.
stupid@192.168.1.103's password:
Permission denied, please try again.
stupid@192.168.1.103's password:
Permission denied, please try again.
stupid@192.168.1.103's password:
Permission denied, please try again.
stupid@192.168.1.103's password:
Received disconnect from 192.168.1.103 port 22:2: Too many authentication failures
Connection to 192.168.1.103 closed by remote host.
Connection to 192.168.1.103 closed.
Что мешает SSH-клиенту или SSH-серверу воспринимать такой пароль?
« Последнее редактирование: 28.01.2017 16:26:36 от Olej »

Оффлайн Olej

  • Участник
  • *
  • Сообщений: 201
Re: кирилические пароли
« Ответ #1 : 28.01.2017 17:03:18 »
Цитата: Olej
Что мешает SSH-клиенту или SSH-серверу воспринимать такой пароль?
Здесь моя ошибка! (где-то я запутался в IP хостов) :
[olej@dell .ssh]$ ssh stupid@192.168.1.101
The authenticity of host '192.168.1.101 (192.168.1.101)' can't be established.
ECDSA key fingerprint is SHA256:Jhd8ErBQXvPxi5ZJFOtPLcQQLmKANznLpQG5IHRxR7c.
ECDSA key fingerprint is MD5:72:a8:4f:33:85:c4:0e:a1:01:7c:b0:be:c3:09:b5:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.101' (ECDSA) to the list of known hosts.
stupid@192.168.1.101's password:
Last login: Sat Jan 28 13:25:48 2017
[stupid@dell ~]$ whoami
stupid
...
А вот как логи на хосте SSH-сервере зафиксировали это подключение:
[olej@dell etc]$ journalctl --since="2017-01-28 15:00" -u sshd
-- Logs begin at Пт 2016-04-22 12:18:30 EEST, end at Сб 2017-01-28 15:49:05 EET. --
янв 28 15:49:04 dell.localdomain sshd[18606]: Accepted password for stupid from 192.168.1.101 port 41812 ssh2
[root@dell audit]# cat audit.log | grep sshd | grep USER_LOGIN | tail -n2
type=USER_LOGIN msg=audit(1485611288.073:1254): pid=18538 uid=0 auid=4294967295 ses=4294967295 msg='op=login acct="(unknown)" exe="/usr/sbin/sshd" hostname=? addr=192.168.1.101 terminal=ssh res=failed'
type=USER_LOGIN msg=audit(1485611345.051:1274): pid=18606 uid=0 auid=1001 ses=7 msg='op=login id=1001 exe="/usr/sbin/sshd" hostname=192.168.1.101 addr=192.168.1.101 terminal=/dev/pts/21 res=success'

Оффлайн Spanish ArCher

  • Участник
  • *
  • Сообщений: 1 234
Re: кирилические пароли
« Ответ #2 : 28.01.2017 17:26:07 »
Это всё давным-давно известно и предусмотрено. И есть полно словарей для брутфорса с русскими паролями.
$ tail pass.dic
ячеистых
ячейками
ячменный
яюфртрыш
яюфыхцрыш
яюърчрыр
яюыютшэр
яюыютшэх
яюьюурыш
яюярфрыш
Если я попался вам навстречу, Значит вам со мной не по пути.
(С) Воскресение

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: кирилические пароли
« Ответ #3 : 28.01.2017 17:42:52 »
Да , этот приём известный и у любого хакерского словаря такие пароли есть.

Оффлайн Olej

  • Участник
  • *
  • Сообщений: 201
Re: кирилические пароли
« Ответ #4 : 28.01.2017 17:46:24 »
Это всё давным-давно известно и предусмотрено. И есть полно словарей для брутфорса с русскими паролями.
Про словари и брутфорсы я это всё знаю...
Но словари в UTF-8, перемежающиеся D0?
Или в каком-нибудь CP-1251? (а то и виндоузным UTF-16?)
Вот что мне интересно в этой теме!

« Последнее редактирование: 28.01.2017 17:48:01 от Olej »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: кирилические пароли
« Ответ #5 : 28.01.2017 19:55:47 »
Кодировка не имеет значения. Имеет значение сколько значений может иметь один символ пароля и длины пароля.
Вот если а виде пароля использовать последовательность китайских иероглифов, то взлом их станет более трудным.
Считается просто - логорифм по основанию два от числа комбинаций одного символа возведенных в степень равною длинные пароля.
Цитировать
log2( (Число значений)^(длина пароля) )]
« Последнее редактирование: 29.01.2017 06:27:29 от ruslandh »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: кирилические пароли
« Ответ #6 : 29.01.2017 06:37:45 »
Но словари в UTF-8, перемежающиеся D0?
Или в каком-нибудь CP-1251? (а то и виндоузным UTF-16?)
utf-8 и utf-16 - это форма представления одного и того-же 64-битного юникода. Просто если передавать или сохранять символ в его натуральном виде, в большинстве случаев из-за трех или двух первых символов с ведущими нулями, такой файл, или такое сообщение займёт в 4, или в 8 раза больше, чем однобайтная кодировка с тем-же текстом, поэтому придумали несколько различных способов как упаовывать четырёхбайтный символ в меньшее число байтов, и вот названия этих упаковок называют utf8, utf16 и т.п. При распаковке конкретного символа, например буквы "Σ" из utf8 или из utf16 получается один и тот-же код юникода 0x0000...03A3 .

https://habrahabr.ru/post/138173/
« Последнее редактирование: 29.01.2017 06:58:11 от ruslandh »

Оффлайн Olej

  • Участник
  • *
  • Сообщений: 201
Re: кирилические пароли
« Ответ #7 : 29.01.2017 12:39:18 »
utf-8 и utf-16 - это форма представления одного и того-же 64-битного юникода. Просто если передавать или сохранять символ в его натуральном виде, в большинстве случаев из-за трех или двух первых символов с ведущими нулями, такой файл, или такое сообщение займёт в 4, или в 8 раза больше, чем однобайтная кодировка с тем-же текстом, поэтому придумали несколько различных способов как упаовывать четырёхбайтный символ в меньшее число байтов, и вот названия этих упаковок называют utf8, utf16 и т.п. При распаковке конкретного символа, например буквы "Σ" из utf8 или из utf16 получается один и тот-же код юникода 0x0000...03A3 .
Букварь пересказывать не надо?

Только в Linux (современных) все Unicode тексты хранятся в UTF-8. И в качестве паролей (и имён пользователей, вероятно, тоже) они хранятся именно так - байт за байтом, и никто их в 32-битные коды Unicode (wchar_t) преобразовывать не станет. И хэш-коды (для последующего сравнения) из них образуются так же - байт за байтом.

(а преобразовывать символы-байты в UTF-16 в Linux - это желание, с любой целью, может прийти в голову только от большого душевного нездоровья ... поэтому это вообще оставим в стороне)
« Последнее редактирование: 29.01.2017 12:43:10 от Olej »

Оффлайн Olej

  • Участник
  • *
  • Сообщений: 201
Re: кирилические пароли
« Ответ #8 : 29.01.2017 12:54:15 »
(и имён пользователей, вероятно, тоже)
Ну, тут я несколько увлёкся:
[olej@dell home]$ sudo adduser вася
[sudo] пароль для olej:
adduser: неверное имя пользователя «вася»

Оффлайн Olej

  • Участник
  • *
  • Сообщений: 201
Re: кирилические пароли
« Ответ #9 : 29.01.2017 13:18:12 »
А можно и сгенерировать UTF-8 пароль, как-то так:
[olej@dell home]$ tr -cs [:graph:] < /dev/urandom | head -c25|iconv -f KOI8-R -t UTF-8|tr '[:cntrl:]' ' '|tr "\n" " "|sed 's/ //g'
©┌jЛ/5O┌ш/≈▌▒═Ё1╧∙д[olej@dell home]$
И вот вам пользователь с таким паролем:
[olej@dell home]$ sudo adduser vasja
[sudo] пароль для olej:
Создание почтового ящика: Файл существует
[olej@dell home]$ sudo passwd vasja
Изменяется пароль пользователя vasja.
Новый пароль :
Повторите ввод нового пароля :
passwd: все данные аутентификации успешно обновлены.
[olej@dell home]$ su - vasja
Пароль:
[vasja@dell ~]$ whoami
vasja
[vasja@dell ~]$ exit
logout
[olej@dell home]$ sudo userdel vasja
Приглашаются квалифицированные брутфорсеры для подбора пароля Васи!  ;-)