Kaip pasirašyti dokumentą elektroniniu parašu. Kaip teisingai pasirašyti skaitmeninio parašo failą Xml pasirašymas skaitmeniniu parašu

Negaliu bendrai suprasti XML dokumentų pasirašymo mechanizmų. Būčiau dėkingas už jūsų pagalbą tai išsiaiškinti)

Mano situacija tokia:

1) yra sertifikavimo institucija, kurios išduoti sertifikatai dedami į serverius windows saugykloje... asmeniniuose, patikimuose ir pan... ne esmė.

Prisijungdamas prie programos, vartotojas pasirašo atsitiktinai sugeneruotą eilutę pasirinktu sertifikatu. Serveryje šis parašas yra patikrintas:

CAPICOM.SignedData _signedData = naujas CAPICOM.SignedData(); _signedData.Verify(signedData, false, CAPICOM_SIGNED_DATA_VERIFY_FLAG.CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE); if (_signedData.Content != data) throw new Exception("Parašo turinys neatitinka gauto turinio"); var _certificate = _signedData.Certificates; // vartotojo sertifikatas

Taip gauname vartotojo sertifikatą (viešąjį raktą). Svarbu tai, kad parašas bus patikrintas tik tuo atveju, jei sertifikato saugykloje esančiame serveryje yra atitinkamas viešasis sertifikato raktas. Tai ir reikia, kad įsileisti tik tie, kurių pažymėjimus mes patys išleidome) Čia lyg ir aišku.

2) dabar mums reikia, kad tie patys vartotojai pasirašytų xml su savo sertifikatais. Mano programinė įranga kliente pati sugeneruoja xml failus ir pasirašo juos su vartotojo nurodytu sertifikatu:

