Як шифруються паролі у Windows




Як шифруються паролі у Windows



Технічний огляд паролів

У цьому розділі IT-фахівців пояснюється, як Windows реалізує паролі у версіях Windows, починаючи з Windows Server 2012 та Windows 8.1. У ньому також розглядаються надійні паролі, парольні фрази та політики паролів.

Як зберігаються паролі у Windows

Ця стаття містить відомості про зберігання паролів "неактивних".

Windows представляє паролі у рядках ЮНІКОД 256 символів, але діалогове вікно входу обмежено 127 символами. Тому найдовший можливий пароль має 127 символів. Такі програми, як служби, можуть використовувати більш довгі паролі, але їх необхідно встановити програмним способом.

Операційна система Windows зберігає паролі різними способами для різних цілей.

Паролі, що зберігаються як OWF

Для використання в мережі Windows, включаючи домени Active Directory, пароль зберігається двома різними способами: як одностороння функція LAN Manager (LM OWF) та як NT OWF. "Одностороння функція" - це термін, який означає одностороння математична трансформація даних. Перетворювані дані можна перетворити лише за допомогою шифрування одним способом і не можуть бути скасовані. Найбільш поширеним типом односторонньої функції є криптографічний хеш. Хеш – це невеликий набір даних, який математично прив'язаний до деякого більшого набору даних, з якого обчислюється хеш. Якщо змінюється більший набір даних, то хеш також змінюється. Хеші корисні, наприклад, як контрольна сума, щоб переконатися, що дані не були змінені в передачі. Криптографічний хеш – це хеш, який виконує певні властивості.Криптографічний хеш повинен, наприклад, створюватися таким чином, щоб він був математично непереконливий в розумній кількості часу для виведення більшого набору даних тільки з хеш. Аналогічно, математично неможливо знайти два набори великих даних, які створюють той самий хеш.

Існує багато різних типів одностороння функція. Усі хеш-функції – це одностороння функція. Однак звичайні криптографічні функції, які зазвичай є оборотними, можна використовувати для створення одностороння функція. Це можна зробити, переключивши дані та ключ у криптографічній функції та зашифрувавши фіксоване значення (ключ) за допомогою даних як ключа. Ось як обчислюється хеш LM. Хеш LM обчислюється так:

  1. Пароль заповнюється байтами NULL до 14 символів. Якщо пароль довше 14 символів, він замінюється 14 байтами NULL для операцій, що залишилися.
  2. Пароль перетворюється на всі верхні регістри.
  3. Пароль розділений на два 7-байтові (56-розрядні) ключі.
  4. Кожен ключ використовується для шифрування фіксованого рядка.
  5. Два результати кроку 4 об'єднуються і зберігаються як хеш LM.

Алгоритм OWF LM включений у Windows для зворотної сумісності з програмним забезпеченням та обладнанням, який не може використовувати нові алгоритми.

Хеш NT це просто хеш. Пароль хешується за допомогою алгоритму MD4 та зберігається. NT OWF використовується для автентифікації членами домену як у Windows NT 4.0, так і в ранніх доменах і в доменах Active Directory.

Ні хеш NT, ні хеш LM не солоні. Сіль - це процес, який об'єднує пароль з випадковим числовим значенням (сіллю) перед обчисленням односторонньої функції.

Паролі, що зберігаються в Active Directory

Неактивні паролі зберігаються в декількох атрибутах бази даних Active Directory (NTDS).DIT-файл). Ці атрибути наведені в наступній таблиці:

Атрибут Active Directory Вміст
unicodePwd Зашифрований хеш NT
dbcsPwd Зашифрований хеш LM
ntPwdHistory Зашифровані хеші NT - журнал паролів
lmPwdHistory Зашифровані хеші LM - журнал паролів
supplementalCredentials Ключі Kerberos, WDigest і т.д.

Сховище хешів LM за промовчанням вимкнено з Windows Vista та Windows Server 2008.

При зберіганні у DIT-файлі хеш NT захищений двома рівнями шифрування. У Windows Server 2016/Windows 10 та пізніших версіях спочатку шифрується за допомогою DES для зворотної сумісності, а потім за допомогою CNG BCrypt AES-256 (див. BCRYPT_AES_ALGORITHM CNG). Попередні версії Windows шифрують хеші NT за допомогою двох рівнів шифрування DES+RC4.

