Računalniki Windows Internet

Kako podpisati xml z elektronskim podpisom. Kako pravilno podpisati datoteko z digitalnim podpisom. Pogoji za enakovrednost elektronskega podpisa in navadnega podpisa

ML ali eXtensible Markup Language zdaj postaja standardni način za prenos informacij po spletu (in širše). Poleg tega se pojavlja vse več dodatkov, ki uporabljajo sintakso XML (aplikacije XML). Med njimi je na primer poenostavljeni protokol za dostop do objektov SOAP (Simple Object Access Protocol), v katerem XML deluje kot univerzalno sredstvo za predstavitev parametrov za klicanje oddaljenih procedur RPC (Remote Procedure Call). Drug primer vtičnika je ogrodje RDF (Resource Description Framework). Lahko si ogledate World Wide Web Consortium (W3C), ki razvija standarde na tem področju (http://www.w3.org/), in vidite, da je XML res deležen vse večje pozornosti.

Spomnimo se, da je glavni namen XML opisati strukturo in semantiko dokumenta. Glavna prednost XML v primerjavi z drugimi formati elektronskih dokumentov je v tem, da loči opis zunanje predstavitve dokumenta od strukture dokumenta in njegove vsebine. XML je prilagodljiv jezik, ki se lahko uporablja za različne namene in se lahko povezuje s številnimi sistemi in bazami podatkov. Tako se danes XML uporablja v številnih informacijskih sistemih kot glavni format za izmenjavo podatkov. Poleg tega so proizvajalci sistemov za upravljanje baz podatkov naredili močan korak k XML-ju. Oracle je na primer izdal XSU (XML-SQL Utility), ki je dodatek k JDBC, ki vam omogoča shranjevanje in pridobivanje podatkov XML v bazi podatkov (http://otn.oracle.com/tech/xml/ xdk_java/vsebina .html). XSU je hierarhija razredov Java, zasnovana za pretvorbo podatkov iz tabel in pogledov objektno-relacijske zbirke podatkov v format XML, vstavljanje podatkov iz dokumentov XML v tabele in poglede ter druge uporabne operacije.

Potreba po zaščiti dokumentov XML

ML je močno orodje, ki se pogosto uporablja za izmenjavo podatkov prek interneta. Toda na žalost sama ne zagotavlja potrebne zaščite za podatke, ki jih »prevaža«. Z drugimi besedami, pri uporabi formata XML (kot tudi pri uporabi drugih formatov) obstajajo resne varnostne težave.

XML je mogoče enostavno uporabiti za prenos transakcijskih sporočil med banko in bankomatom, zaupnih ali polzaupnih informacij o posameznikih, informacij o elektronskih transakcijah ali preprosto za prenos zaščitenih dokumentov v tem formatu. Hkrati pa je treba zagotoviti zaščito informacij pred nehotenimi ali namernimi izkrivljanji tako s strani uporabnikov informacijskih sistemov kot pri prenosu prek komunikacijskih kanalov. Zaščita mora temeljiti na naslednjih funkcijah:

  • avtentikacija sodelujočih strank;
  • potrjevanje verodostojnosti in celovitosti informacij;
  • kriptografsko zapiranje prenesenih podatkov.

Da bi zagotovili to zaščito podatkov, je priporočljiva uporaba elektronskega digitalnega podpisa (EDS) in metod šifriranja podatkov. Poleg tega digitalni podpis praviloma zagotavlja avtentikacijo, potrditev pristnosti in celovitosti, zapiranje podatkov pa se doseže s šifriranjem.

Splošne informacije o elektronskih digitalnih podpisih

EDS in možnost njegovega ponarejanja

Elektronski digitalni podpis je podatek, dodan izvirnemu bloku informacij (dokumentu), pridobljen kot rezultat njegove kriptografske transformacije (odvisno od tajnega ključa in izvirnega bloka informacij ali dokumenta). EDS zagotavlja celovitost sporočil (dokumentov) z zagotovljeno identifikacijo njihovega avtorja (osebe, ki je podpisala dokument), ki se največkrat prenaša po nezaščitenih javnih telekomunikacijskih kanalih.

Preverjanje elektronskega digitalnega podpisa bloka informacij se izvede s kriptografsko pretvorbo digitalnega podpisa z uporabo javnega ključa, ki ustreza tajnemu ključu, ki je sodeloval pri namestitvi digitalnega podpisa.

Nezmožnost ponarejanja elektronskega digitalnega podpisa je dosežena z zelo veliko količino matematičnih izračunov (na primer, nezmožnost ponarejanja podpisa je lahko posledica kompleksnosti reševanja problema diskretnega logaritma v polju p elementov El-Gamal podpisna shema). S podpisom na dokumentu se sam dokument ne spremeni, temveč le omogoči preverjanje verodostojnosti in avtorstva prejetih informacij (to pomeni, da se dokumentu samemu ali ločeno od njega doda podatkovni blok – digitalni podpis oz. ta dokument).

Certifikacijski organ

Zgoraj smo omenili izraza "zasebni ključ" in "javni ključ". Od kod ti ključi? Oblikuje jih overitelj - določena struktura (organizacija), ki upravlja s certifikati. Potrdilo javnega/zasebnega ključa predstavlja naslednji niz podatkov:

  • ime subjekta ali objekta sistema, ki ga enolično identificira v sistemu;
  • javni/zasebni ključ subjekta ali objekta sistema;
  • dodatni atributi, določeni z zahtevami za uporabo certifikata v sistemu;
  • elektronski digitalni podpis izdajatelja (overitelja), ki potrjuje vse te podatke.

Tako na primer certifikat zasebnega ključa vsebuje sam zasebni ključ in dodatne informacije o njem.

Certifikacijski center (CA) za vsakega registriranega uporabnika informacijskega sistema generira dve potrdili: potrdilo zasebnega ključa in potrdilo javnega ključa. V tem primeru se prvi SO izda osebno registriranemu uporabniku (na primer na disketi) in nikomur drugemu - to je "podpis". Drugo potrdilo, odprto, CA objavi v javnem repozitoriju, tako da ga vsi zainteresirani zlahka najdejo.

Generiranje in preverjanje digitalnega podpisa

Pošiljatelj informacij s tajnim ključem in vnaprej dogovorjeno izbranim asimetričnim algoritmom (algoritem digitalnega podpisa) šifrira posredovane informacije, predstavljene v digitalni obliki, in tako prejme digitalni podpis podatkov. Nato pošiljatelj informacije pošlje nešifrirano informacijo in na zgoraj opisani način pridobljen digitalni podpis prejemniku po odprtem komunikacijskem kanalu.

Prejemnik sporočila z uporabo javnega ključa (ki je javno dostopen) in algoritma digitalnega podpisa, izbranega po dogovoru med naročniki, razglasi tajnost digitalnega podpisa. Nato primerja nešifrirane podatke, ki jih je prejel, in podatke, pridobljene pri dešifriranju digitalnega podpisa. Če digitalni podpis ni ponarejen in posredovana odprta informacija ni popačena, se morata ti dve informaciji popolnoma ujemati. Če je podpis ponarejen, se bodo prejete odprte informacije in informacije, pridobljene med dešifriranjem, bistveno razlikovale (slika 1).

Zgoščevalne funkcije

V zgornji shemi interakcije med pošiljateljem in prejemnikom manjka ena operacija. Povezana je s stopnjo šifriranja podatkov, med katero se oblikuje elektronski digitalni podpis. Če samo generiramo digitalni podpis, potem se bo (odvisno od algoritma) izkazalo, da bo praviloma približno enake dolžine kot izvirni podatkovni blok, po omrežju pa bomo morali poslati sporočilo dvojne dolžine. Seveda bi to negativno vplivalo na celotno delovanje sistema. Zato se pred generiranjem digitalnega podpisa originalni podatki obdelajo s funkcijo zgoščevanja in tako postane podpis kompakten. Za pravilen rezultat mora prejemnik seveda izvesti enako transformacijo na prejetem podatkovnem bloku.

Uporabljena zgoščevalna funkcija mora biti sposobna pretvoriti sporočilo katere koli dolžine v binarno zaporedje fiksne dolžine. Poleg tega mora izpolnjevati naslednje zahteve:

  • sporočilo po uporabi zgoščevalne funkcije mora biti odvisno od vsakega bita izvirnega sporočila in od njihovega vrstnega reda;
  • Če uporabite zgoščeno različico sporočila, samega sporočila ni mogoče obnoviti.

Razumevanje šifriranja

Šifriranje podatkov in njegova razlika od digitalnega podpisa

Šifriranje informacij je matematična (kriptografska) transformacija ena proti ena, odvisno od ključa (tajnega parametra transformacije), ki ujema blok odprtih informacij, predstavljenih v nekem digitalnem kodiranju, z blokom šifriranih informacij, prav tako predstavljenih v digitalni obliki. kodiranje. Šifriranje združuje dva procesa: šifriranje in dešifriranje informacij (slika 2).

Bistvena razlika med digitalnim podpisom in metodami šifriranja (zdaj imamo v mislih asimetrične algoritme, pri katerih se za šifriranje in dešifriranje uporabljajo različni, a matematično sorodni ključi) je v tem, da se pri šifriranju uporablja javni ključ prejemnika, pri dešifriranju pa zasebni ključ. , medtem ko v Algoritem digitalnega podpisa zahteva avtorjev skrivni ključ za podpis sporočila in avtorjev javni ključ za preverjanje digitalnega podpisa.

Lomljenje

Teoretično je mogoče kateri koli algoritem šifriranja, ki uporablja ključ, razbiti z iskanjem po vseh vrednostih ključev. Če je ključ izbran, zahtevana moč računalnika eksponentno narašča z dolžino ključa. 32-bitni ključ zahteva 232 (približno 109) korakov. To nalogo lahko opravi vsak amater in jo lahko rešite na domačem računalniku. Sistemi s 40-bitnim ključem (na primer izvožena ameriška različica algoritma RC4) zahtevajo 240 korakov, takšno moč računalnika ima večina majhnih podjetij. Sistemi s 56-bitnimi ključi (DES) zahtevajo veliko truda za odpiranje, vendar jih je mogoče enostavno odpreti s posebno opremo. Stroški takšne opreme so precejšnji, vendar so cenovno dostopni za mafijo, velika podjetja in vlade. Ključe dolžine 64 bitov lahko trenutno odpirajo velike države, v naslednjih letih pa jih bodo lahko odpirale kriminalne združbe, velika podjetja in majhne države. 80-bitni ključi lahko v prihodnosti postanejo ranljivi. Ključi z dolžino 128 bitov bodo verjetno ostali nezlomljivi s surovo silo v bližnji prihodnosti. Uporabite lahko tudi daljše ključe.

Vendar dolžina ključa ni vse. Številne šifre je mogoče razbiti, ne da bi preizkusili vse možne kombinacije, ampak z uporabo posebnega algoritma (na primer s polinomsko kompleksnostjo). Na splošno je zelo težko izmisliti šifro, ki je ne bi bilo mogoče odpreti z drugo metodo, učinkovitejšo od surove sile.

Upoštevajte, da je kriptografski sistem močan le toliko, kolikor je močan njegov najšibkejši člen. Ne smemo spregledati nobenega vidika zasnove sistema, od izbire algoritma do uporabe ključev in politik distribucije.

Elektronsko digitalno podpisovanje XML dokumentov

Tisti, ki delajo z XML, že dolgo razumejo pomen nadzora nad podatki, ki se prenašajo in predstavljajo v XML. Glavne zahteve za posredovane podatke so avtentikacija sodelujočih strani ter potrditev avtentičnosti in celovitosti informacij v dokumentu XML. Tovrstne težave rešuje digitalno podpisovanje XML dokumentov.

Specifikacije za digitalni podpis XML iz W3C

W3C trenutno razvija specifikacijo sintakse in obdelave podpisa XML ter druge povezane dokumente. Za zdaj ima status priporočila (http://www.w3.org/TR/xmldsig-core/). Ta dokument omogoča podpisovanje tako celotnega dokumenta XML kot njegovega dela. Da bi bil proces podpisovanja XML edinstven, je definiran koncept kanonične predstavitve podatkov XML. Na primer, v dokumentu XML so lahko oznake, ki so na isti ravni v hierarhičnem drevesu, pomešane skupaj, kar povzroča dvoumnost v procesu podpisovanja. Kanonična predstavitev XML je neke vrste sortiranje (oziroma redukcija na najpreprostejšo obliko), ki ne dopušča tovrstnih svoboščin. Metode in pravila za kanonikalizacijo XML so opisani v ločenem dokumentu »Canonical XML« (http://www.w3.org/TR/xml-c14n), ki ima tudi status priporočila. Drugi materiali, povezani s podpisovanjem dokumentov XML, so na voljo na: http://www.w3.org/Signature/.

Oznaka XML podpis

Priporočilo "Sintaksa in obdelava podpisa XML" določa, da morajo biti podpis in informacije o njem vsebovane v oznaki , ki ima naslednje dele (potrebni so predvsem za preverjanje podpisa):

  • CanonicalizationMethod definira poseben niz pravil za poenostavitev in strukturiranje primerka XML pred podpisom. Te informacije zagotavljajo, da so podpisani podatki v pravilni obliki, tako da algoritem preverjanja daje pozitiven rezultat, če podatki o vsebini niso bili spremenjeni;
  • metoda podpisa (SignatureMethod) definira algoritem podpisa izvlečka sporočila. Izvleček sporočila je edinstven niz znakov fiksne velikosti, je rezultat obdelave podatkov z uporabo enosmerne zgoščene funkcije, ki jo določa metoda izvlečka;
  • metoda prebave (DigestMethod) algoritem za sestavljanje povzetka sporočila, podpisanega z dano metodo podpisa. Določanje posebne metode prebave zagotavlja, da so podatki obdelani na enak način;
  • vrednost izvlečka (DigestValue) sam izvleček sporočila, to je niz s fiksno dolžino, ki nastane kot rezultat obdelave podatkov z algoritmom izvlečka. Takšen niz je edinstven in nepovraten: praktično ga ni mogoče pridobiti iz druge vsebine, niti ni mogoče iz njega poustvariti izvirnih podatkov. Je kot prstni odtis za podatke, ki se podpisujejo; pozitivna primerjava digest vrednosti zagotavlja celovitost vsebine;
  • sam podpis (SignatureValue) to so podatki, pridobljeni po obdelavi s podpisno metodo;
  • informacije o javnem ključu (KeyInfo) ključu za preverjanje digitalnega podpisa. Natančneje, ne ključ, ampak potrdilo, saj je v njem poleg samega ključa mogoče navesti ime lastnika in algoritem digitalnega podpisa.

Seveda to niso izčrpne informacije o tem, kaj lahko vsebuje oznaka. . Tukaj je najenostavnejši primer takega podpisa (izpis 1).

Oblikovanje digitalnega podpisa XML

Treba je opozoriti, da obstajajo nekatere razlike med postopkom podpisovanja XML in klasičnim. Dejstvo je, da se proces podpisovanja instance XML začne s kanonikalizacijo, torej s poenostavitvijo podatkovne strukture. Kot že omenjeno, je ta postopek nujen, da lahko pravilno preverimo digitalni podpis za isti dokument XML, predstavljen na različne načine. To pomeni, da je treba vse dokumente XML pred podpisom pretvoriti v eno samo kanonično obliko. Preostali koraki so enaki standardnemu postopku za dodajanje digitalnega podpisa: za podatke se ustvari povzetek vrednosti z določeno metodo, nato pa se ta vrednost podpiše z zasebnim ključem avtorja dokumenta.

Preverjanje digitalnega podpisa XML

Če želite preveriti podpis, morate opraviti dva koraka: preveriti sam podpis in preveriti vrednost povzetka.

Sam podpis se najprej preveri, da se zagotovi avtentikacija lastnika in prepreči zavrnitev. Vrednost povzetka se nato preveri, da se zagotovi, da se podatki niso spremenili, in da se preveri celovitost vsebine dokumenta XML.

Šifriranje dokumentov XML

Specifikacije W3C za šifriranje XML

Preidimo k šifriranju, ki nam omogoča, da zapremo (torej pretvorimo v obliko, v kateri je pomen nejasen) poslane podatke in jih obnovimo na sprejemni strani. Konzorcij W3C je ustanovil delovno skupino (http://www.w3.org/Encryption/2001/), ki se posebej ukvarja z vprašanji šifriranja podatkov XML. Specifikacija sintakse in obdelave šifriranja XML je zdaj priporočilo in je na voljo na: http://www.w3.org/TR/xmlenc-core/.

Oznaka

  • metoda šifriranja (EncryptionMethod) opisuje algoritem šifriranja podatkov. Če ta oznaka manjka, mora biti algoritem šifriranja poznan prejemni strani, sicer dešifriranje sporočila ni mogoče;
  • šifrirani podatki (CipherData) dejanski šifrirani podatki ali povezava do njihove lokacije. Raznolikost vrst podatkov, ki jih je treba šifrirati, in metod njihove logične organizacije je praktično neomejena;
  • informacije o ključih (KeyInfo) informacije o ključih, s katerimi se izvaja šifriranje in s tem dešifriranje. Lahko jih shranite drugje in zamenjate v primerku XML s povezavo URL;
  • druge informacije (na primer o predvidenih prejemnikih).

Primer oznake prikazano na seznamu 2.

Postopek šifriranja in dešifriranja

Podatki XML so šifrirani s tradicionalnimi metodami kriptografije z javnim ključem. Najprej se šifrirajo sami podatki, običajno z uporabo naključno generiranega skrivnega ključa, ki se nato prav tako šifrira z javnim ključem predvidenega prejemnika. Te informacije so pakirane tako, da lahko le predvideni prejemnik izvleče skrivni ključ in dešifrira podatke. Skrivni ključ se uporablja za dešifriranje skrivnega ključa, nato pa se podatki dešifrirajo z najdenim skrivnim ključem.

Implementacija zaščite dokumentov XML

Pregledali smo splošne principe delovanja elektronskih digitalnih podpisov in specifikacije, ki jih je na tem področju razvil konzorcij W3C. To je vse lepo in prav, toda kaj, če je dejansko treba implementirati opisane sheme zaščite podatkov XML?

Že danes, kljub dejstvu, da so se standardi W3C pojavili pred kratkim, so nekatera podjetja napovedala izdajo svojih paketov (knjižnic razredov), ki izvajajo digitalni podpis in šifriranje. Poglejmo si zmogljivosti nekaterih od njih.

XML Security Suite (IBM)

Ta paket, ki temelji na programskem jeziku Java, je na voljo na http://www.alphaworks.ibm.com/tech/xmlsecuritysuite. XML Security Suite je orodje, ki zagotavlja varnostne funkcije, kot so digitalno podpisovanje, šifriranje in nadzor dostopa za dokumente XML. Z njegovo pomočjo lahko dosežete večji uspeh kot z uporabo zmogljivosti varnostnih protokolov transportne plasti (na primer Secure Sockets Layer, SSL).

Ta paket izvaja tri tehnologije:

  • Digitalni podpis temelji na specifikaciji »XML Signature Syntax and Processing« iz W3C in IETF (in na specifikaciji »Canonical XML«);
  • šifriranje je izvedeno na podlagi specifikacije "XML Encryption Syntax and Processing" iz W3C;
  • nadzor dostopa do XML dokumentov (XML Access Control Language).

XML Security Suite je eno najboljših sodobnih orodij za zaščito dokumentov XML. Poleg samega arhiva (JAR) s knjižnico razredov vključuje podrobno dokumentacijo in primere, ki vam omogočajo hitro krmarjenje po hierarhiji razredov.

Varnost XML (Apache)

Zaščita podatkov na osnovi XML

Označevalni jezik varnostnih trditev (SAML)

Področje, ki se razlikuje od zaščite podatkov XML, a je z njo tesno povezano, je izboljšanje varnosti in zaščite sistemov (protokolov), ki temeljijo na XML. V tem primeru so drugi dokumenti/sistemi/aplikacije zaščiteni z XML. Trenutno varnostni odbor Organizacije za napredek standardov strukturiranih informacij (OASIS) razvija označevalni jezik varnostnih trditev (SAML).

Zvezni zakon "O elektronskem digitalnem podpisu"

Cilji

Vzemimo si malo odmora od zakonodajalcev na področju spleta in razmislimo o zveznem zakonu "O elektronskem digitalnem podpisu", ki ga je odobril predsednik Ruske federacije 10. januarja 2002 (http://www.internet-law .ru/intlaw/laws/ecp.htm). S sprejemom tega zakona so bili vzpostavljeni pravni pogoji za uporabo elektronskega digitalnega podpisa v elektronskih dokumentih, v skladu s katerimi se elektronski digitalni podpis v elektronskem dokumentu prizna kot enakovreden lastnoročnemu podpisu v papirnem dokumentu. Tako so bili postavljeni temelji za nastanek pravno pomembnega elektronskega upravljanja dokumentov.

Pogoji za enakovrednost elektronskega podpisa in navadnega podpisa

Zakon opredeljuje osnovne pojme, ki se uporabljajo v postopku digitalnega podpisovanja, kot so potrdilo, javni in zasebni ključ, potrditev pristnosti elektronskega digitalnega podpisa (preučili smo jih prej) ipd. Nadalje zakon opredeljuje pogoje, pod katerimi elektronski digitalni podpis v elektronskem dokumentu je enakovreden podpisu v dokumentu na papirju. To v prvi vrsti pomeni, da potrdilo o podpisnem ključu v zvezi s tem elektronskim digitalnim podpisom ni izgubilo veljavnosti v času preverjanja oziroma v trenutku podpisa elektronskega dokumenta. Poleg tega mora biti potrjena verodostojnost elektronskega digitalnega podpisa in uporaba digitalnega podpisa v skladu s podatki, navedenimi v potrdilu podpisnega ključa.

Certifikati in certifikacijski organi

Zakon podrobneje opisuje, kaj vsebuje certifikat podpisnega ključa (enolična registrska številka, polno ime lastnika, javni ključ digitalnega podpisa, naziv in lokacija overitvenega centra ipd.); pogoji in postopek hrambe potrdila v certifikacijskem centru. Tako se rok hrambe potrdila podpisnega ključa v obliki elektronskega dokumenta v certifikacijskem centru določi s pogodbo med certifikacijskim centrom in lastnikom potrdila podpisnega ključa. Kar zadeva hrambo, jo določa zakonodaja Ruske federacije o arhivih in arhivskih zadevah.

Posebno poglavje zakona je posvečeno certifikacijskim centrom. Postopek razvoja in preverjanja elektronskega digitalnega podpisa lahko poteka brez sodelovanja certifikacijskih centrov, če je to potrjeno s sporazumom med strankama. Vendar pa je v javnih informacijskih sistemih in v številnih korporativnih informacijskih sistemih uporaba digitalnega podpisa brez delovanja certifikacijskih centrov nemogoča, saj bo to vodilo do dokaj enostavnih mehanizmov za ponarejanje podpisa.

Zasebni (tajni) ključi

Elektronski digitalni podpis lahko opravlja svoje funkcije le, če ima podpisnik nekatere informacije, ki so neznancem nedostopne. Ta podatek je podoben šifrirnemu ključu in se zato imenuje "zasebni ključ elektronskega digitalnega podpisa" (prej se je uporabljal podoben izraz "tajni ključ"). Zasebni in šifrirni ključ je potrebno ohraniti v tajnosti, saj poznavanje zasebnega ključa za podpisovanje ustreza praznemu listu papirja s podpisom lastnika zasebnega ključa, na katerega lahko napadalec napiše poljubno besedilo, ki bo pripisati dejanskemu lastniku zasebnega ključa. Umetnost. 12. člen zakona neposredno nakazuje obveznost imetnika potrdila ključa podpisa, da varuje zasebni ključ kot tajnost in da nemudoma zahteva začasno prekinitev potrdila ključa podpisa, če obstaja razlog za domnevo, da je bila kršena skrivnost zasebnega ključa podpisa.

Umetnost. 5 zakona določa postopek za ustvarjanje zasebnih ključev podpisa ob upoštevanju strogega spoštovanja tajnosti njihovega ustvarjanja. Na isto okoliščino opozarja tudi čl. 9. člena zakona o dejavnosti certifikacijskih centrov. V korporativnih informacijskih strukturah je mogoče vprašanje izdelave in distribucije zasebnih ključev EDS rešiti z lastnimi metodami, vendar se mora uporabnik EDS zavedati možnih posledic takšne organizacije delovanja EDS. Povsem možno je, da bo neko običajno zaporedje uporabljeno kot zasebni ključ, kot se zgodi pri uporabi sistema gesel.

Domači standardi za algoritme digitalnega podpisa

Shema El Gamal

Leta 1994 je bil sprejet prvi domači standard na področju digitalnega podpisovanja GOST R34.10 94 "Informacijska tehnologija. Kriptografska zaščita informacij. Postopki za razvoj in preverjanje elektronskega digitalnega podpisa na osnovi asimetričnega kriptografskega algoritma.« Določa postopke za delo z digitalnimi podpisi na podlagi sheme ElGamal. Nezmožnost ponarejanja podpisa je posledica kompleksnosti reševanja problema diskretnega logaritmiranja v polju p elementov ali kompleksnosti določanja števila x, podanega velikemu praštevilu p in številom a, b iz intervala od 2 do p-1, ki se izvede s primerjavo:

Ax==bmodp.

Vendar pa matematiki ne stojijo na mestu in v zadnjem času je bil dosežen velik napredek pri razvoju metod za reševanje problema diskretnega logaritma v polju p elementov. Nedavno je bila ustvarjena tako imenovana metoda sita številskega polja. Z njegovo pomočjo lahko vdrete v digitalni podpis, ustvarjen z zgornjo metodo (vsaj v primeru 512-bitnega modula p).

Ena najpreprostejših rešitev tega problema je povečanje dolžine modula p. Toda na žalost se z večanjem p poslabšajo operativne lastnosti algoritma, saj se povečata dolžina javnega ključa in čas za generiranje in preverjanje podpisa.

Eliptična krivulja

Ruski znanstveniki so sčasoma prišli do zaključka, da je mogoče El-Gamalovo shemo nekoliko zakomplicirati in tako brez dodatnih računskih stroškov za več tisočkrat povečati kompleksnost ponarejanja digitalnega podpisa. Nova različica sheme ElGamal uporablja aparat eliptičnih krivulj nad končnim poljem p elementov, ki so definirani kot niz parov števil (x, y) (vsako od njih leži v območju od 0 do p-1). ), ki izpolnjujejo primerjavo (števili a in b sta fiksni in ustrezata nekemu dodatnemu pogoju):

Y2 == x3 + ax + bmodp.

Drugi viri

  • Informacije o pripomočku Oracle XML-SQL http://otn.oracle.com/tech/xml/xdk_java/content.html
  • Specifikacije SAML http://www.oasis-open.org/committees/security/
  • Specifikacija XKMS http://www.w3.org/TR/xkms/
  • Zvezni zakon "O elektronskem digitalnem podpisu"

Ta razdelek ponuja prenos programa XML Converter / XML Designer / XML Reports / Just Sign / XML Contact - Rosreestr.

Primeri generiranja elektronskih različic dokumentov z uporabo Programi XML Constructor in njihovi tiskani analogi z uporabo Programi XML Reports lahko prenesete v razdelku. Predlagamo tudi ogled razdelka, kjer boste našli različne brezplačne pripomočke, knjižnice in drugo.

Program za pretvorbo XML konfiguriran za pretvorbo datotek XML/dokumentov Rosreestr, kot so katastrski izvlečki, katastrski načrti ozemlja, v druge formate, ki so enostavni za uporabo, kot so MIF/MID, DXF, CSV, TXT, HTML.

Program XML Designer je konfiguriran za izdelavo elektronskih različic v formatu XML dokumentov za katastrske dejavnosti, kot so mejni načrti, tehnični načrti, zemljevid (načrt) ipd., ter obvestil o zastavi premičnin in obvestil v skladu z zakonom FATCA.

Program za poročila XML konfiguriran za pretvorbo elektronskih dokumentov za katastrske dejavnosti, kot so mejni načrti, tehnični načrti, zemljevid (načrt) v ustrezne tiskane (papirnate) kopije.

Program Just Sign namenjen ustvarjanju in preverjanju elektronskih digitalnih podpisov (EDS).

XML program Contact-Rosreestr je namenjen interakciji s spletno storitvijo Rosreestr, tj. izdelava vlog za katastrski vpis zemljiških parcel in nepremičnin, zahtev za katastrske podatke, pridobivanje rezultatov na teh vlogah in zahtevah.

Vsi programi (razen Just Sign in XML Contact-Rosreestr) imajo demo način, ki traja 30 dni, kar vam omogoča uporabo funkcionalnosti programov brez omejitev. Po izteku demo obdobja morate kupiti polne različice programov ali jih prenehati uporabljati. Program Simply Sign je brezplačen program in nima nobenih omejitev pri uporabi. Program Contact-Rosreestr XML je v beta testiranju in je trenutno brezplačen za uporabo.

POMEMBNO! Za pretvorbo s programom Pretvornik XML oz Konstruktor XML Za velike datoteke XML je treba pred pretvorbo prenesti in namestiti zunanji procesor poizvedb XQuery ter ga določiti v ustreznem polju programa. Trenutno sta podprta dva prosto dostopna procesorja poizvedb: AltovaXML 2010 (razvil www.altova.com) in Saxon-HE 9.5 (razvil www.saxonica.com). Prenesete jih lahko s spletnega mesta proizvajalca ali s tega mesta s spodnjimi povezavami:

POMEMBNO! Preden začnete delati s programi, morate prebrati navodila. To je še posebej pomembno za program XML Constructor, saj je pred delom potrebno razumeti načelo delovanja tega programa. Navodila se nahajajo v isti mapi kot izvršljiva datoteka programa, to je za XML Constructor v mapi “c:\ProgramFiles\XMLCON\XMLConstructor\XMLConstructor-help.rtf”. Navodila lahko prikličete prek bližnjice iz glavnega menija programov Windows, to je za XML Designer “Start->Programs->XML Designer->XML Designer - Navodila”. Za program XML Designer so navodila na voljo tudi v meniju Pomoč.

Dolgo časa je bilo zame najbolj pereče vprašanje, kako in s čim podpisovati dokumente in XML datoteke z elektronskim podpisom ali digitalnim podpisom. To je dobro, ko ste v pisarni in so na vašem delovnem mestu nameščeni vsi programi za podpisovanje dokumentov in XML datotek. Toda pri mojem delu so se pogosto pojavljale situacije, ko je bilo treba izdelati in podpisati dokumente, XML datoteke, medtem ko sem bil daleč od svojega delovnega mesta ali, kot vedno, to storiti nujno in zdaj, ko sem doma. Predrago je kupiti in namestiti programsko opremo za elektronsko digitalno podpisovanje doma ali na prenosnik in jo nositi s seboj za vedno. Nato sem se na spletu lotil iskanja prosto razširjenih programov, ki omogočajo podpisovanje dokumentov in XML datotek z elektronskim digitalnim podpisom – EDS. Te programe, pa tudi enega plačanega, bomo obravnavali spodaj.

Za pošiljanje v Rosreestr, in to je obvezno, morajo biti vsi dokumenti podpisani z elektronskim digitalnim podpisom (elektronski digitalni podpis), včasih pa morate preveriti svoj ali digitalni podpis nekoga drugega.

In tako, poglejmo, kako in s kakšno programsko opremo lahko podpišete dokument ali datoteko XML z elektronskim digitalnim podpisom. Eden od programov je GIS "Panorama" - "Map-2011" različica 11.10.4. Podpisovanje dokumentov deluje tudi v neregistrirani različici. Postopek podpisovanja dokumentov, datotek Seznam programov, ki vam omogočajo podpisovanje dokumentov, datotek XML, EDS (elektronski digitalni podpis) za izmenjavo podatkov s portalom javnih storitev Zvezne službe za državno registracijo, kataster in kartografijo, Rosreestr, prek Internet EDS je naslednji: zaženite »Map-2011« ali »Mini Card«, pritisnite »F12«, da odprete meni za zagon aplikacije. V oknu, ki se prikaže, izberite nalogo elektronske dokumente, Nadalje Oblikovanje elektronskega digitalnega podpisa

Datoteka s podpisom: izberite datoteko, ki jo želite podpisati, in v skladu s tem zahtevano potrdilo v potrdilu. To je vse, vaš dokument ali XML datoteka je podpisana z elektronskim podpisom. Če želite preveriti obstoječi podpis, izberite datoteko s podpisom (datoteka s pripono “sig”). Uradna spletna stran GIS "" .

Drugi program za podpisovanje dokumentov in datotek XML je CryptoLine. Brezplačen, popolnoma funkcionalen, omogoča podpisovanje in šifriranje dokumentov ter preverjanje digitalnih podpisov. Ta program lahko prenesete z uradne spletne strani ali ga prenesete prek neposredne povezave s strani tega mesta. Delo s programom je preprosto in priročno. Izberite in dodajte datoteke, ki jih želite podpisati, nato izberite potrdilo, s katerim morate podpisati dokumente, XML datoteke in podpišite dokumente. Pozor - izberite samo eno potrdilo za podpis!!! V nasprotnem primeru bodo dokumenti podpisani s točno toliko certifikati, kot jih dodate v program. Navodila za uporabo so v arhivu programa. Spodaj bom navedel primer podpisa dostave Rossreestru.

Po namestitvi programa in njegovem zagonu v program dodajte datoteke, ki jih je treba podpisati. Zavihek »Dejanja«, gumb »dodaj«.

Če želite podpisati vse datoteke hkrati, jih morate izbrati vse - "Shift + desni gumb miške" ali "Shift + puščica navzdol". Nato kliknite »Podpiši«, v oknu, ki se prikaže, dodajte potrdilo ali pustite tisto, ki je bilo izbrano prej, ali pa ga spremenite v drugega. Še enkrat se spomnim, da za predložitev v Rosreestr v tem oknu ne sme biti več kot 1 potrdilo! Prav tako nastavite vse nastavitve, kot je prikazano na sliki:

Podpišimo. Po podpisu bodo datoteke s pripono “sigO” dodane na vaš seznam. To je podpis datoteke. Vse kar ostane je, da naložite podpisne datoteke ali vse datoteke (po vaši presoji). Izberite, kaj želite naložiti, v tem primeru tri datoteke s podpisi, in kliknite »Naloži«. Zdi se, da je to vse. Toda kot pri vsakem brezplačnem siru obstaja majhen odtenek. Rosreestr prisega na pripono datoteke »sigO«, zato morate v Raziskovalcu ali katerem koli upravitelju datotek preimenovati pripono iz »sigO« v »sig«.

Spletno mesto Rosreestr ni preverilo podpisa tega programa. Preverjanje podpisa je bilo izvedeno s programskimi izdelki, ki so v interakciji s portalom državnih storitev Zvezne službe za državno registracijo, kataster in kartografijo. Vsi trije programi, ki so preverjali podpis, ki ga izvaja ta program, so dali pozitiven rezultat. Preverjanje je bilo opravljeno s tukaj navedenimi programi GIS »Panorama«, Crypto ARM in programom Polygon-Land Survey Plan. Podpis je bil overjen tudi s spletno storitvijo za preverjanje pristnosti digitalnega podpisa na spletni strani.

Drug program za podpisovanje dokumentov in datotek XML je . Lahko ga prenesete z uradne spletne strani programa. Sam program je precej funkcionalen in privlačen, stroški niso visoki, le 1200 rubljev za 1 delovno mesto. Obstaja tehnika. podporo in tudi obsežno pomoč. Najpopolnejše in najbolj ažurne informacije lahko dobite na. Preberite tudi o EDS v opombi

Plemeniti cilj plemeniti delovanje v imenu tega cilja.K. Liebknecht

Odkar se je elektronsko kroženje poslovnih dokumentov in korespondence začelo uveljavljati, je postopek ugotavljanja verodostojnosti elektronske datoteke in podpisovanje le-te postal izjemno nujen. Delo z elektronskimi digitalnimi podpisi in datotekami različnih formatov je že postalo običajen del našega življenja. Toda za tiste, ki se s takim dejanjem soočajo prvič, se neizogibno pojavi vprašanje, kako podpisati elektronsko podpisno datoteko. Glede na možnost izdelave se razlikuje tudi način pritrditve tega podpisa. Zato je treba analizirati značilnosti vsake metode.

Certificiranje besedil, izdelanih v XML

Če morate podpisati poročilo, sestavljeno v XML, potem je vredno razmisliti, da obstaja več možnosti za izvedbo tega dejanja.

  1. Za ustvarjanje digitalnih podpisov v formatu XML lahko uporabite novo komponento Microsoft Office - InfoPath 2003.
  2. Ustvarjanje avtograma, kot za običajno obliko. V tem primeru boste morali uporabiti program CryptoPro.

Pogosto je za podpisovanje poročil s to obliko potrebno ustvariti dodaten atribut v oznaki. Vanj se vnese digitalni podpis iz niza znakov, katerega dolžina je različna in vsebuje vrednost atributov. Tudi ta pristop, ki je precej zanimiv, a kljub temu povsem sprejemljiv, najdemo precej pogosto.

Delo s formatom PDF

Pogosto se pojavi vprašanje, kako elektronsko podpisati datoteko, če je dokument ustvarjen v formatu PDF. Za generiranje in preverjanje digitalnih podpisov dokumentacije, izdelane v formatu PDF, je podjetje CryptoPro razvilo program CryptoPro PDF. Ta izdelek je način za ustvarjanje in preverjanje digitalnih podpisov za pisma, ki so bila ustvarjena v programih Adobe Acrobat in Adobe Reader.

Precej pomembno dejstvo je, da je CryptoPro brezplačen program, kar pomeni, da vam za uporabo ni treba plačati opravljenih storitev. Če želite uporabljati to programsko opremo, jo boste morali namestiti, nato pa boste lahko preverili dokumente.

Podpisovanje pošiljk z več datotekami

Včasih se pojavi vprašanje, kako podpisati datoteke EDS, če pošiljka ne vsebuje enega, ampak več dejanj. V tem primeru lahko ustvarite svoj podpisni avtogram posebej za vsakega od njih.

Če ta možnost iz nekega razloga ni mogoča, lahko ustvarite dodaten element besedilnega tipa, kamor boste naknadno zapisali identifikacijske parametre dokumenta, kot tudi indikatorje zgoščevalne funkcije vsake posamezne datoteke v dokumentu. To bo olajšalo delo tako vam kot prejemniku pisma.

Eden od projektov, ki trenutno poteka, je rešil problem podpisovanja (elektronskega podpisovanja) XML dokumentov, in sicer paketov SOAP. Priporočena oblika je bila standard OASIS 200401 s profilom žetona potrdila X.509. Ti dokumenti opisujejo uporabo formata digitalnega podpisa XML (XMLDSig) www-konzorcija (W3C) v sporočilih SOAP. Podpisi XML, tako kot druge vrste elektronskih podpisov, podpirajo avtentikacijo, celovitost podatkov in nezavrnitev podpisovanja podatkov.

Omenil bom več funkcij formata XMLDSig:

1. Kot predmet podpisovanja ne more služiti celoten dokument XML, ampak le njegov del, tj. določeno vozlišče. V skladu s standardom OASIS 200401 je predmet, ki se podpisuje, telo (vozlišče Telo) Sporočila SOAP.

2. Različne dele dokumenta XML lahko podpiše več podpisnikov.

3. Podpis XML je lahko na različnih ravneh glede na predmet, ki se podpisuje:

  • struktura podpisa lahko vsebuje URI(enotni identifikator vira);
  • Podpis XML je lahko na isti ravni kot vozlišče, ki se podpisuje;
  • Podpis XML je lahko znotraj vozlišča, ki ga podpisujete;
  • Vozlišče, ki se podpisuje, je lahko vsebovano v strukturi podpisa XML.

4. Za preverjanje veljavnosti elektronskega podpisa je potreben dostop do predmeta podpisovanja.

Struktura ovojnice SOAP

Na splošno je sporočilo sestavljeno iz glave in telesa: Glava in Telo. Glava vsebuje metapodatke in Telo podatke. Podpis XML je nameščen v vozlišču Glava.

Kriptografski algoritmi in kanonikizacija.

Za rešitev problema smo uporabili GOST R 34.11-94- Ruski kriptografski standard za izračune hash funkcije in GOST R 34.10-2001- standard elektronskega podpisa.

Zaradi prilagodljivosti pravil sestavljanja XML lahko isto strukturo dokumenta in isti podatek predstavljata različni dokumenti XML. Poglejmo dva dokumenta:

Z logičnega vidika sta enakovredna, to pomeni, da imata isto shemo XML. Toda datoteke XML teh seznamov ne vsebujejo istega zaporedja znakov, kar bo vodilo do različnih rezultatov, na primer pri pridobivanju zgoščene vrednosti.

Da bi se izognili takšnim neskladjem, so bila sprejeta stroga pravila oblikovanja in zahteve za vsebino sporočil XML. Postopek spravljanja dokumentov XML v poenoteno (kanonično) obliko se imenuje kanonizacija(Angleško: Canonicalization). Primeri pravil so lahko uporaba določene sheme kodiranja (UTF-8), normalizacija vrednosti atributov, uporaba dvojnih narekovajev za vrednosti atributov, določen vrstni red atributov in deklaracij imenskega prostora itd. Kanonizacija XML je na voljo v več vrstah, ki se razlikujejo po sestavi pravil. Več o procesu kanoniziranja lahko preberete v uradni specifikaciji W3C (članke o tej temi v ruskem jeziku najdete in)

Knjižnica SIRCrypt

Za implementacijo XML podpisovanja v DIRECTUM je bila napisana COM knjižnica, znotraj katere so opisani 3 razredi: Hasher, Podpisnik in XMLCanonicalizer za pridobitev zgoščene vrednosti, vrednosti ES in kanonikalizacije dokumentov XML.

Knjižnica zahteva Crypto PRO CSP(testirano na različici Crypto PRO CSP 3.6.6497 KC2) In .MREŽA(najmanj 2,0).

Registracijo knjižnice izvedete tako, da zaženete naslednji ukaz:

> regasm.exe "pot do dll" /codebase /tlb

Hasher objekt za izračun hash-a po GOST

Vsebuje polja Vsebina (vnesite "niz") in HashValueAsBase64 (tip "string"), kot tudi metodo za izračun zgoščene vrednosti Hash(). Za izračun je potrebno definirati Vsebina , pokličite metodo Hash(), zaradi česar je na terenu HashValueAsBase64 zgoščena vrednost bo zapisana v Base64.

Objekt podpisnika za pridobitev vrednosti ES po GOST

Vsebuje polja Vsebina (vnesite "niz"), Ime vsebnika (vnesite "niz"), Certifikat AsPEM (vnesite "niz"), BESsignatureValueAsBase64 (tip "string"), metoda znak(). Po inicializaciji objekta morate definirati Vsebina (podpisni podatki), Ime vsebnika (ime vsebnika zasebnega ključa potrdila), klicna metoda znak(). Potem na terenu Certifikat AsPEM potrdilo, ki ustreza zasebnemu ključu, bo v Base64 in polje BESsignatureValueAsBase64 vrednost podpisa kot niz Base64.

Objekt XMLCanonicalizer za kanonikalizacijo XML

Vsebuje polja XMLContent (vnesite "niz"), CanonicalXML (tip "niz"), metoda C14NExc(). Če želite dobiti kanonični obrazec XML, morate določiti XMLContent , pokliči C14NExc(), dobite rezultat s terena CanonicalXML .

Struktura podpisa XML

Ustvarjanje podpisa izgleda takole: najprej se oblikuje osnova paketa mila, vozlišča Glava in Telo. Telo se napolni s podatki in doda atribut wsu:ID="Telo"- identifikator podpisanih podatkov.

Polnjenje strukture Varnost zgodi v naslednjem vrstnem redu:

  1. Zgoščena vrednost iz vozlišča Body se vzame v kanonični obliki in postavi v vozlišče DigestValue.
  2. Vozel SignedInfo reducirano v kanonično obliko, podpisano z elektronskim podpisom. Rezultat v formatu niza Base64 gre v vozlišče SignatureValue.
  3. Javni ključ potrdila, ki je bil uporabljen za podpis, je nameščen v vozlišču BinarySecurityToken v formatu niza Base64.

Če želite preveriti tako ustvarjeni ES, morate narediti vse korake v obratnem vrstnem redu, in sicer:

  1. dobimo kanonično obliko elementa SignedInfo.
  2. Z rezultatom prejšnjega koraka preverite, ali je vrednost ES iz vozlišča veljavna SignatureValue z uporabo javnega ključa potrdila. V tej fazi se preverja le pravilnost elektronskega podpisa, kar pa ne zagotavlja nespremenljivosti podatkov.
  3. Če je preverjanje veljavnosti elektronskega podpisa uspešno, se primerja hash iz vozlišča DigestValue in zgoščeno vrednost iz vozlišča s podatki. Če so neenaki, so bili podpisani podatki spremenjeni in je celoten elektronski podpis neveljaven.

Primer uporabe

Razvojni komplet in knjižnica

Primeri podpisovanja XML na ISBL (skript): dev.zip (5,95 KB)

Za trajno uporabo se koda, ki izvaja standardno podpisovanje dokončane ovojnice SOAP, premakne v funkcijo SignSOAP().

Za podpisovanje se uporablja potrdilo iz osebne shrambe potrdil trenutnega uporabnika.