P. 1
Jan Willemson: "Dokumendiformaadid ja nende turvaprobleemid"

Jan Willemson: "Dokumendiformaadid ja nende turvaprobleemid"

|Views: 37|Likes:
Published by Edmund Laugasson
Allikas - http://home.cyber.ee/jan/docform.pdf
Allikas - http://home.cyber.ee/jan/docform.pdf

More info:

Published by: Edmund Laugasson on Feb 28, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/28/2010

pdf

text

original

Dokumendiformaadid ja nende turvaprobleemid

Jan Willemson, Cybernetica 18. oktoober 2000. a.

1

Digitaalsed dokumendid: andmevahetus ja digitaalsignatuurid

¨ Sedam¨ oda, kuidas ulemaailmsed arvutiv˜ rgud oma v˜ iduk¨ iku alustasid, hakkao¨ o o a ¨ sid arvutid info digitaalse t¨ otlemise k˜ rval uha rohkem tegelema ka selle info o¨ o ¨ edasikandmisega. Uks esimesi ja lihtsamaid selle valdkonna teenuseid – elektronpost – elab t¨ naseni, kuid tavalise e-maili poolt pakutav ASCII-teksti vahetamise a v˜ imalus ei rahulda kasutajaid enam ammu. Ka Eestis t¨ otatakse iga p¨ ev tuo o¨ a handete tarkvarapakettidega ning produtseeritakse v¨ ga erineva formaadiga faile, a milles sisalduvat infot kellegi teisega jagada soovitakse. Siit saavad aga alguse probleemid. Teadup¨ rast liigub digitaalne informata ¨ sioon ule v˜ rgu 1-deks ja 0-deks kodeeritult ning seega ei n¨ e dokumendi k¨ to a a tesaaja muud kui vaid bitijada, mida ta peab mingite vahenditega interpreteerima hakkama. Kust peaks dokumendi saaja teadma, mida temani j˜ udnud 1-d ja 0-d o t¨ hendavad? a Vastuse annavad tavaliselt selle bitijada v¨ lised vahendid, n¨ iteks failide laiena a did v˜ i mime-t¨ ubid, mille alusel operatsioonis¨ steem valib dokumendi k¨ sitleo u¨ u a miseks vajaliku rakenduse. Teise n¨ itena v˜ ib tuua UNIX-s¨ steemide file-k¨ su, a o u a ¨ mis uritab faili sisu j¨ rgi tema t¨ upi ara m˜ istatada, laskmata end laiendist h¨ irida. a u¨ ¨ o a ¨ b lahtiseks k¨ simus, kuidas k¨ sitseda postkasti maabunud bitiM˜ lemal juhul j¨ a o a u a ¨ ¨ jada, mille kohta ukski rakendus midagi arvata ei oska. Uheks v˜ imalikuks vaso ¨ tuseks on ainult standardsete ja uldtuntud dokumendiformaatide kasutamine digitaalses andmevahetuses; seda lahendust k¨ sitleme t¨ psemalt jaotises 2. a a 2000. aasta m¨ rtsis v˜ eti Eesti Vabariigis vastu digitaalallkirja seadus [5], a o ˜ mis lubab elektrondokumendi tema paberkolleegiga oiguslikus m˜ ttes samasse o 1

2 MILLISES FORMAADIS VAHETADA ANDMEID?

2

seisusesse t˜ sta, v˜ imaldades bitikujul esitatud andmeid sellisena ka signeerida. o o Vastavatest meetoditest ning m˜ nedest probleemidest v˜ ib huvitatud lugeja leida o o informatsiooni n¨ iteks Ahto Buldase artiklitest [1] ja [2]. Osutub, et digitaaldoa ¨ kumentide signeerimise seisukohast on dokumentide vaatlemine uldiste bitijadadena eeliseks: me ei pea hakkama v¨ lja t¨ otama eraldi meetodeid DOC-, PDF-, a o¨ Bitmap-, WAW-failide ning ka k˜ igi teiste kunagi eksisteerinud v˜ i kunagi tekkio o da v˜ ivate failiformaatide tarvis. Formaatide a priori fikseerimatus p˜ hjustab siin o o ´ aga hoopis suuremaid probleeme kui lihtsad arusaamisraskused. Neid k¨ sitleme a pikemalt jaotises 3.