Додаткові відомості про додаткові облікові дані див. у розділі MS-SAMR: додаткові функції Credentials та додаткові структури облікових даних.

Паролі, що зберігаються у локальному SAM

На членах домену та робочих станціях хеші паролів облікового запису локального користувача зберігаються в локальній базі даних диспетчера облікових записів безпеки (SAM), розташованій у реєстрі. Вони шифруються за допомогою однакових алгоритмів шифрування та хешування, що і Active Directory. Паролі в атрибуті додаткових Credentials для облікових записів локальних користувачів також зберігаються у локальній базі даних SAM із Windows Server 2016.

Кешовані облікові дані

Windows також зберігає засіб перевірки паролів у членах домену, коли користувач домену входить до цього члена домену. Цей засіб перевірки можна використовувати для автентифікації користувача домену, якщо комп'ютер не може отримати доступ до контролера домену. Засіб перевірки паролів також часто називається обліковими даними, що кешуються.Він обчислюється шляхом прийому хеш NT, об'єднання імені користувача до нього, а потім хешування результату за допомогою хеш-функції MD4.

Як працюють паролі у Windows

У Windows та багатьох інших операційних системах одним із способів автентифікації користувача є використання секретної фрази або пароля.

Ми рекомендуємо використовувати безпечну багатофакторну автентифікацію, наприклад смарт-карту, FIDO та Windows Hello для бізнесу.

Для захисту мережевого середовища потрібно, щоб надійні паролі використовувалися всіма користувачами. регулярному зміні складного пароля знижує ймовірність успішної атаки паролів.

Параметри політики паролів управляють складністю та часом існування паролів.

Можливість зміни паролів користувачів регулюється політиками паролів та доступними інтерфейсами. Наприклад, через Secure Desktop користувачі можуть змінювати пароль у будь-який час на основі політик паролів, які адмініструються системним адміністратором або адміністратором домену. Такі функції, як Windows Vault, BitLocker та шифрування файлової системи, дозволяють користувачам. змінювати паролі, які стосуються цієї функції.

Використання паролів у Windows

При вході користувача пароль, який типи користувачів перетворюються на обидва типи односторонніх функцій і зберігаються у пам'яті процесом служби підсистеми локального центру безпеки (LSASS).Якщо користувач, що використовує локальний обліковий запис для автентифікації, NT OWF порівнюється з локально хешуванням NT і якщо вони збігаються, користувач увійшов до системи. Якщо користувач виконує автентифікацію в домені Active Directory за допомогою імені вузла для доступу до ресурсу, хеш NT використовується у вході Kerberos до центру розповсюдження ключів (KDC), який зазвичай є контролером домену.

Kerberos не можна використовувати у таких ситуаціях:

  • Перевірка автентичності в домені під керуванням Тільки Windows NT 4.0 або раніше версії
  • Доступ до ресурсу в домені Active Directory за допомогою IP-адреси, а не імені вузла
  • Доступ до ресурсу на комп'ютері, який не є членом домену Active Directory
  • Доступ до ресурсу на комп'ютері, який є членом домену Active Directory, але не є довіреним за вашим доменом
  • Доступ до будь-якого ресурсу на комп'ютері під керуванням, який не підтримує Kerberos

У цих ситуаціях процес автентифікації використовує два різні протоколи, які називаються LAN Manager і NTLM. Процес починається з клієнта, який запитує виклик із сервера автентифікації. Після отримання завдання клієнт вираховує відповідь на цю проблему. Це робиться шляхом першого заповнення двох хеш пароля зі значеннями NULL до 168 біт. Потім 168 біт кожного хеша поділяються на три 56-розрядні клавіші DES. Потім шість ключів DES використовують для шифрування завдання. Три тексти шифру, створені за допомогою хеша LM, об'єднуються та стають відповіддю LAN Manager. Три тексти шифру, створені за допомогою хеша NT, об'єднуються та стають відповіддю NTLM.

