Obsah
Bezpečnost systému
Objektová ochrana
- Objektová ochrana zapnuta - zapnutí/vypnutí systému přístupu podle nastavených oprávnění (hlavní vypínač objektové ochrany). Je-li zapnuto, řídí se přístupová práva uživatelů k úlohám podle přidělených profilů.
- Rozšířený přístupový strom - zapnutí/vypnutí rozšířené funkce přístupového stromu viz. přístupový strom
Hesla
Zde se nastavují parametry pro přístupová hesla do Orsoftu
- Platnost hesla (dny) - maximální platnost hesla ve dnech. Po uplynutí této doby je uživatel při přihlašování vyzván ke změně hesla. Bez změny hesla mu není přihlášení dovoleno. Je-li vyplněna nula, je platnost neomezená.
- Minimální platnost hesla - doba od poslední změny hesla, během které si uživatel nemůže heslo znovu změnit. Je-li vyplněna nula, může si uživatel měnit heslo kdykoliv.
- Počet logovaných změn hesla - (připravuje se) udává, kolik předchozích hesel uživatele se loguje. S využitím logovaných hesel se uživateli nepovolí změnit heslo na takové, které již dříve používal. Je-li vyplněna nula, tak se pouze kontroluje, zda nové heslo není shodné s aktuálním.
- Minimální délka hesla - minimální celkový počet znaků hesla
- Minimální počet číslic - minimální počet číslic v hesle
- Minimální počet malých písmen - minimální počet malých písmen v hesle
- Minimální počet velkých písmen - minimální počet velkých písmen v hesle
- Minimální počet speciálních znaků - minimální počet znaků hesla, které musejí být ze sady povolených speciálních znaků
- Sada povolených speciálních znaků - sada znaků, na něž se kontroluje minimální počet speciálních znaků v hesle
Neúspěšné přihlášení uživatele
Pokud jsou při přihlašování klienta zadány na přihlašovací obrazovce třikrát za sebou chybné přihlašovací údaje (login, heslo), dojde k ukončení klientského programu. Další pokusy o přihlášení jsou možné až po novém spuštění klienta.
Veškerá přihlášení (úspěšné, i neúspěšné pokusy) jsou systémem logovány v interním logu.
Doba nečinnosti
- Maximální doba nečinnosti (minuty) - doba, po které je uživatel, který během ní v Orsoftu neprovedl žádnou akci (byl nečinný), automaticky odhlášen, tj. jím spuštěný Orsoft je ukončen. Pokud je vyplněna nula, žádné hlídání nečinnosti se neprovádí. Tato hodnota se použije pouze pro ty uživatele, kteří nemají maximální dobu nečinnosti nastavenou individuálně v tabulce uživatelů.
NIS2 Compliance
Pro vyšší zabezpečení IS jsou připravena tato rozšíření:
Šifrování komunikace C/S
Od verze 26.1 je možné nasadit silné šifrování při komunikaci mezi klientem „IS Open“ a serverem. Je třeba vyřešit několik problémů s důvěryhodností certifikátů a uznáním platnosti certifikátu. Komunikace mezi klientem a serverem se přesune výše do protokolu TLS (nyní ve verze 1.3). Nejdříve se Klient a Server asymetricky dohodnou na klíči a parametrech šifrování a následně již komunikace probíhá zašifrovaně symetrickou šifrou.
- Na SERVERU budou tyto úložiště klíčů v adresáři „./soubory“:
- o1j_ssl_cs.ks
- Soubor je keystore typu JKS a obsahuje právě jeden klíč a certifikát pro šifrování komunikace
- Ideální je, aby byl klíč certifikován důvěryhodnou CA. NENÍ to však podmínka, lze použít i „self-signed“ certifikát.
- o1j_trusted.ks
- Tento keystore obsahuje důvěryhodné certifikáty CA. Standardně je využit při komunikace s různými servery pro ověření https (například ARES, ČSSZ, …)
- V tomto souboru MUSÍ být certifikát klíče, který uložen v o1j_ssl_cs.ks
- Na KLIENTU budou tyto úložiště klíčů v adresáři „./soubory“:
- o1j_trusted.ks
- tento soubor se automaticky přenese ze serveru v rámci aktualizačního procesu (v té chvíli ještě nešifrovaně – to je v pořádku, neboť soubor obsahuje JEN A POUZE veřejné části asymetrického klíče).
- Tento soubor se při startu klienta zavede jako defaultní „trustStore“ pro instanci JRE (zamění tak defaultní trustStore, který je v v JRE/security/cacerts).
Zapnutí komunikace SSL/TLS se provádí pomocí java proměnných ve spouštěcí dávce: -DRMI_COMPRESS=SSL
Striktní určení komunikačních portů
IS Open využívá komunikace na serveru na 4 portech:
- RMI_PORT – Registry pro RMI
- RMI_PORT_SERVICE – port pro služby
- RMI_PORT_SERVICE_SETTINGS – nastavení
- RMI_PORT_SERVICE_AKTU_KLIENT – pro aktualizaci klienta
Od verze 26.1 je připravena úprava ORCore, tak aby bylo možné porty nadefinovat a nevyužívat dynamické porty. Java defaultně pro RMI používá dynamické porty v prostoru 52000 a výše.
Příklad nastavení v dávce: set JAVA_OPTS=-DRMI_PORT=2105
Příklad uživatel se 7 servery:
- RMI_PORT: 2101 – 2107
- RMI_SERVICE: 42201 - 42207,
- RMI_SERVICE_SETTINGS: 42301 – 42307
- RMI_AKTU_KLIENT: 42401 - 42407
Čísla jsou pouze doporučení (best practices), správce systému může zvolit sám dle svých podmínek.
Mutifaktové ověření pro Open
Pro verzi 26.1 je připraveno řešení MFA na principu Time-based-One-Time-Password.
Základní princip TOTP: <font inherit/Courier New,Courier,monospace;;inherit;;inherit>TOTP=Truncate(HMAC_SHA256(secret,floor(time/30s)))</font>
- Po zapnutí této funkcionality je možné v tabulce OUZIV vygenerovat tajný klíč. Na základě něj se vytvoří QR kód pro pro import tajného klíče do Autentikátoru.
- Ověřeno využití
- Google Autentikatoru
- Microsoft Autentikatoru.
- Na základě času se mění kód každých 30 sec. a tento kód je unikátní pro každého uživatele IS Open.
- Při přihlášení musí zadat správně jméno, heslo + kód z autentikátoru.
- Pozn.: Je třeba mít synchronizovaný čas serveru s nějakou centrální časovou autoritou.
Bezpečné uložení přístupových hesel do systému
Požadavky na bezpečnost:
- Heslo nesmí být uloženo v otevřené podobě
- Nestačí „rychlé“ hashovací funkce, musí být použity „pomalé“, iterační kryptografické metody.
Řešení:
Pro verzi 26.1 budou obrazy hesel do systému v tabulce OUZIV ukládány s vysokou zabezpečovací funkcí.
Použijeme Argon2Id, která je považována za jednu z nejbezpečnějších.
Princip:
- Pokud bude uživatel ověřen starým způsobem a v databázi je uloženo staré heslo, uloží se nové
- Při příštím loginu se již bude kontrolovat na nové Argon2Id.
Parametry pro Argon2Id:
| Cíl | Memory (KB) | Iterace | Paralelismus | Přibližný čas |
|---|---|---|---|---|
| Maximální bezpečnost (server) | 65536 | 3 | 1 | ~10–20 s |
| Vyvážené (doporučeno) | 16384 | 2 | 4 | ~1–2 s |
| Rychlé (desktop klient) | 8192 | 1 | auto | < 1 s |
V Open řešení využijeme „vyvážené“ nastavení – tedy 16 MB paměti, 2 iterace a stupeň paralelismu 4. Testováno na několika různých počítačích. Je třeba brát v úvahu, že hashování hesla vzhledem k bezpečnosti provádí KLIENT!
Metoda Argon2Id Argon2id je hybridní variantou kryptografické hashovací funkce Argon2, která byla vítězem soutěže Password Hashing Competition v roce 2015. Používá kombinaci algoritmů Argon2i a Argon2d, aby se účinně bránila proti časově-paměťovým útokům i útokům postranními kanály. Díky tomu je Argon2id ideální pro bezpečné ukládání hesel, protože kombinuje odolnost proti útokům pomocí GPU (jako Argon2d) s odolností proti útokům postranními kanály (jako Argon2i).
Hybridní přístup: Argon2id kombinuje odolnost proti útokům postranními kanály (jako je Argon2i) s ochranou proti útokům pomocí GPU (jako je Argon2d).
Ideální pro hesla: Kombinace těchto vlastností z něj činí nejvíce doporučený typ pro moderní aplikace, zejména pro bezpečné ukládání hesel. Odolnost proti útokům: Je navržen tak, aby byl odolný proti sofistikovaným útokům, jako jsou útoky postranními kanály a útoky s časově-paměťovou náročností, a je považován za state-of-the-art pro bezpečné hashování hesel.
Konfigurovatelnost: Lze ho nakonfigurovat pomocí parametrů, jako je paměťová a časová náročnost a stupeň paralelizace, aby bylo možné najít optimální rovnováhu mezi bezpečností a výkonem.
Šifrované uložení přístupových údajů do databází
Jedná se o obsah souboru hibernate.properties, který leží na disku serveru v adresáři „cfg“. Je třeba zajistit, aby nebylo čitelné heslo pro připojení do databáze. Open server mívá silný přístup do DB (většinou admin práva). Potřebuje mít uložené autentikační údaje do DB v souboru hibernate.properties
Standard:
hibernate.connection.password=MojeTajneHeslo123
Zabezpečené heslo
hibernate.connection.password=ENCRYPTED(qdOhPjT73yZy61jHq2r6gw== )
Zašifrování hesla se provádí v Administrace / Nástroje administrátora / DB nástroje / Zašifrování hesla pro DB connection. Takto zašifrované heslo se vloží do souboru hibernate.properties