2

Millises formaadis vahetada andmeid?

Kuna tarkvarat¨ ostus on arenenud turumajanduse k˜ igi hundiseaduste j¨ rgi, ei o¨ o a leidu maailmas hetkel universaalset dokumendivahetuseks kasutatavat formaati, millega k˜ ik rahul oleksid. Iga kasutaja ja iga kontor esitab soovitavale formaadile o oma n˜ udmisi, nendest johtuvalt tulekski valida saadaolevaist v˜ imalustest k˜ ige o o o paremini sobiv dokumendit¨ up. u¨ Mille alusel otsus langetada? Tiina Tamme k¨ sitleb oma magistrit¨ os [3] elekta o¨ roonilise dokumendivahetusega seotud probleeme ning toob muuhulgas v¨ lja j¨ rga a mised n˜ udmised. o 1. Elektrooniliseks andmevahetuseks kasutatav formaat peab olema avatud. ¨ 2. Ta peab olema s˜ ltumatu uhest kindlast operatsioonis¨ steemist, rakenduso u programmist v˜ i tootjast. o 3. Ta peab lubama kasutada graafikat ja muid multimeedia v˜ imalusi ning tao gama dokumentide hea kujunduse. 4. Formaat peab v˜ imaldama dokumendis sisalduva info mugavat kasutamist o (otsing, indekseerimine) ja redigeerimist. 5. Fail peab olema mahult kompaktne. 6. Formaati peab saama lihtsalt integreerida olemasolevatesse s¨ steemidesse u ja t¨ oprotsessidesse. o¨

2 MILLISES FORMAADIS VAHETADA ANDMEID?

3

Nendest kriteeriumitest l¨ htudes v˜ rdleb t¨ o autor erinevaid formaate (HTML, a o o¨ XML, PS, PDF, TEX, RTF, ASCII) ning t¨ otab v¨ lja oma (v˜ ibolla k¨ ll subjeko¨ a o u tiivsed) eelistused kasutatavate dokumendit¨ upide kohta. Tema hinnangul sobivad u¨ enamikul juhudel rakendamiseks HTML- ja PDF-failid. Loomulikult ei saa j¨ tta m¨ rkimata, et de facto kasutatakse hetkel digitaalses a a dokumendihalduses v¨ ga laialdaselt Microsoft Wordi DOC-faile. P˜ hjuseid, miks a o nii Tiina Tamme kui k¨ esoleva artikli autor seda formaati ei soovita, on mitmeid. a ¨ 1. Tegu on salajase definitsiooniga, uhe firma poolt monopoliseeritud formaadiga. See asjaolu muudab k˜ ik DOC-formaadi kasutajad s˜ ltuvaks Microo o ¨ softi tegevusest, samuti uhest kindlast operatsioonis¨ steemist. u 2. Ainus legaalne v˜ imalus DOC-formaadi t¨ otlemiseks on osta Microsofti o o¨ toode (StarOffice’i jt import-eksport-funktsioonid ei saa DOC-i definitsiooni salastatuse t˜ ttu kunagi perfektseteks). Seega sunnib DOC-failide laiao lisaatja k˜ iki oma partnereid Microsofti tooteid ostma. Samuti sunnivad o oma potentsiaalseid kaast¨ olisi sellele sammule ajakirjandusv¨ ljaanded (sh o¨ a nt A&A), kes n˜ uvad kaast¨ id DOC-formaadis. o o 3. Word soodustab WYSIWYG-redaktorina dokumentide halba vormistust (t¨ u hikutega tabuleerimine, pealkirjade vormistamine mitte headerina, vaid k¨ a sitsi kirja suurendades jne). P˜ hjalikumalt v˜ ib WYSIWYG-ideoloogia puuo o dustest lugeda Conrad Taylori suurep¨ rasest artiklist [6]. Lisaks saab sealt a ¨ ¨ hea ulevaate arvutit¨ pograafia arengust uldse. u 4. T¨ nu omadusele k˜ iki parandusi kaasas kanda v˜ ivad DOC-failid v¨ ga maa o o a hukaks muutuda. Kas Teie, hea lugeja, olete saanud kahelehek¨ ljelise, vaid u lausteksti sisaldava Wordi DOC-i suurusega 600 kilobaiti? K¨ esoleva artikli a autoriga on seda juhtunud korduvalt. ¨ 5. Microsoft Wordi erinevad versioonid uhilduvad sageli halvasti, nii pole uuema Wordi DOC vanema versiooniga loetav. Microsofti poole pealt vaadates on tegu kavala turupoliitikaga (kui keegi ostab uuema Wordi, peavad ka k˜ ik tema partnerid sama tegema), kuid kasutaja seisukohast kutsub esile o t˜ siseid prbleeme. o 6. Siiani ootab lahendust makroviiruse leviku probleem. Lisaks selgub, et DOC-fail sisaldab mitmeid turvaauke, mis ohustavad tema kasutamist digitaalselt signeeritava formaadina. Neid probleeme k¨ sitleme jaotises a 4.