Функції для обчислення відповіді можуть бути змінені параметром рівня сумісності LM у параметрі мережевої безпеки: параметр групової політики рівня автентифікації LAN Manager.Якщо це значення дорівнює 1 або нижче, клієнт надішле вихідні відповіді LAN Manager та NTLM. Якщо встановлено значення 2, надсилається лише відповідь NTLM. Якщо для нього встановлено значення 3 або вище, використовується нова версія обох протоколів. Версія NTLM називається NTLMv2. Версія lan Manager часто називається LMv2. Обидва протоколи використовують хеш NT для обчислення відповіді та використовують виклик на стороні клієнта, а не на додаток до виклику сервера. Крім того, якщо для параметра рівня сумісності LM встановлено значення 1 або вище, то відповідь NTLM відкидається за часом, щоб запобігти атакам на відтворення. Відомості про параметр рівня сумісності LM див. у розділі "Безпека мережі: рівень автентифікації LAN Manager".

Надійні паролі

Паролі надають перший рядок захисту від несанкціонованого доступу до вашої організації. Починаючи з Windows Server 2003, Windows перевіряє складність пароля облікового запису адміністратора під час інсталяції операційної системи. Якщо пароль порожній або не відповідає вимогам складності, діалогове вікно встановлення Windows запропонує створити надійний пароль для облікового запису адміністратора. Якщо ви залишите цей пароль порожнім, ви не зможете отримати доступ до цього облікового запису через мережу.

Слабкі паролі надають зловмисникам легкий доступ до комп'ютерів та мережі, а надійні паролі значно складніше зламати. У наступній таблиці порівнюються слабкі та надійні паролі.

Слабкий пароль Надійний пароль
Пробіл Довжиною принаймні сім символів
Містить відомості, що легко виявляються або відомі, наприклад ім'я користувача або доменне ім'я Містить секрет або випадкові відомості
Аналогічно попереднім паролям Значно відрізняється від попередніх паролів
Містить повне слово словника Містить поєднання наступних символів:

Прикладом надійного пароля є J*p2leO4>F.

Пароль може відповідати більшості критеріїв надійного пароля, але, як і раніше, досить слабким. Наприклад, Hello2U! оскільки слово словника перетинається із символами, цифрами та іншими літерами. Важливо навчити користувачів перевагам використання надійних паролів та навчити їх створювати паролі, які насправді сильні.

Ви можете створити паролі, які містять символи з розширеного набору символів ANSI. Використання розширених символів ANSI збільшує кількість символів, які можна вибрати під час створення пароля. чим це робить для зламування інших паролів. Перш ніж використовувати розширені символи ANSI у паролі, ретельно. протестуйте їх, щоб переконатися, що паролі, що містять розширені символи ANSI, сумісні з програмами, які використовує ваша організація. в ISO-8859-15. Фактична реалізація протоколу у Windows часто використовує ЮНІКОД чи UTF8, а чи не фактичну. кодування ANSI.

Приклади паролів, що містять символи розширеного набору символів ANSI, — kUμ!\0o і Wf©$0k#»gªrd.

Парольні фрази у Windows

Парольна фраза - це інша форма пароля на основі токенів, в якій маркери є словами замість символів набору символів.Приклад парольної фрази - це пропозиція, що містить спеціальні символи, цифри, великі літери та малі літери. Основні відмінності між парольними фразами та паролями:

  • Парольна фраза зазвичай має прогалини; паролі не виконуються.
  • Парольна фраза набагато довша, ніж переважна більшість слів, і, що важливіше, довше, ніж будь-який випадковий рядок букв, які звичайна людина могла згадати.

Парольна фраза, що відповідає обмеженню символів, як задана в політиці, зазвичай складніше зламати, ніж паролі, оскільки вони містять більше символів. Це хеш LM і NT, який зберігає пароль або парольну фразу, і хеш LM є слабше двох.

Існує кілька способів переконатися, що хеш LM не зберігається; одним із них є використання паролів або парольної фрази довше 14 символів. Ви також можете використовувати мережеву безпека: не зберігайте хеш-значення LAN Manager у наступному параметрі групової політики зміни пароля. Використання цього параметра політики глобально відключає хеші LM для всіх облікових записів. Зміна набирають чинності при наступній зміні пароля. Так як ефект політики не є безпосереднім, ви не відразу помітите будь-які потенційні проблеми взаємодії, спричинені відсутністю хешів LM.

