<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://wiki.erp.kyiv.ua/index.php?action=history&amp;feed=atom&amp;title=2FA</id>
	<title>2FA - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.erp.kyiv.ua/index.php?action=history&amp;feed=atom&amp;title=2FA"/>
	<link rel="alternate" type="text/html" href="https://wiki.erp.kyiv.ua/index.php?title=2FA&amp;action=history"/>
	<updated>2026-05-11T03:47:28Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.erp.kyiv.ua/index.php?title=2FA&amp;diff=1000&amp;oldid=prev</id>
		<title>R: Створена сторінка: {{DISPLAYTITLE:2FA для ERP: двофакторна автентифікація в K2 ERP}}  {{SEO |title=2FA для ERP |description=Стаття про 2FA для ERP-систем: що таке двофакторна автентифікація, чим 2FA відрізняється від MFA, де її вмикати в K2 ERP, які методи безпечніші, ризики SMS, TOTP, push, FIDO2, dashboard та Acceptance Criteria. |keywo...</title>
		<link rel="alternate" type="text/html" href="https://wiki.erp.kyiv.ua/index.php?title=2FA&amp;diff=1000&amp;oldid=prev"/>
		<updated>2026-05-07T19:13:26Z</updated>

		<summary type="html">&lt;p&gt;Створена сторінка: {{DISPLAYTITLE:2FA для ERP: двофакторна автентифікація в K2 ERP}}  {{SEO |title=2FA для ERP |description=Стаття про 2FA для ERP-систем: що таке двофакторна автентифікація, чим 2FA відрізняється від MFA, де її вмикати в K2 ERP, які методи безпечніші, ризики SMS, TOTP, push, FIDO2, dashboard та Acceptance Criteria. |keywo...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:2FA для ERP: двофакторна автентифікація в K2 ERP}}&lt;br /&gt;
&lt;br /&gt;
{{SEO&lt;br /&gt;
|title=2FA для ERP&lt;br /&gt;
|description=Стаття про 2FA для ERP-систем: що таке двофакторна автентифікація, чим 2FA відрізняється від MFA, де її вмикати в K2 ERP, які методи безпечніші, ризики SMS, TOTP, push, FIDO2, dashboard та Acceptance Criteria.&lt;br /&gt;
|keywords=2FA, MFA, двофакторна автентифікація, K2 ERP, ERP security, кібербезпека ERP, TOTP, SMS, FIDO2, passkeys, OTP, контроль доступу&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #c62828; background: #ffebee; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Критично важливо:&amp;#039;&amp;#039;&amp;#039; пароль сам по собі не є достатнім захистом для ERP. Якщо пароль бухгалтера, адміністратора, фінансового директора або менеджера буде викрадено, зловмисник може отримати доступ до фінансів, зарплат, договорів, клієнтів, складу, цін, банківських реквізитів і управлінської звітності.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #2e7d32; background: #e8f5e9; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Правильне рішення:&amp;#039;&amp;#039;&amp;#039; у K2 ERP потрібно впровадити 2FA як мінімальний обов&amp;#039;язковий рівень захисту для критичних ролей: адміністраторів, бухгалтерії, фінансів, керівників, HR, користувачів із доступом до банківських операцій і користувачів із віддаленим доступом.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #1565c0; background: #e3f2fd; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Орієнтир:&amp;#039;&amp;#039;&amp;#039; CISA зазначає, що phishing-resistant MFA є стандартом, до якого мають прагнути організації, але будь-яка MFA краще, ніж її відсутність. Для ERP це означає: 2FA потрібно впроваджувати негайно, а для критичних ролей поступово переходити на сильніші методи — FIDO2 або passkeys. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== 1. Що таке 2FA ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2FA&amp;#039;&amp;#039;&amp;#039; — це двофакторна автентифікація. Вона вимагає від користувача підтвердити вхід двома різними факторами.&lt;br /&gt;
&lt;br /&gt;
Найпростіший приклад:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Користувач вводить логін і пароль.&lt;br /&gt;
2. Система просить другий фактор: код із додатку, SMS, push або security key.&lt;br /&gt;
3. Тільки після другого фактора користувач входить у K2 ERP.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Фактор&lt;br /&gt;
! Приклад&lt;br /&gt;
! Коментар&lt;br /&gt;
|-&lt;br /&gt;
| Щось, що користувач знає&lt;br /&gt;
| Пароль або PIN&lt;br /&gt;
| Перший фактор.&lt;br /&gt;
|-&lt;br /&gt;
| Щось, що користувач має&lt;br /&gt;
| Телефон, додаток Authenticator, security key, passkey&lt;br /&gt;
| Другий фактор.&lt;br /&gt;
|-&lt;br /&gt;
| Щось, чим користувач є&lt;br /&gt;
| Біометрія на пристрої&lt;br /&gt;
| Може використовуватись для активації passkey або пристрою.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NIST у Digital Identity Guidelines описує, що для AAL2 потрібна багатофакторна автентифікація або комбінація двох різних однофакторних автентифікаторів. Це фактично відповідає ідеї 2FA: одного пароля недостатньо. &lt;br /&gt;
&lt;br /&gt;
== 2. 2FA vs MFA ==&lt;br /&gt;
&lt;br /&gt;
2FA і MFA часто використовують як синоніми, але між ними є різниця.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Термін&lt;br /&gt;
! Що означає&lt;br /&gt;
! Приклад&lt;br /&gt;
|-&lt;br /&gt;
| 2FA&lt;br /&gt;
| Рівно два фактори автентифікації.&lt;br /&gt;
| Пароль + TOTP-код.&lt;br /&gt;
|-&lt;br /&gt;
| MFA&lt;br /&gt;
| Два або більше факторів.&lt;br /&gt;
| Пароль + FIDO2 + додатковий step-up для критичної дії.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #f57c00; background: #fff3e0; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Важливо:&amp;#039;&amp;#039;&amp;#039; 2FA — це мінімальний рівень захисту. Для критичних ролей у K2 ERP краще мислити ширше: MFA, adaptive MFA, step-up MFA і phishing-resistant MFA.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. Чому 2FA критична для ERP ==&lt;br /&gt;
&lt;br /&gt;
ERP — це центр управління компанією.&lt;br /&gt;
&lt;br /&gt;
У K2 ERP або іншій ERP можуть бути:&lt;br /&gt;
&lt;br /&gt;
* фінансові документи;&lt;br /&gt;
* рахунки;&lt;br /&gt;
* банківські виписки;&lt;br /&gt;
* платежі;&lt;br /&gt;
* зарплати;&lt;br /&gt;
* кадрові дані;&lt;br /&gt;
* податкові документи;&lt;br /&gt;
* договори;&lt;br /&gt;
* клієнти;&lt;br /&gt;
* постачальники;&lt;br /&gt;
* ціни;&lt;br /&gt;
* знижки;&lt;br /&gt;
* залишки;&lt;br /&gt;
* виробничі рецептури;&lt;br /&gt;
* управлінська звітність;&lt;br /&gt;
* інтеграції з банками, ПРРО, маркетплейсами, службами доставки та електронним підписом.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #c62828; background: #ffebee; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ризик без 2FA:&amp;#039;&amp;#039;&amp;#039; викрадений пароль може відкрити доступ до ERP без додаткової перевірки. Для зловмисника це означає можливість діяти від імені реального працівника.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. Де 2FA має бути обов’язковою ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Роль / зона&lt;br /&gt;
! Чому 2FA обов’язкова&lt;br /&gt;
! Рівень&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Адміністратор K2 ERP&lt;br /&gt;
| Може змінювати права, ролі, інтеграції, налаштування.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Головний бухгалтер&lt;br /&gt;
| Має доступ до фінансів, податків, зарплат.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Фінансовий директор&lt;br /&gt;
| Має доступ до платежів, бюджетів, рахунків, звітів.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Користувачі з банківськими операціями&lt;br /&gt;
| Можуть впливати на платежі або реквізити.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | HR / зарплата&lt;br /&gt;
| Доступ до персональних і зарплатних даних.&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Високий&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Менеджери з доступом до цін&lt;br /&gt;
| Можуть змінювати комерційні умови.&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Високий&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Віддалений доступ&lt;br /&gt;
| Вхід поза офісом має підвищений ризик.&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Високий&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Користувачі з експортом даних&lt;br /&gt;
| Можуть вивантажити клієнтів, ціни, договори, залишки.&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Високий&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 5. Методи 2FA ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Метод&lt;br /&gt;
! Приклад&lt;br /&gt;
! Рівень безпеки&lt;br /&gt;
! Коментар&lt;br /&gt;
|-&lt;br /&gt;
| SMS-код&lt;br /&gt;
| Код у SMS&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Базовий&lt;br /&gt;
| Краще, ніж тільки пароль, але не найкращий варіант.&lt;br /&gt;
|-&lt;br /&gt;
| Email-код&lt;br /&gt;
| Код на email&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Базовий&lt;br /&gt;
| Безпека залежить від пошти.&lt;br /&gt;
|-&lt;br /&gt;
| TOTP&lt;br /&gt;
| Google Authenticator, Microsoft Authenticator, 1Password, Bitwarden&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Добрий&lt;br /&gt;
| Код генерується в додатку і змінюється кожні 30 секунд.&lt;br /&gt;
|-&lt;br /&gt;
| Push&lt;br /&gt;
| Підтвердження в мобільному додатку&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Добрий&lt;br /&gt;
| Потрібен захист від випадкового підтвердження.&lt;br /&gt;
|-&lt;br /&gt;
| Push із number matching&lt;br /&gt;
| Користувач вводить число з екрана входу&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Кращий&lt;br /&gt;
| Зменшує ризик MFA fatigue.&lt;br /&gt;
|-&lt;br /&gt;
| FIDO2 security key&lt;br /&gt;
| YubiKey, Feitian, Titan Key&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Дуже сильний&lt;br /&gt;
| Phishing-resistant варіант.&lt;br /&gt;
|-&lt;br /&gt;
| Passkeys&lt;br /&gt;
| Ключ доступу на пристрої&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Дуже сильний&lt;br /&gt;
| Сучасний варіант без класичного пароля.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 6. Рекомендація для K2 ERP ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Роль&lt;br /&gt;
! Мінімальний метод&lt;br /&gt;
! Рекомендований метод&lt;br /&gt;
! Колір&lt;br /&gt;
|-&lt;br /&gt;
| Адміністратор&lt;br /&gt;
| TOTP&lt;br /&gt;
| FIDO2 / passkey&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Сильний захист&lt;br /&gt;
|-&lt;br /&gt;
| Головний бухгалтер&lt;br /&gt;
| TOTP&lt;br /&gt;
| FIDO2 / passkey&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Сильний захист&lt;br /&gt;
|-&lt;br /&gt;
| Фінансовий директор&lt;br /&gt;
| TOTP&lt;br /&gt;
| FIDO2 / passkey&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Сильний захист&lt;br /&gt;
|-&lt;br /&gt;
| HR / зарплата&lt;br /&gt;
| TOTP&lt;br /&gt;
| TOTP або FIDO2&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|-&lt;br /&gt;
| Менеджер продажів&lt;br /&gt;
| TOTP або push&lt;br /&gt;
| TOTP&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Бажано&lt;br /&gt;
|-&lt;br /&gt;
| Склад&lt;br /&gt;
| TOTP або SMS&lt;br /&gt;
| TOTP&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Бажано&lt;br /&gt;
|-&lt;br /&gt;
| Тимчасовий користувач&lt;br /&gt;
| TOTP&lt;br /&gt;
| Короткий TTL + TOTP&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Контроль&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #2e7d32; background: #e8f5e9; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Правило для K2 ERP:&amp;#039;&amp;#039;&amp;#039; SMS можна використовувати тільки як перехідний або резервний варіант. Для критичних ролей потрібні TOTP, FIDO2 або passkeys.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. Ризики слабкої 2FA ==&lt;br /&gt;
&lt;br /&gt;
=== 7.1. SMS-2FA ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ризик&lt;br /&gt;
! Опис&lt;br /&gt;
! Рівень&lt;br /&gt;
|-&lt;br /&gt;
| Перехоплення SMS&lt;br /&gt;
| Код може бути скомпрометований через мобільні ризики або соціальну інженерію.&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Високий&lt;br /&gt;
|-&lt;br /&gt;
| Залежність від оператора&lt;br /&gt;
| Користувач може не отримати код.&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Середній&lt;br /&gt;
|-&lt;br /&gt;
| Незручність за кордоном&lt;br /&gt;
| SMS може не приходити в роумінгу.&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Середній&lt;br /&gt;
|-&lt;br /&gt;
| Не phishing-resistant&lt;br /&gt;
| Код можна ввести на фальшивому сайті.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7.2. Email-2FA ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ризик&lt;br /&gt;
! Опис&lt;br /&gt;
! Рівень&lt;br /&gt;
|-&lt;br /&gt;
| Злам пошти&lt;br /&gt;
| Якщо пошту зламано, код також доступний зловмиснику.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|-&lt;br /&gt;
| Затримки доставки&lt;br /&gt;
| Код може приходити із затримкою.&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Середній&lt;br /&gt;
|-&lt;br /&gt;
| Не phishing-resistant&lt;br /&gt;
| Код можна виманити.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7.3. Push-2FA без number matching ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ризик&lt;br /&gt;
! Опис&lt;br /&gt;
! Рівень&lt;br /&gt;
|-&lt;br /&gt;
| MFA fatigue&lt;br /&gt;
| Користувач отримує багато push-запитів і випадково підтверджує.&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|-&lt;br /&gt;
| Випадкове підтвердження&lt;br /&gt;
| Користувач натискає approve, не читаючи.&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Високий&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 8. 2FA для критичних операцій ==&lt;br /&gt;
&lt;br /&gt;
2FA має використовуватись не тільки при вході, але й перед небезпечними діями.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Операція&lt;br /&gt;
! Чому потрібна повторна 2FA&lt;br /&gt;
! Рекомендація&lt;br /&gt;
|-&lt;br /&gt;
| Зміна банківських реквізитів&lt;br /&gt;
| Ризик підміни рахунку.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | 2FA + погодження.&lt;br /&gt;
|-&lt;br /&gt;
| Створення платежу&lt;br /&gt;
| Ризик фінансової втрати.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | 2FA + рольовий контроль.&lt;br /&gt;
|-&lt;br /&gt;
| Зміна ролей користувача&lt;br /&gt;
| Ризик несанкціонованого доступу.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | 2FA адміністратора.&lt;br /&gt;
|-&lt;br /&gt;
| Масовий експорт даних&lt;br /&gt;
| Ризик витоку.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | 2FA + журнал.&lt;br /&gt;
|-&lt;br /&gt;
| Видалення документа&lt;br /&gt;
| Ризик приховування операцій.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | 2FA + audit log.&lt;br /&gt;
|-&lt;br /&gt;
| Вимкнення інтеграції&lt;br /&gt;
| Ризик зупинки бізнес-процесу.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | 2FA + погодження.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 9. Політика 2FA для K2 ERP ==&lt;br /&gt;
&lt;br /&gt;
=== 9.1. Обов’язкові правила ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Правило&lt;br /&gt;
! Опис&lt;br /&gt;
! Статус&lt;br /&gt;
|-&lt;br /&gt;
| 2FA для адміністраторів&lt;br /&gt;
| Без 2FA адміністратор не може увійти.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|-&lt;br /&gt;
| 2FA для бухгалтерії&lt;br /&gt;
| Доступ до фінансових і податкових даних тільки з 2FA.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|-&lt;br /&gt;
| 2FA для фінансів&lt;br /&gt;
| Платежі, бюджети, реквізити — тільки з 2FA.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|-&lt;br /&gt;
| 2FA для віддаленого доступу&lt;br /&gt;
| Вхід поза офісом тільки з 2FA.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|-&lt;br /&gt;
| 2FA для нового пристрою&lt;br /&gt;
| Новий пристрій потребує другого фактора.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|-&lt;br /&gt;
| 2FA для нової країни/IP&lt;br /&gt;
| Система має вимагати повторну перевірку.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|-&lt;br /&gt;
| Заборона спільних логінів&lt;br /&gt;
| 2FA неможливо нормально використовувати зі спільним акаунтом.&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Обов&amp;#039;язково&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 9.2. Рекомендовані правила ===&lt;br /&gt;
&lt;br /&gt;
* вимагати 2FA для всіх користувачів;&lt;br /&gt;
* не дозволяти SMS для адміністраторів;&lt;br /&gt;
* не дозволяти email-код для фінансових ролей;&lt;br /&gt;
* вимагати FIDO2 / passkey для super admin;&lt;br /&gt;
* вимагати повторну 2FA для критичних дій;&lt;br /&gt;
* блокувати користувача після багатьох невдалих 2FA;&lt;br /&gt;
* логувати всі 2FA-події;&lt;br /&gt;
* показувати dashboard покриття 2FA.&lt;br /&gt;
&lt;br /&gt;
== 10. Recovery 2FA ==&lt;br /&gt;
&lt;br /&gt;
Користувач може втратити телефон, додаток або security key. Тому потрібен безпечний recovery-процес.&lt;br /&gt;
&lt;br /&gt;
Потрібно передбачити:&lt;br /&gt;
&lt;br /&gt;
* резервні коди;&lt;br /&gt;
* резервний метод 2FA;&lt;br /&gt;
* заявку на відновлення доступу;&lt;br /&gt;
* перевірку особи;&lt;br /&gt;
* погодження адміністратором;&lt;br /&gt;
* журнал recovery-події;&lt;br /&gt;
* тимчасовий доступ з коротким TTL;&lt;br /&gt;
* обов’язкове повторне налаштування 2FA після recovery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #c62828; background: #ffebee; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Критично важливо:&amp;#039;&amp;#039;&amp;#039; recovery не повинен бути слабшим за саму 2FA. Якщо другий фактор можна обійти простим проханням у чаті, це небезпечна архітектура.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 11. Модель даних 2FA ==&lt;br /&gt;
&lt;br /&gt;
=== 11.1. two_factor_methods ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Поле&lt;br /&gt;
! Тип&lt;br /&gt;
! Опис&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| uuid&lt;br /&gt;
| ID методу.&lt;br /&gt;
|-&lt;br /&gt;
| user_id&lt;br /&gt;
| uuid&lt;br /&gt;
| Користувач.&lt;br /&gt;
|-&lt;br /&gt;
| method_type&lt;br /&gt;
| varchar&lt;br /&gt;
| TOTP, SMS, EMAIL, PUSH, FIDO2, PASSKEY.&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| varchar&lt;br /&gt;
| ACTIVE, PENDING, DISABLED, LOST.&lt;br /&gt;
|-&lt;br /&gt;
| is_primary&lt;br /&gt;
| boolean&lt;br /&gt;
| Основний метод.&lt;br /&gt;
|-&lt;br /&gt;
| last_used_at&lt;br /&gt;
| timestamp&lt;br /&gt;
| Останнє використання.&lt;br /&gt;
|-&lt;br /&gt;
| created_at&lt;br /&gt;
| timestamp&lt;br /&gt;
| Дата створення.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 11.2. two_factor_challenges ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Поле&lt;br /&gt;
! Тип&lt;br /&gt;
! Опис&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| uuid&lt;br /&gt;
| ID challenge.&lt;br /&gt;
|-&lt;br /&gt;
| user_id&lt;br /&gt;
| uuid&lt;br /&gt;
| Користувач.&lt;br /&gt;
|-&lt;br /&gt;
| method_id&lt;br /&gt;
| uuid&lt;br /&gt;
| Метод 2FA.&lt;br /&gt;
|-&lt;br /&gt;
| challenge_type&lt;br /&gt;
| varchar&lt;br /&gt;
| LOGIN, STEP_UP, RECOVERY, CRITICAL_ACTION.&lt;br /&gt;
|-&lt;br /&gt;
| status&lt;br /&gt;
| varchar&lt;br /&gt;
| PENDING, PASSED, FAILED, EXPIRED.&lt;br /&gt;
|-&lt;br /&gt;
| risk_score&lt;br /&gt;
| integer&lt;br /&gt;
| Оцінка ризику.&lt;br /&gt;
|-&lt;br /&gt;
| ip_address&lt;br /&gt;
| varchar&lt;br /&gt;
| IP.&lt;br /&gt;
|-&lt;br /&gt;
| user_agent&lt;br /&gt;
| text&lt;br /&gt;
| Браузер / пристрій.&lt;br /&gt;
|-&lt;br /&gt;
| created_at&lt;br /&gt;
| timestamp&lt;br /&gt;
| Дата створення.&lt;br /&gt;
|-&lt;br /&gt;
| expires_at&lt;br /&gt;
| timestamp&lt;br /&gt;
| Строк дії.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 11.3. two_factor_events ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Поле&lt;br /&gt;
! Тип&lt;br /&gt;
! Опис&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| uuid&lt;br /&gt;
| ID події.&lt;br /&gt;
|-&lt;br /&gt;
| user_id&lt;br /&gt;
| uuid&lt;br /&gt;
| Користувач.&lt;br /&gt;
|-&lt;br /&gt;
| event_type&lt;br /&gt;
| varchar&lt;br /&gt;
| 2FA_ENABLED, 2FA_DISABLED, 2FA_PASSED, 2FA_FAILED, RECOVERY_USED.&lt;br /&gt;
|-&lt;br /&gt;
| method_type&lt;br /&gt;
| varchar&lt;br /&gt;
| Тип 2FA.&lt;br /&gt;
|-&lt;br /&gt;
| ip_address&lt;br /&gt;
| varchar&lt;br /&gt;
| IP.&lt;br /&gt;
|-&lt;br /&gt;
| user_agent&lt;br /&gt;
| text&lt;br /&gt;
| Пристрій.&lt;br /&gt;
|-&lt;br /&gt;
| payload&lt;br /&gt;
| jsonb&lt;br /&gt;
| Технічні дані без секретів.&lt;br /&gt;
|-&lt;br /&gt;
| created_at&lt;br /&gt;
| timestamp&lt;br /&gt;
| Дата.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 12. Dashboard 2FA ==&lt;br /&gt;
&lt;br /&gt;
=== 12.1. KPI адміністратора ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Показник&lt;br /&gt;
! Значення&lt;br /&gt;
! Стан&lt;br /&gt;
|-&lt;br /&gt;
| Користувачів із 2FA&lt;br /&gt;
| 86%&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Потрібно довести до 100%&lt;br /&gt;
|-&lt;br /&gt;
| Адміністраторів із 2FA&lt;br /&gt;
| 100%&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Норма&lt;br /&gt;
|-&lt;br /&gt;
| Бухгалтерів із 2FA&lt;br /&gt;
| 92%&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Потрібна дія&lt;br /&gt;
|-&lt;br /&gt;
| Фінансових ролей із 2FA&lt;br /&gt;
| 100%&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Норма&lt;br /&gt;
|-&lt;br /&gt;
| Користувачів тільки з SMS&lt;br /&gt;
| 18&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Замінити на TOTP/FIDO2&lt;br /&gt;
|-&lt;br /&gt;
| Невдалих 2FA за день&lt;br /&gt;
| 12&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Контроль&lt;br /&gt;
|-&lt;br /&gt;
| Підозрілих 2FA-запитів&lt;br /&gt;
| 3&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
|-&lt;br /&gt;
| Recovery-подій за місяць&lt;br /&gt;
| 4&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Контроль&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 12.2. Проблемні користувачі ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Користувач&lt;br /&gt;
! Роль&lt;br /&gt;
! 2FA&lt;br /&gt;
! Ризик&lt;br /&gt;
! Дія&lt;br /&gt;
|-&lt;br /&gt;
| admin2&lt;br /&gt;
| Адміністратор&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Вимкнено&lt;br /&gt;
| style=&amp;quot;background:#ef9a9a;&amp;quot; | Критично&lt;br /&gt;
| Заблокувати або увімкнути 2FA&lt;br /&gt;
|-&lt;br /&gt;
| buh_olena&lt;br /&gt;
| Бухгалтер&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | SMS&lt;br /&gt;
| style=&amp;quot;background:#ffcc80;&amp;quot; | Високий&lt;br /&gt;
| Перевести на TOTP/FIDO2&lt;br /&gt;
|-&lt;br /&gt;
| sales_ivan&lt;br /&gt;
| Менеджер&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | TOTP&lt;br /&gt;
| style=&amp;quot;background:#fff9c4;&amp;quot; | Норма&lt;br /&gt;
| Без дії&lt;br /&gt;
|-&lt;br /&gt;
| cfo&lt;br /&gt;
| Фіндиректор&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | FIDO2&lt;br /&gt;
| style=&amp;quot;background:#c8e6c9;&amp;quot; | Добре&lt;br /&gt;
| Без дії&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 13. Приклад процесу входу з 2FA ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Користувач відкриває K2 ERP.&lt;br /&gt;
2. Вводить логін і пароль.&lt;br /&gt;
3. Система перевіряє пароль.&lt;br /&gt;
4. Система визначає, чи потрібна 2FA.&lt;br /&gt;
5. Якщо потрібна — створює 2FA challenge.&lt;br /&gt;
6. Користувач вводить TOTP-код або підтверджує другим фактором.&lt;br /&gt;
7. Система перевіряє challenge.&lt;br /&gt;
8. Якщо все коректно — створює сесію.&lt;br /&gt;
9. Подія входу записується в журнал.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 14. Приклад Python-логіки ==&lt;br /&gt;
&lt;br /&gt;
=== 14.1. Перевірка необхідності 2FA ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def is_2fa_required(user: &amp;quot;User&amp;quot;, request_context: &amp;quot;RequestContext&amp;quot;) -&amp;gt; bool:&lt;br /&gt;
    if user.role in [&amp;quot;ADMIN&amp;quot;, &amp;quot;CHIEF_ACCOUNTANT&amp;quot;, &amp;quot;CFO&amp;quot;, &amp;quot;HR_PAYROLL&amp;quot;]:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
    if request_context.is_remote_access:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
    if request_context.is_new_device:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
    if request_context.is_high_risk_ip:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
    return user.two_factor_required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 14.2. Створення 2FA challenge ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def create_2fa_challenge(user_id: str, method_type: str, context: dict, db: &amp;quot;Session&amp;quot;) -&amp;gt; &amp;quot;TwoFactorChallenge&amp;quot;:&lt;br /&gt;
    challenge = two_factor_challenge_repository.create(&lt;br /&gt;
        db=db,&lt;br /&gt;
        data={&lt;br /&gt;
            &amp;quot;user_id&amp;quot;: user_id,&lt;br /&gt;
            &amp;quot;method_type&amp;quot;: method_type,&lt;br /&gt;
            &amp;quot;challenge_type&amp;quot;: context.get(&amp;quot;challenge_type&amp;quot;, &amp;quot;LOGIN&amp;quot;),&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;PENDING&amp;quot;,&lt;br /&gt;
            &amp;quot;risk_score&amp;quot;: context.get(&amp;quot;risk_score&amp;quot;, 0),&lt;br /&gt;
            &amp;quot;ip_address&amp;quot;: context.get(&amp;quot;ip_address&amp;quot;),&lt;br /&gt;
            &amp;quot;user_agent&amp;quot;: context.get(&amp;quot;user_agent&amp;quot;),&lt;br /&gt;
            &amp;quot;expires_at&amp;quot;: utc_now_plus_minutes(5),&lt;br /&gt;
        },&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    audit_logger.log(&lt;br /&gt;
        event_type=&amp;quot;2FA_CHALLENGE_CREATED&amp;quot;,&lt;br /&gt;
        user_id=user_id,&lt;br /&gt;
        payload={&lt;br /&gt;
            &amp;quot;method_type&amp;quot;: method_type,&lt;br /&gt;
            &amp;quot;challenge_type&amp;quot;: challenge.challenge_type,&lt;br /&gt;
        },&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    db.commit()&lt;br /&gt;
    return challenge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 14.3. Перевірка TOTP-коду ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def verify_totp_challenge(challenge_id: str, code: str, db: &amp;quot;Session&amp;quot;) -&amp;gt; bool:&lt;br /&gt;
    challenge = two_factor_challenge_repository.get_by_id(db, challenge_id)&lt;br /&gt;
&lt;br /&gt;
    if challenge.status != &amp;quot;PENDING&amp;quot;:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    if challenge.expires_at &amp;lt; utc_now():&lt;br /&gt;
        challenge.status = &amp;quot;EXPIRED&amp;quot;&lt;br /&gt;
        db.commit()&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    method = two_factor_method_repository.get_active_totp_method(&lt;br /&gt;
        db=db,&lt;br /&gt;
        user_id=challenge.user_id,&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    is_valid = totp_service.verify(&lt;br /&gt;
        secret=method.secret_encrypted,&lt;br /&gt;
        code=code,&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    if is_valid:&lt;br /&gt;
        challenge.status = &amp;quot;PASSED&amp;quot;&lt;br /&gt;
        method.last_used_at = utc_now()&lt;br /&gt;
    else:&lt;br /&gt;
        challenge.status = &amp;quot;FAILED&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    audit_logger.log(&lt;br /&gt;
        event_type=&amp;quot;2FA_PASSED&amp;quot; if is_valid else &amp;quot;2FA_FAILED&amp;quot;,&lt;br /&gt;
        user_id=challenge.user_id,&lt;br /&gt;
        payload={&amp;quot;challenge_id&amp;quot;: str(challenge.id)},&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    db.commit()&lt;br /&gt;
    return is_valid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 15. Впровадження 2FA в K2 ERP ==&lt;br /&gt;
&lt;br /&gt;
=== Етап 1. Аудит користувачів ===&lt;br /&gt;
&lt;br /&gt;
* знайти всіх активних користувачів;&lt;br /&gt;
* знайти адміністраторів;&lt;br /&gt;
* знайти бухгалтерію;&lt;br /&gt;
* знайти фінансові ролі;&lt;br /&gt;
* знайти HR / зарплату;&lt;br /&gt;
* знайти користувачів із віддаленим доступом;&lt;br /&gt;
* знайти спільні логіни;&lt;br /&gt;
* знайти користувачів без входу понад 90 днів.&lt;br /&gt;
&lt;br /&gt;
=== Етап 2. Політика 2FA ===&lt;br /&gt;
&lt;br /&gt;
* визначити обов’язкові ролі;&lt;br /&gt;
* визначити дозволені методи;&lt;br /&gt;
* заборонити слабкі методи для критичних ролей;&lt;br /&gt;
* визначити recovery-процедуру;&lt;br /&gt;
* визначити step-up 2FA для критичних дій.&lt;br /&gt;
&lt;br /&gt;
=== Етап 3. Технічна реалізація ===&lt;br /&gt;
&lt;br /&gt;
* TOTP;&lt;br /&gt;
* SMS як резервний або перехідний варіант;&lt;br /&gt;
* FIDO2 / passkeys для критичних ролей;&lt;br /&gt;
* recovery codes;&lt;br /&gt;
* device trust;&lt;br /&gt;
* risk-based challenge;&lt;br /&gt;
* журнал 2FA;&lt;br /&gt;
* dashboard 2FA.&lt;br /&gt;
&lt;br /&gt;
=== Етап 4. Запуск ===&lt;br /&gt;
&lt;br /&gt;
* спочатку адміністратори;&lt;br /&gt;
* потім бухгалтерія;&lt;br /&gt;
* потім фінанси;&lt;br /&gt;
* потім керівники;&lt;br /&gt;
* потім HR;&lt;br /&gt;
* потім усі інші користувачі.&lt;br /&gt;
&lt;br /&gt;
=== Етап 5. Контроль ===&lt;br /&gt;
&lt;br /&gt;
* щотижневий звіт;&lt;br /&gt;
* список користувачів без 2FA;&lt;br /&gt;
* блокування критичних ролей без 2FA;&lt;br /&gt;
* поступова відмова від SMS;&lt;br /&gt;
* перехід критичних ролей на FIDO2 / passkeys.&lt;br /&gt;
&lt;br /&gt;
== 16. Acceptance Criteria ==&lt;br /&gt;
&lt;br /&gt;
=== 16.1. Базова 2FA ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! №&lt;br /&gt;
! Критерій&lt;br /&gt;
! Очікуваний результат&lt;br /&gt;
|-&lt;br /&gt;
| AC-1&lt;br /&gt;
| Користувач вмикає TOTP.&lt;br /&gt;
| Система показує QR, приймає код і активує метод.&lt;br /&gt;
|-&lt;br /&gt;
| AC-2&lt;br /&gt;
| Користувач входить із 2FA.&lt;br /&gt;
| Вхід дозволено тільки після другого фактора.&lt;br /&gt;
|-&lt;br /&gt;
| AC-3&lt;br /&gt;
| Користувач вводить неправильний код.&lt;br /&gt;
| Challenge стає FAILED, спроба логуються.&lt;br /&gt;
|-&lt;br /&gt;
| AC-4&lt;br /&gt;
| Challenge прострочений.&lt;br /&gt;
| Система вимагає новий challenge.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 16.2. Критичні ролі ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! №&lt;br /&gt;
! Критерій&lt;br /&gt;
! Очікуваний результат&lt;br /&gt;
|-&lt;br /&gt;
| AC-5&lt;br /&gt;
| Адміністратор без 2FA намагається увійти.&lt;br /&gt;
| Вхід заблоковано або примусово вимагається 2FA.&lt;br /&gt;
|-&lt;br /&gt;
| AC-6&lt;br /&gt;
| Бухгалтер без 2FA намагається увійти.&lt;br /&gt;
| Система вимагає налаштувати 2FA.&lt;br /&gt;
|-&lt;br /&gt;
| AC-7&lt;br /&gt;
| Фіндиректор входить із нового пристрою.&lt;br /&gt;
| Система вимагає 2FA і створює подію ризику.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 16.3. Step-up 2FA ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! №&lt;br /&gt;
! Критерій&lt;br /&gt;
! Очікуваний результат&lt;br /&gt;
|-&lt;br /&gt;
| AC-8&lt;br /&gt;
| Користувач змінює банківські реквізити.&lt;br /&gt;
| Система вимагає повторну 2FA.&lt;br /&gt;
|-&lt;br /&gt;
| AC-9&lt;br /&gt;
| Адміністратор змінює роль користувача.&lt;br /&gt;
| Система вимагає повторну 2FA.&lt;br /&gt;
|-&lt;br /&gt;
| AC-10&lt;br /&gt;
| Користувач запускає масовий експорт.&lt;br /&gt;
| Система вимагає 2FA і логування.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 16.4. Recovery ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! №&lt;br /&gt;
! Критерій&lt;br /&gt;
! Очікуваний результат&lt;br /&gt;
|-&lt;br /&gt;
| AC-11&lt;br /&gt;
| Користувач втратив 2FA-пристрій.&lt;br /&gt;
| Запускається recovery-процедура.&lt;br /&gt;
|-&lt;br /&gt;
| AC-12&lt;br /&gt;
| Recovery виконано.&lt;br /&gt;
| Подія логуються, користувач зобов’язаний налаштувати новий фактор.&lt;br /&gt;
|-&lt;br /&gt;
| AC-13&lt;br /&gt;
| Recovery для адміністратора.&lt;br /&gt;
| Потрібне додаткове погодження.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 16.5. Dashboard ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! №&lt;br /&gt;
! Критерій&lt;br /&gt;
! Очікуваний результат&lt;br /&gt;
|-&lt;br /&gt;
| AC-14&lt;br /&gt;
| Адміністратор відкриває 2FA dashboard.&lt;br /&gt;
| Він бачить покриття 2FA по ролях.&lt;br /&gt;
|-&lt;br /&gt;
| AC-15&lt;br /&gt;
| Є адміністратор без 2FA.&lt;br /&gt;
| Він підсвічується червоним.&lt;br /&gt;
|-&lt;br /&gt;
| AC-16&lt;br /&gt;
| Є користувач тільки з SMS.&lt;br /&gt;
| Він підсвічується помаранчевим.&lt;br /&gt;
|-&lt;br /&gt;
| AC-17&lt;br /&gt;
| Є підозрілі 2FA-запити.&lt;br /&gt;
| Вони підсвічуються червоним і створюють alert.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 17. Висновок ==&lt;br /&gt;
&lt;br /&gt;
2FA — це мінімальний рівень захисту ERP від викрадених паролів.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #c62828; background: #ffebee; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Червона зона:&amp;#039;&amp;#039;&amp;#039; адміністратори, бухгалтерія, фінанси, HR або керівники входять у K2 ERP тільки за паролем.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 8px solid #2e7d32; background: #e8f5e9; padding: 14px 18px; margin: 16px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Зелена зона:&amp;#039;&amp;#039;&amp;#039; у K2 ERP увімкнено 2FA для критичних ролей, step-up 2FA для небезпечних операцій, dashboard контролю, журнал подій і поступовий перехід на FIDO2 / passkeys.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Головне правило:&amp;#039;&amp;#039;&amp;#039; 2FA потрібно впроваджувати не колись, а одразу. Для ERP пароль без другого фактора — це незакритий ризик.&lt;br /&gt;
&lt;br /&gt;
== 18. Джерела ==&lt;br /&gt;
&lt;br /&gt;
* CISA: More than a Password.&lt;br /&gt;
* CISA: MFA Guidance.&lt;br /&gt;
* CISA: Phishing-Resistant MFA Guidance.&lt;br /&gt;
* NIST SP 800-63B: Digital Identity Guidelines.&lt;br /&gt;
* NIST SP 800-63B-4: Authentication and Authenticator Management.&lt;br /&gt;
* Внутрішні вимоги K2 ERP до ролей, доступів, 2FA, журналювання та API-безпеки.&lt;br /&gt;
&lt;br /&gt;
== 19. Див. також ==&lt;br /&gt;
&lt;br /&gt;
* [[K2 ERP]]&lt;br /&gt;
* [[MFA]]&lt;br /&gt;
* [[2FA]]&lt;br /&gt;
* [[Кібербезпека ERP]]&lt;br /&gt;
* [[Контроль доступу]]&lt;br /&gt;
* [[FIDO2]]&lt;br /&gt;
* [[Passkeys]]&lt;br /&gt;
* [[TOTP]]&lt;br /&gt;
* [[SMS OTP]]&lt;br /&gt;
* [[API Security]]&lt;br /&gt;
* [[Журнал аудиту]]&lt;br /&gt;
* [[Incident Response]]&lt;br /&gt;
&lt;br /&gt;
[[Категорія:ERP]]&lt;br /&gt;
[[Категорія:K2 ERP]]&lt;br /&gt;
[[Категорія:Кібербезпека]]&lt;br /&gt;
[[Категорія:2FA]]&lt;br /&gt;
[[Категорія:MFA]]&lt;br /&gt;
[[Категорія:Контроль доступу]]&lt;br /&gt;
[[Категорія:Інформаційна безпека]]&lt;/div&gt;</summary>
		<author><name>R</name></author>
	</entry>
</feed>