3 MILLIST FORMAATI SIGNEERIDA?

4

3

Millist formaati signeerida?

¨ Nagu eespool mainitud, k¨ sitletakse elektrondokumente signeerimisel uldiste bia ¨ tijadadena ning unustatakse ara nende t¨ hendus. Probleemid bitijada interpreteea rimisel dokumendina v˜ imaldavad aga mitmeid r¨ nnakuid. o u Vaatleme n¨ iteks situatsiooni, kus panga klient Aadu v˜ tab pangalt suure laea o nu ning signeerib Corel WordPerfectis kirjutatud v˜ lat¨ he digitaalselt. Kuna Aadu o a ei soovi raha tagasi maksta, kaebab pank ta kohtusse. Kohtuistungi ajal kontrollitakse v˜ lgniku signatuuri elektrooniliselt – see klapib. Siis avatakse WordPerfecti o abil v˜ lat¨ ht. Selle peale t˜ useb Aadu h¨ mmastunud n¨ ol p¨ sti ning lausub: “Mio a o a a u na ei tea WordPerfectist midagi! Mina programmeerisin ise graafikaprogrammi ning Teie ees olev bitijada on minu programmiga joonistatud p˜ drapilt!” Ja nagu o sellest veel v¨ he oleks, demonstreerib Aadu t˜ epoolest graafikaprogrammi, mis a o uuritava dokumendi laadimisel kuvab ilusa p˜ hjap˜ drapildi. Kohus m˜ istab Aadu o o o ˜ oigeks ning pank j¨ ab pika ninaga. a¨ Mida sellise r¨ nnaku (kohalikus folklooris p˜ drapildir¨ nne, inglise keeli deu o u ¨ nial of content attack) v¨ ltimiseks ette v˜ tta? Uks v˜ imalus on kasutatav dokua o o ¨ mendiformaat v¨ liste vahenditega (lepingud, eeskirjad, . . . ) ara m¨ arata ning lepa a¨ pida kokku, et kogu antud konteksti andmevahetus k¨ ib ainult selles formaadis. a Loomulikult j¨ ab Aadule sel juhul v˜ imalus eitada mitte dokumendi sisu, vaid a¨ o ¨ konteksti: “See polnud uldse pangale suunatud v˜ lakiri, vaid s¨ nnip¨ evakaart mio u a ¨ nu naisele.” Kummatigi sobib see lahendus praktikas usna h¨ sti suhteliselt v¨ ia a kesele h¨ sti v¨ lja kujunenud suhetega kasutajate ringile (¨ he firma siseseks v˜ i a a u o ¨ kindlate aripartnerite vaheliseks asjaajamiseks). Niisuguse l¨ henemise puhul tekivad aga probleemid siis, kui signeeritava doa kumendi potentsiaalne kasutajaskond v˜ ib osutuda laiaks nii arvulises kui ajalises o m˜ ttes v˜ i koguni hetkel mitte teadaolevaks (nt seadus v˜ i testament). Siis tuleks o o o kitsas ringis kokku lepitud formaadi asemel kasutada v˜ imalikult levinud, avao likku ja standardset dokumendit¨ upi. Parimaks lahenduseks sobib artikli autori u¨ ¨ hinnangul 7-bitine ASCII formaat, mis on pea ainus kogu maailmas uheselt aru saadavatest formaatidest. Juba 8. biti lisamine tekitab probleeme, sest s¨ mboleid u koodidega 128. . . 255 v˜ ib interpreteerida erinevalt. N¨ iteks v˜ ib veebilehelt [7] o a o leida erinevad ISO 8859 kooditabelid. Eelk˜ ige tekkis vajadus paljude kooditabelite j¨ rele keelte ning neis kasutatao a ¨ vate s¨ mbolite paljususest. Seda probleemi uritab lahendada ISO standard 10646 u (nn Unicode), kehtestades s¨ mbolitele 16-bitise esituse ning v˜ imaldades seega u o v¨ ljendada 65536 erinevat m¨ rki, millest peaks piisama k˜ igile keeltele (sh hiea a o rogl¨ ufe kasutavatele). Samas v˜ ib Unicode’i s¨ mbolijadas esineda ka mitmesuu¨ o u

