Semnați fișierul xml cu o semnătură digitală. Cum se semnează un document cu semnătură electronică

În această secțiune, se propune descărcarea programului XML Converter / XML Constructor / XML Reports / Just Sign / XML Contact - Rosreestr.

Exemple de formare versiuni electronice documente prin XML Constructorși omologii lor tipărite folosind Programe Rapoarte XML poate fi descărcat din secțiune. De asemenea, vă sugerăm să vă uitați la secțiunea în care veți găsi diverse utilitati gratuite, biblioteci și multe altele.

Programul de conversie XML configurat pentru a converti fișierele/documentele XML Rosreestr, cum ar fi extrase cadastrale, planuri cadastrale ale teritoriului în alte formate convenabile, cum ar fi MIF/MID, DXF, CSV, TXT, HTML.

Programul XML Constructor configurat pentru a crea versiuni electronice în format XML, astfel de documente pentru activități cadastrale cum ar fi planuri de ridicare a terenurilor, planuri tehnice, hartă (plan), etc., precum și avizele privind gajul bunurilor mobile și avizele în conformitate cu legea FATCA.

Programul de rapoarte XML configurat pentru a converti documente electronice pentru activități cadastrale, cum ar fi planuri de ridicare a terenurilor, planuri tehnice, hartă (plan) în omologii corespunzătoare tipărite (pe hârtie).

Programul Doar Semnează conceput pentru a crea și a verifica semnături digitale electronice (EDS).

Program XML Contact-Rosreestr conceput pentru a interacționa cu serviciul web Rosreestr, de ex. realizarea cererilor de înregistrare cadastrală a terenurilor și a obiectelor imobiliare, solicitări de informații cadastrale, obținerea rezultatelor la aceste cereri și solicitări.

Toate programele (cu excepția Just Sign și XML Contact-Rosreestr) au un mod demo care durează 30 de zile, care vă permite să utilizați funcționalitatea programelor fără restricții. După expirarea perioadei modului demo, trebuie fie să achiziționați versiunile complete ale programelor, fie să încetați să le utilizați. Programul Just Sign este program gratuitși nu are restricții de utilizare. Programul XML Contact-Rosreestr este în testare beta și este în prezent utilizat gratuit.

IMPORTANT! Pentru a converti folosind programul Convertor XML sau XML Constructor Fișierele XML mari trebuie să descarce și să instaleze un procesor extern de interogări XQuery și să îl specificați în câmpul corespunzător al programului înainte de conversie. Cele două procesoare de interogare open source acceptate în prezent sunt AltovaXML 2010 (de la www.altova.com) și Saxon-HE 9.5 (de la www.saxonica.com). Le puteți descărca de pe site-ul producătorului sau de pe acest site folosind link-urile de mai jos:

IMPORTANT! Înainte de a începe să lucrați cu programele, trebuie să citiți instrucțiunile. Acest lucru este deosebit de important pentru programul XML Constructor, deoarece înainte de lucru este necesar să înțelegeți principiul de funcționare al acestui program. Instrucțiunile se află în același folder cu fișierul executabil al programului, adică pentru XML Constructor în folderul „c:\ProgramFiles\XMLCON\XMLConstructor\XMLConstructor-help.rtf”. Puteți apela instrucțiunile prin comanda rapidă din meniul principal programe Windows, adică pentru XML Constructor „Start->Programs->XMLConstructor->XML Constructor - Instruction”. Pentru programul XML Constructor, instrucțiunea este disponibilă și prin meniul Ajutor.

Multă vreme, cea mai presantă problemă pentru mine a fost cum și cu ce să semnez documentele și fișierele XML. semnatura electronica sau semnatura digitala. Este bine când ești la birou și toate programele pentru semnarea documentelor și fișierele XML sunt instalate la locul tău de muncă. Dar in munca mea au aparut deseori situatii cand era necesar sa fac si sa semnez documente, fisiere XML, fiind departe de locul meu de munca sau, ca intotdeauna, urgent facut acum, cat acasa. Cumpărați și instalați software pentru a semna cu o semnătură digitală electronică, tot acasă, sau pe un laptop și să o purtați mereu cu dvs., este prea scump. Apoi mi-am propus să găsesc pe Internet programe distribuite gratuit care pot semna documente și fișiere XML cu o semnătură digitală electronică - EDS. Aceste programe, precum și unul cu plată, le vom lua în considerare mai jos.

Pentru a fi trimise la Rosreestr, iar acest lucru este obligatoriu, toate documentele trebuie să fie semnate cu un EDS (semnătură electronică digitală), iar uneori trebuie să verificați EDS-ul dvs. sau al altcuiva.

Și așa, gândiți-vă cum și ce instrumente software puteți semna un document sau un fișier XML cu o semnătură digitală electronică. Unul dintre programe este GIS „Panorama” - „Map-2011” versiunea 11.10.4. Semnarea documentelor funcționează chiar și în versiunea neînregistrată. Procedura de semnare a documentelor, fișierelor Lista de programe care vă permit să semnați documente, fișiere XML, EDS (semnătură digitală electronică) pentru schimbul de date cu portalul servicii publice Serviciul Federalînregistrarea de stat, cadastru și cartografie, Rosreestr, prin Internet EDS este după cum urmează: lansați „Map-2011”, sau „Mini-Map”, apăsați „F12” pentru a apela meniul de lansare a aplicației. În fereastra care apare, selectați o sarcină documente electronice, Mai departe Formarea unei semnături digitale electronice

Fișier de semnătură: selectați fișierul pe care doriți să îl semnați și, în consecință, certificatul dorit din certificat. Atât documentul sau fișierul XML este semnat cu EDS. Dacă doriți să verificați o semnătură deja existentă, apoi fișierul de semnătură, selectați fișierul de semnătură (fișierul cu extensia „sig”). Site-ul oficial al GIS „”.

