home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / Chip_2001-06_cd1.bin / obsahy / Chip_txt / txt / 164-167.txt < prev    next >
Text File  |  2001-04-29  |  17KB  |  121 lines

  1. ┌tok na privßtnφ podpisovΘ klφΦe PGP
  2. CZECH ATTACK
  3. Tiskovß konference spoleΦnosti ICZ ze dne 20. b°ezna 2001 opravdu nez∙stala bez povÜimnutφ. Dva ΦeÜtφ kryptologovΘ (kterΘ dob°e znßte z jejich pravideln²ch p°φsp∞vk∙ v Chipu) na nφ novinß°∙m a odbornΘ ve°ejnosti oficißln∞ oznßmili sv∙j objev t²kajφcφ se bezpeΦnostnφ chyby v PGP. Na rozdφl od v∞tÜiny informacφ v neodborn²ch mΘdiφch mßte nynφ v Chipu mo₧nost dozv∞d∞t se o tΘto zßle₧itosti nezkreslenß fakta, a to p°φmo z prvnφ ruky - od obou autor∙.
  4.  
  5. Inu, tak se nßm poda°ilo ud∞lat p∞kn² rozruch ve sv∞t∞ i na domßcφ politickΘ scΘn∞. N∞kter²m novinß°∙m se toti₧ zdßlo, ₧e v ohro₧enφ je elektronick² podpis jako takov², ve svΘ obecnosti - a byl z toho dost velk² poprask. Ve skuteΦnosti se poda°ilo n∞co jinΘho, ovÜem velmi zajφmavΘho, a jsme rßdi, ₧e vßm to koneΦn∞ m∙₧eme podrobn∞ji vysv∞tlit, proto₧e "t∞ch prav²ch vykladaΦ∙" mßme, mφrn∞ °eΦeno, u₧ dost.
  6.  
  7. OΦ vlastn∞ Ülo?
  8. Objevili jsme ·tok na privßtnφ podpisovΘ klφΦe formßtu OpenPGP a program∙ PGP. Proto₧e na sv∞t∞ program PGP ·dajn∞ pou₧φvß asi 10 milion∙ lidφ, neÜlo jen tak o maliΦkost. (PGP je registrovanß obchodnφ znaΦka Network Associates, Inc., vÜechny ostatnφ registrovanΘ a neregistrovanΘ obchodnφ znaΦky v tomto Φlßnku jsou majetkem odpovφdajφcφch vlastnφk∙.) 
  9. Formßt OpenPGP byl definovßn v dokumentu RFC2440 z roku 1998 s cφlem poskytnout programßtor∙m vÜechny nezbytnΘ informace, aby na jeho bßzi mohly b²t vytvß°eny dalÜφ kompatibilnφ aplikace s programem PGP, kter² ho sßm pou₧φvß. Poukßzali jsme na zßva₧nou chybu, kterß spoΦφvß v nedostateΦnΘm zajiÜt∞nφ integrity ve°ejn²ch i privßtnφch Φßstφ podpisov²ch klφΦ∙ algoritm∙ DSA a RSA v tomto formßtu, a ukßzali jsme, ₧e m∙₧e b²t vyu₧ita k odhalenφ privßtnφho podpisovΘho klφΦe. 
  10. Aby byl privßtnφ klφΦ chrßn∞n, je jeho hodnota ulo₧ena do privßtnφ "klφΦenky" (souboru secring.skr) v zaÜifrovanΘm tvaru (jeÜt∞ jednou zd∙raz≥ujeme, ₧e je tam zaÜifrovßn). K zaÜifrovßnφ je pou₧ita u₧ivatelem zvolenß silnß symetrickß Üifra (AES, CAST5, IDEA) s dostateΦn∞ dlouh²m klφΦem. Ten je odvozen od tajnΘho p°φstupovΘho hesla, kterΘ znß jen u₧ivatel (°φkejme mu password, ale p°esn∞ji je to "passphrase", klφΦovß p°φstupovß v∞ta - ostatn∞ m∙₧e to b²t skuteΦn∞ velmi dlouhß v∞ta). Ukßzali jsme, ₧e pokud ·toΦnφk mß p°φstup k souboru secring.skr (zd∙razn∞me, ₧e p°φstup se po₧aduje pouze v dob∞, kdy je tam privßtnφ klφΦ ulo₧en v zaÜifrovanΘm tvaru), m∙₧e za urΦit²ch podmφnek (jak uvidφme, nejsou nijak p°ehnanΘ) zφskat privßtnφ podpisov² klφΦ u₧ivatele, ani₧ by znal jeho p°φstupovΘ heslo nebo proti n∞mu ·toΦil. 
  11. ┌tok spoΦφvß ve specißlnφ modifikaci (ve°ejn²ch) parametr∙ podpisovΘho algoritmu (u DSA) nebo ÜifrovΘho obrazu privßtnφho klφΦe (u RSA) a zφskßnφ podpisu libovolnΘho souboru (nebo e-mailovΘ zprßvy) takto modifikovan²m podpisov²m klφΦem. Ukazujeme, ₧e pak je ·toΦnφk schopen vypoΦφtat privßtnφ podepisovacφ klφΦ. Proto₧e soubor secring.skr m∙₧e ·toΦnφk po zßm∞n∞ uvΘst zp∞t do p∙vodnφho stavu, je ·tok velmi nebezpeΦn². Ve stejnΘm ohro₧enφ jsou i privßtnφ klφΦe p°enßÜenΘ v zaÜifrovanΘm tvaru na disketßch nebo po sφti.
  12. ┌tok jsme prakticky ov∞°ili na nejnov∞jÜφ verzi programu PGP 7.0.3 s kombinacφ algoritm∙ AES a  DH/DSS. V²sledkem bylo zφskßnφ privßtnφho podpisovΘho klφΦe algoritmu DSA. V technickΘ zprßv∞ (najdete ji takΘ v rubrice Chip Plus na Chip CD 5/01) jsme samoz°ejm∞ navrhli krßtkodobß i dlouhodobß kryptografickß opat°enφ pro opravu formßtu OpenPGP a zm∞ny v programu PGP. Podrobnou revizφ ale musφ projφt vÜechny dalÜφ aplikace, kterΘ jsou s formßtem OpenPGP kompatibilnφ. Jednß se nap°φklad o GNU Privacy Guard a dalÜφ, uvedenΘ na seznamu aplikacφ kompatibilnφch s OpenPGP, kterΘ jsou vyjmenovßny na http://www.pgpi.org/products. K tomu takΘ postupn∞ dochßzφ a informace o tom jsou pr∙b∞₧n∞ aktualizovßny na www.i.cz a dalÜφch. 
  13.  
  14. S Φφm jsme Üli "na zteΦ"
  15. ICZ attack, Czech attack, Rosa and Klima attack - takovΘ nßzvy u₧ si nßÜ poΦin vyslou₧il v kryptologickΘm sv∞t∞. NaÜe technickß zprßva popisuje celkem t°i typy ·tok∙ (jeden na DSA, dva na RSA), s jejich₧ podstatou vßs dßle seznßmφme. Ne₧ se na n∞ podφvßme podrobn∞ji, osv∞₧me si v pam∞ti postup vytvß°enφ klφΦovΘho pßru a podpisu pomocφ 1024bitovΘho algoritmu DSA a postup verifikace podpisu. 
  16. Vytvß°enφ klφΦovΘho pßru
  17. Ka₧d² u₧ivatel vygeneruje privßtnφ a ve°ejn² klφΦ nßsledujφcφm postupem:
  18. Zvol 160bitovΘ prvoΦφslo q tak, ₧e 2159 < q < 2160.
  19. Zvol 1024bitovΘ prvoΦφslo p tak, ₧e q d∞lφ (p-1) a  21023 < p < 21024.
  20. Vyber generßtor g cyklickΘ podgrupy °ßdu q v Zp* 
  21. (tj. zvolφ se prvek h ( Zp* tak, ₧e g = h(p-1)/q mod p a g ( 1, jinak se volφ jinΘ h).
  22. Vyber nßhodnΘ Φφslo x  tak, ₧e 1 ( x ( q-1.
  23. VypoΦti  y = gx mod p.
  24. Ve°ejn² klφΦ je y, ve°ejnΘ parametry jsou (p, q, g), privßtnφ klφΦ je x.
  25. Vytvß°enφ digitßlnφho podpisu
  26. U₧ivatel p°i vytvß°enφ podpisu zprßvy m (resp. jejφ haÜovacφ hodnoty h(m)) pou₧φvß sv∙j privßtnφ klφΦ x a ve°ejnΘ parametry takto:
  27. Vyber nßhodnΘ tajnΘ Φφslo k, 0 < k < q.
  28. VypoΦti r = (gk mod p) mod q.
  29. VypoΦti kInv = k-1 mod q.
  30. VypoΦti s = [kInv * ( h(m) + x*r)] mod q.
  31. Digitßlnφ podpis zprßvy m je dvojice (r, s).
  32. Verifikace digitßlnφho podpisu
  33. P°i verifikaci digitßlnφho podpisu zprßvy m pou₧ijeme ve°ejn² klφΦ spolu s ve°ejn²mi parametry signatß°e (p, q, g, y) takto:
  34. Ov∞°, ₧e 0 < r, s < q. V opaΦnΘm p°φpad∞ je podpis neplatn².
  35. VypoΦti sInv = s-1 mod q a haÜovacφ hodnotu h(m).
  36. VypoΦti u1 = sInv * h(m) mod q, u2 = sInv * r mod q.
  37. VypoΦti v = (gu1 * yu2 mod p) mod q.
  38. Podpis je platn², prßv∞ kdy₧ v = r.
  39.  
  40. ┌tok na podpisov² algoritmus DSA
  41. Po tΘto malΘ teoretickΘ pr∙prav∞ si postup ·toku na 1024bitov² algoritmus DSA popφÜeme konkrΘtn∞ tak, jak jsme ho provedli s vyu₧itφm programu PGP 7.0.3. V dalÜφm textu budeme podvr₧enΘ a na zßklad∞ nich vypoΦφtanΘ hodnoty oznaΦovat v₧dy Φßrkou. 
  42. 1. krok
  43. Zvolili jsme prvoΦφslo p┤ tak, aby m∞lo 159 bit∙ a byla tak urΦit∞ zaruΦena podmφnka p┤ < q. Je to prvnφ klφΦovß myÜlenka (vyu₧ijeme ji ve ΦtvrtΘm kroku). Dßle jsme volili p┤ ve tvaru p┤ = t*2s +1 tak, aby 2s bylo co nejv∞tÜφ Φφslo a t bylo malΘ prvoΦφslo, konkrΘtn∞ s = 151 a t = 167. Toto je druhß klφΦovß myÜlenka ·toku. Pro takto specißln∞ volenß prvoΦφsla umφme rychle °eÜit problΘm diskrΘtnφho logaritmu, tj. z rovnice r┤ = (g┤)k mod p┤ umφme snadno vypoΦφtat neznßmΘ Φφslo k, zatφmco pro p∙vodnφ sestavenφ ve°ejn²ch parametr∙ by byla tato ·loha v²poΦetn∞ nezvlßdnutelnß. Celß podstata naÜeho ·toku tak spoΦφvß v modifikaci ve°ejn²ch parametr∙ tak, ₧e ·loha vedoucφ k nalezenφ privßtnφho klφΦe se stßvß snadno °eÜitelnou.
  44. Dßle jsme zvolili Φφslo g┤ = 0x31AC8529 1FF814E6 25E4B88C 8C5047A7 DB2F0E45 tak, aby bylo generßtorem multiplikativnφ grupy Zp┤*. 
  45. 2. krok
  46. Nynφ jsme zφskali soubor secring.skr a v jeho zßznamu (Secret Key Packet) jsme vym∞nili hodnoty (p, g) za hodnoty (p┤, g┤). Upravili jsme takΘ dΘlky t∞chto Φφsel ve formßtu MPI. Tento formßt se sklßdß ze dvou dΘlkov²ch oktet∙ (bajt∙) oznaΦujφcφch poΦet platn²ch bit∙ v nßsledujφcφch oktetech a z vlastnφ hodnoty "velkΘho" Φφsla Multi-Precision Integer, kterß je ve formßtu BIG ENDIAN a je zarovnanß na celΘ oktety. A nakonec jsme zkrßtili celkovou dΘlku Secret Key Packet (dΘlkovΘ oktety na poΦßtku zßznamu) tak, aby odpovφdala kratÜφm faleÜn²m hodnotßm p┤ a g┤. Situaci ilustrujφ obrßzky: na obr. 2 jsou vyznaΦeny p∙vodnφ hodnoty, na obr. 3 hodnoty podvr₧enΘ. Dßle je vid∞t nedotΦenß oblast, kde je silnou Üifrou ochrßn∞n a nßmi zachovßn privßtnφ klφΦ x.
  47. 3. krok
  48. S takto podvr₧en²mi hodnotami jsme vyΦkali, a₧ u₧ivatel podepφÜe n∞jak² nßm znßm² soubor (zprßvu m), a zφskali jsme jeho podpis - hodnoty (r┤, s┤). Tu neznßmou nßhodnou hodnotu, kterou u₧ivatel∙v program zvolil p°i tomto podpisu, oznaΦme k (viz popis DSA v²Üe).
  49. 4. krok 
  50. V tomto kroku jsme vypoΦφtali hodnotu privßtnφho klφΦe x u₧ivatele na zßklad∞ hodnot p┤, g┤, m, r┤ a s┤. Z definice hodnoty podpisu (r┤, s┤) toti₧ vypl²vß, ₧e 
  51. (1)     r┤ = (g┤)k mod p┤ mod q, co₧ vzhledem k volb∞ p┤ < q dßvß 
  52. (1a)    r┤ = (g┤)k mod p┤
  53. a
  54. (2)     s┤ = {[k-1 mod q] * [ h(m) + x*r┤] } mod q, tedy
  55. (2a)    x = { [s┤* k - h(m)] * [(r┤)-1 mod q] }mod q.
  56. KlφΦov²m bodem je, ₧e Φφslo k umφme dφky volb∞ p┤ a g┤ vypoΦφtat z rovnice (1a). Na zßklad∞ toho pak z rovnice (2a) jen dopoΦφtßme privßtnφ klφΦ - hodnotu x. Jeho sprßvnost ov∞°φme proti hodnot∞ ve°ejnΘho klφΦe: y = gx mod p, kde y je ve°ejn² klφΦ a g, p originßlnφ u₧ivatelovy parametry.
  57. 5. krok 
  58. U₧ivateli jsme vrßtili jeho p∙vodnφ soubor secring.skr. 
  59.  
  60. ┌toky na podpisov² algoritmus RSA
  61. Zde vychßzφme ze zm∞ny ÜifrovΘho textu (nebo ve°ejnΘho parametru udßvajφcφho jeho dΘlku) v souboru secring.skr, kde jsou ulo₧eny hodnoty (d, p, q, pInv) ve struktu°e Secret Key Packet. P°ipomeneme si, ₧e modul RSA je souΦin dvou prvoΦφsel n = p*q, ve°ejn² exponent je e, d je privßtnφ exponent a Φφslo pInv = p-1 mod q slou₧φ k rychlejÜφmu v²poΦtu podpisu. Ve°ejn²m klφΦem oznaΦujeme dvojici (n,e), pro pot°eby formßtu OpenPGP se za privßtnφ klφΦ pova₧uje Φtve°ice (d, p, q, pInv). Podpis zprßvy m je vytvo°en jako s = md mod n, p°iΦem₧ se p°edpoklßdß, ₧e zprßva m u₧ je urΦit²m zp∙sobem p°edem zformßtovßna. Podpis je platn², pokud platφ m = se mod n. 
  62. P°edesφlßme, ₧e nynφ ·toΦφme na podpisov² klφΦ algoritmu RSA ve formßtu OpenPGP; programy PGP vÜak majφ navφc zabudovßny dalÜφ kontrolnφ mechanismy na integritu tohoto klφΦe p°ed jeho pou₧itφm k podpisu, proto tam tento ·tok selhßvß (pozd∞ji bylo zjiÜt∞no, ₧e v n∞kter²ch starÜφch verzφch PGP 2.6.x je ale ·tok funkΦnφ). I zde je privßtnφ klφΦ ulo₧en ve struktu°e Secret Key Packet, p°iΦem₧ v souΦasnΘ dob∞ se pou₧φvajφ verze 3 a 4 tohoto formßtu, kterΘ se liÜφ ve zp∙sobu Üifrovßnφ privßtnφch dat. 
  63. KlφΦovß myÜlenka ·toku na verzi 3 formßtu je zalo₧ena na skuteΦnosti, ₧e m∙₧eme beztrestn∞ zkrßtit dΘlku Φφsla pInv. Auto°i formßtu se domnφvali, ₧e dΘlka pInv nenφ d∙le₧itß informace, tak₧e ji ponechali ve°ejn∞ p°φstupnou, zatφmco hodnota pInv je zaÜifrovanß! Jak vyu₧φt zm∞ny pInv, si °ekneme za okam₧ik. 
  64. ┌tok na verzi 4 formßtu je slo₧it∞jÜφ. ╚tve°ice tajn²ch Φφsel ve formßtu MPI vΦetn∞ jejich dΘlkov²ch oktet∙ je opat°ena dvoubajtov²m kontrolnφm souΦtem (checksum) a toto celΘ (d, p, q, pInv, checksum) je pak zaÜifrovßno. Kontrolnφ souΦet je poΦφtßn jako checksum = (d1 + d2 + ...+ dn) mod 65536 , kde di jsou chrßn∞nß data, a k Üifrovßnφ je pou₧ita u₧ivatelem zvolenß symetrickß blokovß Üifra v tzv. specifickΘm (PGP) modu CFB, jak ukazuje obrßzek 4. 
  65. ┌tok na verzi 4 formßtu Secret Key Packet jsme nazvali podlezenφm Üifry (zde AES - Rijndael), proto₧e se jednß o nevhodnou kombinaci modu Üifrovßnφ CFB a v²poΦtu hodnoty checksum. Modifikujeme toti₧ poslednφ zaÜifrovanΘ bajty pInv a checksum tak, aby checksum po odÜifrovßnφ souhlasila. Pokud pou₧ijeme blokovou Üifru s dΘlkou bloku 16 oktet∙ (tj. v p°φpad∞ AES) a modul RSA 1024 bit∙, bude v poslednφm ne·plnΘm bloku ÜifrovΘho textu osm poslednφch oktet∙ Φφsla pInv (oznaΦme je B1, B2, ..., B8) a dva oktety kontrolnφho souΦtu checksum (oznaΦme je HSum, LSum). Tato otev°enß data budou zaÜifrovßna prostou operacφ XOR s urΦit²m klφΦov²m materißlem, jak ukazuje obrßzek 4. Pokud v poslednφm bloku ÜifrovΘho textu provedeme zm∞nu typu "XOR CONST", projevφ se to p°esn∞ jako "XOR CONST" po odÜifrovßnφ v otev°enΘm textu. 
  66. P°esn² popis ·toku lze nalΘzt ve zprßv∞, zde si uve∩me alespo≥ mal² p°φklad. V zaÜifrovanΘm souboru secring.skr zkusφme zm∞nit nap°φklad poslednφ bit B8 a poslednφ bit LSum. Po odÜifrovßnφ bude pochopiteln∞ hodnota pInv naruÜena (to chceme), ale jestli₧e byly v otev°enΘm tvaru oba bity stejnΘ, po odÜifrovßnφ se ob∞ hodnoty bu∩ o jedniΦku snφ₧φ, nebo o jedniΦku zv²Üφ, tak₧e checksum naÜe naruÜenφ pInv nepoznß a bude v po°ßdku. Pokud to nevyjde, zkouÜφme to s dalÜφmi bity (i jinak, viz zprßva). NicmΘn∞ v pr∙m∞ru dva pokusy by m∞ly staΦit, abychom byli ·sp∞Ünφ. V²sledkem tΘto zm∞ny je naruÜenφ hodnoty pInv. Ve zprßv∞ je pak ukßzßno, jak lze z podpisu s naruÜenou hodnotou pInv vypoΦφtat privßtnφ klφΦ RSA!
  67. DalÜφ mo₧nosti ·tok∙
  68. Dßle je nutnΘ poznamenat, ₧e krom∞ privßtnφ klφΦenky secring.skr lze stejn²m zp∙sobem ·toΦit i na privßtnφ klφΦ exportovan² do souboru typu ASCII Key File a p°enßÜen² potom prost°ednictvφm sφt∞ nebo na disket∞. 
  69.  
  70. Navr₧enß p°echodnß protiopat°enφ
  71. Odstranit hlavnφ p°φΦinu prezentovan²ch ·tok∙, kterou je nedostateΦnß kontrola integrity ve°ejn²ch i privßtnφch dat v souboru obsahujφcφm privßtnφ klφΦ u₧ivatele, nemusφ b²t jednoduchΘ. Proto jsme do doby, ne₧ dojde k ·prav∞ formßtu OpenPGP, navrhli p°echodnß opat°enφ (bereme je jako "krizovß", nikoli tedy tak, ₧e by hlavnφ p°φΦinu vy°eÜila). Lze je p°echodn∞ pou₧φt v programech PGP a dalÜφch, kterΘ implementujφ formßt OpenPGP. K operaci vlastnφho podpisu p°itom smφ b²t pou₧it jen takov² klφΦ, jeho₧ hodnoty projdou nßsledujφcφm testem. 
  72. P°echodn² test pro DSA
  73. p, q, g, x, y > 0
  74. p je lichΘ, q je lichΘ
  75. 2159 < q < 2160
  76. 1 < g < p
  77. 1 < y < p
  78. x < q
  79. q d∞lφ (p-1)
  80. gq mod p = 1
  81. gx mod p = y
  82. P°echodn² test pro RSA
  83. e*d mod (p - 1) = 1
  84. e*d mod (q - 1) = 1
  85. pInv * p (mod q) = 1
  86. n (ze zßznamu ve°ejnΘho klφΦe) = p*q 
  87. e ( E, kde E je mno₧ina mo₧n²ch hodnot plßnovan²ch pro e, tj. pro PGP nap°φklad {17, 65537,...} 
  88. Poznamenejme, ₧e v programu PGP jsou kontroly 1 a₧ 4 a n∞kterΘ dalÜφ implementovßny. Ve formßtu OpenPGP vÜak tyto kontroly uva₧ovßny nejsou.
  89.  
  90. DalÜφ nßm∞ty pro formßt OpenPGP 
  91. Zde uvßdφme dalÜφ nßm∞ty, kterΘ nßs napadly po prvnφm seznßmenφ s formßtem OpenPGP (zßznam Secret Key Packet) a s programem PGP a kterΘ by rozhodn∞ p°isp∞ly ke zv²Üenφ bezpeΦnosti formßtu i programu. Je vÜak t°eba je chßpat spφÜe jako ideovß doporuΦenφ a podrobit je hlubÜφ anal²ze. Anal²za celΘho formßtu OpenPGP je vÜak mnohem obtφ₧n∞jÜφ a bohu₧el sßm formßt je tak nep°ehledn², ₧e by si zaslou₧il komplexnφ revizi. Nßmi navrhovanß opat°enφ jsou: 
  92. Modus Üifrovßnφ CFB nahradit modem CBC.
  93. Kontrolnφ souΦet checksum (suma bajt∙ modulo 65536) nahradit HMAC zalo₧en²m na SHA-1 nebo na jinΘ bezpeΦnΘ haÜovacφ funkci (nap°. SHA-256, 384, 512 apod.).
  94. Nov² kontrolnφ souΦet (HMAC):
  95. a)  uklßdat v dΘlce minimßln∞ 160 bit∙; 
  96. b) vypoΦφtßvat jej ze vÜech dat zßznamu Secret Key Packet (nejen z privßtnφch, ale i z ve°ejn²ch);
  97. c) klφΦ pou₧it² v HMAC derivovat z passphrase jin²m zp∙sobem ne₧ klφΦ pro symetrickou Üifru;
  98. d) Üifrovat v²sledn² HMAC spoleΦn∞ s privßtnφmi daty symetrickou Üifrou podobn∞, jako je to v p°φpad∞ checksum ve verzi 4 formßtu Secret Key Packet.
  99. Pro podpisovΘ schΘma RSA pou₧φvat formßt typu EMSA-PSS. Toto pravd∞podobnostnφ podpisovΘ schΘma ·Φinn∞ brßnφ ·tok∙m zalo₧en²m na chybovΘ anal²ze, kterΘ jsme vyu₧ili v naÜφ prßci.
  100.  
  101. D∙sledky pro praxi
  102. Kdokoliv, kdo dokß₧e popsan²m zp∙sobem zm∞nit soubor s privßtnφm klφΦem, je schopen na zßklad∞ jedinΘho chybnΘho podpisu zφskat hodnotu privßtnφho klφΦe u algoritm∙ DSA a RSA. K tΘto zm∞n∞ zdaleka nemusφ dojφt jen na pracovnφ stanici napadenΘho u₧ivatele. Citliv²m mφstem jsou i soubory s exportovan²mi privßtnφmi klφΦi, kterΘ u₧ivatel pou₧φvß k p°enosu mezi r∙zn²mi stanicemi. Dostane-li se k takovΘ disket∞ p°i jejφ p°eprav∞ ·toΦnφk, je bezpeΦnost u₧ivatelova privßtnφho klφΦe vß₧n∞ ohro₧ena.
  103. DalÜφ scΘnß° je mo₧nΘ pou₧φt, jestli₧e je soubor s privßtnφm klφΦem ulo₧en na sdφlenΘm za°φzenφ. Zde m∙₧e b²t ·toΦnφkem nap°φklad sprßvce serveru, kter² na urΦitou dobu u₧ivateli podstrΦφ upravenou verzi souboru secring.skr, poΦkß, a₧ jej u₧ivatel pou₧ije k podpisu (dobu lze pom∞rn∞ p°esn∞ urΦit monitorovßnφm sφ¥ovΘ aktivity u₧ivatelovy stanice), a potΘ vrßtφ zp∞t jeho p∙vodnφ obsah. 
  104. Nßmi popsan² ·tok ukazuje, ₧e v okam₧iku, kdy u₧ivatel p°φsluÜnΘho programu zjistφ, ₧e byla vygenerovßna chybnß hodnota podpisu, m∞l by se zaΦφt chovat velmi obez°etn∞. M∙₧e b²t prßvem na rozpacφch, zda se jednß o d∙sledek zßm∞rnΘho ·toku nebo "jen" o technickΘ selhßnφ. Prakticky je ale z°ejmΘ, ₧e ka₧d² soubor s neplatn²m podpisem si zasluhuje stejnou pozornost, jako by se jednalo o soubor obsahujφcφ privßtnφ klφΦ v otev°enΘm tvaru! To ovÜem p°edpoklßdß odpovφdajφcφ pΘΦi v∞novanou jeho neobnovitelnΘmu odstran∞nφ z p°φsluÜnΘ stanice, nebo dokonce serveru, co₧ m∙₧e b²t n∞kdy tvrd² o°φÜek.
  105.  
  106. Zßv∞r
  107. Poukßzali jsme na zßva₧nΘ nedostatky formßtu OpenPGP a popsali ·toky, kterΘ vedou k zφskßnφ nejcitliv∞jÜφch informacφ systΘmu. Upozor≥ujeme tφm na d∙le₧it² aspekt ochrany privßtnφch klφΦ∙ a ve°ejn²ch parametr∙ asymetrick²ch algoritm∙ v bezpeΦnostnφch systΘmech. Praktick²m p°φkladem je program PGP 7.0.3., na n∞m₧ jsme platnost hypotΘz vyzkouÜeli. Je zraniteln² pomocφ ·toku na algoritmus DSA a z pozd∞jÜφch reakcφ vyplynulo, ₧e n∞kterΘ jeho starÜφ varianty nejsou odolnΘ ani proti ·toku na algoritmus RSA. 
  108.  
  109. Vlastimil Klφma | v.klima@decros.cz
  110. TomßÜ Rosa | t.rosa@decros.cz
  111.  
  112. infotipy
  113. Formßt OpenPGP:
  114. RFC 2440: OpenPGP Message Format, IETF, November 1998
  115. Podrobnosti ·toku (technickΘ zprßvy, prezentace, FAQ ap.):
  116. http://www.i.cz
  117.  
  118.  
  119.     5/1
  120.  
  121.