Безопасность

Противодействие хакерским угрозам

Модераторы: Olej, adminn, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 02 фев 2017, 14:04

Olej писал(а):И имя пользователя и его пароль были скопированы из KeePassX - его кнопки на панели.
Это простуйший и очень эффективный путь тиражировать большое количество паролей внутри LAN!
Это делается проще и быстрее (меньшим числом действий), чем помнить + вводить с клавиатуры даже простой 8-символьный пароль на латинице!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Безопасность

Непрочитанное сообщение Olej » 13 фев 2017, 13:22

Olej писал(а):
Olej писал(а):в качестве пароля использовать его набранным на русской раскладке, в кодировке UTF-8, которая принята сейчас повсеместно в Linux:
Сложность пароля
Сложность пароля в компьютерной индустрии обычно оценивают в терминах информационной энтропии (понятие из теории информации), измеряемой в битах. Вместо количества попыток, которые необходимо предпринять для угадывания пароля, вычисляется логарифм по основанию 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¹⁵. Рост сложности пароля от длины будет, как понятно, экспоненциальный.
Вот такой вот паролец ;-)

Код: Выделить всё

[olej@dell ~]$ echo '者の光預言' | wc -c
16
16 байт в UTF-8 кодировке (я совершенно не представляю что это означает ... может совершенную нецензурщину ;-) ).
Как для такого пароля посчитать потенциальную сложность этих 16 байт, определить число попыток подбора такого пароля?
Вот такие вот 16 байт:

Код: Выделить всё

[olej@dell ~]$ echo '者の光預言' | hexdump -C
00000000  e8 80 85 e3 81 ae e5 85  89 e9 a0 90 e8 a8 80 0a  |................|
00000010

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 13 фев 2017, 13:31

Olej писал(а): Вот такие вот 16 байт:

Код: Выделить всё

[olej@dell ~]$ echo '者の光預言' | hexdump -C
00000000  e8 80 85 e3 81 ae e5 85  89 e9 a0 90 e8 a8 80 0a  |................|
00000010
При более тщательном рассмотрении - 12 байт, 3 байт на символ в этом алфавите ... заключительный '\n' (0a) во всех случаях добавляла echo команда:

Код: Выделить всё

[olej@dell ~]$ echo '者' | hexdump -b
0000000 350 200 205 012                                                
0000004
[olej@dell ~]$ echo 'の' | hexdump -b
0000000 343 201 256 012                                                
0000004
[olej@dell ~]$ echo '光' | hexdump -b
0000000 345 205 211 012                                                
0000004
[olej@dell ~]$ echo '預' | hexdump -b
0000000 351 240 220 012                                                
0000004
[olej@dell ~]$ echo '言' | hexdump -b
0000000 350 250 200 012                                                
0000004

Код: Выделить всё

[olej@dell 13]$ echo -n 者の光預言 | wc -c
15

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 13 фев 2017, 14:52

Olej писал(а): 16 байт в UTF-8 кодировке (я совершенно не представляю что это означает ... может совершенную нецензурщину ;-) ).
Как для такого пароля посчитать потенциальную сложность этих 16 байт, определить число попыток подбора такого пароля?
Вот такие вот 16 байт:
И обратно, опять же, те же 15 байт:

Код: Выделить всё

[olej@dell ~]$ echo -e '\0350\0200\0205\0343\0201\0256\0345\0205\0211\0351\0240\0220\0350\0250\0200'
者の光預言
Которые могут составлять очень даже неплохой пароль :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 13 фев 2017, 15:00

Olej писал(а):Которые могут составлять очень даже неплохой пароль :lol:
Но подобным образом могут быть сконструированы последовательности 5-ти или 6-ти байтных последовательностей, допускаемых UTF-8, которые вообще не имеют эквивалентов символов UNICODE.
См. подробности: UTF-8 это.
Символы, закодированные в UTF-8, могут быть длиной до шести байт, однако стандарт Unicode не определяет символов выше 0x10ffff, поэтому символы Unicode могут иметь максимальный размер в 4 байта в UTF-8.
У байт не ASCII-символов старший бит всегда установлен в 1. При этом второй с конца бит всегда сброшен у не первых байт (у первых, соответственно, установлен). Поэтому если чтение производится с произвольного байта, то по второму биту можно определять промежуточные байты.

И у не первых байт остальные 6 младших бит содержат фрагмент кода символа (об этом ниже).

Количество байт, которое отводится под символ, всегда равно количеству идущих подряд старших бит со значением 1 в первом байте. Эти биты всегда завершаются битом со значением 0. Оставшиеся младшие биты первого байта составляют код символа. Отсюда обуславливается ограничение в 6 байт на символ — если выше, то в первом байте уже не хватит места под биты данных. Поэтому последовательности бит 111111102 (FE16) и 111111112 (FF16) общепринято считаются не используемыми в UTF-8.
Максимальный потенциал

До этого рассматривалось кодирование в UTF-8 лишь 32-битных целых без отрицательных значений. Следует отметить, что в стандарте Unicode используются символы лишь до кода 001FFFFF16 включительно. Поэтому даже 32-битных значений может вполне хватить, но этот раздел был включён для полноты изложения в случае использования UTF-8 для кодирования несимвольных данных.

