home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 09 / ami929.txt < prev    next >
Text File  |  1997-04-07  |  15KB  |  315 lines

  1. PGP
  2.  
  3. <lead>Jednym z wielu waûnych zadaï, jakie otrzymaîy komputery po
  4. ich wynalezieniu, staîo sië szyfrowanie tekstów. Jest to praca
  5. wrëcz stworzona dla tych póîgîówków, jako ûe wymaga szybkoôci,
  6. cierpliwoôci i precyzji, a takûe, co moûe sië okazaê
  7. najwaûniejsze, dyskrecji.
  8.  
  9. <a>Kamil Iskra
  10.  
  11. <txt>Chyba najlepszym z popularnych programów kodujâcych jest PGP
  12. autorstwa Philipa R. Zimmermanna z USA. Program ten istnieje na
  13. wszystkich waûniejszych platformach sprzëtowych, ja mam wersjë
  14. 2.6.2i, którâ przeniósî na Amigë Peter Simons. Znalazîem jâ w
  15. Aminecie, w katalogu "util/crypt", archiwum zajmuje 381 KB. W
  16. Internecie moûna teû znaleúê archiwa zawierajâce kod úródîowy
  17. tego programu.
  18.  
  19. W archiwum znajdujemy sam program PGP w dwóch wersjach, dla
  20. procesorów MC68000 i MC68020, oraz dokumentacjë.
  21.  
  22. Dokumentacja programu jest doôê rozbudowana. Jej trzon stanowiâ
  23. dwa pliki tekstowe. Jeden dla poczâtkujâcych (omawiajâcy
  24. najwaûniejsze cechy programu), drugi dla zaawansowanych
  25. (opisujâcy co bardziej wymyôlne jego opcje). Dokumentacja byîa
  26. pisana raczej z myôlâ o pecetach i maszynach unixowych, ale
  27. wszystkie komputery majâ ze sobâ coô wspólnego... Oprócz tego w
  28. skîad dokumentacji wchodzâ pewne informacje dla programistów, a
  29. takûe dla pasjonatów prawa, o czym za chwilë.
  30.  
  31. Dziaîanie programu opiera sië na zasadzie kluczy publicznych. Co
  32. to takiego? Kaûdy uûytkownik PGP ma parë kluczy: sekretny i
  33. publiczny. Klucz publiczny naleûy udostëpniê reszcie ôwiata,
  34. natomiast klucz sekretny trzymaê w ukryciu i pilnowaê, ûeby nikt
  35. sië do niego nie dobraî. Klucz publiczny zawiera informacje
  36. niezbëdne do zaszyfrowania dokumentu, a sekretny -- do
  37. rozszyfrowania. Gdy ktoô chce przekazaê nam wiadomoôê, szyfruje
  38. jâ za pomocâ naszego klucza publicznego, po czym przesyîa nam.
  39. List moûe sië dostaê w niepowoîane rëce, ale to nic nie da, jako
  40. ûe tylko my mamy klucz sekretny, niezbëdny do rozkodowania
  41. wiadomoôci.
  42.  
  43. PGP instaluje sië kopiujâc zawartoôê katalogów "bin" i "doc" z
  44. archiwum do jakiegoô nowego katalogu, najlepiej oczywiôcie na
  45. twardym dysku, o ile sië go posiada. Nastëpnie naleûy utworzyê
  46. zmiennâ ôrodowiskowâ o nazwie PGPPATH, w której zapisuje sië
  47. peînâ ôcieûkë dostëpu do tego katalogu. Najproôciej to zrobiê,
  48. nagrywajâc plik ASCII, zawierajâcy ôcieûkë dostëpu w katalogu
  49. ENVARC: pod nazwâ PGPPATH (ôciôlej: tak muszâ zrobiê posiadacze
  50. OS 2.04. W OS 1.3 nie ma ENVARC:). Sam plik wykonalny PGP warto
  51. przenieôê do katalogu "C:", tak aby system zawsze go odnalazî, bez
  52. wzglëdu na to, jaki katalog byîby w danym momencie bieûâcym.
  53.  
  54. Pierwszâ rzeczâ, którâ naleûy zrobiê po instalacji programu, jest
  55. utworzenie powyûszych kluczy. Robimy to za pomocâ komendy:
  56.  
  57. <l>pgp -kg
  58.  
  59. <txt>Tworzenie klucza jest doôê skomplikowane, program jednak
  60. prowadzi nas "za râczkë". Musimy wykonaê nastëpujâce czynnoôci:
  61.  
  62. -- Ustaliê rozmiar klucza -- 512, 768 lub 1024 bity -- im
  63. wiëkszy, tym bezpieczniejszy, ale za to szyfrowanie i
  64. deszyfrowanie wolniejsze.
  65.  
  66. -- Podaê nasz identyfikator -- najlepiej imië, nazwisko i ew. adres
  67. sieciowy.
  68.  
  69. -- Podaê hasîo odbezpieczajâce nasz klucz sekretny. Uûycie tego
  70. klucza bëdzie moûliwe TYLKO po poprawnym podaniu hasîa, tak wiëc
  71. zabezpiecza nas to w pewnym stopniu przed jego kradzieûâ itp.
  72. Rzecz jasna, wpisywane hasîo nie ukazuje sië na ekranie. 
  73. Moûna je póúniej zmieniê.
  74.  
  75. -- Wklepaê pewnâ liczbë znaków. Jest to doôê zabawne, ale i
  76. sprytne. Program mierzy odstëpy czasowe pomiëdzy poszczególnymi
  77. wciôniëciami przycisków na klawiaturze, na ich podstawie generuje
  78. potem klucz -- taki sposób gwarantuje peînâ losowoôê uzyskanego
  79. wyniku, nieosiâgalnâ algorytmicznie (i jak tu nie powiedzieê,
  80. ûe komputery sâ gîupie?).
  81.  
  82. Nie napisaîem wczeôniej, ûe PGP nie ma graficznego interfejsu
  83. uûytkownika. Jest to oczywiôcie pewna wada, ale dziëki temu
  84. program jest niemal taki sam na wszystkich platformach, a i
  85. przenoszenie programu pomiëdzy róûnymi platformami nie sprawia
  86. wiëkszych kîopotów.
  87.  
  88. Kolejnâ rzeczâ, którâ naleûy zrobiê, jest skonfigurowanie
  89. programu. Robimy to edytujâc plik "config.txt", znajdujâcy sië w
  90. katalogu, w którym zainstalowaliômy pakiet PGP. Przede wszystkim
  91. warto zmieniê linië "MyName", wpisujâc po znaku równoôci nasz
  92. identyfikator. O ile zamierzamy przesyîaê zakodowane listy z
  93. uûyciem poczty elektronicznej, to warto teû usunâê znak
  94. komentarza (#) sprzed linii "Armor=on". Spowoduje to, ûe
  95. zakodowany plik nie bëdzie miaî ûadnych znaków "binarnych", które
  96. nie mogâ byê przekazywane e-mailem.
  97.  
  98. Jesteômy wiëc gotowi do zakodowania pierwszego listu. Robi sië to
  99. za pomocâ komendy:
  100.  
  101. <l>pgp -e nazwa_pliku
  102.  
  103. <txt>Program prosi o podanie, dla kogo jest przeznaczona
  104. wiadomoôê. Wystarczy zwykle podaê pierwsze sîowo identyfikatora
  105. -- do zaszyfrowania zostanie uûyty klucz publiczny tej osoby
  106. (skâd go wziâê, o tym za chwilë). Po chwili program zakoïczy
  107. pracë, jej rezultatem bëdzie zakodowany plik, o nazwie takiej
  108. samej, jak nazwa pliku úródîowego, z koïcówkâ ".asc" bâdú ".pgp"
  109. (w zaleûnoôci od tego, jak skonfigurowano program).
  110.  
  111. Otrzymany plik jest zazwyczaj krótszy od oryginaîu. Ten "fenomen"
  112. uzyskuje sië w bardzo prosty sposób: plik jest przed
  113. zaszyfrowaniem kompresowany. Utrudnia to dodatkowo ewentualnâ
  114. próbë zîamania szyfru, jako ûe odpada jedna z klasycznych metod,
  115. polegajâcych na zakîadaniu procentowej "zawartoôci"
  116. poszczególnych znaków w tekôcie, np. w jëzyku angielskim
  117. najpopularniejszâ literâ jest ponoê "e" -- po kompresji
  118. ulega to, oczywiôcie, zmianom.
  119.  
  120. W celu rozszyfrowania wiadomoôci wystarczy napisaê:
  121.  
  122. <l>pgp nazwa_pliku
  123.  
  124. <txt>Naleûy oczywiôcie mieê wîaôciwy klucz sekretny -- informacja
  125. o tym, dla kogo jest przeznaczona wiadomoôê, jest zapisana w
  126. pliku. Jeûeli ktoô "grzebaî" w zakodowanym pliku, tzn. zmieniî
  127. coô w jego zawartoôci, to PGP wykryje to i poinformuje nas o tym.
  128.  
  129. PGP umoûliwia równieû "podpisanie" wiadomoôci. Bywa to przydatne
  130. do zaôwiadczenia, ûe to my, a nie ktoô inny, wysîaî jakiô list.
  131. Robimy to za pomocâ komendy:
  132.  
  133. <l>pgp -s nazwa_pliku
  134.  
  135. <txt>Powoduje ona, ûe wiadomoôê jest szyfrowana z uûyciem naszego
  136. klucza sekretnego. Kaûdy posiadacz naszego klucza publicznego
  137. moûe jâ rozkodowaê, a podczas rozkodowywania ukaûe sië komunikat
  138. o tym, kto zakodowaî tekst.
  139.  
  140. Tak otrzymany "podpisany" plik jest jednak zakodowany. Chcâc go
  141. przeczytaê, trzeba go rozkodowaê. Raz, ûe na wolnych komputerach
  142. chwilë to trwa, dwa, ûe nie zawsze zaleûy nam na sprawdzeniu
  143. sygnatury (podpisu). Moûemy wiëc podczas "podpisywania" uûyê
  144. opcji "-t" (lub napisaê "TextMode=on" w pliku konfiguracyjnym),
  145. co spowoduje, ûe sam tekst nie zostanie zakodowany; w pierwszej
  146. linijce pliku wynikowego bëdzie sië znajdowaî tekst:
  147.  
  148. <l>-----BEGIN PGP SIGNED MESSAGE-----
  149.  
  150. <txt>W ostatnich zaô kilku linijkach -- sygnatura. Jest ona
  151. zaleûna od zawartoôci tekstu, jeûeli wiëc ktoô dokona w tekôcie
  152. jakichô zmian, a my sprawdzimy sygnaturë (wpisujâc "pgp
  153. nazwa_pliku"), to program wykryje to i poinformuje:
  154.  
  155. <l>WARNING: Bad signature, doesn't match file contents!
  156.  
  157. <txt>Istnieje moûliwoôê poîâczenia podpisywania z szyfrowaniem --
  158. wystarczy podaê komendë:
  159.  
  160. <l>pgp -es nazwa_pliku
  161.  
  162. <txt>Powoduje ona podpisanie wiadomoôci naszym kluczem sekretnym,
  163. a nastëpnie jej zakodowanie z uûyciem klucza publicznego
  164. odbiorcy.
  165.  
  166. Pisaîem o uûywaniu cudzych kluczy publicznych. Jak je
  167. zainstalowaê? Robi sië to za pomocâ komendy:
  168.  
  169. <l>pgp -ka nazwa_pliku_z_kluczem
  170.  
  171. <txt>Dodawanie nowego klucza jest doôê zîoûone, ale równieû i w
  172. tym momencie program prowadzi nas "za râczkë":
  173.  
  174. -- Zwykle program stwierdza, ûe nowy klucz nie jest "pewny". Otóû
  175. klucze mogâ mieê tzw. certyfikaty od innych uûytkowników. Oznacza
  176. to potwierdzenie uûytkowników, ûe klucz jest oryginalny i
  177. rzeczywiôcie naleûy do danego osobnika. Jeûeli mamy klucze
  178. publiczne tych "potwierdzajâcych" uûytkowników i ustaliliômy, ûe
  179. ufamy im (o tym za chwilë), to program bez ûadnych wâtpliwoôci
  180. instaluje klucz. Jeûeli tak nie jest, to program pyta nas o
  181. zdanie, umoûliwiajâc potwierdzenie autentycznoôci klucza przez
  182. nas samych (moûna to zrobiê bez obaw, jeûeli klucz otrzymaliômy
  183. bezpoôrednio od jego wîaôciciela lub z innego pewnego úródîa).
  184.  
  185. -- Program pyta, w jakim stopniu ufamy wîaôcicielowi wîaônie
  186. instalowanego klucza publicznego. Jest to uûywane do
  187. potwierdzania autentycznoôci cudzych kluczy publicznych,
  188. posiadajâcych certyfikat tego uûytkownika. Jeûeli ustalimy, ûe
  189. ufamy mu caîkowicie, to wystarczy tylko certyfikat tego jednego
  190. uûytkownika pod cudzym kluczem publicznym, aby PGP zaakceptowaî
  191. go bez zastrzeûeï; jeûeli ustalimy, ûe ufamy mu "zwykle", to
  192. program bëdzie wymagaî dwóch certyfikatów od takich uûytkowników,
  193. aby uznaê klucz za autentyczny (te wartoôci moûna zmieniê w pliku
  194. konfiguracyjnym). Moûemy teû ustaliê, ûe danemu uûytkownikowi nie
  195. ufamy wcale, albo ûe nie wiemy, czy moûemy mu ufaê.
  196.  
  197. Klucz zostaje dodany do pliku "pubring.pgp". Z pliku tego moûna
  198. równieû skopiowaê klucze "na zewnâtrz", w szczególnoôci nasz
  199. klucz publiczny, aby móc go przekazaê innym:
  200.  
  201. <l>pgp -kx
  202.  
  203. <txt>Program pyta o to, czyj klucz ma "wyeksportowaê" oraz o
  204. nazwë pliku docelowego.
  205.  
  206. Nasz klucz publiczny najlepiej umieôciê w jakimô "îatwo
  207. dostëpnym" miejscu. Istniejâ np. w Internecie tzw. key-servery,
  208. które zajmujâ sië wîaônie przechowywaniem i udostëpnianiem kluczy
  209. publicznych. Innym rozwiâzaniem, przeze mnie stosowanym, jest
  210. udostëpnienie klucza za pomocâ "fingera". Wiem, ûe wiëkszoôê z
  211. Was nie zna Unixa, wiëc parë sîów wyjaônienia: "finger" to
  212. komenda Unixa, udzielajâca informacji o podanym w parametrze
  213. uûytkowniku (przykîadowe wywoîanie: "finger
  214. iskra@student.uci.agh.edu.pl"). Udzielane informacje to zwykle
  215. imië i nazwisko uûytkownika, data ostatniego zalogowania i liczba
  216. nie przeczytanych listów; moûna teû stworzyê plik, który zostanie
  217. wyôwietlony na ekranie "nagabywacza" (tzw. plan) -- w tym wîaônie
  218. pliku umieôciîem mój klucz publiczny.
  219.  
  220. Pojawia sië pytanie, jak bezpieczny jest PGP? Informacja, ûe
  221. zostaî on napisany przez zawodowego kryptografa to juû coô,
  222. ale... przecieû autor udostëpniî kod úródîowy, wiëc wystarczy go
  223. przeanalizowaê, aby zrozumieê zasadë dziaîania programu i
  224. wymyôliê sposób na jego zîamanie, nie? Otóû NIE. PORZÂDNE
  225. algorytmy kodujâce nie bojâ sië jawnoôci. PGP opiera sië na
  226. algorytmie RSA, który jest, zgodnie z naszâ dzisiejszâ wiedzâ,
  227. praktycznie niemoûliwy do zîamania. Nie wdajâc sië w
  228. algorytmiczne zawiîoôci (sam nie znam ich zbyt dokîadnie)
  229. wystarczy powiedzieê, ûe w kluczu sekretnym sâ przechowywane dwie
  230. bardzo duûe liczby pierwsze (majâce nawet kilkaset cyfr), a w
  231. kluczu publicznym ich iloczyn. Wspóîczesna algorytmika nie zna
  232. efektywnych metod znajdowania podzielników danej liczby -- czas
  233. wykonywania znanych algorytmów roônie wykîadniczo wraz z iloôciâ
  234. cyfr sprawdzanej liczby. Z drugiej strony, nie udaîo sië
  235. matematycznie udowodniê, ûe szybszy algorytm nie moûe istnieê.
  236. Nie moûna wiëc wykluczyê, ûe taki algorytm jednak kiedyô
  237. powstanie, a wtedy kaûdy klucz publiczny moûna bëdzie zîamaê w
  238. ciâgu uîamka sekundy... Póki co, moûna jednak spaê spokojnie.
  239. Nie tak dawno obiegîa wprawdzie Internet wiadomoôê o "zîamaniu
  240. RSA", okazaîa sië ona jednak nie do koïca prawdziwa. Owszem,
  241. udaîo sië zîamaê POJEDYNCZY klucz publiczny (nie wiem, niestety,
  242. ile miaî bitów), wymagaîo to jednak zaangaûowania tysiëcy szybkich
  243. komputerów na caîym ôwiecie na czasu kilku miesiëcy.
  244.  
  245. To mógîby juû byê wîaôciwie koniec tego artykuîu, gdyby nie
  246. jeszcze jedna interesujâca sprawa zwiâzana z PGP. Nie jest to
  247. jednak sprawa natury komputerowej, ale raczej prawnej.
  248.  
  249. Pierwszym problemem jest to, ûe autor PGP uûyî algorytmów
  250. kodujâcych RSA bez zgody ich autorów, tîumaczâc sië póúniej, ûe
  251. wprowadziî do nich pewne udoskonalenia, wiëc wîaôciwie nie uûyî
  252. "oryginaîów". Ta sprawa zostaîa jednak rozwiâzana polubownie --
  253. wersje PGP od 2.6 w górë uûywajâ w peîni legalnych,
  254. opatentowanych w USA procedur RSA, tzw. RSAREF. Okazaîo sië
  255. jednak, ûe sâ one wolniejsze od napisanych przez Zimmermanna,
  256. dlatego teû poza USA uûywa sië tych drugich -- patent RSA
  257. obejmuje tylko USA. Nie ma to wiëkszego znaczenia dla
  258. uûytkownika, bo oba algorytmy sâ ze sobâ zgodne. To "i" w wersji
  259. PGP (2.6.2i) oznacza wîaônie "International" -- wersjë nie
  260. uûywajâcâ RSAREF.
  261.  
  262. Duûo gorzej przedstawia sië sprawa "eksportu zaawansowanych
  263. technologii szyfrujâcych poza granice USA". Otóû w USA, skâd
  264. pochodzi autor PGP, obowiâzuje prawo, wedîug którego nie wolno
  265. bez zgody jakichô tam wysokich organów wywoziê za granicë
  266. zaawansowanych technologii szyfrujâcych. Tymczasem PGP
  267. rozprzestrzeniî sië na caîy ôwiat. Autor broni sië tu twierdzâc,
  268. ûe on nikomu za granicë programu nie przesîaî -- ûe program
  269. "przeciekî" przez granicë dziëki Internetowi. Dyskusyjne wydaje
  270. sië w ogóle to, czy powyûszy przepis powinien sië stosowaê do
  271. PGP. Jak rozumiem, ustawa ta powstaîa z myôlâ o jakichô tajnych
  272. szyfrach uûywanych przez armië. PGP jest zaô jak najbardziej
  273. jawny, kaûdy moûe go uûywaê, modyfikowaê itp. Urzëdnicy wydajâ
  274. sië byê jednak nieugiëci i przeciw Philipowi Zimmermannowi toczy
  275. sië ôledztwo. Zawdziëcza on to chyba w duûej mierze swojej
  276. arogancji.
  277.  
  278. Otóû NSA, czyli Narodowa Agencja Bezpieczeïstwa,
  279. "zaleca" producentom sprzëtu i oprogramowania szyfrujâcego
  280. "uzgadnianie" z niâ nowych rozwiâzaï, które chcieliby oni
  281. wprowadziê na rynek. Ta sama NSA zajmuje sië PODSÎUCHIWANIEM
  282. obywateli -- jest wiëc oczywiste, ûe zatwierdza ona tylko w miarë
  283. proste algorytmy, doôê îatwe do zîamania, aby nie mieê póúniej
  284. zbyt wiele roboty przy podsîuchiwaniu jakichô szefów mafii.
  285. Doszîo nawet do tego, ûe ukîad scalony stosowany w "bezpiecznych"
  286. telefonach i faksach do kodowania, o nazwie "Clipper", ma
  287. specjalne, przewidziane konstrukcyjnie, "wejôcie", uîatwiajâce
  288. NSA montowanie podsîuchu! Philip Zimmermann powiedziaî zaô: "NIE!
  289. Ja mam konstytucyjnie zagwarantowane prawo do prywatnoôci mojej
  290. korespondencji i mam zamiar je sobie zapewniê"! Odnoszë wraûenie,
  291. ûe rzâd USA chce odstraszyê innych od pójôcia w ôlady Zimmermanna
  292. i dlatego pod pierwszym lepszym pretekstem chce wytoczyê mu
  293. proces. "Dziëki" caîej tej aferze PGP przestaî byê îatwo
  294. dostëpny: nowe wersje, rozwijane przez ludzi z MIT (Massachusetts
  295. Institute of Technology), sâ dostëpne tylko dla mieszkaïców USA
  296. (po prostu po poîâczeniu sië z ich serwerem sprawdza on, skâd
  297. pochodzi "dzwoniâcy"). PGP, a wraz z nim niemal caîy katalog
  298. "util/crypt", zniknâî równieû ze wszystkich serwerów Aminetu,
  299. znajdujâcych sië na terenie USA, pozostaî jednak na innych
  300. serwerach, np. w niemieckim "ftp.uni-paderborn.de".
  301. Zabezpieczenie nie jest szczelne i nowe wersje PGP przeciekajâ
  302. przez granicë, tak staîo sië choêby z opisanâ przeze mnie
  303. 2.6.2. Nie moûna jednak powiedzieê, ûe jej uûywanie jest
  304. nielegalne. Nielegalne byîo tylko jej przemycenie. Przepisy
  305. prawne USA nie obowiâzujâ poza granicami tego païstwa, wiëc
  306. uûywanie przemyconej wersji, choêby w Polsce, jest w peîni
  307. legalne.
  308.  
  309. A Philip Zimmermann oczekuje w tym momencie na proces,
  310. organizujâc grupë doôwiadczonych adwokatów. Wymaga to jednak
  311. ogromnych pieniëdzy, rzesze uûytkowników jego programu starajâ
  312. sië wiëc pomóc mu w ich zgromadzeniu -- jeûeli moûemy, pomóûmy i
  313. my. Ze swej strony mogë obiecaê, ûe caîoôê honorarium uzyskanego
  314. za ten artykuî postaram sië przekazaê na ten cel.
  315.