Локальні політики паролів доступні в Windows

Можна реалізувати параметр політики паролів, який застосовує вимоги до складності паролів. Для отримання додаткових відомостей про цей параметр політики див. у розділі "Пароль" відповідно до вимог до складності. Відомості про застосування політики паролів див. у розділі "Застосування або зміна політики паролів". Відомості про всі доступні параметри політики паролів див. у розділі "Політика паролів".

Більш детальна політика паролів доступна через служби домен Active Directory (AD DS)

Починаючи з Windows Server 2008, ви можете використовувати багаторівневі політики паролів для вказівки кількох політик паролів та застосування різних обмежень паролів та політик блокування облікових записів до різних наборів користувачів в одному домені. Наприклад, щоб підвищити безпеку привілейованих облікових записів, можна застосувати більш строгі параметри до привілейованих облікових записів, а потім застосувати менш суворі параметри до облікових записів інших користувачів. У деяких випадках може знадобитися застосувати спеціальну політику паролів для облікових записів, які синхронізуються з іншими джерелами даних.

Для зберігання детально налаштованих політик паролів у схемі AD DS існують два нових класи об'єктів:

Додаткові відомості про цих політиків див. в ad DS: докладні відомості про політик паролів.

Зберігання та шифрування паролів Microsoft Windows

Про злом паролів windows було написано чимало статей, але вони зводилися до використання будь-якого софта, або поверхово описували методи шифрування LM і NT, і поверхово описували syskey. Я спробую виправити цей недолік, описавши всі подробиці про те, де знаходяться паролі, в якому вигляді, і як їх перетворює утиліта syskey.

Існує дві можливості отримання пароля — через реєстр, або отримавши прямий доступ до файлів-кущів реєстру. У будь-якому випадку потрібні будуть або привілеї користувача SYSTEM, або розкрадання заповітних файлів, наприклад завантажившись з іншої ОС. Тут я не описуватиму можливості отримання доступу, але з метою дослідження наочніше вибрати перший варіант, це дозволить не загострювати увагу на структурі куща реєстру. А запуститися від системи нам допоможе утиліта psExec від sysinternals. Звичайно, для цих цілей можна використовувати вразливість windows, але стаття не про це.

V-блок

Windows до версії Vista за промовчанням зберігала пароль у двох різних хешах - LM і NT.У вісті і вище LM-хеш не зберігається.

Паролі користувачів, а також багато іншої корисної інформації зберігається в реєстрі за адресою HKLM\SAM\SAM\Domains\Account\users\[RID]\V
, відомому як V-блок. Розділ SAM знаходиться у відповідному файлі. c:\Windows\System32\config\SAM.RID — унікальний ідентифікатор користувача, його можна дізнатися, наприклад, заглянувши у гілку. HKLM\SAM\SAM\Domains\Account\users\names\ (параметр Default, поле — тип параметра). до розділу SAM за замовчуванням можливий лише користувачеві SYSTEM, але якщо дуже хочеться подивитися запускаємо regedit з правами системи:

PsExec.exe-s-i-d regedit.

Щоб спостерігати V-блок у зручному вигляді, можна, наприклад, експортувати його в текстовий файл (File-Export в Regedit).
Ось що ми там побачимо:

Від 0x0 до 0xCC розташовуються адреси всіх даних, які знаходяться в V-блоці, їх розміри та деяка додаткова інформація про дані. е знадобиться інвертувати байти. На кожен параметр відводиться по 4 байти, але фактично всі параметри вміщуються одному-двох байтах. Ось де шукати:

Адреса імені користувача - 0xС
Довжина імені користувача - 0x10
Адреса LM-хеша - 0x9с
Довжина LM-хеша - 0xa0
Адреса NT-хеша - 0xa8
довжина NT-хеша - 0xac

У даному випадку ім'я користувача знайдеться за усуненням 0xd4 + 0xcc і його довжина буде 0xc байт.
NT-хеш розташовуватиметься по зміщенню 0x12c + 0xcc і його розмір (завжди той самий) = 0x14.

Ще одна деталь, що стосується зберігання паролів - як до NT-так і до LM-хешу завжди додаються спереду 4 байти, призначення яких для мене загадка Причому 4байта будуть присутні навіть якщо пароль вимкнено.В даному випадку видно, що довжина LM хеш =4 і якщо подивитися на його адресу, можна ці 4 байти побачити незважаючи на те що ніякого LM-хеш немає.
Тому при пошуку зсувів хешів сміливо додаємо 4 байти до адреси, а при обліку розмірів - віднімаємо. Якщо зручніше читати код — приблизно так буде виглядати пошук адрес з урахуванням інверсії, зайвих чотирьох байтів і додавання стартового зміщення 0xcc (код C#)

int lmhashOffset = userVblock[0x9c] + userVblock[0x9d] * 0x100 + 4 + 0xcc;
int nthashOffset = userVblock[0xa8] + userVblock[0xa9] * 0x100 + 4 + 0xcc;
int lmhashSize = userVblock[0xa0] + userVblock[0xa1] * 0x100 - 4;
int nthashSize = userVblock[0xac] + userVblock[0xad] * 0x100 - 4;
int usernameOffset = userVblock[0xc] + userVblock[0xd] * 0x100 + 0xcc;
int usernameLen = userVblock[0x10] + userVblock[0x1a] * 0x100;
userVblock — значення HKLM\SAM\SAM\Domains\Account\users\V у вигляді масиву байт.
Ще про V-блок можна почитати тут.

Алгоритми

Тепер розберемося в алгоритмах шифрування.
Формування NT-хешу:
1. Пароль користувача перетворюється на Unicode-рядок.
2. Генерується MD4-хеш на основі даного рядка.
3. Отриманий хеш шифрується алгоритмом DES, ключ складається з урахуванням RID користувача.
Формування LM-хешу:
1. Пароль користувача перетворюється на верхній регістр і доповнюється нулями до довжини 14 байт.
2. Отриманий рядок ділиться на дві половинки по 7 байт і кожен із них окремо шифрується алгоритмом DES. У результаті отримуємо хеш довжиною 16 байт (що складається із двох незалежних половинок довжиною по 8 байт).
3. Отриманий хеш шифрується алгоритмом DES, ключ складається з урахуванням RID користувача.

4. У windows 2000 і вище обидва отриманих хеш додатково шифруються алоритмом RC4 за допомогою ключа, відомого як «системний ключ» або bootkey, згенерованого утилітою syskey, і шифруються досить хитрим чином.

Розглянемо загальну послідовність дій для отримання вихідного пароля та кожен крок окремо
1.Отримуємо bootkey, генеруємо на його основі ключі для RC4, розшифровуємо хеші за допомогою RC4
2. Отримуємо ключі для DES із RID'ів користувачів, розшифровуємо хеші DES'ом
3. Отримані хеші атакуємо перебором.

Bootkey

Системний ключ (bootkey) розбитий на 4 частини та лежить у наступних розділах реєстру:

HKLM\System\CurrentControlSet\Control\Lsa\JD
HKLM\System\CurrentControlSet\Control\Lsa\Skew1
HKLM\System\CurrentControlSet\Control\Lsa\GBG
HKLM\System\CurrentControlSet\Control\Lsa\Data

Розділ system знаходиться у файлі c:\Windows\System32\config\system

Слід зазначити, що розділ CurrentControlSet є посиланням на один із розділів controlset і створюється в момент завантаження системи. Це означає, що не вдасться його знайти у файлі system, якщо система неактивна. Якщо ви вирішили шукати ключ у файлі - необхідно дізнатися значення ContolSet за умовчанням у HKLM\SYSTEM\Select\default.
наприклад, якщо HKLM\SYSTEM\Select\default = 1 - замість HKLM\System\CurrentControlSet\ шукаємо в HKLM\System\controlset001\

Кожен ключ реєстру має прихований атрибут, відомий як «class». Regedit його просто не покаже, проте його можна побачити, наприклад, якщо експортувати ці ключі реєстру в текстові файли. У Winapi для отримання цього атрибуту є функція RegQueryInfoKey.
Фрагменти зберігаються у рядковому поданні шістнадцяткових чисел, причому за принципом BIG ENDIAN (тобто не рядок задом наперед, а число).
Наприклад, ми виявили ось такі записи:

Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\JD
Class Name: 46003cdb =
Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Skew1
Class Name: e0387d24 =
Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\GBG
Class Name: 4d183449 =
Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Data
Class Name: 0419ed03 =

Зібраний із чотирьох частин ключ буде масивом байт:

Далі елементи цього масиву переставляються на основі деякого константного масиву p

key[i] = scrambled_key[p[i]];

У нашому прикладі вийде масив:

цей масив і є так званий bootkey. Тільки в шифруванні паролів братиме участь не він, а якийсь хеш на основі bootkey, фрагментів f-блоку і деяких констант. Назвемо його Hashed bootkey.

Hashed bootkey

для отримання Hashed bootkey нам знадобляться 2 рядкові константи (ASCII):

string aqwerty = "!@#$%^&*()qwertyUIOPAzxcvbnmQQQQQQQQQQQQQQ)(*@&%\0";
string anum = "0123456789012345678901234567890123456789\0";
Також знадобиться F-блок користувача (HKLM\SAM\SAM\Domains\Account\users\F), а саме його 16 байт: F[0x70:0x80]

На основі цих значень, склеєних в один великий масив, формуємо MD5 хеш, який буде ключом для шифрування RC4

rc4_key = MD5(F[0x70:0x80] + aqwerty + bootkey + anum).

Останнім кроком для отримання hashed bootkey буде rc4 шифрування (або дешифрування - в rc4 це та сама функція) отриманим ключем фрагмента F-блоку F[0x80:0xA0];

Hashed bootkey у нас в руках, залишилося навчитися з ним правильно поводитися.

Дешифруємо паролі за допомогою Hashed Bootkey

для паролів LM і NT нам знадобляться ще 2 строкові константи

string almpassword = "LMPASSWORD";
string antpassword = "NTPASSWORD";

а також RID користувача у вигляді 4х байт (доповнений нулями) і перша половина Hashed Bootkey (hashedBootkey[0x0:0x10]);
Все це склеюється в один масив байт і вважається MD5 за правилами:
rc4_key_lm = MD5(hbootkey[0x0:0x10] + RID + almpassword);
rc4_key_nt = MD5(hbootkey[0x0:0x10] + RID + antpassword);

отриманий md5 хеш — ключ для rc4, яким зашифровані LM і NT хеш у V-блоці користувача

userLMpass = RC4(rc4_key_lm,userSyskeyLMpass);
userNTpass = RC4(rc4_key_lm,userSyskeyNTpass);

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

DES

На основі чотирьох байт RID'а користувача за допомогою деяких перестановок та побітових операцій створюємо 2 ключі DES. Ось функції, які здійснюють обфускацію (С#):
private byte[] str_to_key(byte[] str) byte[] key = new byte[8];
key[0] = (byte)(str[0] >> 1);
key[1] = (byte)(((str[0] & 0x01) > 2));
key[2] = (byte)(((str[1] & 0x03) > 3));
key[3] = (byte)(((str[2] & 0x07) > 4));
key[4] = (byte)(((str[3] & 0x0F) > 5));
key[5] = (byte)(((str[4] & 0x1F) > 6));
key[6] = (byte)(((str[5] & 0x3F) > 7));
key[7] = (byte)(str[6] & 0x7F);
for (int i = 0; i < 8; i++) key[i] = (byte)(key[i] >
des_set_odd_parity(ref key);
return key;
>

private byte[] sid_to_key1(byte[] rid) byte[] s = new byte[7];
s[0] = (byte)(rid[0] & 0xFF);
s[1] = (byte)(rid[1] & 0xFF);
s[2] = (byte)(rid[2] & 0xFF);
s[3] = (byte)(rid[3] & 0xFF);
s[4] = s[0];
s[5] = s[1];
s[6] = s[2];

private byte[] sid_to_key2(byte[] rid) byte[] s = new byte[7];
s[0] = (byte)((rid[3]) & 0xFF);
s[1] = (byte)(rid[0] & 0xFF);
s[2] = (byte)((rid[1]) & 0xFF);
s[3] = (byte)((rid[2]) & 0xFF);
s[4] = s[0];
s[5] = s[1];
s[6] = s[2];

Ну тут особливо коментувати нема чого, крім функції des_set_odd_parity(ref key) — це одна з функцій бібліотеки openssl, завдання якої додати деякі «біти непарності», що використовується для підвищення стійкості ключа до атак.

Далі розбиваємо NT (або LM) хеш на 2 частини по 8 байт і дешифруємо DES'ом одна половина зашифрована ключем сформованим функцією sid_to_key1, друга - sid_to_key2.
obfskey_l = userNTpass[0x0:0x7]
obfskey_r = userNTpass[0x8:0xF]
byte[] deskey1 = sid_to_key1(RID);
byte[] deskey2 = sid_to_key2(RID);
byte[] md4hash_l = DES(obfskey_l, deskey1);
byte[] md4hash_r = DES(obfskey_r, deskey2);

Після склеювання двох половин ми отримаємо md4 хеш у разі NT, або LanMan (DES) - у випадку LM.Отриманий хеш повністю готовий до атаки перебором.
До речі, md4 Хеш від порожнього пароля. 31d6cfe0d16ae931b73c59d7e0c089c0

Дослідження проведено на основі вихідного коду ophcrack-3.3.1, а також статті Push the Red Button:SysKey and the SAM

Як використовувати надійне шифрування на будь-якій версії Windows 10/11

Шифрування – це захист ваших конфіденційних даних на випадок, якщо ви втратите свій ПК. На відміну від інших сучасних користувацьких операційних систем – macOS, Chrome OS, iOS та Android – Windows 10, як і раніше, не пропонують інтегровані інструменти шифрування для всіх. Можливо, вам доведеться заплатити за професійну версію Windows 10 або використовувати інше рішення для шифрування.

Якщо Windows підтримує шифрування

Багато нових ПК, які постачаються з Windows 10, автоматично активують "Шифрування пристроїв". Ця функція була вперше представлена ​​у Windows 8.1 і потребує спеціальних апаратних можливостей. Не кожен комп'ютер матиме цю функцію.

Є ще одне обмеження: фактично вона шифрує ваш диск, тільки якщо ви входите до Windows з обліковим записом Microsoft. Потім ключ відновлення завантажується на сервери Microsoft. Це допоможе вам відновити файли, якщо ви не зможете увійти на свій комп'ютер. (Саме тому ФБР, ймовірно, не надто переймається цією функцією., але ми рекомендуємо використовувати шифрування як засіб захисту ваших даних від злодіїв.)

Шифрування пристрою також буде включено, якщо ви увійдете в домен організації. Наприклад, ви можете увійти до домену, що належить вашому роботодавцю або школі. Потім ключ відновлення буде завантажений на сервери вашої організації.Проте це не стосується комп'ютерів звичайного користувача, підключених до доменів.

Щоб перевірити, чи увімкнено шифрування пристрою, відкрийте програму Параметри, перейдіть в СистемаПро програму і знайдіть "Шифрування пристрою" в нижній частині панелі "Про компанію". Якщо ви тут нічого не бачите про шифрування пристрою, ваш комп'ютер не підтримує шифрування пристроїв, або він не увімкнений.

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

Для користувачів Windows Pro: BitLocker

Якщо шифрування пристрою не увімкнено або потрібне потужне рішення для шифрування, яке може також шифрувати знімні диски USB, слід звернути увагу на BitLocker.

Засіб шифрування Microsoft BitLocker від Microsoft тепер входить до складу Windows кількох версій. Тим не менш, Microsoft, як і раніше, обмежує BitLocker професійними, корпоративними та освітніми версіями Windows 10.

BitLocker найбільш безпечний на комп'ютері, який має апаратне забезпечення Trusted Platform Module (TPM), яке є на більшості сучасних ПК. Якщо ви зібрали свій власний комп'ютер, можна додати до нього чіп TPM. Знайдіть чіп TPM, який продається як додатковий модуль. Вам знадобиться той, хто підтримує материнську плату всередині вашого ПК.

Зазвичай Windows каже, що для BitLocker потрібно TPM, але є прихована опція, яка дозволяє включати BitLocker без TPM. Вам доведеться використовувати USB-флешку як «ключ запуску», який повинен бути присутнім при кожному завантаженні, якщо ви увімкнете цю опцію.

Якщо на вашому комп'ютері вже інстальовано професійну версію Windows 10, ви можете виконати пошук «BitLocker» у меню «Пуск» і використовувати панель керування BitLocker для її увімкнення. Professional.

Якщо у вас немає професійної версії Windows 10, ви можете заплатити приблизно $99 за оновлення Windows 10 Home до Windows 10 Professional Просто відкрийте програму «Параметри», перейдіть в Оновлення та безпекаАктивація і натисніть кнопку Перейти до магазину. доступ до BitLocker та інших функцій, які включають Windows 10 Professional.

Експерту з безпеки Брюсу Шнайе подобається власний інструмент повного шифрування диска для Windows під назвою BestCrypt. Він повністю функціональний на Windows 10 із сучасним обладнанням.

Для всіх: VeraCrypt

Витрачати ще $99, щоб зашифрувати жорсткий диск для деякої додаткової безпеки, може бути занадто марнотратним, коли сучасні ПК з Windows часто коштують лише кілька сотень доларів. – це найбільш інтегрований варіант, що добре підтримується, але є й інші інструменти шифрування, які ви можете використовувати.

Поважний TrueCrypt, інструмент повного шифрування з відкритим кодом, який більше не розробляється, і має деякі проблеми на ПК з Windows 10.Він не може зашифровувати системні розділи GPT і завантажувати їх з використанням UEFI, для більшості ПК з Windows 10. Проте VeraCrypt – інструмент з відкритим вихідним кодом для повного шифрування на основі вихідного коду TrueCrypt підтримує шифрування системного розділу EFI з версії 1.18a. 1.19.

Іншими словами, VeraCrypt дозволить зашифрувати системний розділ ПК Windows 10 безкоштовно.

Розробники TrueCrypt закрили розробку і оголосили TrueCrypt вразливим та небезпечним, але дослідники все ще сумніваються у істинності цих тверджень. Більшість обговорень навколо цього зосереджується на тому, чи мають NSA та інші агентства безпеки спосіб зламати це шифрування з відкритим вихідним кодом. Якщо ви просто шифруєте свій жорсткий диск, щоб злодії не могли отримати доступ до ваших особистих файлів, коли вони вкрадуть ваш ноутбук, вам не доведеться турбуватися про це. TrueCrypt є досить безпечним.

Проект VeraCrypt покращив безпеку і потенційно може бути безпечнішим, ніж TrueCrypt. Незалежно від того, чи ви шифруєте всього кілька файлів або весь системний розділ, це те, що ми рекомендуємо.

Ми хотіли б, щоб Microsoft надала користувачам Windows 10 більший доступ до BitLocker або, принаймні, розширила Device Encryption, щоб його можна було увімкнути на інших ПК. Сучасні комп'ютери Windows повинні мати вбудовані засоби шифрування, як і інші сучасні операційні системи. Користувачам Windows 10 не потрібно платити більше або шукати інше програмне забезпечення, щоб захистити свої важливі дані, якщо їх ноутбуки будь-коли будуть втрачені або вкрадені.

Схожі статті

  • Як зробити файл підкачки на Windows 10
  • Як вимкнути захист у реальному часі Windows 10 через командний рядок
  • Як увімкнути перевірку драйверів Windows 10
  • Як встановити віртуальну машину на Windows XP
  • Як повернути локальний обліковий запис у Windows 10
  • Як увімкнути Bluetooth на ноутбуці Samsung з Windows
  • Як вимкнути запит пін коду під час входу до Windows 10
  • Як прибрати другий обліковий запис під час входу до Windows 10
  • Недавні статті

  • Як бродить зернова брага
  • Що робити якщо не засмагаєш на сонці чому засмага погано лягає на шкіру або перестає прилипати
  • Як швидко зняти гель лак без апарату
  • Як робиться Каті голови
  • Яка гребінець краще для об'єму
  • Чим роблять м'яку покрівлю
  • Чи можна залишати крем для обличчя на ніч
  • Де знаходиться датчик селектора
  • географія нашої діяльності
    вулиця Драгоманова, 27
    вул. Курчатова 1Б
    вул. Міцкевича 130
    вул. Лабунського, 1
    вул. Макарова-Пржевальського
    вул. Толстого 10
    вул. Грушевського 28
    вул. Перший промінь (Черняхівського)
    напишіть нам

    сообщение успешно отправлено
    x