4 MILLIST FORMAATI MITTE SIGNEERIDA?

5

guseid kontrolls¨ mboleid ning neid v˜ ib j¨ lle mitmeti interpreteerida. Tekkivatest u o a probleemidest r¨ agib l¨ hemalt Bruce Schneier artiklis [4]. a¨ a 7-bitise ASCII kooditabeli puuduseks tavakasutaja tarvis j¨ ab tema v¨ hene a¨ a v¨ ljendusv˜ imsus. Puuduvad elementaarsedki v˜ imalused erinevate kujundusea o o lementide (kirjastiilid, joonised, tabelid jne) loomiseks. Selle probleemi lahendusena on v¨ lja t¨ otatud mitmeid k˜ rgema taseme dokumendikirjelduskeeli, mis a o¨ o kasutavad l¨ htekoodi loomisel ASCII s¨ mboleid, kuid v˜ imaldavad esitada kuia u o tahes keerulisi kujunduselemente. N¨ iteks v˜ ib tuua juba 15 aastat standardsena a o p¨ sinud TEXi formaadi, mille kirjelduse esitas TEXi looja Donald E. Knuth mou nograafias [8]. Sama ideoloogiat kasutab ka viimasel ajal standardiks p¨ rgiv XML (extensibu le markup language) formaat ([9]). HTML-sarnaste juhts˜ nadega liigendatakse o dokument vastavalt tema sisule (arve number, arve saaja, arve esitaja, arve maht EEKides jne). Loomulikult peavad juhts˜ nad olema deklareeritud ja nii k¨ ib XML o a dokumendiga kohustuslikus korras kaasas ka tema t¨ ubidefinitsioon (document tyu¨ pe definition, DTD). See ideoloogia aitab muuhulgas lahendada p˜ drapildir¨ nde o u probleemi, kui n˜ uda dokumendi signeerimist koos vastava DTDga. Niisiis v˜ iks o o ¨ o XML standard (kui ta l˜ puks valmis ja valdavaks saab) olla uks t˜ sisemaid kandio daate signeerimiseks soovitatava dokumendiformaadi kohale. Samas on XMLi l¨ htekood k¨ sitsi kirjutamiseks liiga ebamugav ja tema laiema a a leviku eelduseks saab suuremal v˜ i v¨ hemal m¨ aral WYSIWYG ideoloogial bao a a¨ seeruvate XML-editoride ilmumine. Siit v˜ ivad aga tekkida uued turvaprobleeo mid. Vaatleme n¨ iteks HTML-formaadis (mis kujutab endast XMLi erijuhtu) esia tatud dokumenti, mille lepingupartner Aadu Teile signeerimiseks saadab. HTMLbrauseris n¨ eb asi kena v¨ lja ning Te otsustate lepingut oma digitaalallkirjaga kina a nitada. Dokumendi l¨ htekoodis sisaldub aga rida a <!-- Kingin oma maja Aadule -->, mis koos muu tekstiga signeeritud sai. Hiljem v˜ ib Aadu v¨ ita, et allakirjutaja o a v˜ is l¨ htekoodi uurida ning seal kirjas seisev v¨ ljendab Teie vaba tahet. Moraal o a a dokumendiformaadi kohta: kui otsustate kasutada midagi keerulisemat kui 7-bitist ASCIId, tehke v˜ imalikud turvariskid endale varakult selgeks! o

4

Millist formaati mitte signeerida?

Peat¨ kis 2 n¨ gime, et elektroonilises dokumendihalduses kasutatav formaat peab u a rahuldama k¨ llalt k˜ rgeid n˜ udmisi: olema redigeeritav, v˜ imaldama graafika ja u o o o