В первом байте количество установленных старших бит определяет количество байт на символ. Оставшиеся младшие биты хранят старшие биты значения кода символа. Мы можем сделать допущение о том, что первый байт не обязан содержать данные. При этом допускаем, что все биты за пределами байта равны нулю. Тогда данные будут содержать только 6 бит в последующих байтах. Получается 36 бит для семибайтового символа и 42 бита — для восьмибайтового.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 13 фев 2017, 16:22

Olej писал(а): Но подобным образом могут быть сконструированы последовательности 5-ти или 6-ти байтных последовательностей, допускаемых UTF-8, которые вообще не имеют эквивалентов символов UNICODE.
См. подробности: UTF-8 это.
Тем более, что один и тот же локализованный символ в UTF-8 может иметь несколько эквивалентных (корректных, 2-х, 3-х, 4-х, 5-ти, 6-ти бит) представлений ... из которых для алфавитных представлений выбирается представление наименьшей длины.
См. UTF-8 - символ "год" на тамильском языке, эквивалентные представления:

Код: Выделить всё

[olej@dell ~]$ echo -e "\xE0\xAF\xB5" 
௵
[olej@dell ~]$ echo -en "\xE0\xAF\xB5" | wc -m -c
      1       3
[olej@dell ~]$ echo -en "\xF0\x80\xAF\xB5" | wc -m -c
      0       4
[olej@dell ~]$ echo -en "\xF8\x80\x80\xAF\xB5" | wc -m -c
      0       5
[olej@dell ~]$ echo -en "\xFC\x80\x80\x80\xAF\xB5" | wc -m -c
      0       6
[olej@dell ~]$ echo -e "\xFC\x80\x80\x80\xAF\xB5" 
������
(3, 4, 5 и 6 байтные представления)

И вообще, из существующих наборов UNICODE можно подобрать для составления паролей совершенно занятные комбинации символов... особенно если предполагать хранить пароли в программных хранилищах ... см. "таблица символов":
- музыкальные символы
- домино :lol:
- слоги канадских аборигенов
...
Их даже сюда редактор форума вставить-показать не позволяет: SQL error... :-o (и это хороший признак).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 14 фев 2017, 15:23

Olej писал(а): И вообще, из существующих наборов UNICODE можно подобрать для составления паролей совершенно занятные комбинации символов... особенно если предполагать хранить пароли в программных хранилищах ... см. "таблица символов":
- музыкальные символы
- домино :lol:
- слоги канадских аборигенов
...
Их даже сюда редактор форума вставить-показать не позволяет: SQL error... :-o (и это хороший признак).

Код: Выделить всё

[olej@dell ~]$ echo '\xf0\x9f\x81\x9a' | wc -mc 
     17      17
[olej@dell ~]$ echo -e '\xf0\x9f\x81\x9a' | wc -mc 
      2       5
[olej@dell ~]$ echo -en '\xf0\x9f\x81\x9a' | wc -mc 
      1       4
[olej@dell ~]$ echo -en '\xf0\x9d\x84\x9e' | wc -mc 
      1       4
[olej@dell ~]$ echo -en '\xf0\x9d\x86\x91' | wc -mc 
      1       4
[olej@dell ~]$ echo -en '\xf0\x90\x85\x87' | wc -mc 
      1       4
И даже легальные продолжения таких 4-байтовых последовательностей символа (одиночного!) на 5 или 6 байт:

Код: Выделить всё

[olej@dell ~]$ echo -en '\xf0\x90\x85\x80\x87' | wc -mc 
      1       5
[olej@dell ~]$ echo -en '\xf0\x90\x85\x80\x80\x87' | wc -mc 
      1       6
И даже за пределы 6 байт длины, предусмотренных (допускаемых) представлением UTF-8:

Код: Выделить всё

[olej@dell Antihack]$ echo -en '\xf0\x90\x85\x80\x80\x80\x87' | wc -mc
      1       7

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 14 фев 2017, 16:06

Olej писал(а): Генерация паролей:

Код: Выделить всё

[olej@dell draft-temp]$ openssl rand -base64 6
e6u2P3bw
[olej@dell draft-temp]$ openssl rand -base64 8
aKROQhEBaHw=
Как определить сложность пароля?
Вот WEB оценивание на ресурсе https://2ip.ru/passcheck/...
Пароль: e6u2P3bw
Результат: ненадёжный
Ваш пароль может быть взломан за 910 минут
Пароль: aKROQhEBaHw=
Результат: надёжный
Ваш пароль может быть взломан за 109726 лет
Только: кем взломан? как взломан? каким методом? при каком быстродействии подбора?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Безопасность

Непрочитанное сообщение Olej » 14 фев 2017, 16:18

Olej писал(а): Вот WEB оценивание на ресурсе https://2ip.ru/passcheck/...
Пароль: e6u2P3bw
Результат: ненадёжный
Ваш пароль может быть взломан за 910 минут
Тот же пароль для сравнения:
Изображение
Для подбора вашего пароля
на обычном компьютере потребуется
12 дней
Ещё один (уже 3-й) ресурс для оценивания
https://howsecureismypassword.net/
It would take a computer about
2 hours
to crack your password

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Безопасность

Непрочитанное сообщение Olej » 23 сен 2023, 17:28

Всё что касается вредоносного ПО, а, главным образом, инструментов борьбы с ним, перенесено в новую тему: руткиты, трояны, вирусы

Ответить

Вернуться в «Безопасность»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя