Re: Prywatnosc.

Autor: adasiek <podolany_at_poczta.wp.pl>
Data: Thu 03 Aug 2006 - 01:39:35 MET DST
Message-ID: <Xns981410CBF613Aadasiek.podolany.net@127.0.0.1>

habros <habros@op.pl> wrote in news:eaqpg6$ske$1@news.onet.pl:

> Czy bedac podpietym do neostrady poprzez serwer znajomego (lacze
> dzielone w sumie na 4 osoby) mam szanse zachowac odrobine prywatnosci?W
> istocie chodzim mi o katalog document and settings gdzie mam
> przechowywana korespondencje.

Jak zapewne wiesz, Twoj komputer ma adres IPv4. Na tym adresie
system operacyjny obsluguje protokoly rodziny TCP/IP. Generalnie
sa trzy protokoly: TCP, UDP i ICMP. Byc moze na tym poziomie sa
jeszcze jakies inne, ale jezeli tak jest to sa one bardzo malo
popularne.

Protokoly TCP i UDP charakteryzuja sie tzw. gniazdami. W kazdym
z nich jest 65535 gniazd. Komunikacja sieciowa polega na tym, ze
Twoj komputer otwiera u siebie gniazdo nazwijmy to "do wysylania"
wybiera adres IP jakiegos odleglego serwera, wybiera numer gniazda
na nim i wysyla pakiet dolaczajac do niego swoj adres IP. Czyli
mamy taka czworke: port zrodlowy, adres zrodlowy, port docelowy,
adres docelowy. Pierwszym warunkiem aby transmisja mogla w ogole
sie odbyc jest to, ze komputer docelowy musi akceptowac polaczenia
na porcie docelowym - czyli musi miec to gniazdo otwarte w trybie
nazwijmy to "nasluchujacym". Drugi warunek jest oczywiscie taki,
ze pakiety musza umiec przejsc cala droge "od-do" i czasami jest
pozadane (a w TCP wymagane) zeby mogly wrocic. Ogolnie jest tak,
ze TCP jest protokolem "polaczeniowym" - tj. wymaga informacji
zwrotnej o powodzeniu dostarczenia wiadomosci. Pakiety UDP mozna
po prostu "wypchnac" i nie interesowac sie dalej ich losem (w ten
sposob realizowane sa wszelkie transmisje strumieniowe - telewizja
internetowa, radio, etc.)

Protokol ICMP jest to protokol kontrolnym. W przeciwienstwie do
TCP i UDP, ktore zostaly zaprojektowane do przenoszenia danych
tzw. "uzytecznych". Pingi to wlasnie komunikaty ICMP. Ogolnie nie
nalezy sie spodziewac, ze ktokolwiek chcialby wykorzystywac ICMP
do przesylania danych uzytecznych aczkolwiek nie jest to wykluczone.
Mozna upchac dane do komunikatow ICMP. No i w wypadku ICMP nie
ma czegos takiego jak numer gniazda. Jest tylko docelowy adres IP.

Sprawa wyglada tak, ze jezeli cokolwiek ma opuszczac lub przychodzic
do Twojego komputera, musi korzystac z protokolow TCP lub UDP. Tak
jak napisalem wyzej - mozna pakowac dane do ICMP ale to sie raczej
nie zdarza.

Standardowo skonfigurowany Windows ma uruchomione uslugi chociazby
otoczenia sieciowego. Dzialaja one za pomoca microsoftowego protokolu
NetBIOS, ktory jest transportowany wewnatrz TCP. Komunikacja NetBIOS
jest widoczna na karcie sieciowej jako specyficzne polaczenia TCP.
Mozesz uruchomic sobie cmd.exe i wydac polecenie "netstat -a".
Zobaczysz tam wpisy podobne do tych:

  Protokół Adres lokalny Obcy adres Stan
  TCP 0.0.0.0:135 0.0.0.0:0 NASŁUCHIWANIE
  TCP 0.0.0.0:445 0.0.0.0:0 NASŁUCHIWANIE

To sa nasluchujace gniazda NetBIOS. Gdybys takie polecenie wydal
na serwerze WWW (np. na serwerach typu www.gazeta.pl) to w pewnym
uproszeczeniu mialbys tam taki wpis:

  Protokół Adres lokalny Obcy adres Stan
  TCP 0.0.0.0:80 0.0.0.0:0 NASŁUCHIWANIE

Jezeli masz otwarte (nasluchujace) porty NetBIOS jest to juz pierwszy
krok do tego, zeby ktos mogl przegladac Twoje otoczenie sieciowe - np.
udostepnione dyski, drukarki, etc. Zatem dobrym pomyslem moze byc takie
skonfigurowanie firewalla, zeby dropowal (drop czyli pakiet ginie i nie
jest generowana informacja zwrotna, ze zostal zablkowany) wszelkie
pakiety przychodzace na te porty. Poniewaz calosc udostepniania plikow
jest realizowana po NetBIOS, zablkowania tych portow rozwiaze ten problem.