Al doilea program pentru semnarea documentelor, fișierele XML este CryptoLine. Gratuit, complet funcțional, vă permite să semnați, să criptați documente, precum și să verificați semnătura digitală. Descarca acest program Puteți descărca de pe site-ul oficial sau puteți descărca printr-un link direct de pe pagina acestui site. Lucrul cu programul este simplu și convenabil. Selectați și adăugați fișiere care trebuie semnate, apoi selectați un certificat de care aveți nevoie pentru a semna documente, fișiere XML și pentru a semna documente. Atenție - alegeți un singur certificat pentru semnare !!! În caz contrar, documentele vor fi semnate de exact atâtea certificate câte adăugați în program. Instrucțiunile de utilizare se află în arhiva programului. Pentru a semna schimbarea la Rossreestr, voi da un exemplu mai jos.

După instalarea programului și rularea acestuia, adăugați fișierele în program care trebuie semnate. Fila Acțiuni, butonul Adăugați.

Pentru a semna toate fișierele simultan, trebuie să le selectați pe toate - „Shift + butonul dreapta al mouse-ului” sau „Shift + săgeată în jos”. Apoi faceți clic pe „Semnați”, în fereastra care apare, fie adăugați un certificat, fie lăsați-l pe cel care a fost selectat mai devreme, fie schimbați-l cu altul. Încă o dată, îmi amintesc că pentru livrare la Rosreestr în această fereastră nu trebuie să existe mai mult de 1 certificat! De asemenea, setați toate setările așa cum se arată în figură:

Noi semnăm. După semnare, fișierele cu extensia „sigO” vor fi adăugate în lista dvs. Aceasta este semnătura dosarului. Rămâne doar să încărcați fișierele de semnătură sau toate fișierele (la discreția dvs.). Selectați ceea ce doriți să încărcați, în acest caz trei fișiere de semnătură și faceți clic pe „Încărcați”. Asta e ca toate. Dar ca toată lumea brânză gratuită există o mică nuanță. Rosreestr înjură extensia de fișier „sigO”, așa că aveți nevoie de ea în Explorer sau în orice manager de fișiere redenumiți extensia din „sigO” în „sig” .

Semnătura acestui program nu a fost verificată de site-ul web Rosreestr. Verificarea semnăturii a fost efectuată produse software care interacționează cu portalul serviciilor publice al Serviciului Federal de Înregistrare de Stat, Cadastru și Cartografie. Toate cele trei programe care au verificat semnătura executată de acest program au dat un rezultat pozitiv. Verificarea a fost efectuată prin programele indicate aici, GIS „Panorama”, Crypto AWP și programul de plan Polygon-Land Survey. Semnătura a fost și ea verificată. serviciu online verificarea autenticității semnăturii digitale electronice de pe site.

Un alt program pentru semnarea documentelor și fișierelor XML este . Îl puteți descărca de pe site-ul oficial al programului. Programul în sine este destul de funcțional și atractiv, costul nu este mare, doar 1200 de ruble pentru 1 la locul de muncă. Există acelea. sprijin și ajutor extins. Cele mai complete și actualizate informații pot fi obținute la. Citiți și despre EDS în notă

Un scop nobil înnobilează activitatea în numele acelui scop.K. Liebknecht

Articolul descrie cum să semnezi documente (pdf, word, excel, xml, arhivă) folosind EDS. Luați în considerare ce software este necesar pentru a semna documente folosind un EDS, avantajele și dezavantajele acestora.

Cum să semnezi un fișier cu un EDS

Există două programe cu care puteți semna un fișier folosind un EDS:

  1. ViPNet CryptoFile;
  2. CryptoARM.

ViPNet CryptoFile

Folosind acest program, puteți semna orice fișier, de exemplu: doc, xls, jpg, xml, txt, semnați o declarație EDS, arhivă. După semnare, fișierul se va termina cu .sig

Pro: program gratuit care necesită înregistrare pe site (obțineți cheia la e-mail). De asemenea, este posibil să utilizați semnătura atașată fișierului atunci când semnați un fișier cu un EDS, de ex. fișierul și cheia vor fi în același fișier sau separate de fișier.

Minusuri: la semnare, puteți adăuga o singură semnătură electronică;

Puteți semna un document EDS Click dreapta faceți clic pe fișier și selectați ViPNet CryptoFile -> Conectați-vă în meniul ViPNet.

CryptoARM

Minusuri: software plătit;

Pro: puteți adăuga o mulțime de semnături EDS atunci când semnați un fișier.

Pentru a semna un document cu un EDS, puteți face clic dreapta pe fișier și selectați CryptoARM -> Sign din meniu.

Cum să semnezi un pdf cu un EDS

Dacă trebuie să semnați un document, de exemplu, pentru taxe, citiți instrucțiunile de mai sus „Cum să semnați un fișier folosind un EDS”, dar dacă aveți nevoie de o semnătură cu o parte vizibilă în document, atunci citiți instrucțiunile de mai jos.

Pentru a semna un document pdf folosind un EDS, este necesar un software.

Pro: Semnătura electronică este vizibilă în document.

Minusuri: Costul programului (90 de zile gratuit.)

De asemenea, trebuie să instalați Acrobat Reader DC sau Adobe Acrobat Pro.

Înainte de a introduce o semnătură electronică într-un document pdf, trebuie să configurați Acrobat Reader DC pentru a funcționa cu programul CryptoPro PDF, pentru a face acest lucru, apăsați Ctrl + K în Acrobat Reader DC sau accesați meniul Editare -> Preferințe, în categorii selectați Semnături -> unde „Creați și proiectați” faceți clic pe Mai multe detalii vezi imaginea:

În „Metoda de semnare implicită” selectați CryptoPro PDF ca în figură:

Noi semnăm document pdf cu EDS

Deschideți documentul pdf -> în panoul din dreapta, faceți clic pe completați și semnați

În panoul de sus al programului Acrobat Reader, faceți clic pe „Umpleți și semnați” -\u003e „Instrumente suplimentare”

Trebuie să selectați instrumentul Certificate pentru a adăuga la panou.