4 MILLIST FORMAATI MITTE SIGNEERIDA?

6

multimeedia lisamist ning integreeruma olemasolevatesse s¨ steemidesse. Ilmselt u ei saa laialdasi v˜ imalusi pakkuv dokumendiformaat olla v¨ ga lihtne. Juba erio a ¨ nevate kujunduselementide ja kirjastiilide esitamine n˜ uab usna k˜ rgetasemelisi o o kirjeldusvahendeid, mis praktikas kipuvad endast sageli kujutama t˜ siseltv˜ etao o ¨ vaid programmeerimiskeeli. Nii n¨ iteks uletavad PostScripti v˜ imalused tundua o valt lihtsamate arenduskeskkondade omi ([10]). Samas t¨ hendab s¨ steemi keerukuse kasv automaatselt t˜ sisemate turvaproba u o ˜ leemide teket, sest v˜ imalike r¨ nnakuobjektide arv kasvab. Retooriliselt ohates: o u kui juba nii lihtne formaat nagu Unicode v˜ ib endas riski k¨ tkeda, mis siis veel o a oluliselt keerulisematest r¨ akida! a¨ T˜ epoolest, osutub, et paljud t¨ nap¨ eval praktikas kasutatavad dokumendiforo a a maadid v˜ ivad sisaldada ohtusid, millest tavaliselt eriti ei r¨ agita, kuid mida tuleks o a¨ turvalise dokumentide signeerimise keskkonna loomisel arvesse v˜ tta. J¨ rgnevas o a vaatleme n¨ itena veelkord Microsoft Wordi DOC-formaati, tuues n¨ ud v¨ lja poa u¨ a tentsiaalsed ohud juhul, kui seda tahetakse kasutada nt lepingute elektroonilisel allkirjastamisel. 1. Digitaalallkirja tehnoloogia n˜ uab, et kord signeeritud dokumendist ei tohi o ˜ hiljem bittigi muuta, vastasel juhul ei onnestu dokumendi signatuuri hiljem verifitseerida. DOC-faili v˜ idakse aga muuta kasutajalt midagi k¨ simata, nt o u ¨ rehkendades avamisel umber dokumendi sisukorra v˜ i muutes tr¨ kkimisel o u kellaaja v¨ lja. Seega on dokumendi hoidjal kaks v˜ imalust: muuta fail mita o ¨ tekirjutatavaks v˜ i seda uldse mitte lugeda. o 2. DOC-fail v˜ ib sisaldada palju mitten¨ htavat infot, n¨ iteks salvestatakse alo a a low fast saves valiku sissel¨ litamisel k˜ ik faili kunagi tehtud parandused. u o ¨ ¨ Kujutagem korraks ette, et Teie aripartner kasutab uht kunagi valmis tehtud lepingut template’ina ning uuendab selles iga kord vaid nimesid, hindu ja kaubaartikleid. Nii v˜ ite Teile allkirjastamiseks saadetud lepingu faili o binaareditoriga uurides nii m˜ ndagi huvitavat teada saada . . . Lahendus – o kiireid inkrementaalseid salvestusi mitte lubada. 3. T¨ nu v˜ imalusele l¨ litada dokumendi koosseisu Visual Basicus kirjutatud a o u skripte, v˜ ib pahatahtlik partner saata Teile dokumendi, mis muudab oma o v¨ list kuju vastavalt arvuti kella n¨ idule. Nii signeerite omateada v˜ lakirja a a o 30 dollari peale, kuid j¨ rgmisel p¨ eval saab sellest summast 3 miljonit. Selle a a r¨ nnaku vastu tuleks pooltevahelise lepinguga s¨ testada skriptide-makrode u a mittekasutamine ning Wordis neid lubavad valikud v¨ lja l¨ litada. a u

˜ 5 KOKKUVOTTEKS

7