To jednak nie koniec. Mozesz miec na komputerze zainstalowane inne
programy, ktore tez "wystawiaja" otwarte porty - takimi programami
jest np. skype, eMule - jest to cala gama programow. W dzisiejszych
czasach duzo roznego softu wystawia otwarte porty. Mozna ich uzyc
przede wszystkim w celu do ktorego zostaly stworzone - np. port eMule
do polaczenia sie z Twoim eMule i wykorzystywania funkcjonalnosci
eMule. Jednak zdarza sie, ze uslugi nasluchujace na tych portach sa
zle napisane - tzw. "dziurawe" i wtedy ktos moze uzyc ich do celu,
ktory nie byl przewidywany (najbardziej jaskrawym przykladem moze
byc uruchomienie shella systemu i przejecie uprawnien administratora).

Poniewaz neostrada ma jeden uzyteczny adres IP, zatem router u Twojego
kolegi musi robic tzw. translacje portow/adresow - PAT/NAT. Dodatkowo
jezeli chcialbys efektywnie korzystac z uslug nasluchujacych na Twoim
komputerze, to Twoj kolega musialby zrobic tzw. przekierowanie portow.
Czyli wywolania na adres publiczny Waszej neostrady musialby kierowac
na Twoj komputer za routerem. Biorac to pod uwage i skoro nie ufasz
swojemu koledze, mozesz ustawic na firewallu calkowita blokade ruchu
przychodzacego. I to by zalatwialo mozliwosc "wlamania" do Ciebie.
Skoro nic nie nasluchuje, to nikt sie nie wlamie.

Pozostaje jednak problem polaczen, ktore Ty inicjujesz. Droga pakietow
w momencie gdy Ty chcesz obejrzec strone WWW wyglada tak:

1) Twoj komputer o lokalnym IP generuje nastepujace pakiety TCP:
[twoj_lokalny_IP, twoj_lokalny_port, docelowy_IP, port_80, dane]
2) pakiety trafiaja na translator sieciowy (router do neostrady)
3) tworzony jest specjalny wpis w tablicy translacji na routerze:
[twoj_lokalny_IP, twoj_lokalny_port, jakis_nowy_port]
4) router do neo wysyla nastepujace pakiety TCP z publicznym IP:
[publiczny_IP_neo, jakis_nowy_port, docelowy_IP, port_80, dane];
5) pakiet wedruje po swiecie i po pewnym czasie wraca odpowiedz:
[docelowy_IP, losowy_port, publiczny_IP_neo, jakis_nowy_port, dane]
6) router przeglada tablice transalcji i poszukuje w niej wartosci
"jakis_nowy_port" - po jej znalezieniu wysyla taki pakiet:
[docelowy_IP, losowy_port, twoj_lokalny_IP, twoj_lokalny_port, dane]

W tym momencie dane sa z powrotem u Ciebie.

Istotne jest to, ze przez caly czas "dane" sa widocznie na routerze
do neostrady - mozna je podsluchac na odcinku od Twojego komputera
do routera neostrady, mozna je nawet podmieniac ;-). Oczywiscie w
tym wypadku "dane" to nie musza jakiekolwiek czytelne informacje.
Mozna uzywac protokolow aplikacyjnych (np. POP3s zamiast POP3),
ktore szyfruja Twoje uzyteczne dane tworzac z nich ladunek pakietow
TCP, ktory nie jest juz czytelny. Oczywiscie wtedy na routerze beda
widocznie "krzaki".

Pierwsza uwaga jest zatem taka, ze powinno sie uzywac szyfrowanych
protokolow aplikacyjnych - np. HTTPs, POP3s, SMTPs, etc. SSL daje
Ci gwarancje, ze cos nie zostalo podsluchane oraz ze nie zostalo
zmienione po drodze..... no z ta gwarancja to tak nie do konca, bo
mozna przeprowadzic tzw. atak man-in-the-middle, ktory polega na
tym, ze ktos przechwytuje Twoja informacje lecaca do routera od
neostrady, zmienia ja, wysyla do routera od neostrady zmienione
informacje. http://pl.wikipedia.org/wiki/Atak_man_in_the_middle
W ogolnosci atak tego typu moze spowodowac, ze szyfrowana transmisja
zostanie podsluchana i zmieniona!

Co mozna jeszcze zrobic zeby sie zabezpieczyc - ano mozesz cala
swoja komunikacje szyfrowac za pomoca IPSEC - czyli stworzyc sobie
polaczenie wirtualnej sieci prywatnej - VPN. W tym wypadku musisz
sobie znalezc serwer VPN ktoremu ufasz - moze byc to np. serwer w
pracy. W Twoim systemie operacyjnym tworzy sie wirtualna karta
sieciowa, przez ktora wysylasz i odbierasz dane. Oprogramowanie
VPN zajmuje sie szyfrowaniem tych danych i przesyla je po laczu
istniejacym. Jedyne co widzi wlasciciel routera do neostrady to
latajaca sieczka. Ma to taka zalete, ze szyfrowane jest wszystko.
Rowniez naglowki pakietow - zatem Twoj admin nie bedzie nawet w
stanie ocenic dokad wysylasz swoje dane - wszystkie pakiety beda
bowiem leciec do zaufanego serwera (np. w pracy).

Pozdrawiam wszystkich, ktorzy dobrneli do konca.
adas;
Received on Thu Aug 3 01:40:10 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Thu 03 Aug 2006 - 01:42:02 MET DST