Viešas statinis tuščias SignXml(XmlDocument xmlDoc, /*RSA*/AsymmetricAlgorithm Key) ( SignedXml signedXml = new SignedXml(xmlDoc); signedXml.SigningKey = raktas; Nuorodos nuoroda = nauja nuoroda (); nuoroda.Uri = "";//signature visas xml dokumentas XmlDsigEnvelopedSignatureTransform env = naujas XmlDsigEnvelopedSignatureTransform(); nuoroda.AddTransform(env); signedXml.AddReference(reference); KeyInfo keyInfo = new KeyInfo(); keyInfo.AddClause GOSTKeyInfo /Crypt/KeyInfo. signedXml.KeyInfo = keyInfo; signedXml.ComputeSignature(); XmlElement xmlDigital Signature = signedXml.GetXml(); xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true)); )

XmlDocument doc = naujas XmlDocument(); doc.PreserveWhitespace = true; doc.Load(kelias); SignedXml sx = naujas SignedXml(doc); XmlNodeList nodeList = doc.GetElementsByTagName("Parašas"); sx.LoadXml((XmlElement)mazgų sąrašas); return sx.CheckSignature();

Kodas veikia, bet turiu supratingų klausimų: tokiu atveju galite pasirašyti xml su absoliučiai bet kokiu sertifikatu, kurio neišdavė mūsų CA, o kadangi informacija apie viešąjį raktą yra saugoma pačiame pasirašytame xml, parašas yra patikrintas. . Šis variantas man netinka. „CheckSignature“ metodas turi perkrovą su AsymmetricAlgorithm tipo parametru, kuris patikrins pasirašymo sertifikato egzistavimą parduotuvėje, patikrins jo galiojimą, galiojimo datą ir pan. To man reikia, bet iš anksto nežinau, kuris vartotojas atsiuntė pasirašytą xml.

Pasakykite man: kaip patikrinti xml parašą arba kaip teisingai jį sukurti, kad būtų tikrinami tik tie xml, kurie yra pasirašyti tik su mūsų sertifikatais (kurie yra įdiegti saugykloje)?

P.s. o kokia bendra prasmė laikyti ir patį parašą, ir viešąjį raktą parašo iššifravimui xml? Jei pašalinsite eilutę signedXml.KeyInfo = keyInfo; , tada xml nepatenka parašo patikrinimo.

ML, arba eXtensible Markup Language, dabar tampa standartiniu būdu perduoti informaciją žiniatinklyje (ir ne tik). Be to, atsiranda vis daugiau priedų, kurie naudoja XML sintaksę (XML programas). Pavyzdžiui, tai apima supaprastintą objektų prieigos protokolą SOAP (Simple Object Access Protocol), kuriame XML veikia kaip universali priemonė, vaizduojanti parametrus, iškviečiant nuotolines procedūras RPC (Remote Procedure Call). Kitas įskiepio pavyzdys yra RDF (Resource Description Framework) sistema. Galite pažvelgti į World Wide Web Consortium (W3C), kuris kuria šios srities standartus (http://www.w3.org/), ir pamatysite, kad XML iš tiesų skiriamas didesnis dėmesys.

Prisiminkime, kad pagrindinis XML tikslas yra aprašyti dokumento struktūrą ir semantiką. Pagrindinis XML privalumas, lyginant su kitais elektroninių dokumentų formatais, yra tas, kad jis atskiria išorinio dokumento pateikimo aprašymą nuo dokumento struktūros ir jo turinio. XML yra lanksti kalba, kuri gali būti naudojama įvairiems tikslams ir gali būti sąsaja su daugeliu sistemų ir duomenų bazių. Taigi šiandien XML daugelyje informacinių sistemų naudojamas kaip pagrindinis duomenų mainų formatas. Be to, duomenų bazių valdymo sistemų gamintojai žengė galingą žingsnį link XML. Pavyzdžiui, „Oracle“ išleido XSU (XML-SQL Utility), kuri yra JDBC priedas, leidžiantis saugoti ir gauti XML duomenis duomenų bazėje (http://otn.oracle.com/tech/xml/ xdk_java/content .html). XSU yra „Java“ klasių hierarchija, skirta duomenims iš objektų santykių duomenų bazių lentelių ir rodinių transformuoti į XML formatą, įterpti duomenis iš XML dokumentų į lenteles ir rodinius ir atlikti kitas naudingas operacijas.

Poreikis apsaugoti XML dokumentus

ML yra galingas įrankis, dažnai naudojamas keistis duomenimis internete. Tačiau, deja, ji pati neužtikrina reikiamos duomenų, kuriuos „gabena“, apsaugos. Kitaip tariant, naudojant XML formatą (kaip ir naudojant kitus formatus) kyla rimtų saugumo problemų.

XML gali būti lengvai naudojamas perduodant operacijų pranešimus tarp banko ir bankomato, konfidencialią ar pusiau konfidencialią informaciją apie asmenis, informaciją apie elektronines operacijas arba tiesiog perduodant patentuotus dokumentus tokiu formatu. Tačiau kartu būtina užtikrinti informacijos apsaugą nuo nevalingų ar tyčinių iškraipymų tiek iš informacinių sistemų vartotojų pusės, tiek perduodant ją ryšių kanalais. Apsauga turėtų būti pagrįsta šiomis funkcijomis:

  • sąveikaujančių šalių autentifikavimas;
  • informacijos autentiškumo ir vientisumo patvirtinimas;
  • perduodamų duomenų kriptografinis uždarymas.

Siekiant užtikrinti šią informacijos apsaugą, patartina naudoti elektroninio skaitmeninio parašo (EDS) ir duomenų šifravimo būdus. Be to, kaip taisyklė, skaitmeninis parašas užtikrina autentifikavimą, autentiškumo ir vientisumo patvirtinimą, o duomenų uždarymas pasiekiamas šifruojant.

Bendra informacija apie elektroninius skaitmeninius parašus

EDS ir jo klastojimo galimybė

Elektroninis skaitmeninis parašas – tai prie pradinio informacijos bloko (dokumento) pridedami duomenys, gauti kriptografinės transformacijos būdu (priklausomai nuo slaptojo rakto ir pirminio informacijos ar dokumento bloko). EDS užtikrina pranešimų (dokumentų) vientisumą su garantuota jų autoriaus (dokumentą pasirašiusio asmens) identifikacija, dažniausiai perduodama neapsaugotais viešaisiais telekomunikacijų kanalais.

Informacijos bloko elektroninio skaitmeninio parašo patikrinimas atliekamas kriptografiniu skaitmeninio parašo transformavimu, naudojant viešąjį raktą, atitinkantį slaptąjį raktą, kuris dalyvavo skaitmeninio parašo diegimo procese.

Neįmanoma suklastoti elektroninio skaitmeninio parašo pasiekiama naudojant labai daug matematinių skaičiavimų (pavyzdžiui, parašo neįmanoma suklastoti dėl to, kad sudėtinga išspręsti diskretinio logaritmo problemą p elementų lauke El-Gamal parašo schema). Parašo padėjimas ant dokumento nekeičia paties dokumento, o tik leidžia patikrinti gautos informacijos autentiškumą ir autorystę (ty prie paties dokumento arba atskirai nuo jo pridedamas duomenų blokas - skaitmeninis parašas). šį dokumentą).

sertifikavimo institucija

Aukščiau paminėjome terminus „privatus raktas“ ir „viešasis raktas“. Iš kur atsirado šie raktai? Juos formuoja sertifikavimo institucija – tam tikra struktūra (organizacija), kuri valdo sertifikatus. Viešojo / privataus rakto sertifikatas yra toks duomenų rinkinys:

  • sistemos subjekto ar objekto pavadinimas, kuris jį sistemoje vienareikšmiškai identifikuoja;
  • viešasis/privatus sistemos subjekto ar objekto raktas;
  • papildomi atributai, kuriuos nustato sertifikato naudojimo sistemoje reikalavimai;
  • leidėjo (sertifikavimo institucijos) elektroninis skaitmeninis parašas, patvirtinantis šių duomenų visumą.

Taigi, pavyzdžiui, privataus rakto sertifikate yra pats privatusis raktas ir papildoma informacija apie jį.

Kiekvienam registruotam informacinės sistemos vartotojui sertifikavimo centras (CA) generuoja du sertifikatus: privataus rakto sertifikatą ir viešojo rakto sertifikatą. Tokiu atveju pirmasis SO išduodamas asmeniškai registruotam vartotojui (pavyzdžiui, diskelyje) ir niekam kitam - tai yra „parašas“. Antrąjį atvirąjį sertifikatą CA paskelbia viešoje saugykloje, kad visi norintys galėtų lengvai jį rasti.

Skaitmeninio parašo generavimas ir tikrinimas

Informacijos siuntėjas, naudodamas slaptą raktą ir iš anksto abonentų susitarimu parinktą asimetrinį algoritmą (skaitmeninio parašo algoritmas), užšifruoja perduodamą informaciją, pateikiamą skaitmenine forma, ir tokiu būdu gauna skaitmeninį duomenų parašą. Toliau informacijos siuntėjas atviru ryšio kanalu nešifruotą informaciją ir aukščiau aprašytu būdu gautą skaitmeninį parašą siunčia gavėjui.

Pranešimo gavėjas, naudodamas viešąjį raktą (kuris yra viešai prieinamas) ir abonentų susitarimu parinktą skaitmeninio parašo algoritmą, išslaptina skaitmeninį parašą. Toliau jis lygina gautą nešifruotą informaciją ir informaciją, gautą iššifruojant skaitmeninį parašą. Jei skaitmeninis parašas nebuvo suklastotas, o perduota atvira informacija nėra iškraipyta, ši informacija turėtų visiškai sutapti. Jei parašas yra suklastotas, tai gauta atvira informacija ir iššifravimo metu gauta informacija labai skirsis (1 pav.).

Maišos funkcijos

Aukščiau pateiktoje siuntėjo ir gavėjo sąveikos schemoje trūksta vienos operacijos. Jis siejamas su duomenų šifravimo etapu, kurio metu formuojamas elektroninis skaitmeninis parašas. Jei tik sugeneruosime skaitmeninį parašą, tada jis (priklausomai nuo algoritmo) paprastai bus maždaug tokio pat ilgio, kaip ir pradinis duomenų blokas, ir tinkle turėsime perduoti dvigubo ilgio pranešimą. Natūralu, kad tai neigiamai paveiktų visą sistemos veikimą. Todėl prieš generuojant skaitmeninį parašą pirminiai duomenys apdorojami naudojant maišos funkciją ir taip parašas tampa kompaktiškas. Žinoma, norint gauti teisingą rezultatą, gavėjas turi atlikti tą pačią transformaciją gautame duomenų bloke.

Naudojama maišos funkcija turi sugebėti bet kokio ilgio pranešimą konvertuoti į fiksuoto ilgio dvejetainę seką. Be to, jis turi atitikti šiuos reikalavimus:

  • pranešimas pritaikius maišos funkciją turi priklausyti nuo kiekvieno pradinio pranešimo bito ir jų eilės;
  • Naudojant maišos versiją, negalima atkurti paties pranešimo.

Šifravimo supratimas

Duomenų šifravimas ir jo skirtumas nuo skaitmeninio parašo

Informacijos šifravimas – tai matematinė (kriptografinė) transformacija vienas į vieną, priklausomai nuo rakto (slapto transformavimo parametro), kuris atitinka atviros informacijos bloką, pateiktą tam tikra skaitmenine koduote, su užšifruotos informacijos bloku, taip pat pateikiamu skaitmeniniu būdu. kodavimas. Šifravimas apjungia du procesus: informacijos šifravimą ir iššifravimą (2 pav.).

Esminis skirtumas tarp skaitmeninio parašo ir šifravimo metodų (dabar svarstome apie asimetrinius algoritmus, kuriuose šifravimui ir iššifravimui naudojami skirtingi, bet matematiškai susiję raktai) yra tas, kad šifruojant naudojamas viešasis gavėjo raktas, o iššifruojant – privatus raktas. , tuo tarpu Skaitmeninio parašo algoritmas reikalauja slaptojo autoriaus rakto, kad pasirašytų pranešimą, ir pranešimo autoriaus viešąjį raktą, kad patikrintų skaitmeninį parašą.

Lūžęs

Teoriškai bet koks šifravimo algoritmas naudojant raktą gali būti pažeistas ieškant visose rakto reikšmėse. Jei pasirenkamas raktas, reikiama kompiuterio galia didėja eksponentiškai didėjant rakto ilgiui. 32 bitų raktui reikia 232 (apie 109) žingsnių. Šią užduotį gali atlikti bet kuris mėgėjas ir ją galima išspręsti namų kompiuteriu. Sistemoms su 40 bitų raktu (pavyzdžiui, eksportuotai amerikietiškai RC4 algoritmo versijai) reikia 240 žingsnių; tokia kompiuterio galia yra prieinama daugumoje mažų įmonių. Sistemoms su 56 bitų raktais (DES) atidaryti reikia didelių pastangų, tačiau jas galima lengvai atidaryti naudojant specialią įrangą. Tokios įrangos kaina yra nemaža, tačiau ji yra prieinama mafijai, didelėms įmonėms ir vyriausybėms. Šiuo metu 64 bitų ilgio raktus gali atidaryti didelės valstybės, o per ateinančius kelerius metus juos galės atidaryti nusikalstamos organizacijos, didelės įmonės ir mažos valstybės. 80 bitų raktai ateityje gali tapti pažeidžiami. Tikėtina, kad artimiausioje ateityje raktai, kurių ilgis yra 128 bitai, išliks nesulaužomi brutalia jėga. Galima naudoti ir ilgesnius klavišus.

Tačiau rakto ilgis dar ne viskas. Daugelį šifrų galima sulaužyti neišbandžius visų galimų kombinacijų, bet naudojant specialų algoritmą (pavyzdžiui, su daugianario sudėtingumu). Apskritai labai sunku sugalvoti šifrą, kurio nebūtų galima atidaryti naudojant kitą metodą, efektyvesnį už brutalią jėgą.

Atminkite, kad kriptografinė sistema yra tiek stipri, kiek stipri jos silpniausia grandis. Nereikėtų pamiršti nė vieno sistemos dizaino aspekto – nuo ​​algoritmo pasirinkimo iki pagrindinių naudojimo ir platinimo strategijų.

XML dokumentų elektroninis skaitmeninis parašas

Tie, kurie dirba su XML, jau seniai suprato, kaip svarbu kontroliuoti perduodamus ir XML formatu pateikiamus duomenis. Pagrindiniai reikalavimai perduodamiems duomenims yra sąveikaujančių šalių autentifikavimas ir informacijos autentiškumo bei vientisumo patvirtinimas XML dokumente. Tokios problemos išsprendžiamos skaitmeniniu XML dokumentų parašu.

W3C skaitmeninio parašo XML specifikacijos

W3C šiuo metu kuria XML parašo sintaksės ir apdorojimo specifikaciją bei kitus susijusius dokumentus. Kol kas jis turi rekomendacijos statusą (http://www.w3.org/TR/xmldsig-core/). Šiame dokumente numatyta pasirašyti visą XML dokumentą ir jo dalį. Kad XML pasirašymo procesas būtų unikalus, apibrėžiama kanoninio XML duomenų atvaizdavimo koncepcija. Pavyzdžiui, XML dokumente žymos, esančios tame pačiame hierarchijos medžio lygyje, gali būti sumaišytos, taip sukuriant pasirašymo proceso dviprasmiškumą. Kanoninis XML vaizdavimas yra tam tikras rūšiavimas (tiksliau, sumažinimas iki paprasčiausios formos), neleidžiantis tokių laisvių. XML kanonizavimo metodai ir taisyklės aprašyti atskirame dokumente „Canonical XML“ (http://www.w3.org/TR/xml-c14n), kuris taip pat turi rekomendacijos statusą. Kitą su XML dokumentų pasirašymu susijusią medžiagą rasite adresu http://www.w3.org/Signature/.

Žyma XML parašas

„XML parašo sintaksės ir apdorojimo“ rekomendacijoje nurodoma, kad parašas ir informacija apie jį turi būti žymoje , kuriame yra šios dalys (jos daugiausia reikalingos parašo tikrinimui):

  • Canonicalization Method apibrėžia konkretų taisyklių rinkinį, skirtą supaprastinti ir struktūrizuoti XML egzempliorių prieš pasirašant. Ši informacija užtikrina, kad pasirašyti duomenys būtų teisingos formos, kad patikrinimo algoritmas duotų teigiamą rezultatą, jei turinio duomenys nebuvo pakeisti;
  • parašo metodas (SignatureMethod) apibrėžia pranešimo santraukos parašo algoritmą. Pranešimo santrauka yra unikali fiksuoto dydžio simbolių eilutė, ji yra duomenų apdorojimo, naudojant vienpusę maišos funkciją, nurodytą santraukos metodu, rezultatas;
  • santraukos metodo (DigestMethod) algoritmas, skirtas parengti pranešimo, pasirašyto naudojant nurodytą parašo metodą, santrauką. Nurodant konkretų santraukos metodą užtikrinama, kad duomenys būtų apdorojami vienodai;
  • santraukos vertė (DigestValue) pati pranešimo santrauka, tai yra fiksuoto ilgio eilutė, sukurta apdorojant duomenis naudojant santraukos algoritmą. Tokia eilutė yra unikali ir negrįžtama: jos praktiškai neįmanoma gauti iš kito turinio, taip pat neįmanoma iš jos atkurti pradinių duomenų. Tai tarsi pasirašomų duomenų piršto atspaudas; teigiamas santraukų verčių palyginimas garantuoja turinio vientisumą;
  • pats parašas (SignatureValue) tai duomenys, gauti po apdorojimo parašo metodu;
  • informacija apie viešąjį raktą (KeyInfo) skaitmeninio parašo tikrinimo raktą. Tiksliau, ne raktas, o sertifikatas, nes jame, be paties rakto, gali būti nurodytas ir savininko vardas bei skaitmeninio parašo algoritmas.

Žinoma, tai nėra išsami informacija apie tai, kas gali būti žymoje. . Štai paprasčiausias tokio parašo pavyzdys (1 sąrašas).

Skaitmeninio parašo XML formavimas

Reikėtų pažymėti, kad tarp XML pasirašymo proceso ir klasikinio yra keletas skirtumų. Faktas yra tas, kad XML egzemplioriaus pasirašymo procesas prasideda nuo kanonizacijos, tai yra, supaprastinant duomenų struktūrą. Kaip jau minėta, ši procedūra reikalinga tam, kad būtų galima teisingai patikrinti to paties XML dokumento, pateikto skirtingais būdais, skaitmeninį parašą. Tai reiškia, kad prieš pasirašant visi XML dokumentai turi būti konvertuoti į vieną kanoninę formą. Likę žingsniai yra tokie patys kaip ir standartinis skaitmeninio parašo pridėjimo procesas: naudojant nurodytą metodą duomenims sukuriama santraukos reikšmė, tada ši reikšmė pasirašoma dokumento autoriaus privačiu raktu.

XML skaitmeninio parašo patikrinimas

Norėdami patikrinti parašą, turite atlikti du veiksmus: patikrinti patį parašą ir patikrinti santraukos reikšmę.

Pats parašas pirmiausia patikrinamas, kad būtų užtikrintas jo savininko autentiškumas ir išvengta atsisakymo. Tada patikrinama santraukos reikšmė, siekiant užtikrinti, kad duomenys nepasikeitė, ir patikrintas XML dokumento turinio vientisumas.

XML dokumentų šifravimas

W3C XML šifravimo specifikacijos

Pereikime prie šifravimo, kuris leidžia uždaryti (tai yra transformuoti į formą, kurios reikšmė neaiški) perduodamus duomenis ir atkurti juos priimančiojoje pusėje. W3C konsorciumas sukūrė darbo grupę (http://www.w3.org/Encryption/2001/), kuri konkrečiai sprendžia XML duomenų šifravimo klausimus. XML šifravimo sintaksės ir apdorojimo specifikacija dabar yra rekomendacija ir pasiekiama adresu http://www.w3.org/TR/xmlenc-core/.

Žyma

  • šifravimo metodas (EncryptionMethod) aprašo duomenų šifravimo algoritmą. Jei šios žymos trūksta, šifravimo algoritmas turi būti žinomas priimančiajai pusei, kitaip pranešimo iššifravimas neįmanomas;
  • užšifruoti duomenys (CipherData) tikri užšifruoti duomenys arba nuoroda į jų vietą. Šifruojamų duomenų tipų ir jų loginio organizavimo metodų įvairovė praktiškai neribota;
  • informacija apie raktus (KeyInfo) informacija apie raktus, su kuriais atliekamas šifravimas ir atitinkamai iššifravimas. Juos galima saugoti kitur ir XML egzemplioriuje pakeisti URL nuoroda;
  • kita informacija (pavyzdžiui, apie numatomus gavėjus).

Žymės pavyzdys parodyta 2 sąraše.

Šifravimo ir iššifravimo procesas

XML duomenys šifruojami naudojant tradicinius viešojo rakto kriptografijos metodus. Pirmiausia užšifruojami patys duomenys, dažniausiai naudojant atsitiktinai sugeneruotą slaptąjį raktą, kuris vėliau taip pat užšifruojamas naudojant numatyto gavėjo viešąjį raktą. Ši informacija supakuota taip, kad tik numatytas gavėjas galėtų išgauti slaptąjį raktą ir iššifruoti duomenis. Slaptasis raktas naudojamas slaptajam raktui iššifruoti, o tada duomenys iššifruojami naudojant rastą slaptąjį raktą.

XML dokumentų apsaugos įgyvendinimas

Apžvelgėme bendruosius elektroninio skaitmeninio parašo veikimo principus ir specifikacijas, kurias W3C konsorciumas sukūrė šioje srityje. Viskas gerai, bet ką daryti, jei iš tikrųjų reikia įdiegti aprašytas XML duomenų apsaugos schemas?

Jau šiandien, nepaisant to, kad W3C standartai pasirodė visai neseniai, kai kurios įmonės paskelbė apie savo paketų (klasių bibliotekų) išleidimą, kuriuose įdiegtas ir skaitmeninis parašas, ir šifravimas. Pažvelkime į kai kurių iš jų galimybes.

XML saugos paketas (IBM)

Šį paketą, paremtą Java programavimo kalba, galite rasti adresu http://www.alphaworks.ibm.com/tech/xmlsecuritysuite. XML Security Suite yra įrankis, teikiantis saugos funkcijas, tokias kaip skaitmeninis pasirašymas, šifravimas ir XML dokumentų prieigos kontrolė. Su jo pagalba galite pasiekti didesnę sėkmę nei naudodamiesi transporto lygmens saugos protokolų galimybėmis (pavyzdžiui, Secure Sockets Layer, SSL).

Šis paketas įgyvendina tris technologijas:

  • Skaitmeninis parašas pagrįstas W3C ir IETF „XML parašo sintaksės ir apdorojimo“ specifikacija (ir „Canonical XML“ specifikacija);
  • šifravimas įgyvendinamas remiantis W3C „XML šifravimo sintaksės ir apdorojimo“ specifikacija;
  • XML dokumentų prieigos kontrolė (XML prieigos valdymo kalba).

XML Security Suite yra vienas geriausių šiuolaikinių XML dokumentų apsaugos priemonių. Be paties archyvo (JAR) su klasės biblioteka, jame yra išsami dokumentacija ir pavyzdžiai, leidžiantys greitai naršyti klasės hierarchijoje.

XML sauga (Apache)

XML pagrindu sukurta duomenų apsauga

Saugumo patvirtinimo žymėjimo kalba (SAML)

Sritis, kuri skiriasi nuo XML duomenų apsaugos, bet glaudžiai su ja susijusi, yra XML pagrįstų sistemų (protokolių) saugos ir saugumo gerinimas. Tokiu atveju kiti dokumentai/sistemos/programos yra apsaugotos naudojant XML. Šiuo metu Struktūrinės informacijos standartų tobulinimo organizacijos (OASIS) saugumo komitetas kuria saugumo tvirtinimo žymėjimo kalbą (SAML).

Federalinis įstatymas „Dėl elektroninio skaitmeninio parašo“

Tikslai

Šiek tiek pailsėkime nuo įstatymų leidėjų žiniatinklio srityje ir apsvarstykime Federalinį įstatymą „Dėl elektroninio skaitmeninio parašo“, kurį 2002 m. sausio 10 d. patvirtino Rusijos Federacijos prezidentas (http://www.internet-law). .ru/intlaw/laws/ecp.htm). Priėmus šį įstatymą buvo nustatytos elektroninio skaitmeninio parašo naudojimo elektroniniuose dokumentuose teisinės sąlygos, kurioms esant elektroninis skaitmeninis parašas elektroniniame dokumente pripažįstamas lygiaverčiu parašui ranka popieriniame dokumente. Taip padėti pamatai teisiškai reikšmingo elektroninių dokumentų valdymo sukūrimui.

Elektroninio parašo ir įprasto parašo lygiavertiškumo sąlygos

Įstatymas apibrėžia pagrindines skaitmeninio parašo procedūroje vartojamas sąvokas, tokias kaip sertifikatas, viešieji ir privatūs raktai, elektroninio skaitmeninio parašo autentiškumo patvirtinimas (juos nagrinėjome anksčiau) ir kt. Be to, įstatymas apibrėžia sąlygas, kurioms esant elektroninis skaitmeninis parašas elektroniniame dokumente prilyginamas parašui popieriniame dokumente. Tai visų pirma reiškia, kad su šiuo elektroniniu skaitmeniniu parašu susijęs parašo rakto sertifikatas neprarado galios tikrinimo metu ar elektroninio dokumento pasirašymo metu. Be to, turi būti patvirtintas elektroninio skaitmeninio parašo autentiškumas ir, kad skaitmeninis parašas naudojamas pagal parašo rakto sertifikate nurodytą informaciją.

Sertifikatai ir sertifikavimo institucijos

Įstatyme detaliai aprašoma, iš ko susideda parašo rakto sertifikatas (unikalus registracijos numeris, pilnas savininko vardas, pavardė, viešasis skaitmeninio parašo raktas, sertifikavimo centro pavadinimas ir vieta ir kt.); sertifikato saugojimo sertifikavimo centre terminai ir tvarka. Taigi parašo rakto sertifikato elektroninio dokumento pavidalu saugojimo laikotarpis sertifikavimo centre nustatomas sertifikavimo centro ir parašo rakto sertifikato savininko sutartimi. Kalbant apie saugojimą, tai nustato Rusijos Federacijos įstatymai dėl archyvų ir archyvų reikalų.

Atskiras įstatymo skyrius skirtas sertifikavimo centrams. Elektroninio skaitmeninio parašo kūrimo ir tikrinimo procesas gali vykti ir nedalyvaujant sertifikavimo centrams, jei tai patvirtina šalių susitarimas. Tačiau viešosiose informacinėse sistemose ir daugelyje įmonių informacinių sistemų skaitmeninio parašo naudojimas neveikiant sertifikavimo centrams yra neįmanomas, nes tai padės sukurti gana paprastus parašo klastojimo mechanizmus.

Privatūs (slapti) raktai

Elektroninis skaitmeninis parašas gali atlikti savo funkcijas tik tuo atveju, jei pasirašantis asmuo turi tam tikrą informaciją, kuri yra neprieinama nepažįstamiems asmenims. Ši informacija yra panaši į šifravimo raktą ir todėl vadinama „privačiu elektroninio skaitmeninio parašo raktu“ (anksčiau buvo naudojamas panašus terminas „slaptasis raktas“). Privatųjį raktą ir šifravimo raktą būtina laikyti paslaptyje, nes žinios apie privatų pasirašymo raktą atitinka tuščią popieriaus lapą su privataus rakto savininko parašu, ant kurio užpuolikas gali parašyti bet kokį tekstą, kuris priskiriamas tikrajam privataus rakto savininkui. Art. Įstatymo 12 punkte tiesiogiai nurodyta parašo rakto sertifikato savininko pareiga saugoti privatųjį raktą paslaptyje ir nedelsiant reikalauti sustabdyti parašo rakto sertifikato galiojimą, jeigu yra pagrindas manyti, kad buvo pažeista privataus parašo rakto paslaptis.

Art. Įstatymo 5 straipsnis nustato privataus parašo raktų sudarymo tvarką, atsižvelgiant į griežtą jų sukūrimo slaptumo laikymąsi. Tą pačią aplinkybę nurodo ir str. Sertifikavimo centrų veiklos įstatymo 9 str. Įmonės informacinėse struktūrose EDS privačių raktų gamybos ir platinimo klausimas gali būti sprendžiamas savais metodais, tačiau EDS vartotojas turi žinoti apie galimas tokio EDS funkcionavimo organizavimo pasekmes. Visai įmanoma, kad kokia nors įprasta seka bus naudojama kaip privatus raktas, kaip nutinka naudojant slaptažodžių sistemą.

Vietiniai skaitmeninio parašo algoritmų standartai

El Gamal schema

1994 m. buvo priimtas pirmasis vietinis standartas skaitmeninio parašo srityje GOST R34.10 94 „Informacinės technologijos. Kriptografinės informacijos apsauga. Elektroninio skaitmeninio parašo, pagrįsto asimetriniu kriptografiniu algoritmu, kūrimo ir tikrinimo procedūros. Ji apibrėžia darbo su skaitmeniniais parašais procedūras pagal ElGamal schemą. Parašo suklastoti neįmanoma dėl to, kad sudėtinga išspręsti diskretinio logaritmo problemą p elementų lauke arba sudėtinga nustatyti skaičių x, duotą dideliam pirminiam skaičiui p ir skaičius a, b iš intervalo nuo 2 iki p-1, kuris atliekamas lyginant:

Ax==bmodp.

Tačiau matematikai nestovi vietoje, o pastaruoju metu padaryta didelė pažanga kuriant metodus, kaip išspręsti diskretinio logaritmo problemą p elementų srityje. Neseniai buvo sukurtas vadinamasis skaičių lauko sieto metodas. Su jo pagalba galite nulaužti skaitmeninį parašą, sugeneruotą aukščiau nurodytu metodu (bent jau 512 bitų modulio p atveju).

Vienas iš paprasčiausių šios problemos sprendimų yra padidinti modulio ilgį p. Bet, deja, didėjant p, blogėja algoritmo veikimo savybės, nes pailgėja viešojo rakto ilgis ir parašo generavimo bei tikrinimo laikas.

Elipsinė kreivė

Rusijos mokslininkai galiausiai priėjo prie išvados, kad El-Gamal schemą galima šiek tiek apsunkinti ir taip be papildomų skaičiavimo išlaidų daugybę tūkstančių kartų padidinti skaitmeninio parašo klastojimo sudėtingumą. Naujoje ElGamal schemos versijoje naudojamas elipsinių kreivių aparatas per baigtinį p elementų lauką, kuris apibrėžiamas kaip skaičių porų (x, y) rinkinys (kiekvienas iš jų yra diapazone nuo 0 iki p-1 ) tenkinantis palyginimą (skaičiai a ir b yra fiksuoti ir atitinka tam tikrą papildomą sąlygą):

Y2 == x3 + ax + bmodp.

Kiti ištekliai

  • Informacija apie „Oracle XML-SQL Utility“ http://otn.oracle.com/tech/xml/xdk_java/content.html
  • SAML specifikacijos http://www.oasis-open.org/committees/security/
  • XKMS specifikacija http://www.w3.org/TR/xkms/
  • Federalinis įstatymas „Dėl elektroninio skaitmeninio parašo“

Šiandien, kai beveik visas dokumentų srautas tampa be popieriaus, dokumentų pasirašymas padedant yra įprastas dalykas.

Viešųjų pirkimų srityje pateiktos paraiškos pasirašomos elektroniniu būdu. Tai suteikia klientams garantiją, kad jie turi reikalų su tikrais dalyviais. Taip pat sutartys, sudarytos vykdant viešuosius pirkimus, įsigalioja tik patvirtinus elektroniniu skaitmeniniu parašu.

Skaitmeninis parašas taip pat reikalingas šiais atvejais:

  1. Ataskaitų teikimas reguliavimo institucijoms. Ją galite pateikti elektroniniu būdu tokioms tarnyboms kaip Federalinė mokesčių tarnyba, Rosstat, Pensijų fondas ir Socialinio draudimo fondas. Tai labai supaprastina informacijos perdavimą ir padidina tikslumą: dauguma paslaugų siūlo automatinį klaidų tikrinimą.
  2. Elektroninis dokumentų valdymas (EDF). Vienas iš labiausiai paplitusių panaudojimo būdų, nes tokiu būdu pasirašytas laiškas atitinka popierinį laišką su antspaudu ir viza. Leidžia pereiti prie popierinio dokumentų srauto tiek įmonėje, tiek už jos ribų.
  3. Valdžios paslaugos. Rusijos Federacijos pilietis gali patvirtinti departamentams pateiktas paraiškas per vyriausybės paslaugų portalą, dalyvauti viešosiose iniciatyvose, naudotis asmenine paskyra Federalinės mokesčių tarnybos svetainėje ir net kreiptis dėl paskolos.
  4. Sąskaitos faktūros, sutartys, oficialūs raštai, pasirašyti elektroniniu būdu, gali būti naudojami kaip įrodymai. Remiantis Rusijos Federacijos Arbitražo proceso kodeksu, toks dokumentas yra analogiškas popieriniam su ranka rašyta viza.

Kokie elektroninio parašo tipai egzistuoja?

Elektroninis skaitmeninis parašas yra „antspaudas“, leidžiantis identifikuoti jo savininką, taip pat patikrinti pasirašyto dokumento vientisumą. Patvirtinti skaitmeninių parašų rūšys ir jų įforminimo tvarka. Jis nustatė, kad yra trijų tipų parašai:

  1. Paprasta. Dažniausiai naudojamas laiškams ar specifikacijoms pasirašyti, patvirtinamas slaptažodžiais, kodais ir kitomis priemonėmis, dažniausiai naudojamos įmonių EDI sistemose.
  2. Sustiprintas. Jis gaunamas kriptografiškai apdorojant informaciją ir naudojant privatų raktą. Leidžia nustatyti, kas pasirašė dokumentą, taip pat tai, kad po pasirašymo buvo atlikti pakeitimai.
  3. Sustiprintas. Jis panašus į nekvalifikuotą, tačiau jo sukūrimui ir patikrinimui naudojamos Rusijos Federacijos FSB sertifikuotos kriptografinės apsaugos technologijos. Tokius elektroninius parašus išduoda tik akredituoti

Yra keli dokumento patvirtinimo būdai. Pažvelkime į dažniausiai pasitaikančius.

Pasirašome naudodami CryptoPRO CSP programinį paketą

Kaip elektroniniu būdu pasirašyti Word dokumentą(MS Word)

1. Atidarykite reikiamą failą, spustelėkite meniu „Failas“ - „Informacija“ - „Pridėti elektroninį parašą (CRYPTO-PRO)“.

2. Pasirinkite norimą elektroninį parašą, prireikus pakomentuokite ir spustelėkite „Pasirašyti“.

3. Jei klaidų nėra, sistema parodo langą su sėkmingu pasirašymu.

Jei įdiegtas CryptoPRO Office Signature papildinys

1. Atidarykite norimą failą, pasirinkite „Failas“, tada „Pridėti skaitmeninį parašą“.

2. Panašiai kaip ir ankstesniame variante, pasirinkite reikiamą elektroninį parašą, prireikus pridėkite komentarą ir spustelėkite „Pasirašyti“.

3. Jei klaidų nėra, sistema parodo pranešimą, kad dokumentas sėkmingai pasirašytas.

Kaip elektroniniu būdu pasirašyti pdf dokumentą(Adobe Acrobat PDF)

1. Atidarykite reikiamą PDF failą, spustelėkite skydelį „Įrankiai“ ir peržiūrėkite etiketę „Sertifikatai“. Išsirinkime.

2. Spustelėkite „Taikyti skaitmeninį parašą“ ir pasirinkite failo sritį, kurioje bus parašo ženklas.

4. Atsidarys langas su antspaudo peržiūra. Jei viskas teisinga, spustelėkite „Pasirašyti“.

5. Sistema išduos pranešimą apie sėkmingą pasirašymą. Tai viskas.

Pasirašymas naudojant CryptoARM programinės įrangos paketą

Šiuo metodu galima užšifruoti visus šiuolaikinius formatus, taip pat archyvus.

Taigi išsiaiškinkime kaip pasirašyti skaitmeninio parašo dokumentą naudojant CryptoARM.

1. Atidarykite programą „CryptoARM“ ir pasirinkite patį pirmąjį veiksmo elementą – „Pasirašyti“.

2. Atidžiai studijuojame ES kūrimo meistro instrukcijas. Spustelėkite „Kitas“.

3. Spustelėkite „Pasirinkti failą“, eikite į norimą failą, spustelėkite jį ir spustelėkite „Kitas“.

4. Pasirinkite failą, kurį norite pasirašyti, ir spustelėkite „Kitas“.

5. Matome langą "Išvesties formatas". Jei nėra privalomų reikalavimų, paliekame kodavimą tokią, kokia yra. Galite išsaugoti ZIP formatu (siuntimui el. paštu) arba pasirinkti vietą galutiniam rezultatui išsaugoti. Spustelėkite „Kitas“.

6. „Parametrai“ galite pasirinkti ypatybę, pridėti komentarą, taip pat pasirinkti pridedamą elektroninį parašą (pridedamas prie šaltinio failo) arba atskirtą (išsaugomą kaip atskirą failą), taip pat, jei pageidaujate, papildomus parametrus. Kai viskas bus paruošta, spustelėkite „Kitas“.

7. Dabar reikia pasirinkti sertifikatą, tam paspauskite „Pasirinkti“, nurodykite reikiamą sertifikatą ir spustelėkite „Kitas“.

8. Kitame etape matome galutinį langą su trumpu duomenų aprašymu. Jei kitą kartą failai bus pasirašyti ta pačia tvarka, galite išsaugoti profilį. Spustelėkite „Baigti“.

9. Jei klaidų nėra, sistema parodys pranešimą, nurodantį sėkmingą pasirašymą.

Vienas iš šiuo metu vykdomų projektų išsprendė XML dokumentų, būtent SOAP paketų, pasirašymo (elektroninio parašo taikymo) problemą. Rekomenduojamas formatas buvo OASIS standartas 200401 su X.509 sertifikato prieigos rakto profiliu. Šiuose dokumentuose aprašomas www-consortium (W3C) XML skaitmeninio parašo (XMLDSig) formato naudojimas SOAP pranešimuose. XML parašai, kaip ir kiti elektroninių parašų tipai, palaiko autentifikavimą, duomenų vientisumą ir duomenų pasirašymo neatsisakymą.

Pastebėsiu keletą XMLDSig formato ypatybių:

1. Pasirašymo objektu gali tarnauti ne visas XML dokumentas, o tik dalis jo, t.y. konkretus mazgas. Pagal OASIS standartą 200401 pasirašomas objektas yra kūnas (mazgas kūnas) SOAP pranešimai.

2. Skirtingas XML dokumento dalis gali pasirašyti keli signatarai.

3. XML parašas gali būti skirtingų lygių, susijusių su pasirašomu objektu:

  • parašo struktūroje gali būti URI(vienodas išteklių identifikatorius);
  • XML parašas gali būti tokio pat lygio kaip ir pasirašomas mazgas;
  • XML parašas gali būti pasirašomo mazgo viduje;
  • Pasirašomas mazgas gali būti įtrauktas į XML parašo struktūrą.

4. Norint patikrinti elektroninio parašo galiojimą, reikalinga prieiga prie pasirašymo objekto.

SOAP voko struktūra

Paprastai pranešimą sudaro antraštė ir turinys: Antraštė Ir kūnas. Antraštė yra metaduomenys ir kūnas duomenis. XML parašas dedamas į mazgą Antraštė.

Kriptografiniai algoritmai ir kanonizacija.

Norėdami išspręsti problemą, kurią naudojome GOST R 34.11-94- Rusijos kriptografinis standartas maišos funkcijų skaičiavimams ir GOST R 34.10-2001- elektroninio parašo standartas.

Dėl XML sudarymo taisyklių lankstumo ta pati dokumento struktūra ir ta pati informacija gali būti pavaizduota skirtingais XML dokumentais. Pažvelkime į du dokumentus:

Loginiu požiūriu jie yra lygiaverčiai, tai yra, turi tą pačią XML schemą. Tačiau šių sąrašų XML failuose nėra tos pačios simbolių sekos, todėl bus gauti skirtingi rezultatai, pavyzdžiui, nuskaitant maišos reikšmę.

Siekiant išvengti tokių neatitikimų, buvo priimtos griežtos formatavimo taisyklės ir reikalavimai XML pranešimų turiniui. XML dokumentų suvedimo į vieningą (kanoninę) formą procesas vadinamas kanonizacija(Angliškai: Canonicalization). Taisyklių pavyzdžiai gali būti tam tikros kodavimo schemos (UTF-8) naudojimas, atributų reikšmių normalizavimas, dvigubų atributų reikšmių kabučių naudojimas, tam tikra atributų ir vardų erdvės deklaracijų tvarka ir kt. XML kanonizavimas būna kelių tipų, kurios skiriasi taisyklių sudėtimi. Daugiau apie kanonizavimo procesą galite perskaityti oficialioje W3C specifikacijoje (straipsnių rusų kalba šia tema galite rasti ir)

SIRCrypt biblioteka

Norint įgyvendinti XML pasirašymą DIRECTUM, buvo parašyta COM biblioteka, kurioje aprašytos 3 klasės: Hašeris, Signataras Ir XMLCanonicalizer gauti atitinkamai XML dokumentų maišą, ES reikšmę ir kanonizaciją.

Biblioteka reikalauja Crypto PRO CSP(išbandyta versija Crypto PRO CSP 3.6.6497 KC2) Ir .NET(mažiausiai 2,0).

Bibliotekos registracija atliekama vykdant šią komandą:

> regasm.exe „kelias į dll“ /codebase /tlb

Maišos objektas maišos skaičiavimui pagal GOST

Sudėtyje yra laukai Turinys (įveskite "stygą") ir HashValueAsBase64 (įveskite "string"), taip pat maišos vertės apskaičiavimo metodą Hash (). Norint apskaičiuoti, būtina apibrėžti Turinys , skambinkite metodu Hash (), ko pasekoje lauke HashValueAsBase64 maišos reikšmė bus įrašyta į Base64.

Pasirašančiojo objektas ES vertei gauti pagal GOST

Sudėtyje yra laukai Turinys (įveskite "string"), Konteinerio pavadinimas (įveskite "string"), SertifikatasAsPEM (įveskite "string"), BESignatureValueAsBase64 (įveskite "stygą"), metodas Ženklas (). Inicijuojus objektą, reikia apibrėžti Turinys (pasirašymo duomenys), Konteinerio pavadinimas (sertifikato privataus rakto konteinerio pavadinimas), iškvietimo metodas Ženklas (). Tada lauke SertifikatasAsPEM privatųjį raktą atitinkantis sertifikatas bus Base64, o laukas BESignatureValueAsBase64 parašo reikšmę kaip Base64 eilutę.

XMLCanonicalizer objektas XML kanonizavimui

Sudėtyje yra laukai XMLContent (įveskite "string"), CanonicalXML (įveskite "stygą"), metodas C14NEexc(). Norėdami gauti kanoninę XML formą, turite nurodyti XMLContent , skambinti C14NEexc(), gaukite rezultatą iš lauko CanonicalXML .

XML parašo struktūra

Parašo sukūrimas atrodo taip: pirmiausia suformuojamas muilo pakuotės pagrindas, mazgai Antraštė Ir kūnas. kūnas užpildomas duomenimis ir pridedamas atributas wsu:ID="Kūnas"- pasirašytų duomenų identifikatorius.

Struktūros užpildymas Saugumas vyksta tokia tvarka:

  1. Maišos reikšmė iš Body mazgo paimama kanonine forma ir įdedama į DigestValue mazgą.
  2. Mazgas Pasirašyta informacija sumažintas iki kanoninės formos, pasirašytas elektroniniu parašu. Rezultatas „Base64“ eilutės formatu patenka į mazgą SignatureValue.
  3. Viešasis sertifikato raktas, kuris buvo naudojamas pasirašant, dedamas į mazgą BinarySecurityToken Base64 eilutės formatu.

Norėdami patikrinti tokiu būdu sugeneruotą ES, turite atlikti visus veiksmus atvirkštine tvarka, būtent:

  1. gauti kanoninę elemento formą Pasirašyta informacija.
  2. Naudodami ankstesnio veiksmo rezultatą patikrinkite, ar ES reikšmė iš mazgo galioja SignatureValue naudojant sertifikato viešąjį raktą. Šiame etape tikrinamas tik elektroninio parašo teisingumas, o tai negarantuoja duomenų nekintamumo.
  3. Sėkmingai patikrinus elektroninio parašo galiojimą, lyginama maiša iš mazgo DigestValue ir maišos iš mazgo su duomenimis. Jeigu jie nelygūs, vadinasi, buvo pakeisti pasirašyti duomenys ir visas elektroninis parašas negalioja.

Naudojimo pavyzdys

Kūrimo rinkinys ir biblioteka

XML pasirašymo ISBL (scenarijus) pavyzdžiai: dev.zip (5,95 KB)

Nuolatiniam naudojimui kodas, kuris atlieka standartinį užbaigto SOAP voko pasirašymą, perkeliamas į funkciją SignSOAP().

Pasirašymui naudojamas sertifikatas iš dabartinio vartotojo asmeninės sertifikatų saugyklos.

Šiame skyriuje siūloma atsisiųsti programą XML Converter / XML Designer / XML Reports / Just Sign / XML Contact - Rosreestr.

Elektroninių dokumentų versijų generavimo pavyzdžiai naudojant XML Constructor programos ir jų spausdintus analogus naudojant XML ataskaitų programos galima parsisiųsti skiltyje. Taip pat siūlome pažvelgti į skyrių, kuriame rasite įvairių nemokamų komunalinių paslaugų, bibliotekų ir kt.

XML konvertavimo programa sukonfigūruotas konvertuoti XML failus/Rosreestr dokumentus, tokius kaip kadastro išrašai, teritorijos kadastro planai į kitus lengvai naudojamus formatus, tokius kaip MIF/MID, DXF, CSV, TXT, HTML.

XML dizainerio programa yra sukonfigūruotas kurti elektronines versijas XML formatu kadastrinės veiklos dokumentų, tokių kaip ribų planai, techniniai planai, žemėlapis (planas ir kt.), taip pat pranešimai apie kilnojamojo turto įkeitimą ir pranešimai pagal FATCA įstatymą.

XML ataskaitų programa sukonfigūruotas konvertuoti elektroninius kadastrinės veiklos dokumentus, tokius kaip ribų planai, techniniai planai, žemėlapis (planas) į atitinkamus spausdintus (popierinius) atitikmenis.

Tiesiog pasirašyk programa skirtas elektroniniams skaitmeniniams parašams (EDS) kurti ir tikrinti.

XML programa Contact-Rosreestr yra skirta sąveikai su Rosreestr žiniatinklio paslauga, t.y. rengiant prašymus įregistruoti žemės sklypus ir nekilnojamąjį turtą kadastriškai, prašymus suteikti kadastro informaciją, gauti šių prašymų ir prašymų rezultatus.

Visos programos (išskyrus Just Sign ir XML Contact-Rosreestr) turi 30 dienų trunkantį demonstracinį režimą, kuris leidžia be apribojimų naudotis programų funkcionalumu. Pasibaigus demonstraciniam laikotarpiui, turite įsigyti pilnas programų versijas arba nustoti jomis naudotis. Programa „Simply Sign“ yra nemokama programa ir jai nėra jokių apribojimų. „Contact-Rosreestr XML“ programa yra bandoma beta versijos ir šiuo metu yra nemokama.

SVARBU! Norėdami konvertuoti naudodami programą XML keitiklis arba XML konstruktorius Didelius XML failus reikia atsisiųsti ir įdiegti išorinį XQuery užklausų procesorių ir nurodyti jį atitinkamame programos lauke prieš konvertuojant. Šiuo metu palaikomi du laisvai prieinami užklausų procesoriai: AltovaXML 2010 (kurė www.altova.com) ir Saxon-HE 9.5 (kūrė www.saxonica.com). Galite atsisiųsti juos iš gamintojo svetainės arba iš šios svetainės naudodami toliau pateiktas nuorodas:

SVARBU! Prieš pradėdami dirbti su programomis, turite perskaityti instrukcijas. Tai ypač svarbu programai XML Constructor, nes prieš darbą būtina suprasti šios programos veikimo principą. Instrukcijos yra tame pačiame aplanke kaip ir programos vykdomasis failas, ty XML konstruktoriaus aplanke „c:\ProgramFiles\XMLCON\XMLConstructor\XMLConstructor-help.rtf“. Instrukcijas galite iškviesti pagrindiniame „Windows“ programų meniu, t. y. „XML Designer“ „Start->Programs->XML Designer->XML Designer - Instructions“. Programai XML Designer instrukcijas taip pat galima rasti meniu Žinynas.