Заштита података/Јун 2023 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (G2 za SI sa objašnjenjima, dovršavam kasnije // Edit via Wikitext Extension for VSCode)
Ред 1: Ред 1:
{{tocright}}
{{tocright}}
'''Ispit u junskom roku 2023.''' održan je 16. juna. Održan je u dva termina (jedan SI, jedan RTI). Na RTI bilo je dostupno okruženje PyCharm kao i dokumentacija za Python. Ispit na RTI trajao je 90 minuta.
'''Ispit u junskom roku 2023.''' održan je 16. juna. Održan je u dva termina (jedan SI, jedan RTI). Na RTI bilo je dostupno okruženje PyCharm kao i dokumentacija za Python. Ispit na RTI trajao je 90 minuta.
== SI G1 ==
== SI G2 ==
=== 1. zadatak ===
Koji od navedenih algoritama mogu da daju ispravne digitalne potpise koji mogu da imaju različite vrednosti za istu poruku potpisanu istim ključem?
<div class="abc-list" data-solution="multiple">
# Lamport Diffie
# <span class="solution">DSS</span>
# <span class="solution">ElGamal</span>
# Winternitz
# <span class="solution">RSA PSS</span>
</div>
=== 2. zadatak ===
Potrebno je obezbediti zaštitu transfera veb sadržaja između veb servera A i veb klijenta B koji se nalaze povezani na internet. Ono što je neophodno obezbediti je da strana koja prima poruke u svakom trenutku bude sigurna da podatke koji se prenose niko nije promenio tokom prenosa, kao i sa koje tačno IP adrese su paketi došli. Pri tome potrebno je obezbediti minimalno opterećenje, kako procesora, tako i mrežne veze veb servera. Protokol koji zadovoljava sve prethodno postavljene kriterijume je:
<div class="abc-list" data-solution="single">
# <span class="solution">AH u transportnom režimu rada</span>
# ESP u tunel režimu rada
# IKE
# TLS
# AH u tunel režimu rada
# QUIC
# ESP u transportnom režimu rada
</div>
=== 3. zadatak ===
* <math>(1) \quad \mathbf{C \rightarrow AS} \quad ID_c \parallel ID_{tgs} \parallel TS_1</math>
* <math>(2) \quad \mathbf{AS \rightarrow C} \quad E\left( K_c, \left[ K_{c,tgs} \parallel ID_{tgs} \parallel TS_2 \parallel Lifetime_2 \parallel Ticket_{tgs} \right] \right)</math>
* <math>\qquad Ticket_{tgs} = E\left( K_{tgs}, \left[ K_{c,tgs} \parallel ID_c \parallel AD_c \parallel ID_{tgs} \parallel TS_2 \parallel Lifetime_2 \right]  \right)</math>
* <math>(3) \quad \mathbf{C \rightarrow TGS} \quad ID_v \parallel Ticket_{tgs} \parallel Authenticator_c</math>
* <math>(4) \quad \mathbf{TGS \rightarrow C} \quad E\left(K_{c,tgs}, \left[ K_{c,v} \parallel ID_v \parallel TS_4 \parallel Ticket_v \right]\right)</math>
* <math>\qquad Ticket_{tgs} = E\left( K_{tgs}, \left[ K_{c,tgs} \parallel ID_c \parallel AD_c \parallel ID_{tgs} \parallel TS_2 \parallel Lifetime_2 \right]  \right)</math>
* <math>\qquad Ticket_v = E\left( K_v, \left[ K_{c,v} \parallel ID_c \parallel AD_c \parallel ID_v \parallel TS_4 \parallel Lifetime_4 \right]  \right)</math>
* <math>\qquad Authenticator_c = E\left(K_{c,tgs}, \left[ ID_c \parallel AD_c \parallel TS_3 \right]\right)</math>
* <math>(5) \quad \mathbf{C \rightarrow V} \quad Ticket_v \parallel Authenticator_c</math>
* <math>(6) \quad \mathbf{V \rightarrow C} \quad E\left(K_{c,v}, \left[TS_5 + 1\right]\right) \text{(for mutual authentication)}</math>
* <math>\qquad Ticket_v = E\left( K_v, \left[ K_{c,v} \parallel ID_c \parallel AD_c \parallel ID_v \parallel TS_4 \parallel Lifetime_4 \right]  \right)</math>
* <math>\qquad Authenticator_c = E\left(K_{c,v}, \left[ ID_c \parallel AD_c \parallel TS_5 \right]\right)</math>
Na slici je data Kerberos v4 autentikacija. Sledeći stavovi su tačni:
<div class="abc-list" data-solution="multiple">
# <span class="solution">Vreme <math>TS_3</math> služi za to da spreči ''Replay'' napad tokom vremena trajanja tiketa <math>Ticket_{tgs}</math></span>
# Vreme <math>TS_4</math> služi za to da spreči ''Replay'' napad tokom vremena trajanja tiketa <math>Ticket_{tgs}</math>
# Vreme <math>TS_5</math> služi za to da spreči ''Replay'' napad tokom vremena trajanja tiketa <math>Ticket_{tgs}</math>
# Ključ <math>K_{tgs}</math> je javni ključ TGS
# Ključ <math>K_{tgs}</math> je privatni ključ TGS
# <span class="solution">Ključ <math>K_{tgs}</math> je ključ TGS koji dele TGS i AS</span>
# <math>Lifetime_2 < Lifetime_4</math>
# <math>Lifetime_2 = Lifetime_4</math>
# <span class="solution"><math>Lifetime_2 > Lifetime_4</math></span>
</div>
'''Objašnjenje:''' <span class="spoiler" data-solution="explanation"><math>TS_3</math> sprečava napadača da ponovi poruku 3 kako bi obnovio <math>Ticket_v</math> dok traje <math>Ticket_{tgs}</math>. Ključ <math>K_{tgs}</math> ne može biti privatni ključ TGS jer ga mora posedovati i AS, a kako Kerberos koristi samo simetričnu enkripciju znači da nisu uključeni javni i privatni ključevi u komunikaciji. <math>Lifetime_2</math> mora biti duži od <math>Lifetime_4</math> kako bi klijent mogao više puta da obnovi <math>Ticket_v</math> tokom trajanja <math>Ticket_{tgs}</math>.</span>
=== 4. zadatak ===
U AMD SEV lancu sertifikata par ključeva koji je jedini dvostruko potpisan je:
<div class="abc-list" data-solution="single">
# <span class="solution">PEK</span>
# ASK
# ARK
# CEK
# PDH
# OCA
</div>
'''Objašnjenje:''' <span class="spoiler" data-solution="explanation">Ovaj ključ je potpisan od strane OCA (ključ vlasnika platforme) i CEK (ključ proizvođača čipa).</span>
=== 5. zadatak ===
Ključ(evi) koji se ne koristi/koriste u AMD SEV sigurnoj komunikaciji između klijenta i servera je/su:
<div class="abc-list" data-solution="multiple">
# TIK
# KIK
# KEK
# TEK
# <span class="solution">VEK</span>
</div>
=== 6. zadatak ===
<div class="abc-list" data-solution="select" data-options="logička bomba,zadnja vrata,rootkit,spamer,keylogger,flooder,downloader,adware,ransomware">
# Marko je pronašao novu interesantnu igricu za svoj telefon. Pretražujući internet, Marko je pronašao sajt sa kojeg može da preuzme igricu besplatno. Kada je Marko preuzeo i instalirao igricu, aplikacija je od Marka tražila dozvolu za korišćenje nekoliko funkcionalnosti telefona. Neke od traženih dozvola su: "Pristup kontaktima telefona" i "Slanje SMS poruka". Kojim tipom malvera je zaražena igrica? <span class="spoiler">spamer</span>
# Koji tip malvera predstavlja sledeći fragment koda? <span class="spoiler">logička bomba</span>
</div>
<syntaxhighlight lang="python">
if datum is Friday the 13th:
    crash_computer();
</syntaxhighlight>
=== 7. zadatak ===
Sledeći algoritmi ne omogućavaju verifikaciju porekla ključeva.
<div class="abc-list" data-solution="multiple">
# <span class="solution">Anonymous Diffie Hellman</span>
# RSA
# Ephemeral Diffie Hellman
# Fixed Diffie Hellman
</div>
'''Objašnjenje:''' <span class="spoiler" data-solution="explanation">Anonymous Diffie Hellman je osnovna varijanta Diffie-Hellman algoritma gde obe strane nemaju način da verifikuju javne ključeve druge strane pa je zato podložna man-in-the-middle napadu.</span>
Ovom porukom se potvrđuju kriptografski algoritmi koji će biti korišćeni u toku TLS sesije:
<div class="abc-list" data-solution="single">
# Client Hello Done
# Certificate Request
# Change Cipher Specification
# <span class="solution">Server Hello</span>
# Finished
# Server Hello Done
# Client Hello
# Certificate Verify
# Client Key Exchange
</div>
'''Objašnjenje:''' <span class="spoiler" data-solution="explanation">Kada klijent uspostavlja komunikaciju, u svojoj Client Hello poruci šalje predloge algoritama za korišćenje u sesiji, dok server te algoritme potvrđuje svojom prvom porukom odgoovra, odnosno Server Hello.</span>
=== 8. zadatak ===
Kada formiramo SMIME potpisane podatke, šta sve treba da sadrži blok o pošiljaocu (''signer info'')? Da li broj ovih blokova zavisi od broja primalaca ili ne? Obrazložiti.
'''Odgovor:'''
<div class="spoiler" data-solution="plain">
Blok o pošiljaocu treba da sadrži:
* sertifikat javnog ključa potpisivača,
* identifikatore algoritama za kreiranje i šifrovanje potpisa poruke, i
* šifrovanog potpisa poruke.
Nije neophodno praviti više ovakvih blokova za svakog primaoca, jer se podaci u njemu ne razlikuju u zavisnosti od primaoca.
</div>
=== 9. zadatak ===
Prikazano je zaglavlje jednog bloka transakcija na bitcoin blokčejnu. Ako prikazani hash odslikava zahtevanu težinu problema potvrde bloka, koliko je prosečno potrebno različitih Nonce vrednosti da bude isprobano dok se ne dobije odgovarajuća potvrda transakcije? Smatrati da je raspodela hash funkcije uniformna. Odgovor dati u obliku ''2^n''.
* Number Of Transactions: 1502
* Transaction Volume: 316.33241479 BTC
* Transaction Fees: 0.06640796 BTC
* Height: 685698
* Time: 2021-05-31 22:38:48
* Bits: 386752379
* Size: 896,885(bytes)
* Version: 536870916
* Nonce: 432023578
* Block Reward: 6.25 BTC
* Days Destroyed: 6,678
* Hash: 00000000000000000007ab43dfc1a8f73101f5fa2cd85dea59cdaf8f8d858351
'''Odgovor:''' <span class="spoiler" data-solution="text">2^77</span>
'''Objašnjenje:''' <span class="spoiler" data-solution="explanation">Broj 00000000000000000007ab43dfc1a8f73101f5fa2cd85dea59cdaf8f8d858351 u binarnoj reprezentaciji ima 77 nula na početku. Priznavan je takođe bio i odgovor 2<sup>76</sup>, jer se u zadatku tražio prosečan broj različitih Nonce vrednosti. Odgovori 2<sup>19</sup> i 2<sup>18</sup> bili su priznavani sa polovinom bodova.</span>


== RTI ==
== RTI ==

Верзија на датум 23. јун 2023. у 15:41

Ispit u junskom roku 2023. održan je 16. juna. Održan je u dva termina (jedan SI, jedan RTI). Na RTI bilo je dostupno okruženje PyCharm kao i dokumentacija za Python. Ispit na RTI trajao je 90 minuta.

SI G1

SI G2

1. zadatak

Koji od navedenih algoritama mogu da daju ispravne digitalne potpise koji mogu da imaju različite vrednosti za istu poruku potpisanu istim ključem?

  1. Lamport Diffie
  2. DSS
  3. ElGamal
  4. Winternitz
  5. RSA PSS

2. zadatak

Potrebno je obezbediti zaštitu transfera veb sadržaja između veb servera A i veb klijenta B koji se nalaze povezani na internet. Ono što je neophodno obezbediti je da strana koja prima poruke u svakom trenutku bude sigurna da podatke koji se prenose niko nije promenio tokom prenosa, kao i sa koje tačno IP adrese su paketi došli. Pri tome potrebno je obezbediti minimalno opterećenje, kako procesora, tako i mrežne veze veb servera. Protokol koji zadovoljava sve prethodno postavljene kriterijume je:

  1. AH u transportnom režimu rada
  2. ESP u tunel režimu rada
  3. IKE
  4. TLS
  5. AH u tunel režimu rada
  6. QUIC
  7. ESP u transportnom režimu rada

3. zadatak

Na slici je data Kerberos v4 autentikacija. Sledeći stavovi su tačni:

  1. Vreme služi za to da spreči Replay napad tokom vremena trajanja tiketa
  2. Vreme služi za to da spreči Replay napad tokom vremena trajanja tiketa
  3. Vreme služi za to da spreči Replay napad tokom vremena trajanja tiketa
  4. Ključ je javni ključ TGS
  5. Ključ je privatni ključ TGS
  6. Ključ je ključ TGS koji dele TGS i AS

Objašnjenje: sprečava napadača da ponovi poruku 3 kako bi obnovio dok traje . Ključ ne može biti privatni ključ TGS jer ga mora posedovati i AS, a kako Kerberos koristi samo simetričnu enkripciju znači da nisu uključeni javni i privatni ključevi u komunikaciji. mora biti duži od kako bi klijent mogao više puta da obnovi tokom trajanja .

4. zadatak

U AMD SEV lancu sertifikata par ključeva koji je jedini dvostruko potpisan je:

  1. PEK
  2. ASK
  3. ARK
  4. CEK
  5. PDH
  6. OCA

Objašnjenje: Ovaj ključ je potpisan od strane OCA (ključ vlasnika platforme) i CEK (ključ proizvođača čipa).

5. zadatak

Ključ(evi) koji se ne koristi/koriste u AMD SEV sigurnoj komunikaciji između klijenta i servera je/su:

  1. TIK
  2. KIK
  3. KEK
  4. TEK
  5. VEK

6. zadatak

  1. Marko je pronašao novu interesantnu igricu za svoj telefon. Pretražujući internet, Marko je pronašao sajt sa kojeg može da preuzme igricu besplatno. Kada je Marko preuzeo i instalirao igricu, aplikacija je od Marka tražila dozvolu za korišćenje nekoliko funkcionalnosti telefona. Neke od traženih dozvola su: "Pristup kontaktima telefona" i "Slanje SMS poruka". Kojim tipom malvera je zaražena igrica? spamer
  2. Koji tip malvera predstavlja sledeći fragment koda? logička bomba
if datum is Friday the 13th:
    crash_computer();

7. zadatak

Sledeći algoritmi ne omogućavaju verifikaciju porekla ključeva.

  1. Anonymous Diffie Hellman
  2. RSA
  3. Ephemeral Diffie Hellman
  4. Fixed Diffie Hellman

Objašnjenje: Anonymous Diffie Hellman je osnovna varijanta Diffie-Hellman algoritma gde obe strane nemaju način da verifikuju javne ključeve druge strane pa je zato podložna man-in-the-middle napadu.

Ovom porukom se potvrđuju kriptografski algoritmi koji će biti korišćeni u toku TLS sesije:

  1. Client Hello Done
  2. Certificate Request
  3. Change Cipher Specification
  4. Server Hello
  5. Finished
  6. Server Hello Done
  7. Client Hello
  8. Certificate Verify
  9. Client Key Exchange

Objašnjenje: Kada klijent uspostavlja komunikaciju, u svojoj Client Hello poruci šalje predloge algoritama za korišćenje u sesiji, dok server te algoritme potvrđuje svojom prvom porukom odgoovra, odnosno Server Hello.

8. zadatak

Kada formiramo SMIME potpisane podatke, šta sve treba da sadrži blok o pošiljaocu (signer info)? Da li broj ovih blokova zavisi od broja primalaca ili ne? Obrazložiti.

Odgovor:

Blok o pošiljaocu treba da sadrži:

  • sertifikat javnog ključa potpisivača,
  • identifikatore algoritama za kreiranje i šifrovanje potpisa poruke, i
  • šifrovanog potpisa poruke.

Nije neophodno praviti više ovakvih blokova za svakog primaoca, jer se podaci u njemu ne razlikuju u zavisnosti od primaoca.

9. zadatak

Prikazano je zaglavlje jednog bloka transakcija na bitcoin blokčejnu. Ako prikazani hash odslikava zahtevanu težinu problema potvrde bloka, koliko je prosečno potrebno različitih Nonce vrednosti da bude isprobano dok se ne dobije odgovarajuća potvrda transakcije? Smatrati da je raspodela hash funkcije uniformna. Odgovor dati u obliku 2^n.

  • Number Of Transactions: 1502
  • Transaction Volume: 316.33241479 BTC
  • Transaction Fees: 0.06640796 BTC
  • Height: 685698
  • Time: 2021-05-31 22:38:48
  • Bits: 386752379
  • Size: 896,885(bytes)
  • Version: 536870916
  • Nonce: 432023578
  • Block Reward: 6.25 BTC
  • Days Destroyed: 6,678
  • Hash: 00000000000000000007ab43dfc1a8f73101f5fa2cd85dea59cdaf8f8d858351

Odgovor: 2^77

Objašnjenje: Broj 00000000000000000007ab43dfc1a8f73101f5fa2cd85dea59cdaf8f8d858351 u binarnoj reprezentaciji ima 77 nula na početku. Priznavan je takođe bio i odgovor 276, jer se u zadatku tražio prosečan broj različitih Nonce vrednosti. Odgovori 219 i 218 bili su priznavani sa polovinom bodova.

RTI

1. zadatak

Ovaj zadatak nije potpun. Ukoliko se sećate tačnih brojeva, možete ga upotpuniti.

[5 poena] Isto zadatak kao i na četvrtom izazovu, samo drugačiji potpis. (Verifikacija El gamal potpisa)

2. zadatak

[0 poena] Predaja koda korišćenog za rešavanje prvog zadatka.

3. zadatak

[3 poena] Šta je od navedenog tačno za eXtended Merkle signature scheme?

  1. Manji ključ od RSA
  2. Veći ključ od RSA
  3. Mora da pamti stanje
  4. Ne mora da pamti stanje
  5. Može da potpisuje više dokumenata
  6. Ne može da potpisuje više dokumenata

4. zadatak

[3 poena] Isti zadatak kao i 4. zadatak iz juna 2022.

5. zadatak

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

[5 poena] Dat je ditigalni sertifikat sličan onom iz 2. zadatka iz juna 2022.. Potrebno je objasniti precizno šta se sve i na koji način treba obaviti kako bi browser mogao da verifikuje sertifikat.

6. zadatak

[4 poena] Isti zadatak kao i 6. zadatak iz avgusta 2021.

7. zadatak

[2 poena] Koji ključ povezuje vlasnika platforme i proizvođača hardvera u AMD-SEV lancu sertifikata?

  1. ARK
  2. ASK
  3. CEK
  4. OCA
  5. PEK
  6. PDH

8. zadatak

[3 poena] Koji od navedenih sertifikata se generišu na osnovu glavne tajne?

  1. VEK
  2. TIK
  3. KIK
  4. TEK
  5. KEK

9. zadatak

[5 poena]

  • Dat je deo šeme PGP protkola. Ova šema obezbeđuje autentikaciju. (Netačan odgovor donosi -1 poen, odgovor ne znam donosi 0 poena)

Neka je pošiljalac X, a primalac Y.

  • Deo 1 je zapravo lozinka.
  • Deo 2 je zapravo Enkriptovan(PRx).
  • Deo 3 je zapravo ID(PUx).
  • Deo 4 je zapravo PRx.

10. zadatak

[3 poena] Greškom došao Chacha, to je kolokvijumsko gradivo.

11. zadatak

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

[5 poena] Precizno objasniti kako se autentikuje klijent od strane servera ako ima autentikacije kod TLS Handshake protkola.

12. zadatak

[3 poena]

  • GCM za tajnost koristi Counter.
  • GCM za autentikaciju koristi CBC.
  • Kod GCM u procesu dešifrovanja primenjuje se enkripcioni algoritam.

13. zadatak

[4 poena] Исти задатак као и 4. задатак из јуна 2022.