Skip to content

Commit

Permalink
Small fixes in: AKR, IC2, SOS, SPR and TIN (#91)
Browse files Browse the repository at this point in the history
  • Loading branch information
BorekZnovustvoritel authored May 28, 2023
1 parent e08a191 commit db85565
Show file tree
Hide file tree
Showing 9 changed files with 142 additions and 45 deletions.
5 changes: 4 additions & 1 deletion BPC-AKR/text.tex
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ \section{Teorie čísel, algebraické struktury -- popište účel a~způsob vý

Řád prvku $a$ je definován jako nejmenší kladné celé číslo $t$ takové že $a^t = 1$ pokud takové $t$ existuje.

Řád generátoru grupy se rovná řádu grupy. Počet generátorů lze zjistit jako $\phi(\phi(n))$.
Řád generátoru grupy se rovná řádu grupy. Počet generátorů lze u prvočíselných multiplikativních grup zjistit jako $\phi(\phi(n))$.

Příklady praktických grup pro~kryptografii:
\begin{itemize}[noitemsep]
Expand All @@ -109,6 +109,9 @@ \section{Teorie čísel, algebraické struktury -- popište účel a~způsob vý
\item Pokud předchozí rovnice neplatí pro žádné $p_i$ jedná se generátor.
\end{itemize}

\subsection{Volba parametrů grupy pro algoritmy založené na problému DL}
Předem je zvolená bitová délka prvočísla, je vygenerováno prvočíslo \(p\) o této bitové délce. Poté je potřeba zvolit řád prvku \(q\). Víme, že \(q|\phi(p)\). Některé algoritmy (např.\,DSA) navíc vyžadují, ať je \(q\) také prvočíselná hodnota. Poté je hledán prvek \(g\) o řádu \(q\). Následně je vygenerován soukromý klíč \(x\), \(x<q\) a je zveřejněn veřejný klíč \(y\), \(y\equiv g^x \mod p\).

\clearpage
\section{Modulární aritmetika -- popište algoritmus Square and Multiply a~Čínskou větu o~zbytcích.}

Expand Down
22 changes: 11 additions & 11 deletions BPC-IC2/text.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ \section{Definujte a vysvětlete základní pojmy (aktiva, hrozba, ochrana, bezp
\textbf{ochrana} & opatření ke~snížení rizika, četnosti nebo velikosti ztrát \\
\textbf{bezpečnost} & stav, kdy riziko ztráty aktiv nepřesahuje určitou míru \\
\textbf{zranitelnost} & místo bez~dostatečné ochrany \\
\textbf{riziko} & \textbf{pravděpodobnost} realizace hrozby \\
\textbf{riziko} & \textbf{pravděpodobnost} využití zranitelného místa \\
\textbf{incident} & realizace hrozby \\
\textbf{dopad} & důsledek útoku, rozsah škod \\
\end{tabular}
Expand Down Expand Up @@ -232,19 +232,19 @@ \subsection{Testování webových aplikací}

\subsubsection{OWASP Top 10}

Publikace shrnující aktuálních deset nejhorších zranitelností. Vychází z~domluvy firem z~odvětví a~OWASP, nemusí tedy nutně znamenat, že se vyskytují nejčastěji. Postupně se jedná o zranitelnosti (2017):
Publikace shrnující aktuálních deset nejhorších zranitelností. Vychází z~domluvy firem z~odvětví a~OWASP, nemusí tedy nutně znamenat, že se vyskytují nejčastěji. Postupně se jedná o zranitelnosti (2021):

\begin{enumerate}[noitemsep]
\item Injekce (SQL injection, Code injection)
\item Nekorektní funkce autentizace (obecné chyby autentizačních mechanismů)
\item Odhalení citlivých dat (např. nezabezpečená komunikace aplikace jako HTTP/FTP, výpis chyb na~stránce, \dots)
\item XML externí entity tj. XXE (code execution přes~chybu v~parseru XML\footnote{XXE: \url{https://www.youtube.com/watch?v=gjm6VHZa_8s}.})
\item Chybná kontrola přístupu (chyba v~ACL)
\item Špatná konfigurace bezpečnostních politik (nenastavení lockout mechanismu po~určitém počtu neúspěšných přihlášení)
\item Cross Site Scripting tj. XSS (vykonávání JavaScriptu na~straně uživatele\footnote{XSS: \url{https://www.youtube.com/watch?v=EoaDgUgS6QA}.})
\item Nebezpečná deserializace (při~převodu binárních dat na~interní reprezentaci v~programu může dojít k~vykonání kódu\footnote{Deserializace: \url{https://www.youtube.com/watch?v=HaW15aMzBUM}.})
\item Kryptografické chyby (např.\,nezabezpečená komunikace aplikace jako HTTP/FTP)
\item Injekce (SQL injection, Code injection)\footnote{XSS: \url{https://www.youtube.com/watch?v=EoaDgUgS6QA}.}
\item Nezabezpečený design (chyba vzniklá už při plánování projektu)
\item Špatná konfigurace bezpečnostních politik (nenastavení lockout mechanismu po~určitém počtu neúspěšných přihlášení)\footnote{I XML External Entities -- XXE: \url{https://www.youtube.com/watch?v=gjm6VHZa_8s}.}
\item Užívání komponent se známou zranitelností
\item Nedostatek loggingu a~monitoringu
\item Nekorektní funkce autentizace a identifikace (obecné chyby autentizačních mechanismů)
\item Chyby integrity dat a software\footnote{Nebezpečná deserializace: \url{https://www.youtube.com/watch?v=HaW15aMzBUM}.}
\item Chyby bezpečného loggingu a~monitoringu
\item Server-Side Request Forgery (vykonávání requestu jménem serveru)
\end{enumerate}


Expand Down Expand Up @@ -406,7 +406,7 @@ \subsection{IPSec}
\includegraphics[width=\textwidth]{images/ipsec}
\end{figure}

\textbf{Authentication header} zajišťuje integritu a~autentičnost IP paketů, chrání proti replay útokům. \textbf{Encapsulationg Security Payloads} zajišťuje důvěrnost pomocí šifrování. \textbf{Security Association} popisuje IPSec spojení včetně parametrů zabezpečení. Aktivní spojení je uloženo v~databázi (SAD), management a~pravidla jsou uložena v~SPD (\emph{Security Policy Database}).
\textbf{Authentication header} zajišťuje integritu a~autentičnost IP paketů, chrání proti replay útokům. \textbf{Encapsulating Security Payloads} zajišťuje důvěrnost pomocí šifrování. \textbf{Security Association} popisuje IPSec spojení včetně parametrů zabezpečení. Aktivní spojení je uloženo v~databázi (SAD), management a~pravidla jsou uložena v~SPD (\emph{Security Policy Database}).

Pro~ustanovení klíče IPSec využívá symetrickou kryptografii: pre-shared key, IKE1/2, Kerberos.

Expand Down
10 changes: 6 additions & 4 deletions BPC-SOS/text.tex
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,12 @@ \subsection{Systém klient-server}

\subsection{Virtuální stroje}

Základní myšlenkou je tzv. \emph{abstrakce hardware} do~několika různých prostředí, ve~kterých mohou běžet oddělené operační systémy. K~tomuto se využívá přepínání běhu procesů na~procesoru a~použití konceptu virtuální paměti\footnote{Každý proces potřebuje část paměti RAM. Pokud jí není dost, tak se paměť procesu \enquote{přesune} na~disk do~tzv. \emph{paging file}. Více např. \url{https://en.wikipedia.org/wiki/Virtual_memory}.}.
Základní myšlenkou je tzv. \emph{abstrakce hardware} do~několika různých prostředí, ve~kterých mohou běžet oddělené operační systémy. O tuto abstrakci se stará program s názvem \textbf{hypervisor}. K~zajištění běhu několika virtuálních systému na stejném HW se využívá přepínání běhu procesů na~procesoru a~použití konceptu virtuální paměti\footnote{Každý proces potřebuje část paměti RAM. Pokud jí není dost, tak se paměť procesu \enquote{přesune} na~disk do~tzv. \emph{paging file}. Více např. \url{https://en.wikipedia.org/wiki/Virtual_memory}.}.

Každý virtuální stroj má své jádro, který musí běžet v~kontextu jádra. Zároveň se však jedná o~uživatelský proces, proto se vytváří virtuální uživatelský kontext a~virtuální kontext jádra který však běží v~uživatelském režimu na~hostovacím systému. Pokud dojde ve~virtuálním prostředí k~systémovému volání, bude obsloužení emulováno pomocí virtualizačního software, což je značně pomalejší než reálný systém.

Existují hypervisory dvou druhů. Hypervisor typu 1 běží přímo nad BIOSem (firmware) a na něm jsou spouštěny virtuální OS. Hypervisor typu 2 je spouštěn nad operačním systémem (teprve ten běží nad BIOSem). Zástupce hypervisoru typu 1 je Microsoft Hyper-V, typ 2 jsou pak Docker, Oracle VirtualBox, VMWare WorkStation a další.

%%%%%%%%%%%
% PROCESY %
%%%%%%%%%%%
Expand Down Expand Up @@ -180,7 +182,7 @@ \subsection{Vlákna}

\begin{itemize}
\item Mnoho k~jednomu -- Jednomu procesu jádra patří více uživatelských vláken. Použití vláken není závislé na~jejich podpoře v~OS a~jejich správa je zajištěna často v~podobě \emph{vláknových knihoven} (v~uživatelském režimu). Tyto knihovny vytváří a~plánují běh, přepínají a~ruší vlákna. Nevýhodou je fakt, že zavolání blokujícího systémového volání jedním z~vláken zablokuje celý proces (tedy všechna vlákna), jelikož jádro s~vlákny nepracuje.
\item Jeden k~jednomu -- Každé uživatelské jádro má korespondující vlákno v~jádře a~tedy má i~na~starosti jejich správu. Výhodou je, že blokující systémové volání neblokuje všechna ostatní vlákna. Dále je umožněn běh paralelně na~více procesorech. Nevýhodou je značná režie, skrz vysoké množství vláken.
\item Jeden k~jednomu -- Každé uživatelské vlákno má korespondující vlákno v~jádře a~tedy má i~na~starosti jejich správu. Výhodou je, že blokující systémové volání neblokuje všechna ostatní vlákna. Dále je umožněn běh paralelně na~více procesorech. Nevýhodou je značná režie, skrz vysoké množství vláken.
\item Mnoho k~mnoha -- Kombinace předešlých, přiřazuje vláknům stejný nebo menší počet vláken v~jádru. Počet těchto vláken může být omezen vzhledem k~aplikaci nebo druhu zařízení (např. jednoprocesorové vs. víceprocesorové).
\end{itemize}

Expand Down Expand Up @@ -261,7 +263,7 @@ \subsubsection{Odložení procesu}

\subsubsection{Ukončení procesu}

Proces v~uživatelském režimu zavolá sys. volání (např. dříve zmíněný \emph{exit}), přejde tedy do~režimu jádra a~dále do~stavu \enquote{zombie}. V~tomto stavu proces neexistuje, ale je o~něm stále udržován záznam v~tabulce procesů. Jakmile rodič zpracuje informaci o~jeho ukončení, tak je proces definitivně ukončen.
Proces v~uživatelském režimu zavolá sys. volání (např. dříve zmíněný \emph{exit}), přejde tedy do~režimu jádra a~dále do~stavu \enquote{zombie}. V~tomto stavu proces neexistuje, ale je o~něm stále udržován záznam v~tabulce procesů. Jakmile rodič zpracuje informaci o~jeho ukončení, tak je proces definitivně ukončen a jeho záznam odstraněn.

%%%%%%%%%%%%%%
% SCHEDULING %
Expand Down Expand Up @@ -319,7 +321,7 @@ \subsubsection{Interaktivní systémy}

\subsubsection{Real-Time systémy}

Používají se pro~zpracování úloh které slouží jako vstup dalších navazujících činností. Tyto systémy musí splnit úlohu v~reálném čase (v~předem daném časovém úseku). Tyto systémy jsou používány v~automatizovaných procesech, robotice a~telekomunikacích. Používá se opět preemptivní plánování.
Používají se pro~zpracování úloh které slouží jako vstup dalších navazujících činností. Tyto systémy musí splnit úlohu v~reálném čase (v~předem daném časovém úseku). Tyto systémy jsou používány v~automatizovaných procesech, robotice a~telekomunikacích. Používá se preemptivní plánování.

Podle toho jak moc se tlačí na~splnění požadavků v~daném času můžeme tyto systémy dělit na~\emph{soft} (časové záruky jsou pouze přibližné a~určité časové odchylky jsou povoleny) a~\emph{hard} (časové záruky jsou plně zajištěny).

Expand Down
75 changes: 74 additions & 1 deletion BPC-SPR/text.tex
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ \subsection{Rozdíl mezi autorskoprávní ochranou a~sui generis}
% TODO Judikatura

\clearpage
\section{Smlouvy a~software -- licenční smlouva, smlouva o~dílo a~SLA -- pojem, strany, obsah, forma a~proces uzavírání}
\section{Softwarové smlouvy -- licenční smlouva, smlouva o analýze, smlouva o vývoji software, smlouva o implemetaci software, smlouva o údržbě software, SLA}

\subsection{Licenční smlouva}

Expand All @@ -296,6 +296,79 @@ \subsubsection{Obsah licence}

Hlavním účelem je ochrana~díla~a~specifikace, jak s~ním lze nakládat. Například jestli lze upravovat nebo předělávat SW, rozmnožovat ho a~popřípadě upravenou verzi licencovat.

\subsection{Smlouva o analýze}
Účelem je analýza k návrhu softwarového řešení (popis aktuální situace, požadovaný konečný stav a rozdíly mezi těmito dvěma stavy). Výsledkem je dílo, lze považovat za typ smlouvy o dílo. Obsahuje závazky:
\begin{itemize}
\item Provést analýzu a navrhnout řešení (k tomu se zavazuje zhotovitel).
\item Poskytnutí součinnosti a odměny (k tomu se zavazuje objednavatel).
\end{itemize}
Ve smlouvě by měly být tyto náležitosti:
\begin{itemize}
\item Účel (cíle, které mají být splněny -- předpoklady provedení -- výsledek musí být do určité doby a za úplatu)
\item Součinnost (nemůžu nedat analyzátorovi přístup do systému, který má analyzovat)
\item Protokolace
\item Zpracování a odsouhlasení
\item Způsob a termín uzavření smlouvy o vývoji a implementaci software (takže smlouva o analýze je také smlouva o smlouvě budoucí)
\item Odměna (hodinová sazba nebo odměna za celou práci)
\item Odpovědnost za vady a škodu
\item Autorská práva a licence k analýze
\item Mlčenlivost (zákaz využití třetí firmou)
\item Podmínky ukončení od smlouvy -- odstoupení
\end{itemize}

\subsection{Smlouva o vývoji software}
Jedná se o smlouvu o dílo s nehmotným výsledkem (nemusí být předáno na nosiči). Je jen potřeba umožnit používání díla. Součást je taky pracovní smlouva / dohoda o provedení práce / dohoda o provedení činnosti.
Náležitosti jsou:
\begin{itemize}
\item Vymezení účelu (je potřeba definovat, kdy je dílo považováno za hotové)
\item Předmět smlouvy (pozitivní a negativní vymezení -- když je objednaný program, nebudu se vázat k tomu dodat hardware, na kterém to bude spouštěno)
\item Doba a místo plnění
\item Typ vývoje (waterfall / agile)
\item Při nutnosti změny smlouvy -- změnové řízení
\item Dodávání HW a SW třetích stran (věci opatřené k provedení díla)
\item Licencování při použití SW třetích osob (zprostředkovatelská nebo mandátní smlouva)
\item Projektové řízení
\item Školení, dokumentace
\item Cenové ujednání
\item Ukončení smlouvy
\item Definice provedení, dokončení, předání a převzetí
\begin{itemize}
\item Provedeno = dokončeno + předáno
\item Dokončeno = způsobilé sloužit svému účelu
\item Předáno = dokončeno + umožněno užití díla
\item Pokud je dílo dokončeno se zjevnými vadami, pokud není stanoveno jinak, objednatel musí převzít (převzetí s výhradami)
\item Při převzetí bez výhrad zanikají nároky ze zjevných vad
\item Je tedy vhodné smluvně opravit okamžik předání (např.\,bude považované za předané až po otestování)
\item Dílo lze převzít po částech
\end{itemize}
\end{itemize}

Při prodlení u zhotovitele -- povinnost na vlastní náklady odstranit vady, náhrada škody, právo odstoupení od smlouvy objednatelem (při podstatném porušení smlouvy), při sjednání smluvních pokut z prodlení je musí zhotovitel hradit.

Při prodlení u objednatele (nepřevzal včas / neposkytl součinnost) -- možná smluvní pokuta, náhrada vzniklé škody, právo na odstoupení od smlouvy (podstatné prodlení), posunutí termínu plnění nebo náhradní plnění.

\subsection{Smlouva o implementaci software}
Nasazení a zprovoznění dříve vyvinutého software pro účely objednatele (\uv{making it work}). Je potřeba stanovit milníky a akceptační testy (odpovídá implementace tomu, co je specifikované ve smlouvě?). Vyžaduje licenční smlouvu na implementovaný software. Tato smlouva může být (a často bývá) součástí smlouvy o vývoji.

Je nutná součinnost stran (nelze nasadit řešení na server objednatele, když objednatel nezařídí na server přístup s dostatečnými oprávněními).

\subsection{Smlouva o údržbě software}
Účel smlouvy je bezvadný provoz. Zahrnuje aktualizaci a úpravy pro kompatibilitu různých SW a možný rozvoj (hraničí s vývojem a implementací). Servis může být reaktivní nebo proaktivní. Také lze mít smlouvu na servis systému jako celku nebo jen dodané části.

Náležitosti:
\begin{itemize}
\item Specifikace současného HW, SW
\item Specifikace servisní činnosti HW, SW a údržby SW
\item Odměna a platební podmínky
\item Definice a kategorizace vad (incidentů), reakční doby odstranění a sankcí za nesplnění
\item Způsob upozorňování na incidenty
\item Mlčenlivost
\item Dobu trvání a způsob ukončení smlouvy
\item Licence
\item Servisní okna (odstávky)
\item Součinnost (při jejím nesplnění -- výluka z povinnosti odstranit vadu)
\end{itemize}

\subsection{Smlouva o~dílo}

Na~základě smlouvy o~dílu vzniká závazek jehož předmětem je zhotovení, údržba, oprava nebo úprava věci či činnosti. Většinou se sepisuje pokud je činnost financovaná zákazníkem a~produkt (v~tomto případě software) je vytvářen dle požadavků zákazníka. Často se pojí se software na~zakázku.
Expand Down
Binary file added BPC-TIN/images/dvojnasobnaleva.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added BPC-TIN/images/dvojnasobnaprava.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added BPC-TIN/images/jednoduchaleva.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added BPC-TIN/images/jednoduchaprava.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit db85565

Please sign in to comment.