Imam za zadatak napraviti malu chat aplikaciju gdje je implenetiran i jedan vid sigurnosti i zastite razmjene poruka.
Trebam napraviti chat aplikaciju za vise korisnika, pri cemu je ta komunikacija zasticena i nijedna druga osoba, kojoj nije namjenjena poruka ne moze da procita poruke.
Citat:
Napisati chat aplikaciju koja omogućava zaštićenu komunikaciju između više korisnika bez
korištenja ugrađenih klasa koje omogućavaju datu funkcionalnost. Rješenje treba implementirati
u vidu klijent-server aplikacije, pri čemu bilo koji korisnik koji je uspješno prijavljen na sistem
može razgovarati sa najviše jednim korisnikom u okviru jedne sesije, uz podršku za proizvoljan
broj istovremenih sesija (tj. nije podržan grupni chat, ali korisnik može razgovarati sa proizvoljnim
brojem korisnika pojedinačno).
Po prijavi na sistem, korisnik od servera dobija informacije o trenutno aktivnim korisnicima,
kao i sve što je potrebno za slanje poruke bilo kojem od prijavljenih korisnika. Zaštitu tajnosti,
integriteta i neporecivost komunikacije je potrebno realizovati na aplikativnom sloju OSI modela,
uz implementaciju proizvoljnog aplikativnog komunikacionog protokola. Potrebno je podržati bar
dva algoritma za enkripciju i dva algoritma za heširanje, pri čemu se za svaku sesiju slučajnim
izborom određuje koji od podržanih algoritama će biti korišten. Pažljivo izabrati odgovarajuće
algoritme za odgovarajuće faze postupka tako da se omogući sigurnost, ali i da se sačuva
efikasnost postupka kod velikih datoteka. Upotreba neadekvatnog tipa algoritama za
pogrešnu svrhu će biti tretirana kao greška.
Smatrati da je PKI infrastruktura već uspostavljena, odnosno da korisnici lokalno imaju
pristup odgovarajućim privatnim ključevima, a da sve ostalo dobijaju od servera nakon uspješne
prijave na sistem. Korisnik koji dođe u posjed presretnute poruke ne smije biti u mogućnosti da
pročita njen sadržaj, kao ni da izvrši bilo kakvu izmjenu bez detekcije od strane učesnika u
komunikaciji.
korištenja ugrađenih klasa koje omogućavaju datu funkcionalnost. Rješenje treba implementirati
u vidu klijent-server aplikacije, pri čemu bilo koji korisnik koji je uspješno prijavljen na sistem
može razgovarati sa najviše jednim korisnikom u okviru jedne sesije, uz podršku za proizvoljan
broj istovremenih sesija (tj. nije podržan grupni chat, ali korisnik može razgovarati sa proizvoljnim
brojem korisnika pojedinačno).
Po prijavi na sistem, korisnik od servera dobija informacije o trenutno aktivnim korisnicima,
kao i sve što je potrebno za slanje poruke bilo kojem od prijavljenih korisnika. Zaštitu tajnosti,
integriteta i neporecivost komunikacije je potrebno realizovati na aplikativnom sloju OSI modela,
uz implementaciju proizvoljnog aplikativnog komunikacionog protokola. Potrebno je podržati bar
dva algoritma za enkripciju i dva algoritma za heširanje, pri čemu se za svaku sesiju slučajnim
izborom određuje koji od podržanih algoritama će biti korišten. Pažljivo izabrati odgovarajuće
algoritme za odgovarajuće faze postupka tako da se omogući sigurnost, ali i da se sačuva
efikasnost postupka kod velikih datoteka. Upotreba neadekvatnog tipa algoritama za
pogrešnu svrhu će biti tretirana kao greška.
Smatrati da je PKI infrastruktura već uspostavljena, odnosno da korisnici lokalno imaju
pristup odgovarajućim privatnim ključevima, a da sve ostalo dobijaju od servera nakon uspješne
prijave na sistem. Korisnik koji dođe u posjed presretnute poruke ne smije biti u mogućnosti da
pročita njen sadržaj, kao ni da izvrši bilo kakvu izmjenu bez detekcije od strane učesnika u
komunikaciji.
Obicnu chat aplikaciju za razmjenu poruka sam vec napisao i to funkcionise. Sada treba dodati dio koji se tice sigurnosti.
Na koji nacin da klijenti razmjene kljuceve? Da li se moze koristiti digitalno potpisivanje (koristenjem asimetricnog algoritma i neke hash funkcije) radi potvrde autenticnost?
Nije mi jasan taj logicki dio, tj. nacin na koji to sve treba postaviti. Kojim algoritmom treba sifrovati poruke? Simetricnim ili asimetricnim?