După ce faceți clic pe Certificate, pe panou va apărea instrumentul „Semnătură digitală”, faceți clic pe el, apoi selectați cu cursorul zona în care dorim să punem o semnătură digitală, va apărea o fereastră cu o selecție de certificat.

Selectați certificat -> OK -> Semnați.

O semnătură digitală în pdf arată astfel:



Documentul nostru pdf este semnat, la fel puteți pune mai multe semnături într-un singur fișier pdf.

Cum să semnezi un document Word cu un EDS

Dacă trebuie să semnați un document cu o parte vizibilă a semnăturii în document, atunci citiți instrucțiunile de mai jos, dar dacă trebuie să semnați un document Word și să-l trimiteți la biroul fiscal, de exemplu, atunci instrucțiunile de mai sus „Cum pentru a semna un fișier folosind un EDS” vi se potrivește.

Pentru a semna document word Cu ajutorul EDS avem nevoie de programul CryptoPro Office Signature.

- software plătit, folosit pentru semnarea documentelor Wort, Excel.

După instalare, puteți începe imediat să semnați documente Word cu un EDS, pentru aceasta deschidem un document Word care trebuie semnat cu un EDS -> meniul Rate -> în blocul Text, faceți clic pe Linia semnăturii și selectați Linia semnăturii (CRYPTO). -PRO).

Să presupunem că trebuie să introduceți două semnături electronice într-un document Word, pentru aceasta efectuăm operația prezentată mai sus de două ori, fără a semna. Deoarece după semnarea cu o singură semnătură, documentul va deveni needitat. Prin urmare, inserăm două câmpuri pentru o semnătură electronică.

După aceea, puteți semna făcând clic pe o semnătură, selectați un EDS și semnați, apoi faceți același lucru cu a doua semnătură.

Un document Word semnat digital arată astfel:


Cum să semnezi un document Excel folosind o semnătură digitală

Nu mă voi repeta, pentru a semna un document Excel folosind un EDS, trebuie să faci totul la fel ca și pentru Word, vezi puțin mai sus.

Atenţie: Dacă trebuie să semnați document excel cu o parte vizibilă a semnăturii în document, apoi citiți instrucțiunile în continuare „Cum să semnați un document Word folosind un EDS”, dacă trebuie să semnați un document Excel și să-l trimiteți la biroul fiscal, de exemplu, atunci instrucțiunile în partea de sus a paginii „Cum să semnezi un fișier folosind un EDS” ți se potrivește.

Cum să semnezi un contract cu un EDS

În funcție de formatul în care a fost creat contractul, citiți articolul Cum să semnați un document Word sau PDF de mai sus.

Cum să semnezi o procură cu un EDS

Citiți articolul de mai sus și alegeți opțiunea potrivită despre cum să semnați o procură folosind un EDS.

Întrebări:

Este permisă editarea unui fișier EDS semnat?

- Nu, după semnarea fișierului, nu va fi posibil să îl editați, de exemplu, dacă încercați să editați textul semnat în Word, atunci toate semnăturile sunt șterse.

Cum arată un document semnat EDS?

- Totul depinde de modul în care ai semnat documentul. Dacă documentul a fost semnat ca în instrucțiunile de la început, fișierul va avea extensia .sig. De asemenea, fișierul și semnătura digitală pot fi dosar separat, depinde de metoda de semnare a fișierului.

Dacă ați semnat un document pdf, word sau excel folosind programe speciale, nu se poate distinge între ele. Este necesar să deschideți documentul și deja în interior să vă asigurați dacă există sau nu semnătură.

Pe unul dintre proiectele aflate în derulare a fost rezolvată sarcina semnării (aplicarea unui ES - o semnătură electronică) a documentelor XML, și anume pachete SOAP. Formatul recomandat a fost OASIS Standard 200401 cu X.509 Certificate Token Profile . Aceste documente descriu utilizarea formatului XML Digital Signature (XMLDSig) a Consorțiului World Wide Web (W3C) în mesajele SOAP. Semnăturile XML, ca și alte tipuri de ES, acceptă autentificarea, integritatea datelor și non-repudierea semnării datelor.

Voi nota câteva caracteristici ale formatului XMLDSig:

1. Obiectul semnării poate fi nu întregul document XML, ci doar o parte a acestuia, adică. anumit nod. Conform standardului OASIS 200401, obiectul care trebuie semnat este corpul (nodul Corp) Mesaje SOAP.

2. Diferite părți ale unui document XML pot fi semnate de mai multe persoane.

3. O semnătură XML poate fi la diferite niveluri în raport cu obiectul care este semnat:

  • structura semnăturii poate conține URI(identificator uniform de resursă);
  • O semnătură XML poate fi la același nivel cu nodul care este semnat;
  • Semnătura XML poate fi în interiorul nodului care este semnat;
  • nodul care trebuie semnat poate fi într-o structură de semnătură XML.

4. Pentru a verifica valabilitatea ES este necesar accesul la obiectul de semnare.

Structura unei coperți SOAP

În general, un mesaj constă dintr-un antet și un corp: antetși Corp. antet conține metadate și Corp date. O semnătură XML este plasată într-un nod antet.

Algoritmi criptografici si canonizare.

Pentru a rezolva problema, am folosit GOST R 34.11-94- Rusă standard criptografic calcule ale funcției hash și GOST R 34.10-2001- standard de semnătură electronică.

Datorită flexibilității regulilor de compoziție XML, aceeași structură de document și aceeași informație pot fi reprezentate prin diferite documente XML. Luați în considerare două documente:

Din punct de vedere logic, sunt echivalente, adică au aceeași schemă XML. Dar fișierele XML ale acestor listări nu conțin aceeași secvență de caractere, ceea ce va duce la rezultate diferite, de exemplu, la obținerea unei valori hash.

