Skoči na vsebino

RK - 2021/22 - LDN10

Naloga na eucilnici ucilnica.fri.uni-lj.si
Navodila rkvaje.lrk.si

V tej nalogi boste naredili varnostno nadgradnjo pogovornega strežnika in odjemalca iz LDN7.

Odločili smo se, da bomo za višjo stopnjo varnosti poskrbeli s pomočjo protokola TLS in z uporabo samopodpisanih digitalnih certifikatov (seveda pa vse deluje tudi s "pravimi" certifikati):

  • strežnik se mora odjemalcu predstaviti z digitalnim certifikatom;
    • V polju Common Name strežnikovega certifikata naj se nahaja vrednost localhost
  • tudi odjemalci se morajo predstaviti strežniku z digitalnim certifikatom
    • Zgenerirajte digitalne certifikate za vsaj 3 odjemalce - uporabite različne vrednosti za Common Name.
    • Vrednost Common Name naj se uporablja na strežniku za identifikacijo odjemalca.

Strežnik naj odjemalca identificira na podlagi vrednosti v polju Common Name.

Strežnik naj dovoli priklop le z uporabo protokola TLS 1.2 in kombinacijo naslednjih algoritmov ter dolžin ključev:

  • ECDHE za izmenjavo ključev
  • RSA
  • AES z 128 bitnim ključem in uporabo GCM
  • SHA256 za računanje HMAC

Takšen kandidat je le eden - ciphersuite.info

V jeziku Python (uporablja knjižnico OpenSSL) se za isti nabor uporablja niz "ECDHE-RSA-AES128-GCM-SHA256"

Za Python3 uporabite metodo na SSL kontekstu ctx.set_ciphers().

Oddaja naloge

Oddati morate datoteko ZIP (ne uporabljajte drugih kompresij!), ki vsebuje vašo implementacijo pogovornega strežnika in odjemalca. Oddana datoteka naj vsebuje tudi vse zgenerirane ključe.

Za pozitivno oceno: - mora delovati pošiljanje sporočil (vsaj javnih); - med odjemalci in strežnikom se morajo podatki prenašati po kriptirani povezavi; - za identifikacijo uporabnika se mora uporabiti vrednost polja Common Name iz njegovega digitalnega certifikata.


Zadnja posodobitev: May 22, 2022