4. Arvutiomanik saab Wordi kasutamiseks endale ise uusi kirjat¨ upe luua. u¨ Oletame n¨ ud, et pahatahtlik kasutaja on koostanud kirja nimega Times New u¨ Roman ning vahetanud selles tavalisega v˜ rreldes m˜ ned s¨ mbolid (nt pluso o u si miinusega). Lepingupartnerini j˜ udes on faili binaarkuju k¨ ll sama, kuid o u n¨ eb standardkirjas ekraanil v¨ lja sootuks teistsugune. Kohtuvaidluse tekkia a des v˜ ib kurikael protsessile oma arvuti tuua ning selle abil kohtule endale o meelep¨ rast dokumenti n¨ idata. Selle r¨ nnaku v¨ ltimiseks tuleks n˜ uda, et a a u a o iga dokumendiga pandaks kaasa ka k˜ ik kasutatud kirjad. o Loomulikult pole v¨ ljatoodud (ja v¨ ljatoomata) probleemid omased ainult Wordi a a DOC-formaadile. Nii n¨ iteks v˜ ivad ka StarWriter- ja PostScript-failid sisaldada a o dokumedi kuju muutvaid skripte, kirjastiilide mitmetim˜ istetavuse probleem teo ¨ kib samamoodi PDF-failide puhul. Nagu ulalpool juba mainitud, on sellelaadsed mured veidigi v˜ imekama formaadi puhul paratamatud ning nende lahendamiseks o tuleb tarvitada signeerimiskeskkonna v¨ liseid meetodeid. a

5

Kokkuv˜ tteks o

Juba esimeste turvaprobleemidega tegelevate tarkvaraproduktide loojad p˜ rkasid o ¨ kokku ebameeldiva vastuoluga. Uhest k¨ ljest n˜ uavad kliendid tarkvaralt v˜ imau o o likult suurt lihtsust ja kasutusmugavust, teisest k¨ ljest toob aga turvaprobleemide u vastu v˜ itlemine endaga paratamatult kaasa m˜ ningase k¨ ideldavuse languse. Eks o o a ole me ju k˜ ik kirunud paroole, mis kuidagi meelde j¨ ada ei taha! o a¨ Ka dokumendik¨ itlustarkvara loojad tahavad oma t¨ o tulemusele v˜ imalikult a o¨ o suurt turgu ning on seet˜ ttu sunnitud pingutama loodavate vahendite lihtsuse nio mel. Probleemid tekivad siis, kui turvalisus lihtsusele ohvriks tuuakse. Nii peaks iga signeerimisv˜ imelise tarkvarapaketi ostja end kurssi viima sellega, mil m¨ aral o a¨ tootja turvaprobleemidele m˜ elnud on ja ega n¨ iliselt v˜ imas s¨ steem tagauksi ei o a o u sisalda. Kuna Eestis digitaalsignatuuri seadus veel ei t¨ ota, siis j¨ relikult vastavat tarko¨ a vara n˜ udvaid kliente veel ei ole. Kui seadus aga k¨ esoleva aasta 15. detsembril o a j˜ ustub, ei saa meist enam keegi ilma signeerida oskavate programmideta oma o ˜ igap¨ evat¨ od teha ja siis v˜ ib dokumendiformaadi oige valik meid paljudest oha o¨ o tudest p¨ asta. a¨

VIITED

8

Viited
[1] Allkirjad elektroonilistel dokumentidel, Ahto Buldas, A&A 6-1999 [2] Allkirjad elektroonilistel dokumentidel: avalikud v˜ tmed ja nende haldus, o Ahto Buldas, A&A 1-2000 [3] Elektrooniline dokumendivahetus: standardid ja probleemid, Tiina Tamme magistrit¨ o, 2000, http://www.cs.ut.ee/ˇtiina/MT.pdf o¨ [4] Security risks of Unicode, Bruce Shneier, Crypto-Gram, juuli 1999, http://www.counterpane.com/crypto-gram-0007.html#9 [5] Eesti Vabariigi Digitaalallkirja seadus, http://www.tsm.ee/digitaalallkiri.html [6] What has WYSIWYG done to us?, Conrad Taylor, http://www.ideography.co.uk/library/seybold/WYS intro.html [7] The ISO 8859 Alphabet Soup, http://czyborra.com/charsets/iso8859.html [8] The TEXbook, Donald E. Knuth, Addison-Wesley, 1984 [9] XMLi kodulehek¨ lg http://www.xml.org u [10] PostScript language Tutorial and Cookbook, Adobe Systems Incorporated, Addison-Wesley, 1985

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->