Pentru a evita astfel de discrepanțe, au fost adoptate reguli stricte de formatare și cerințe pentru conținutul mesajelor XML. Procesul de aducere a documentelor XML într-o formă unificată (canonică) este numit canonizarea(Canonizarea engleză). Exemple de reguli pot fi utilizarea unei scheme de codare specifice (UTF-8), normalizarea valorilor atributelor, utilizarea ghilimelelor duble pentru valorile atributelor, o anumită ordine a atributelor și a declarațiilor de spațiu de nume etc. Există mai multe tipuri de canonizare XML care diferă în alcătuirea regulilor. Puteți citi mai multe despre procesul de canonizare în specificația oficială W3C (articole în limba rusă despre acest subiect pot fi găsite și)

Biblioteca SIRCrypt

Pentru a implementa semnarea XML în DIRECTUM, a fost scrisă o bibliotecă COM, în care sunt descrise 3 clase: Hasher, Semnatarși XMLCanonicizer pentru a obține hash, valoarea ES și, respectiv, canonizarea documentelor XML.

Biblioteca cere Crypto PRO CSP(testat pe versiune Crypto PRO CSP 3.6.6497 KC2) și .NET(minimum 2,0).

Înregistrarea unei biblioteci se face prin rularea următoarei comenzi:

> regasm.exe „calea către dll” /codebase /tlb

Obiect hash pentru calculul hash conform GOST

Conține câmpuri conţinut (tastați „șir”) și HashValueAsBase64 (de tip „șir”), precum și o metodă de calcul a valorii funcției hash Hash(). Pentru a calcula este necesar să însemnăm conţinut , apelați metoda Hash(), drept urmare în teren HashValueAsBase64 valoarea funcției hash va fi scrisă în Base64.

Obiect semnatar pentru obținerea valorii ES conform GOST

Conține câmpuri conţinut (tip "șir"), ContainerName (tip "șir"), CertificatAsPEM (tip "șir"), BESignatureValueAsBase64 (tip „șir”), metoda Semn(). După ce obiectul a fost inițializat, trebuie să fie conţinut (date pentru semnare), ContainerName (numele containerului cheie privată certificat), apelați metoda Semn(). Apoi pe câmp CertificatAsPEM certificatul corespunzător cheii private va fi în Base64, și în câmp BESignatureValueAsBase64 valoarea semnăturii ca șir Base64.

Obiect XMLCanonalizazer pentru canonizarea XML

Conține câmpuri XMLContent (tip "șir"), CanonicalXML (tip „șir”), metoda C14NExc(). Pentru a obține forma canonică a XML, trebuie să spui XMLContent , apel C14NExc(), obțineți rezultatul din câmp CanonicalXML .

Structura semnăturii XML

Crearea unei semnături arată astfel: în primul rând, se formează baza pachetului de săpun, nodurile antetși Corp. Corp plin cu date și atribute adăugate wsu:ID="Body"- identificatorul datelor de semnat.

Umplerea structurii Securitate se întâmplă în următoarea ordine:

  1. Valoarea hash este preluată din nodul Body în formă canonică și plasată în nodul DigestValue.
  2. Nod Informații semnate redusă la formă canonică, semnată de EP. Rezultatul în format șir Base64 merge la nod SignatureValue.
  3. Cheia publică a certificatului care a fost semnat este plasată în nod BinarySecurityTokenîn format de șir Base64.

Pentru a verifica ES generat în acest fel, este necesar să faceți toți pașii în ordine inversă și anume:

  1. obțineți forma canonică a elementului Informații semnate.
  2. Folosind rezultatul pasului anterior, verificați dacă valoarea EP din nod este validă SignatureValue folosind cheia publică a certificatului. Pe această etapă se verifică doar corectitudinea ES, ceea ce nu garantează imuabilitatea datelor.
  3. Dacă verificarea validității ES are succes, hash-ul de la nod este comparat DigestValueși un hash de la nodul de date. Dacă nu sunt egale, atunci datele semnate au fost modificate și întregul ES este invalid.

Exemplu de utilizare

Pachetul de dezvoltare și bibliotecă

Exemple de semnare XML la ISBL (script): dev.zip (5,95 Kb)

Pentru utilizare permanentă, codul care realizează semnarea tipică a plicului SOAP finit este mutat în funcția SignSOAP().

Semnarea folosește un certificat din depozitul personal de certificate al utilizatorului curent.

ML, sau limbajul de markup extensibil, devine acum într-un mod standard transportarea informațiilor pe Web (și nu numai). Mai mult, există tot mai multe suplimente care folosesc sintaxa XML (aplicații XML). De exemplu, acestea includ SOAP simplificat (Simple Object Access Protocol), în care XML acționează ca un mijloc universal de reprezentare a parametrilor unui apel de procedură la distanță RPC (Remote Procedure Call). Un alt exemplu de supliment este învelișul RDF (Resource Description Framework). Puteți arunca o privire pe site-ul World Wide Web Consortium (W3C) care dezvoltă standarde în acest domeniu (http://www.w3.org/) și puteți vedea că XML primește într-adevăr multă atenție.

Amintiți-vă că scopul principal al XML este de a descrie structura și semantica unui document. Principalul avantaj al XML față de alte formate de documente electronice este că separă descrierea reprezentării externe a documentului de structura documentului și conținutul acestuia. XML este un limbaj flexibil care poate fi folosit pentru o varietate de scopuri, putând interopera în același timp cu multe sisteme și baze de date. Astfel, deja astăzi XML este folosit în multe sisteme de informare ca principal format de schimb de date. În plus, furnizorii de sisteme de management al bazelor de date au făcut un pas puternic către XML. De exemplu, Oracle Corporation a lansat XSU (XML-SQL Utility), care este un add-on JDBC care vă permite să stocați și să preluați date XML într-o bază de date (http://otn.oracle.com/tech/xml/). xdk_java/content .html). XSU este o ierarhie de clase Java concepută pentru a transforma datele din tabele și vederi (vizualizări) unei baze de date obiect-relaționale în format XML, pentru a insera date din documente XML în tabele și vederi și alte operațiuni utile.

Necesitatea de a proteja documentele XML

ML este un instrument puternic folosit adesea pentru a face schimb de date prin Internet. Dar, din păcate, de la sine, nu oferă protecția necesară pentru datele pe care le „transportă”. Cu alte cuvinte, există probleme serioase de securitate la utilizarea formatului XML (ca, într-adevăr, la utilizarea altor formate).

XML poate fi utilizat cu ușurință pentru a transfera mesaje de tranzacție între o bancă și un bancomat, informații confidențiale sau semi-confidențiale despre persoane fizice, informații despre tranzacții electronice sau pur și simplu pentru a transfera documente confidențiale în acest format. Dar, în același timp, este necesar să se asigure protecția informațiilor împotriva denaturărilor involuntare sau intenționate atât din partea utilizatorilor sistemelor informaționale, cât și în timpul transmiterii pe canalele de comunicare. Protecția ar trebui să se bazeze pe următoarele funcții:

  • autentificarea părților care interacționează;
  • confirmarea autenticității și integrității informațiilor;
  • închiderea criptografică a datelor transmise.

Pentru a asigura protecția informațiilor specificate, se recomandă utilizarea metodelor de semnătură digitală electronică (EDS) și criptare a datelor. Mai mult, de regulă, EDS oferă autentificare, confirmare a autenticității și integrității, iar închiderea datelor se realizează prin criptare.

Informații generale despre semnătura digitală electronică

EDS și posibilitatea falsificării acestuia

O semnătură digitală electronică este date adăugate la blocul de informații (document) inițial obținute ca urmare a transformării sale criptografice (în funcție de cheia secretă și de blocul de informații sau document original). EDS asigură integritatea mesajelor (documentelor) cu o identificare garantată a autorului său (persoana care a semnat documentul), transmise cel mai adesea prin canale de telecomunicații publice nesecurizate.

Verificarea semnăturii digitale electronice a blocului de informații se realizează prin transformarea criptografică a EDS folosind cheia publică corespunzătoare cheii secrete, care a participat la instalarea EDS.

Imposibilitatea de a falsifica o semnătură digitală electronică se realizează cu ajutorul unei cantități foarte mari de calcule matematice (de exemplu, imposibilitatea de a falsifica o semnătură se poate datora complexității rezolvării problemei logaritmului discret într-un câmp de p elemente ElGamal schema de semnătură). Semnarea unui document nu schimbă documentul în sine, ci doar face posibilă verificarea autenticității și a autorului informațiilor primite (adică un bloc de date este adăugat documentului în sine sau separat de acesta - EDS-ul acestui document).

Autoritatea de Certificare

Mai sus am menționat termenii „cheie secretă” și „cheie publică”. De unde au venit aceste chei? Sunt formate dintr-o autoritate de certificare o structură (organizație) care gestionează certificatele. Certificatul cheii publice/private este următorul set de date:

  • numele subiectului sau obiectului sistemului, identificându-l în mod unic în sistem;
  • cheia publică/privată a subiectului sau obiectului sistemului;
  • atribute suplimentare determinate de cerințele de utilizare a certificatului în sistem;
  • semnătura electronică digitală a editorului (autoritatea de certificare), care atestă totalitatea acestor date.

Astfel, de exemplu, un certificat de cheie privată conține cheia privată în sine și Informații suplimentare către el.

Pentru fiecare utilizator înregistrat al sistemului informatic, centrul de certificare (CC) generează două certificate, un certificat cu cheie privată și un certificat cu cheie publică. În același timp, primul SC îl eliberează personal în mâinile unui utilizator înregistrat (de exemplu, pe o dischetă) și pentru nimeni altcineva aceasta este „semnătura”. Al doilea certificat public este publicat de CA într-un depozit public, astfel încât oricine este interesat să îl găsească cu ușurință.

Formarea și verificarea EDS

Expeditorul informațiilor, folosind o cheie secretă și un algoritm asimetric (algoritm EDS) preselectate prin acord între abonați, criptează informațiile transmise prezentate în formă digitală, și astfel obține o semnătură digitală a datelor. Mai mult, expeditorul de informaţie trimite informaţii necriptate şi o semnătură digitală obţinută prin metoda descrisă mai sus către destinatar printr-un canal de comunicare deschis.

Destinatarul mesajului, folosind cheia publică (care este disponibilă public) și algoritmul EDS selectat prin acord între abonați, declasifică semnătura digitală. Apoi compară informațiile necriptate pe care le-a primit și informațiile obținute la decriptarea semnăturii digitale. Dacă semnătura digitală nu a fost falsificată și informațiile clare transmise nu sunt distorsionate, atunci aceste două informații trebuie să se potrivească exact. Dacă semnătura este falsificată, atunci informațiile clare primite și informațiile obținute în timpul decriptării vor diferi semnificativ (Fig. 1).

Funcții hash

În schema de mai sus de interacțiune între expeditor și destinatar, lipsește o operațiune. Este asociat cu etapa de criptare a datelor, în timpul căreia se formează un EDS. Dacă pur și simplu generăm un EDS, atunci acesta se va dovedi (în funcție de algoritm), de regulă, aproximativ aceeași lungime ca și blocul de date original și va trebui să trimitem un mesaj cu lungime dublă prin rețea. Desigur, acest lucru ar avea un impact negativ asupra întregului proces al sistemului. Prin urmare, înainte generația EDS datele originale sunt procesate folosind o funcție hash și astfel semnătura devine compactă. Desigur, pentru a obține rezultatul corect, receptorul trebuie să efectueze aceeași transformare pe blocul de date primit.

Funcția hash utilizată trebuie să poată converti un mesaj de orice lungime într-o secvență binară de lungime fixă. În plus, trebuie să îndeplinească următoarele cerințe:

  • mesajul după aplicarea funcției hash trebuie să depindă de fiecare bit al mesajului original și de ordinea acestora;
  • Nu există nicio modalitate de a recupera mesajul din versiunea hashing a mesajului.

Informații generale despre criptare

Criptarea datelor și diferența lor față de EDS

Criptarea informațiilor Transformare matematică (criptografică) unu-la-unu, în funcție de cheie (parametrul secret al transformării), care se potrivește cu blocul informații deschise, prezentat în unele codări digitale, un bloc de informații criptate, prezentat și în codificare digitală. Criptarea combină două procese: criptarea și decriptarea informațiilor (Fig. 2).

Diferența fundamentală dintre EDS și metodele de criptare (acum luăm în considerare algoritmi asimetrici în care chei diferite, dar legate matematic sunt folosite pentru criptare și decriptare) este că cheia publică a destinatarului este folosită pentru criptare, iar cheia privată pentru decriptare, în timp ce în Algoritmul EDS necesită cheia secretă a autorului pentru a semna un mesaj și cheia publică a autorului mesajului pentru a verifica EDS.

Spargere

Teoretic, orice algoritm de criptare care utilizează o cheie poate fi deschis prin enumerarea tuturor valorilor cheii. Dacă se alege cheia, puterea necesară a computerului crește exponențial odată cu lungimea cheii. O cheie pe 32 de biți necesită 232 (aproximativ 109) pași. O astfel de sarcină este în puterea oricărui amator și este rezolvată computer de acasă. Sistemele cu o cheie de 40 de biți (de exemplu, versiunea americană de export a algoritmului RC4) necesită 240 de pași, majoritatea companiilor mici au o astfel de putere de calcul. Sistemele cu chei pe 56 de biți (DES) necesită un efort semnificativ pentru a se deschide, dar pot fi deschise cu ușurință folosind echipamente speciale. Costul unui astfel de echipament este semnificativ, dar accesibil pentru mafie, companii mari și guverne. Cheile pe 64 de biți pot fi deschise în prezent de statele mari, iar în următorii câțiva ani vor fi disponibile pentru deschidere de către organizații criminale, companii mari și state mici. Cheile pe 80 de biți pot deveni vulnerabile în viitor. Cheile pe 128 de biți vor rămâne probabil indisponibile pentru cracarea prin forță brută în viitorul apropiat. De asemenea, puteți utiliza chei mai lungi.

Cu toate acestea, lungimea cheii nu este totul. Multe cifruri pot fi sparte fără a trece prin toate combinațiile posibile, dar folosind un algoritm special (de exemplu, cu complexitate polinomială). În general, este foarte dificil să vină cu un cifr care să nu poată fi spart folosind o altă metodă care este mai eficientă decât forța brută.

Vă rugăm să rețineți că gradul de fiabilitate sistem criptografic determinat de veriga sa cea mai slabă. Niciun aspect al proiectării sistemului nu trebuie trecut cu vederea, de la alegerea algoritmului până la politica de utilizare și distribuire a cheilor.

Semnătura digitală electronică a documentelor XML

Cei care lucrează cu XML au înțeles de mult importanța unui mecanism de control al datelor care sunt transmise și reprezentate în XML. Principalele cerințe pentru date transmise, autentificarea părților care interacționează și confirmarea autenticității și integrității informațiilor din documentul XML. Astfel de sarcini sunt rezolvate de EDS-ul documentelor XML.

Specificații pentru EDS XML de la W3C

W3C dezvoltă în prezent specificația „XML Signature Syntax and Processing” și alte documente conexe. Deși are statutul de recomandare (http://www.w3.org/TR/xmldsig-core/). Acest document prevede semnătura atât pentru întregul document XML, cât și pentru o parte a acestuia. Pentru natura unu-la-unu a procesului de semnare XML, este definită noțiunea de reprezentare canonică a datelor XML. De exemplu, într-un document XML, etichetele care sunt la același nivel în arborele ierarhic pot fi amestecate, creând astfel ambiguitate pentru procesul de semnare. Reprezentarea canonică a XML este un fel de sortare (sau mai bine zis, de reducere la cea mai simplă formă) care nu permite astfel de libertăți. Metodele și regulile de canonizare XML sunt descrise într-un document separat Canonical XML (http://www.w3.org/TR/xml-c14n), care are și statutul de recomandare. Alte materiale legate de semnarea unui document XML sunt disponibile la: http://www.w3.org/Signature/ .

Etichetă semnătură XML

Recomandarea „Sintaxa și procesarea semnăturii XML” specifică faptul că semnătura și informațiile despre aceasta trebuie să fie conținute în etichetă , care are următoarele părți (în mare parte sunt necesare pentru verificarea semnăturii):

  • CanonicalizationMethod definește un set specific de reguli pentru simplificarea și structurarea unei instanțe XML înainte de semnare. Aceste informații asigură că datele semnate sunt formatate corespunzător, astfel încât algoritmul de verificare să treacă dacă datele semnificative nu au fost modificate;
  • metoda semnăturii (SignatureMethod) definește algoritmul de semnare a rezumatului mesajului. Rezumatul mesajului este un șir de caractere unic de dimensiune fixă, este rezultatul prelucrării datelor folosind o funcție hash unidirecțională dată de metoda digest;
  • metoda digest (DigestMethod) un algoritm pentru compilarea unui rezumat al unui mesaj semnat folosind metoda semnăturii specificată. Specificarea unei anumite metode de digest asigură că datele sunt prelucrate în același mod;
  • digest value (DigestValue) mesajul digest în sine, adică un șir de lungime fixă ​​produs ca urmare a procesării datelor folosind algoritmul de digest. Un astfel de șir este unic și ireversibil: este aproape imposibil să îl obțineți din alt conținut, la fel cum este imposibil să recreați datele originale din acesta. Este ca o amprentă pentru datele semnate; un rezultat pozitiv al comparării valorilor digest garantează integritatea conținutului;
  • semnătura în sine (SignatureValue) acestea sunt datele obținute în urma procesării prin metoda semnăturii;
  • cheie de informații despre cheia publică (KeyInfo) pentru verificarea EDS. Mai exact, nu o cheie, ci un certificat, pentru că pe lângă cheia în sine, în ea pot fi indicate și numele proprietarului și algoritmul de semnătură digitală.

Desigur, acestea nu sunt informații exhaustive despre ceea ce poate fi conținut în etichetă. . Aici cel mai simplu exemplu o astfel de semnătură (Listing 1).

Formarea EDS XML

Trebuie remarcat faptul că există unele diferențe între procesul de semnare XML și cel clasic. Cert este că procesul de semnare a unei instanțe XML începe cu canonizarea, adică cu simplificarea structurii datelor. După cum sa menționat deja, această procedură este necesară pentru a verifica corect EDS pentru același document XML prezentat în moduri diferite. Aceasta înseamnă că înainte de semnare, toate documentele XML trebuie convertite într-o singură formă canonică. Următorii pași sunt similari cu procesul standard de adăugare a unei semnături digitale: se creează o valoare de rezumat pentru date folosind metoda dată, apoi această valoare este semnată cu cheia privată a autorului documentului.

Verificarea semnăturii digitale XML

Există doi pași pentru verificarea unei semnături: verificarea semnăturii în sine și verificarea valorii digest.

Semnătura în sine este verificată mai întâi pentru a se asigura că proprietarul său este autentificat și pentru a preveni repudierea. Valoarea digest este apoi verificată pentru a se asigura că datele nu s-au schimbat și integritatea conținutului documentului XML este verificată.

Criptarea documentelor XML

Specificații de criptare XML W3C

Să trecem la criptare, care ne permite să închidem (adică să transformăm într-o formă în care sensul să nu fie înțeles) datele transmise și să le restaurăm pe partea de recepție. W3C a creat grup de lucru(http://www.w3.org/Encryption/2001/), care se ocupă în mod specific de criptarea datelor XML. Specificația „XML Encryption Syntax and Processing” a primit acum statutul de Recomandare și este disponibilă la: http://www.w3.org/TR/xmlenc-core/ .

Etichetă

  • metoda de criptare (EncryptionMethod) descrie algoritmul de criptare a datelor. Dacă această etichetă lipsește, atunci algoritmul de criptare trebuie să fie cunoscut părții care primește, altfel mesajul nu poate fi decriptat;
  • date criptate (CipherData) datele criptate reale sau un link către locația lor. Varietatea tipurilor de date care trebuie criptate și a metodelor de organizare logică a acestora este practic nelimitată;
  • informații despre chei (KeyInfo) informații despre cheile cu care se realizează criptarea și, în consecință, decriptarea. Acestea pot fi stocate în altă parte și înlocuite în instanța XML cu un link URL;
  • alte informații (de exemplu, despre destinatarii vizați).

Exemplu de etichetă prezentate în Lista 2.

Proces de criptare și decriptare

Datele XML sunt criptate folosind metode tradiționale de criptare cu cheie publică. În primul rând, datele în sine sunt criptate, de obicei cu o cheie secretă generată aleatoriu, care este apoi codificată folosind cheia publică a destinatarului vizat. Aceste informații sunt împachetate astfel încât numai destinatarul specificat să poată extrage cheia secretă și să decripteze datele. Cheia secretă este folosită pentru a decripta cheia secretă, iar apoi datele sunt decriptate folosind cheia secretă găsită.

Implementarea securității pentru documentele XML

Am revizuit principii generale munca semnăturii digitale electronice și specificația pe care consorțiul W3C le-a dezvoltat în acest domeniu. Toate acestea sunt bune, dar ce se întâmplă dacă într-adevăr este nevoie de implementarea schemelor de protecție a datelor XML descrise?

Deja astăzi, în ciuda faptului că standardele W3C au apărut destul de recent, unele companii au anunțat lansarea pachetelor lor (biblioteci de clasă) care implementează atât EDS, cât și criptare. Să luăm în considerare posibilitățile unora dintre ele.

XML Security Suite (IBM)

Acest pachet bazat pe limbaj Programare Java, disponibil la http://www.alphaworks.ibm.com/tech/xmlsecuritysuite. XML Security Suite este un instrument care oferă caracteristici de securitate, cum ar fi semnătura digitală, criptarea și controlul accesului pentru documentele XML. Cu acesta, puteți obține un succes mai mare decât utilizarea capacităților protocoalelor de securitate ale stratului de transport (de exemplu, Secure Sockets Layer, SSL).

Acest pachet implementează trei tehnologii:

  • EDS se bazează pe specificația „XML Signature Syntax and Processing” de la W3C și IETF (și pe specificația „Canonical XML”);
  • criptarea se bazează pe specificația W3C XML Encryption Syntax and Processing;
  • controlul accesului pentru documente XML (XML Access Control Language).

XML Security Suite este una dintre cele mai bune mijloace moderne pentru a proteja documentele XML. Pe lângă arhiva (JAR) cu biblioteca de clase în sine, include documentație detaliată și exemple care vă permit să navigați rapid în ierarhia claselor.

Securitate XML (Apache)

Protecția datelor bazată pe XML

Limbajul de marcare a afirmațiilor de securitate (SAML)

O zonă diferită de protecția datelor XML, dar strâns legată de aceasta, este îmbunătățirea securității și securității sistemelor (protocoale) bazate pe XML. În acest caz, alte documente/sisteme/aplicații sunt protejate folosind XML. Comitetul de securitate al Organizației pentru Avansarea Standardelor de Informații Structurate (OASIS) dezvoltă în prezent limbajul de marcare a afirmațiilor de securitate (SAML).

Legea federală „Cu privire la semnătura digitală electronică”

Goluri

Să ne abatem puțin de la legislatorii din domeniul web și să luăm în considerare Legea federală „Cu privire la semnătura digitală electronică”, care a fost aprobată de președintele Federației Ruse la 10 ianuarie 2002 (http://www.internet-law). .ru/intlaw/laws/ecp.htm). Adoptarea acestei legi prevedea condiții legale pentru utilizarea unei semnături digitale electronice în documentele electronice, în baza cărora semnătura digitală electronică într-un document electronic este recunoscută ca echivalentă cu o semnătură olografă într-un document pe hârtie. Astfel, s-au pus bazele pentru crearea unui sistem electronic de management al documentelor semnificativ din punct de vedere juridic.

Condiții pentru echivalența unui EDS și a unei semnături obișnuite

Legea definește conceptele de bază utilizate în procedura EDS, cum ar fi un certificat, cheile publice și private, confirmarea autenticității unei semnături digitale electronice (le-am luat în considerare mai devreme), etc. În plus, legea definește condițiile în care un semnătura digitală electronică într-un document electronic este echivalentă cu o semnătură într-un document pe hârtie. Aceasta înseamnă, în primul rând, că certificatul cheie de semnătură aferent acestei semnături digitale electronice nu a expirat în momentul verificării sau în momentul semnării. document electronic. În plus, trebuie confirmată autenticitatea semnăturii digitale electronice și faptul că semnătura digitală este utilizată în conformitate cu informațiile specificate în certificatul cheie de semnătură.

Certificate și CA

Legea detaliază ce certificat cheie de semnare (unic număr de înregistrare, numele complet al proprietarului, cheia publică EDS, numele și locația autorității de certificare etc.); termenii și procedura de stocare a certificatului în centrul de certificare. Astfel, perioada de stocare a certificatului cheie de semnătură sub forma unui document electronic în centrul de certificare este determinată de acordul dintre centrul de certificare și proprietarul certificatului cheie de semnătură. În ceea ce privește depozitarea, aceasta este determinată de lege Federația Rusă despre arhive și arhive.

Un capitol separat al legii este dedicat centrelor de certificare. Însuși procesul de dezvoltare și verificare a unui EDS poate avea loc fără participarea centrelor de certificare, dacă acest lucru este confirmat de un acord între părți. Cu toate acestea, în sistemele de informații publice și în multe sisteme de informații corporative, utilizarea EDS fără funcționarea centrelor de certificare este imposibilă, deoarece acest lucru va duce la mecanisme destul de simple de falsificare a semnăturilor.

Chei private (secrete).

EDS își poate îndeplini funcțiile numai dacă semnatarul are unele informații care nu sunt disponibile persoanelor neautorizate. Această informație este similară cu cheia în criptare și, prin urmare, este numită „cheia privată a semnăturii digitale electronice” (folosit anterior același termen „cheie secretă”). Este necesar să se păstreze secrete atât cheia privată, cât și cheia de criptare, deoarece cunoașterea cheii private de semnare corespunde unei bucăți de hârtie goală semnată de proprietarul cheii private, pe care un atacator poate scrie orice text care va fi atribuit. către proprietarul real al cheii private. Artă. 12 din lege indică în mod direct obligația titularului certificatului de cheie de semnătură de a păstra secretul cheii private și de a cere imediat suspendarea certificatului de cheie de semnătură dacă există motive să creadă că secretul cheii private de semnătură a fost încălcat.

Artă. 5 din Lege stabilește procedura de creare a cheilor private de semnătură, ținând cont de respectarea strictă a secretului creării acestora. Aceeași împrejurare este indicată și de art. 9 din Legea privind activitățile centrelor de certificare. În structurile informaționale corporative, problema producerii și distribuției cheilor private EDS poate fi rezolvată prin metode proprii, totuși, utilizatorul EDS trebuie să fie conștient de posibilele consecințe ale unei astfel de organizări a operațiunii EDS. Este foarte posibil ca o secvență obișnuită să fie folosită ca o cheie privată, așa cum este cazul când se folosește un sistem de parole.

Standarde interne pentru algoritmi EDS

Schema lui ElGamal

În 1994, primul standard internîn domeniul EDS GOST R34.10 94 " Tehnologia de informație. Protecție criptografică informație. Proceduri pentru dezvoltarea și verificarea unei semnături digitale electronice bazate pe un algoritm criptografic asimetric. Acesta definește proceduri pentru lucrul cu EDS pe baza schemei ElGamal. Imposibilitatea de a falsifica o semnătură se datorează complexității rezolvării problemei logaritmului discret într-un câmp de p elemente sau complexității determinării numărului x dat unui număr prim mare p și numerelor a, b din intervalul de la 2 la p. -1, care se realizează prin comparație:

ax== bmodp.

Cu toate acestea, matematicienii nu stau pe loc, iar recent s-au făcut progrese mari în dezvoltarea metodelor de rezolvare a problemei logaritmului discret într-un câmp de p elemente. Recent, a fost creată așa-numita metodă de sită a câmpului numeric. Cu el, puteți sparge EDS-ul generat prin metoda de mai sus (cel puțin în cazul modulului p pe 512 biți).

Una dintre cele mai simple soluții la această problemă este creșterea lungimii p. Dar, din păcate, cu o creștere a p, proprietățile operaționale ale algoritmului se deteriorează, deoarece lungimea cheii publice și timpul de generare și verificare a semnăturii cresc.

Curba eliptică

În cele din urmă, oamenii de știință ruși au ajuns la concluzia că este posibil să se complice ușor schema ElGamal și astfel, fără costuri de calcul suplimentare, să crească complexitatea contrafacerii unui EDS de multe mii de ori. O nouă versiune a schemei ElGamal utilizează aparatul de curbe eliptice pe un câmp finit de p elemente, care sunt definite ca mulțime de perechi de numere (x, y) (fiecare dintre ele se află în intervalul de la 0 la p-1). ) satisfacerea comparației (numerele a și b sunt fixe și satisfac o condiție suplimentară):

Y2 == x3 + ax + bmodp.

Alte resurse

  • Informații despre utilitarul Oracle XML-SQL http://otn.oracle.com/tech/xml/xdk_java/content.html
  • Specificații SAML http://www.oasis-open.org/committees/security/
  • Specificația XKMS http://www.w3.org/TR/xkms/
  • Legea federală „Cu privire la semnătura digitală electronică”


Se încarcă...
Top