28.06.2020

dsa алгоритъм за цифров подпис c# източник. Какво е електронен подпис - на прост език за начинаещи в света на дигиталната икономика


Реших да подчертая днешния кратък запис по темата за създаване на електронен цифров подпис с помощта на крипто доставчика CryptoPRO. Ще говорим за файла Bat, който може да се използва за автоматизиране на подписването на електронни документи.

За да автоматизираме процеса на подписване на електронни документи, се нуждаем от:
1) Crypto PRO CSP;
2) USB ключ (напр. rutoken), поставен в USB порта;
3) Бележник (Notepad.exe);
4) Инсталирани сертификати за вашия ключ;

Препъникамъкът в цялата тази история е файлът csptest.exe, който се намира в директорията на CryptoPro (по подразбиране C:\Program Files\Crypto Pro\CSP\csptest.exe).

Отворете командния ред и изпълнете командата:

CD C:\Program Files\Crypto Pro\CSP\ и csptest

Ще видим всички възможни параметри на този exe файл.

изберете от:-help отпечатайте тази помощ -noerrorwait не чакайте никакъв ключ при грешка -notime не показвайте изтеклото време -pause Изчакайте въвеждането на клавиатурата след завършване, така че да можете да проверите паметта и използването на други ресурси -рестартирайте Call DestroyCSProvider() на последния използван CSP при изход Услугите (cryptsrv*, HSM и т.н.) не са засегнати -randinit Инициализиране на системния rng със srand(x) (по подразбиране: време) -showrandinit Показване на стойността за инициализация на системния rng -stack Измерване на използването на стека изберете от:-lowenc тест за шифроване/декриптиране на ниско ниво -sfenc опростен тест за шифроване/декриптиране на съобщения -cmslowsign CMS тест за подписване на съобщения на ниско ниво -cmssfsign CMS опростен тест за подписване/потвърждаване на ниво на съобщения -lowsign тест за подписване на съобщения на ниско ниво -lowsignc тест за подписване на съобщения на ниско ниво с цикъл Използвайте вместо това "-lowsign -repeat NN"! -sfsign тест за подписване/проверка на опростено ниво на съобщение -ipsec ipsec тестове -defprov манипулации на доставчика по подразбиране -testpack Пакет от няколко теста -свойство за получаване/инсталиране на сертификат за собственост за свързване на таен ключ -промяна на името на доставчика на certkey в връзката на таен ключ на сертификат -контекстни тестове на доставчик на контекст -absorb абсорбира всички сертификати от контейнери със свързване на секретен ключ -drvtst прокси-драйвер тест -signtool SDK signtool analog -iis управлява IIS -hsm управлява HSM-клиент -rpcc RPC през SSL клиент -rpcs RPC през SSL сървър -оидоид info/set/get -passwd set/change password -keycopy copy container -keyset create (open) keyset -tlss start tls server -tlsc start tls client -tls TLS tests -prf PRF tests -hash hash test -makecert сертификат издаване тест - certprop показване на свойства на сертификата -rc проверка на pkcs#10/подпис на сертификат -cmsenclow CMS ниско ниво на криптиране/декриптиране на съобщение -sfse опростено ниво на съобщение SignedAndEnveloped тест -стрес стрес тест за Acquire/ReleaseContext -ep тест за износ на публичен ключ -enum CSP параметри изброяване - cpenc CP/Crypto ниво (advapi32) тестове за криптиране -setpp SetProvParam тестове -perf Тестове за производителност - скорост Скоросттестове и настройка на оптимална функционална маска -testcont Инсталиране/деинсталиране на тестови контейнери -инсталиране на информация за инсталация на CSP, изчистване на CSP -версия Печат на CSP версия

За да видите параметрите на определена глобална опция, достатъчно е да извикате този файл с тази опция, например

csptest -sfsign : -sign Подпишете данните от името на входния файл -проверете Проверете подписа върху данните, посочени от името на входния файл -help Отпечатайте тази помощ : -във Въведете име на файл за подпис или потвърждение Изход PKCS#7 име на файл -my Сертификат от хранилището на CURRENT_USER за обработка на данни -MY Сертификат от хранилище LOCAL_MACHINE за обработка на данни -отделен Сделка с отделен подпис -добавяне Добавяне на сертификат на подател към PKCS#7 -подпис Отделен файл за подпис -alg Хеш алгоритъм: SHA1, MD5, MD2, GOST - по подразбиране -ask Получаване на csp контекст с помощта на моя сертификат (по подразбиране: няма) -base64 Вход/изход с преобразуване на base64DER -addsigtime Добавяне на атрибут за време на подписване -cades_strict Генериране на атрибут Strict signingCertificateV2 -cades_disable Деактивиране на генерирането на атрибут signingCertificateV2

По този начин, за да подпишете файл чрез cmd с помощта на csptest.exe, трябва да извикате командата:

Csptest -sfsign -sign -in Dogovor.doc -out Dogovor.doc.sig -my LLC MyPrograms Иванов Иван Иванович

Където:
- моят- Показва собственика на ключа;
-във- Указва кой файл да се подпише. Ако файлът не е в папката с csptest, тогава трябва да посочите пълния път.;
-вън— Указва името на файла за подпис;

Можете да проверите подписа на уебсайта на Gosulsug на тази връзка.

Най-вероятно. Ако сега качите този файл на уебсайта на обществената услуга, ще се появи грешка. Това се дължи на факта, че е необходима информация за сертифициращия център. Също така датата и часът на подписване на документи няма да бъдат излишни. За да направим това, трябва да добавим два параметъра към нашата команда:

Csptest -sfsign -sign -in Dogovor.doc -out Dogovor.doc.sig -my LLC MyPrograms Иванов Иван Иванович -addsigtime -add

Ако имаме нужда от подпис в конкатениран формат, тогава добавяме още един параметър:

Csptest -sfsign -sign -in Dogovor.doc -out Dogovor.doc.sig -my LLC MyPrograms Иванов Иван Иванович -addsigtime -add -откъснат

Забележка: Ако документът е подписан с грешка
Не може да се отвори файл
Възникна грешка при стартиране на програмата.
.\signtsf.c:321:Не може да се отвори входен файл.
Номер на грешка 0x2 (2).
Посоченият файл не може да бъде намерен.

когато извиквате, както в последния пример, и сте сигурни, че пътищата в параметрите -in и -out са правилни, опитайте да създадете подпис според първия пример и след това изпълнете командата с пълния набор от параметри!! !

Получихме основната команда за подпис. Сега нека опростим малко процедурата. Нека направим bat файл, който при стартиране ще подпише файла Secret.txt, намиращ се в същата папка като bat файла. Отворете бележника и напишете следния код:

Chcp 1251 set CurPath=%cd% cd C:\Program Files\Crypto Pro\CSP call csptest -sfsign -sign -in %CurPath%\Secret.txt -out %CurPath%\Secret.txt.sig -my LLC MyPrograms Иванов Иван Иванович -addsigtime -add -detached cd %CurPath%

Щракнете върху „Файл“ -> „Запазване като“ -> Задаване на име от .bat -> „Запазване“
Sobsvenno и всичко останало. За справка:
chcp 1251- Задава кодирането за CMD. Необходимо за валидна обработка на руски букви в кода;
задайте CurPath=%cd%- Записва пътя на текущата CMD директория към променливата CurPath;
cd- Задава текущия CMD път;
обадете се- Стартира програмата;

12 август 2010 г. 12:24 ч

В предишните части грубо разбрахме какво точно ще ядем. Сега, най-накрая, нека да преминем директно към избора на ястия по наш вкус. Тук ще разгледаме целите на използването на цифров подпис, към кой лагер да се присъединим и какви са характеристиките на използването на всяка от опциите, както и ще се докоснем до правната основа на използването на цифрови подписи. Успоредно с това ще разгледаме въпросите, които възникват в процеса и ще задълбочим знанията за работата на механизма, който този моментние имаме.

Да приемем, че имате неустоимо желание или може би спешна нужда да използвате цифров подпис. Първият всеобхватен въпрос, който трябва да си зададете е: защо? Ако не можете повече или по-малко недвусмислено да отговорите на този въпрос, тогава помислете два пъти, преди да продължите по пътя на използването на тази технология. В крайна сметка внедряването и най-важното използването на цифров подпис във всяко от неговите превъплъщения е доста трудоемък процес, така че ако няма ясно разбиране на поставените цели, по-добре е дори да не го предприемате.

Нека все пак разбирате, че просто се нуждаете от цифров подпис. И имате нужда от него, разбира се, за да защитите информацията си. Сега нека разгледаме ситуации, в които е възможно да се приложи цифров подпис и криптиране по ред на сложност.

Нека започнем с една сравнително проста опция: вие сте частно лице и искате да защитите информацията, която изпращате чрез електронни източници, от подмяна, а също и, може би, от четене от непознати. Вие изпращате информация на същия обикновен човек, с когото винаги можете да се договорите как ще защитите информацията си. Какво ви трябва за това?

Да започнем със S/MIME. Ще направим това, първо, защото този формат, както казах, е много по-разпространен и най-важното: поддържа се на ниво Windows (а Windows, каквото и да се каже, е най-разпространената операционна система), също както при много програми, които работят под Windows. И второ, от правна гледна точка този формат позволява (в рамките на нашата държава, разбира се) много повече.

Кой е най-лесният и често срещан начин за прехвърляне на информация на друго лице? Разбира се, това е имейл. Взимаме писмо, прикачваме файлове към него и го изпращаме. И тук имаме особен късмет с цифров подпис във формат S / MIME: всички обикновени имейл клиенти могат както да получават съобщения с цифров подпис, така и да ги изпращат. В този случай се подписва цялото писмо, включително прикачените към него файлове.

Ориз. 1. Страница на центъра за сигурност на Outlook 2007

И всичко би било наред, но за да изпратите писмо с подпис, трябва да имате програма, която работи с криптография (криптографски доставчик или доставчик на криптографски услуги, CSP), както и сертификат за конкретна цел и частен ключ свързани с него. Предназначението на сертификата е областта, в която може да се използва. Ще говорим повече за целите на сертификатите по-късно, но за настоящата задача всъщност се нуждаем от сертификат за защита на електронната поща.

Но обратно към нашите нужди. Къде мога да намеря същата програма, крипто-доставчик? За наше щастие, операционната система Windows не само поддържа самия формат, но също така съдържа набор от криптографски доставчици, които идват с всяка версия на системата абсолютно безплатно, тоест безплатно. Така че най-очевидното решение за тази ситуация е да ги използвате.

И така, разбрахме доставчика на крипто, но какво да правим със сертификата? В предишната част казах, че в процеса на издаване на удостоверения участва определена трета страна – удостоверяващ орган, който директно издава удостоверения и удостоверява тяхното съдържание и релевантност. Ще се спра на този въпрос по-подробно, тъй като тези знания ще ни трябват в бъдеще.

Потвърждението, че този конкретен потребителски сертификат е правилен и че съдържанието в него не е променено, все още е същият цифров подпис, само че сертифициращият орган вече го подписва.

Сертифициращият орган, подобно на потребителите, има собствен сертификат. И именно с негова помощ той подписва издадените от него удостоверения. Тази процедура, първо, защитава издадените от сертифициращия орган сертификати от промени (които вече споменах по-горе), и второ, ясно показва кой сертифициращ орган е издал този сертификат. В резултат на това лош човек, разбира се, може да направи пълно копие на вашия сертификат, с вашето име, фамилия, дори всякаква допълнителна информация, но да фалшифицира цифровия подпис на сертифициращ орган, без да разполага с частния му ключ, ще бъде почти непосилна задача за него и следователно разпознаването на този фалшификат ще бъде не само лесно, но и много лесно.

Самият сертификат на сертифициращия орган, в добър смисъл, също трябва да бъде защитен. Което означава, че е подписано. От кого? По-висок сертифициращ орган. А това от своя страна е още по-превъзходно. И такава верига може да бъде много дълга. Как завършва?

И завършва със самоподписан сертификат на сертифициращия орган. Такъв сертификат се подписва с частен ключ, свързан с него. За да дам аналогия, това е като удостоверение за длъжност и заплата изпълнителен директор. « С това удостоверение Иванов I.I., генерален директор на LLC« Глухарче» удостоверява, че Иванов И.И. заема длъжността генерален директор в тази организация и получава заплата в размер на ####### рубли". За да повярвате на този сертификат, трябва да повярвате на самата компания Oduvanchik LLC и тази вяра не се поддържа от трета страна.

Същото е и с основните сертификати (т.е. сертификати на сертифициращи органи). Самоподписаните сертификати на онези CA, на които имате доверие, трябва да бъдат в специално хранилище в системата, наречено „Доверени главни сертифициращи органи“. Но преди да стигнете до там, трябва да ги получите по някакъв начин. И това е най-слабото звено в системата. Самият самоподписан сертификат не може да бъде фалшифициран, точно като потребителски сертификат, но ще бъде чудесно да го замените по време на предаване. Това означава, че предаването трябва да се извършва по канал, защитен от заместване.

За да избегне подобни затруднения, където е възможно, Microsoft избра няколко CA и включи техните сертификати директно в инсталацията на Windows (това са Thawte, VeriSign и други). Те вече са на вашия компютър и не е необходимо да ги вземате отникъде. Това означава, че можете да ги замените само ако троянски кон живее на компютъра ви (или лош човек трябва да има администраторски достъп до вашия компютър) и говоренето за използване на цифров подпис в този случай е донякъде безсмислено. Освен това тези сертифициращи органи са широко известни и се използват от много хора и просто подмяната на техните сертификати ще доведе до много грешки в работата на, да речем, сайтове, чиито сертификати са издадени от тези сертифициращи органи, което от своя страна бързо ще доведе на идеята, че тук нещо не е чисто.

Между другото, относно самоподписаните сертификати: такъв сертификат може да бъде създаден за ваша собствена употреба, а не само за сертифициращ орган. Естествено, такъв сертификат наследява всички недостатъци на сертификати от този тип, но е чудесен за проверка дали си струва да използвате цифров подпис в кореспонденцията или е по-добре да го направите. За да създадете такива сертификати, можете да използвате програмата, която е част от инструментите на Microsoft Office ( Цифров сертификатза VBA проекти), или, за по-добро персонализиране на предназначението и другите полета на този сертификат, програма на трета страна, като CryptoArm, която дори в безплатната си версия ви позволява да създавате такива сертификати.

Ориз. 2. Преглед на самоподписан сертификат с помощта на системни инструменти на Windows

И така, ние избираме сертифициращ орган, който е подходящ и за двама ни, получаваме сертификати за него (за което попълваме формуляр на сайта, предоставяме Задължителни документии плащаме пари, ако е необходимо), или създаваме самоподписан сертификат за себе си и ... Всъщност това е всичко. Сега можем да използваме нашия имейл клиент (същия Outlook "a), за да изпращаме и получаваме подписани и криптирани съобщения.

За да използвате стандарта OpenPGP, всичко е едновременно по-просто и по-сложно. За да използвате този стандарт, все още се нуждаете от криптографски доставчик, чифт публични и частни ключове и програма, която директно извършва подписване и криптиране. За OpenPGP всички тези компоненти могат да бъдат платени и безплатни. При безплатните има повече проблеми с инсталацията, а при платените по-малко, но при тях принципите са същите.

Следвайки последователността от вече използвани описания, нека започнем с програмата, с която ще имате най-много контакт: пощенският клиент. Използване на чист Outlook "но тук вече не е възможно, поради неговото непознаване на стандарта OpenPGP, което означава, че трябва или да преминете към клиент, който познава стандарта, или да използвате добавки за Outlook", или дори да работите с подписи и криптиране чрез копиране на информация във външни програми. Като пример за пощенски клиенти, които работят със стандарта OpenPGP, можем да цитираме Mozilla Thunderbird, който между другото все още се нуждае от плъгин или The Bat! , който във версията Profissional може сам да работи със стандарта OpenPGP.

Ориз. 3. Основният екран на пощенския клиент Mozilla Thunderbird

Ориз. 4. Основният екран на The Bat!

Плъгините, необходими за работа със стандарта OpenPGP в пощата, също могат да бъдат намерени както платени, така и безплатни. Платените добавки идват с платени версии програми PGP и като пример за безплатен плъгин можете да цитирате плъгина Enigmail за същия Thunderbird.

Ориз. 5. Добавки, които се появяват в мейл клиента след инсталиране на Enigmail

Доставчиците на крипто тук са по един или друг начин безплатни. Можете да използвате криптографския доставчик, който идва дори с безплатната версия на PGP, или можете да използвате GnuPG.

Ориз. 6. Страница за управление на ключове на GnuPG

Тук, може би, си струва малко предупреждение към тези, които преследват безплатен код с отворен код. Повечето от тези приложения работят и изпълняват функциите си, но има редица проблеми, които са общи за всички тях. И проблемът с недостатъчното тестване и проблемът с разработването на потребителски интерфейси звучи особено важно. И двата проблема са основни за свободния софтуер в самата му същност: разработката се извършва „от целия свят“ (или от отделна група), което означава, че проектите в повечето случаи нямат общ идеолог, няма общ конструктор, дизайнер и др. В резултат на това ситуацията често се оказва „каквото е пораснало, това е пораснало“, а това не винаги е удобно от чисто функционална гледна точка. Тестването също като правило се провежда „от целия свят“, а не от професионални тестери, над които виси зъл лидер, така че повече грешки влизат в окончателната версия. Освен това, ако бъде открита грешка, която може да доведе до загуба на вашата информация, няма кого да попитате: софтуерът е безплатен и отворен и никой не носи финансова или юридическа отговорност пред вас. Въпреки това, не се ласкайте, с платения софтуер ситуацията е абсолютно същата, въпреки че в редки случаи са възможни варианти. За съжаление, тези случаи се отнасят по-скоро за партньорски компании и корпоративни клиенти, така че за нас, обикновените потребители, можем да приемем, че няма опции.

В същото време по никакъв начин не искам да умолявам достойнствата на този вид софтуер. Всъщност, като се имат предвид както платените, така и безплатните програми, които работят с криптография, можете да видите, че първият проблем - грешки - този софтуер практически (с редки изключения, които просто не е необходимо да използвате) не е засегнат. Но вторият - ужасяващи интерфейси от гледна точка на потребителя - засяга, колкото и да е странно, почти всички. И ако причината за тази ситуация за свободния софтуер може да се приеме просто като „каквото е нараснало, то е нараснало“ (да речем, TrueCrypt, който е прекрасен във всички отношения, който е де факто стандартът в областта на криптирането на данни, ужасяващ интерфейс за човек, който не разбира много дълбоко във въпроса), тогава подобна ситуация с платен софтуер може да се обясни може би само с факта, че криптографията като посока на развитие обикновено се разглежда на остатъчна основа. Тук-там се срещат изключения от тези правила, но b ОАз лично обаче срещнах повече изключения в лагера на платения софтуер.

Но да се върнем към нашата поща. Въпросът за сертификата остана нерешен. „По-лесно и по-трудно“ живее точно тук. Можете да го създадете направо на вашия компютър, без да прибягвате до услугите на външен сертифициращ орган, което, разбирате, е по-лесно, отколкото да изпратите заявка до някой сертифициращ орган. Но оттук идват и проблемите с тези сертификати: всички те са самоподписани, което означава, че са предмет на същите проблеми, които разгледахме със самоподписаните сертификати на сертифициращите органи. Всъщност втората точка е „по-трудна“.

Проблемът с доверието в сертификатите в този лагер се решава с помощта на мрежи за доверие, чийто принцип може да бъде описан накратко по следния начин: колкото повече хора ви познават (вашият сертификат), толкова повече основания за доверие. В допълнение, публичните банки за сертификати могат да улеснят решаването на проблема с прехвърлянето на сертификат на получателя, в чиито дълбини е малко по-трудно да се рови лош човек, отколкото в предадената поща. Можете да качите сертификат в тази банка, когато е създаден, и просто да го прехвърлите на получателя, откъдето той трябва да вземе този сертификат.

Сертификатите се съхраняват в някои магазини, които създават програми на вашата машина за работа със стандарта OpenPGP, те предоставят достъп до тях. Не трябва да забравяте и това, защото това означава, че няма да можете да получите достъп до тези сертификати само от операционната система, без да използвате тези програми.

Всичко, както в случая със S / MIME, горният набор от действия вече е достатъчен, за да постигнете нашата цел: обмен на подписана и криптирана поща.

И така, началото е поставено. Вече можем да използваме първото, доста просто ястие с подправка под формата на цифрови подписи, но е добро само за семе и, разбира се, не си струва да се спираме на него. В следващите статии ще анализираме все по-сложни ситуации и ще научаваме все повече за характеристиките на тази технология.

(4,00 - оценка от 18 души)

Статията дава отговори на въпросите: „Как изглежда електронен подпис”, „Как работи EDS”, разгледани са неговите възможности и основни компоненти, както и визуализация стъпка по стъпка инструкцияпроцесът на подписване на файл с електронен подпис.

Какво е електронен подпис?

Електронният подпис не е обект, който може да бъде взет, а необходим документ, който ви позволява да потвърдите, че EDS принадлежи на неговия собственик, както и да фиксирате състоянието на информацията / данните (наличие или липса на промени) в електронен документот момента на подписването му.

Справка:

Съкратеното наименование (съгласно федерален закон № 63) е ES, но по-често се използва остарялото съкращение EDS (електронен цифров подпис). Това например улеснява взаимодействието с търсачките в интернет, тъй като ES може да означава и електрическа печка, пътнически електрически локомотив и др.

Съгласно законодателството на Руската федерация квалифицираният електронен подпис е еквивалент на ръкописен подпис с пълна юридическа сила. В допълнение към квалифицираните в Русия има още два вида EDS:

- неквалифициран - осигурява правното значение на документа, но едва след заключението допълнителни споразумениямежду подписалите страни относно правилата за прилагане и признаване на EDS, ви позволява да потвърдите авторството на документа и да контролирате неговата неизменност след подписване,

- прост - не придава правно значение на подписания документ до сключването на допълнителни споразумения между подписалите страни относно правилата за прилагане и признаване на EDS и без спазване на законово фиксираните условия за използването му (прост електронен подпис трябва да се съдържа в самият документ, неговият ключ трябва да се прилага в съответствие с изискванията на информационната система, където се използва, и т.н. в съответствие с Федерален закон-63, член 9), не гарантира неговата неизменност от момента на подписване, ви позволява да потвърдите авторството. Използването му не е разрешено в случаи, свързани с държавна тайна.

Възможности за електронен подпис

За физическите лица EDS осигурява дистанционно взаимодействие с държавни, образователни, медицински и други информационни системичрез Интернет.

За юридически лица електронният подпис дава достъп до участие в електронна търговия, позволява ви да организирате правно значим електронен документооборот(EDO) и се предайте електронно отчитанекъм регулаторните органи.

Възможностите, които EDS предоставя на потребителите, го превърнаха във важна част от ежедневието както на обикновените граждани, така и на представителите на компаниите.

Какво означава фразата "на клиента е издаден електронен подпис"? Как изглежда ECP?

Самият подпис не е обект, а резултат от криптографски трансформации на подписания документ и не може да бъде „физически“ издаден на какъвто и да е носител (токен, смарт карта и др.). Нито може да се види в най-истинския смисъл на думата; не прилича на удар на писалка или фигурален отпечатък. Относно, Как изглежда електронният подпис?ще разкажем по-долу.

Справка:

Криптографската трансформация е криптиране, което е изградено върху алгоритъм, който използва таен ключ. Процесът на възстановяване на оригиналните данни след криптографска трансформация без този ключ според експертите трябва да отнеме повече време от срока на валидност на извлечената информация.

Флаш носителят е компактен носител за съхранение, който включва флаш памет и адаптер (usb флаш устройство).

Токенът е устройство, чието тяло е подобно на това на USB флаш устройство, но картата с памет е защитена с парола. Информацията за създаване на EDS се записва на токена. За да работите с него, трябва да се свържете към USB-конектора на компютъра и да въведете парола.

Смарт картата е пластмасова карта, която ви позволява да извършвате криптографски операции поради вградена в нея микросхема.

SIM картата с чип е карта на мобилен оператор, оборудвана със специален чип, на който безопасно се инсталира java приложение на производствения етап, разширявайки неговата функционалност.

Как трябва да се разбира изразът „издаден електронен подпис“, който е здраво вкоренен в разговорната реч на участниците на пазара? Какво е електронен подпис?

Издаденият електронен подпис се състои от 3 елемента:

1 - средство за електронен подпис, което е необходимо за изпълнението на набор от криптографски алгоритми и функции технически средства. Това може да бъде или криптографски доставчик, инсталиран на компютър (CryptoPro CSP, ViPNet CSP), или независим токен с вграден криптографски доставчик (Rutoken EDS, JaCarta GOST), или „електронен облак“. Повече за EDS технологиите, свързани с използването на „електронен облак“, можете да прочетете в следващата статия на Единния портал за електронен подпис.

Справка:

Крипто доставчикът е независим модул, който действа като „посредник“ между операционна система, който с помощта на определен набор от функции го управлява, и програмен или хардуерен комплекс, който извършва криптографски трансформации.

Важно: токенът и средствата за квалифициран EDS върху него трябва да бъдат сертифицирани от Федералната служба за сигурност на Руската федерация в съответствие с изискванията федерален закон № 63.

2 - двойка ключове, която се състои от два безлични набора от байтове, образувани от инструмент за електронен подпис. Първият от тях е ключът за електронен подпис, който се нарича "затворен". Той се използва за формиране на самия подпис и трябва да се пази в тайна. Поставянето на „частен“ ключ на компютър и флашка е изключително несигурно, на токен е донякъде несигурно, на токен/смарт карта/сим карта в невъзстановима форма е най-сигурно. Вторият е ключът за проверка на електронния подпис, който се нарича "отворен". Не се пази в тайна, еднозначно е обвързан с „личен” ключ и е необходим, за да може всеки да провери коректността на електронния подпис.

3 - сертификат за ключ EDS проверкииздаден от сертифициращ орган (CA). Целта му е да асоциира безличен набор от байтове на „публичния” ключ с идентичността на собственика на електронния подпис (лице или организация). На практика изглежда така: например Иван Иванович Иванов ( индивидуален) идва в удостоверителния център, представя паспорт и СО му издава сертификат, потвърждаващ, че декларираният "публичен" ключ принадлежи на Иван Иванович Иванов. Това е необходимо, за да се предотврати измамна схема, по време на разгръщането на която нападателят, в процеса на предаване на "отворен" код, може да го прихване и да го замени със свой собствен. Така нарушителят ще може да се представя за подписалия. В бъдеще, чрез прихващане на съобщения и извършване на промени, той ще може да ги потвърди със своя EDS. Ето защо ролята на удостоверението на ключа за проверка на електронния подпис е изключително важна, а удостоверителният център носи финансова и административна отговорност за неговата коректност.

В съответствие със законодателството на Руската федерация има:

- "сертификат за ключ за проверка на електронен подпис" се генерира за неквалифициран електронен подпис и може да бъде издаден от удостоверителен център;

— « квалифициран сертификатКлюч за проверка на електронен подпис” се формира за квалифициран ЕЦП и може да бъде издаден само от УО, акредитиран от Министерството на далекосъобщенията и масовите комуникации.

Условно може да се посочи, че ключовете за проверка на електронен подпис (набори от байтове) са технически понятия, а сертификатът за „публичен“ ключ и сертификационният център са организационни понятия. В крайна сметка CA е структурна единица, която отговаря за съпоставянето на „отворените“ ключове и техните собственици като част от техните финансови и икономически дейности.

Обобщавайки гореизложеното, фразата „на клиента е издаден електронен подпис“ се състои от три термина:

  1. Клиентът закупи инструмент за електронен подпис.
  2. Той получи „отворен” и „частен” ключ, с помощта на които се генерира и верифицира EDS.
  3. CA издаде сертификат на клиента, потвърждаващ, че „публичният“ ключ от двойката ключове принадлежи на това конкретно лице.

Проблем със сигурността

Задължителни свойства на подписаните документи:

  • интегритет;
  • автентичност;
  • автентичност (автентичност; "неотричане" на авторството на информация).

Те се осигуряват от криптографски алгоритми и протоколи, както и базирани на тях софтуерни и хардуерно-софтуерни решения за формиране на електронен подпис.

С известна степен на опростяване можем да кажем, че сигурността на електронния подпис и услугите, предоставяни на негова основа, се основава на факта, че „частните“ ключове на електронния подпис се пазят в тайна, в защитена форма и че всеки потребителят ги пази отговорно и не допуска инциденти.

Забележка: когато купувате токен, е важно да промените фабричната парола, така че никой да не може да получи достъп до EDS механизма, освен неговия собственик.

Как да подпиша файл с електронен подпис?

За да подпишете файл с цифров подпис, трябва да извършите няколко стъпки. Като пример, нека разгледаме как да поставите квалифициран електронен подпис върху сертификат за търговска марка на Единния портал за електронен подпис във формат .pdf. Трябва да:

1. Щракнете върху документа с десния бутон на мишката и изберете доставчика на крипто (в този случай CryptoARM) и колоната „Подписване“.

2. Подайте пътя в диалоговите прозорци на криптографския доставчик:

На тази стъпка, ако е необходимо, можете да изберете друг файл за подписване или да пропуснете тази стъпка и да преминете директно към следващия диалогов прозорец.

Полетата Encoding и Extension не изискват редактиране. По-долу можете да изберете къде да бъде записан подписаният файл. В примера документът с цифров подпис ще бъде поставен на работния плот (Desktop).

В блока „Свойства на подписа“ изберете „Подписано“, ако е необходимо, можете да добавите коментар. Други полета могат да бъдат изключени/избрани по желание.

От хранилището на сертификати изберете този, от който се нуждаете.

След като се уверите, че полето „Собственик на сертификат“ е правилно, щракнете върху бутона „Напред“.

В този диалогов прозорец се извършва окончателната проверка на данните, необходими за създаване на електронен подпис, след което след натискане на бутона „Край“ трябва да изскочи следното съобщение:

Успешното завършване на операцията означава, че файлът е криптографски преобразуван и съдържа реквизит, който фиксира неизменността на документа след подписването му и гарантира неговата правна значимост.

И така, как изглежда електронният подпис върху документ?

Например, вземаме файл, подписан с електронен подпис (записан във формат .sig) и го отваряме чрез криптографски доставчик.

Фрагмент от работния плот. Отляво: файл, подписан с ES, отдясно: криптографски доставчик (например CryptoARM).

Не е осигурена визуализация на електронния подпис в самия документ при отварянето му, поради факта, че е реквизит. Но има изключения, например електронният подпис на Федералната данъчна служба при получаване на извлечение от Единния държавен регистър на юридическите лица / EGRIP чрез онлайн услугаусловно се показва на самия документ. Екранна снимка можете да намерите на

Но какво да кажем в крайна сметка "изглежда" EDS, или по-скоро как е посочен фактът на подписване в документа?

Като отворите прозореца „Управление на подписани данни“ през доставчика на крипто, можете да видите информация за файла и подписа.

При натискане на бутона "Преглед" се появява прозорец с информация за подписа и сертификата.

Последната екранна снимка ясно показва как изглежда цифровият подпис върху документ"отвътре".

Можете да закупите електронен подпис от.

Задайте други въпроси по темата на статията в коментарите, експертите на Единния портал за електронен подпис определено ще ви отговорят.

Статията е подготвена от редакторите на Единния портал на сайта за електронен подпис, използвайки материали от SafeTech.

При пълно или частично използване на материала, хипервръзка към www..

__________________________________________________________

Държавно учебно заведение

Висше професионално образование

"САНКТ ПЕТЕРБУРГ

ДЪРЖАВЕН УНИВЕРСИТЕТ ПО ТЕЛЕКОМУНИКАЦИИ

тях. проф. М.А. БОНК-БРУЕВИЧ"

__________________________________________________________________________________________

В.П. Грибачов

Учебник за лабораторни упражнения по информационна сигурност.

Санкт Петербург

Лаборатория №1

Изследването на криптоалгоритъма за криптиранеRSA.

    Цел на работата.

Изследване на структурата на алгоритъма и методите за практическо прилагане на криптосистемата за криптиране RSA.

Криптосистемата RSA е разработена от Роналд Ривест, Ади Шамир и Леонард Адлеман през 1972 г. Системата е кръстена на първите букви от техните фамилни имена. Въпреки съобщенията през последните години за отделни опити за успешен криптоанализ на този алгоритъм, RSA все още е един от най-разпространените криптоалгоритми. Поддръжката на RSA е вградена в повечето често срещани браузъри (Firefox, IE), има RSA добавки за Total Commandera и някои други ftp клиенти. У нас алгоритъмът не е сертифициран.

RSA принадлежи към класа на двуключовите криптосистеми. Това означава, че алгоритъмът използва два ключа – публичен (Public) и таен (Private).

Публичният ключ и съответният му секрет заедно образуват двойка ключове (Keypair). Не е необходимо публичният ключ да се пази в тайна. В общия случай тя е публикувана в отворени справочници и е достъпна за всички. Съобщение, шифровано с публичния ключ, може да бъде декриптирано само със съответния сдвоен частен ключ и обратно.

Сигурността на RSA се основава на проблема за факторизиране или факторизиране на две големи числа, чийто продукт формира така наречения RSA модул. Факторингът ви позволява да разкриете секретния ключ, което води до възможността за дешифриране на всяко тайно съобщение, криптирано на този ключ. Понастоящем обаче се смята, че не е математически доказано, че за да се възстанови обикновеният текст от криптирания, е наложително модулът да се разложи на фактори. Може би в бъдеще ще има по-ефективен начин за криптоанализ на RSA, базиран на други принципи.

Така криптографската сила на RSA се определя от използвания модул.

За да се осигури достатъчна степен на криптографска сила, понастоящем се препоръчва да се избере дължина на RSA модул от най-малко 1024 бита и поради бързия напредък на компютърните технологии тази стойност нараства през цялото време.

    Диаграма на алгоритъма за криптиране на данниRSA

    Изберете две произволни прости числа ( стрИ р) и изчислете модула:

    Функцията на Ойлер се изчислява: φ (н)=(стр-1)(р-1);

    На случаен принцип се избира таен ключ д, докато условието за взаимна простота на числата трябва да бъде изпълнено дИ φ (н).

    Ключът за дешифриране се изчислява по формулата:

изд = 1 мод φ (н);

забележи това дИ нсъщо трябва да са относително прости числа.

    За криптиране е необходимо съобщението да се раздели на блокове с еднаква дължина. Броят на битовете в блока трябва да съответства на броя на битовете в модула н.

    Шифроването на блока съобщения се извършва по формулата:

° С аз аз д mod n

    Декриптиране на всеки блок ° С азизвършва се по формулата:

М аз = В аз д mod n

Избор дкато публичен ключ и дкато тайна е напълно условна. И двата ключа са напълно еднакви. Като публичен ключ можете да вземете д, и като затворен д.

Пример за криптиране:

    Избирам Р= 7 , р = 13 , модул н = pq = 7 13 = 91;

    Изчислете функцията на Ойлер φ (н) = (стр-1)(р-1) = (7-1)(13-1) = 72;

    Като се вземат предвид условията на GCD ( д, φ (н)) = 1 и 1< д φ (н), изберете таен ключ д = 5;

    Въз основа на условието изд = 1 мод φ (н), изчислете сдвоения таен ключ 5 ·д = 1 мод 72 , като използваме разширения алгоритъм на Евклид, намираме публичния ключ д = 29;

    Приемаме отворено съобщение м = 225367 и го разбийте на блокове с еднаква дължина м 1 = 22, м 2 = 53, м 3 = 67.

    Ние криптираме: СЪС 1 = 22 5 mod 91 = 29, C 2 = 53 5 mod 91 = 79, C 3 = 67 5 mod 91 = 58;

    Дешифриране: М 1 = 29 29 mod 91 = 22, M 2 = 79 29 mod 91 = 53, M 3 = 58 29 модификация 91 = 67;

    Методиката за извършване на работата.

Заданието за работа се издава от преподавателя след преминаване на събеседване на студентите по основи на криптосистемите с публичен ключ.

      Цел и възложена работа.

      Описание на алгоритъма за работа на криптосистемата RSA,

      Блокова диаграма на алгоритъма на криптосистемата RSA,

      Изводи: предимства и недостатъци на криптосистемата RSA.

Лабораторна работа №2.

Изследване на електронния цифров подпис (ЕЦП)RSA.

    Цел на работата.

Изследване на алгоритъма за електронен цифров подпис (ЕЦП) RSA.

    Основни теоретични положения.

Схемата за електронен цифров подпис е предназначена да осигури сигурен работен процес в електронните мрежи, подобно на начина, по който се използват подписи и печати за защита на хартиени документи в областта на традиционния работен процес. По този начин технологията EDS предполага наличието на група абонати, изпращащи един на друг подписани електронни документи. EDS има всички свойства на истинския подпис. За да стане абонат на системата EDS, всеки потребител трябва да създаде чифт ключове - публичен и частен. Публичните ключове на абонатите могат да бъдат регистрирани в сертифициран удостоверителен център, но в общия случай това не е предпоставка за взаимодействие между абонатите на системата EDS.

Понастоящем системите EDS могат да бъдат изградени на различни алгоритми на криптография с два ключа. Алгоритъмът RSA е един от първите, използвани за тази цел. В допълнение към криптографския алгоритъм, EDS схемата изисква използването на така наречените еднопосочни или хеш функции. Хеш функцията се нарича еднопосочна, защото улеснява изчисляването на хеш стойността от всеки документ. В същото време обратната математическа операция, тоест изчисляването на изходния документ по неговата хеш стойност, представлява значителни изчислителни трудности. От другите свойства на хеш функциите трябва да се отбележи, че изходните стойности (хеш) винаги имат строго определена дължина за всеки тип функция, освен това алгоритъмът за изчисляване на хеш е проектиран по такъв начин, че всеки бит от входното съобщение засяга всички битове на хеша. Хешът е като компресиран "дайджест" на входното съобщение. Разбира се, като се има предвид, че има безкраен брой възможни съобщения и че хешът има фиксирана дължина, е възможно да има поне два различни входни документа, които произвеждат еднакви хеш стойности. Стандартната хеш дължина обаче е зададена по такъв начин, че при съществуващата изчислителна мощност на компютрите намирането на сблъсъци, т.е. различни документи, които дават еднакви стойности на функцията, е изчислително трудна задача.

По този начин хеш функцията е некриптографска трансформация, която ви позволява да изчислите хеша за всеки избран документ. Хешът има строго фиксирана дължина и се изчислява по такъв начин, че всеки бит от хеша зависи от всеки бит от входното съобщение.

Има доста голямо разнообразие от опции за конструиране на хеш функции. Обикновено те се изграждат на базата на итеративна формула, напр. з аз = ч (з аз -1 , М аз ) , където като функция чможе да се вземе някаква лесно изчислима функция за криптиране.

Фигура 1 показва обобщена EDS схема, базирана на RSA криптографския алгоритъм.

Алгоритъм за електронен цифров подпис (EDS).RSA

      Действия на абоната - подателя на съобщението.

        Изберете две големи и взаимно прости числа стрИ р;

        Ние изчисляваме RSA модула. н= стр* р;

        Дефинираме функцията на Ойлер: φ (н)=(стр-1)(р-1);

        Избор на таен ключ дпри условията: 1< д≤φ(н),

H.O.D. (д, φ(н))=1;

        Определяне на публичния ключ д, при условията: д< н, д* д ≡ 1(мод φ(н)).

      Формиране на EDS

        Изчислете хеша на съобщението М: м = ч(М).

        Ние криптираме хеша на съобщението на секретния ключ на абоната - подателя и изпращаме получения EDS, С = м д (мод н), до абоната - получателя заедно с обикновен текст на документа М.

      Удостоверяване на подписа от страна на абонат - получател

        Дешифриране на EDS Сс помощта на публичния ключ д и по този начин получаваме достъп до хеша - стойността, изпратена от абоната - подателя.

        Изчислете хеша на отворен документ м’= ч(М).

        Сравняваме хеша - стойностите на m и m' и заключаваме, че EDS е надежден, ако m = m'.

    Методиката за извършване на работата.

Заданието за лабораторна работа се издава от преподавателя след преминаване на интервю от студентите върху основите на автентификацията на данни и концепцията за генериране на електронен цифров подпис.

Процедурата за извършване на работата съответства на следния практически пример за формиране и проверка на EDS.

      Пример за изчисляване и проверка на EDS.

        Избират се две големи и взаимно прости числа 7 и 17;

        Ние изчисляваме RSA модула. н=7*17=119;

        Дефинираме функцията на Ойлер: φ (н)=(7-1)(17-1)=96;

        Избор на таен ключ дпри условията: 1< д≤φ(н), H.O.D. (д, φ(н))=1; д = 11;

        Определяне на публичния ключ д, при условията: д< н, д* д ≡ 1(мод φ(н)); д=35;

        Нека вземем произволна последователност от числа като отворено съобщение. М = 139. Нека го разделим на блокове. М 1 = 1, М 2 = 3, М 3 = 9;

        За да изчислим хеш стойността, прилагаме формулата за изчисляване на хеш функцията. За да опростим изчисленията, приемаме, че векторът за инициализация на хеш функцията з 0 =5, и като функция за криптиране ч ще използваме същия RSA.

        Изчислете хеша на съобщението. з 1 =(з 0 + М 1 ) д мод н =(5+1) 11 мод 119=90; з 2 =(з 1 + М 2 ) д мод н =(90+3) 11 мод 119=53; з 3 = (з 2 + М 3 ) д мод н =(53+9) 11 мод 119=97; Така хешът на дадено отворено съобщение м = 97;

        Създаваме EDS, като криптираме получената хеш стойност. S= з д mod n = 97 11 модификация 119 = 6;

        Изпращане на публичния ключ по комуникационния канал д, Текст на съобщението М, модул н и електронен цифров подпис С.

        Проверка на цифровия подпис от страната на получателя на съобщението.

        От страна на абоната - получателя на подписано съобщение, използвайки публичния ключ, получаваме хеш - стойността на прехвърления документ. м ´ = S d мод н =6 35 мод 119 =97;

        Ние изчисляваме хеша на предаденото отворено съобщение, по същия начин, както тази стойност беше изчислена от страна на абоната - подателя. з 1 =(H 0 + М 1 ) д mod n=(5+1) 11 mod 119=90; з 2 =(H 1 + М 2 ) д mod n=(90+3) 11 mod 119=53; з 3 = (H 2 + М 3 ) д mod n=(53+9) 11 mod 119=97; m = 97;

        Сравнете хеш стойността, изчислена от предадените отворен документи хеш стойност, извлечена от EDS. m = m´ =97. Изчислената хеш стойност съвпада с хеш стойността, получена от цифровия подпис, следователно получателят на съобщението заключава, че полученото съобщение е истинско.

      Целта и целта на работата.

      Описание на алгоритъма за генериране на RSA EDS.

      Блокова схема на алгоритъма за генериране на цифров подпис RSA.

      Изводи: предимства и недостатъци на EDS RSA.


2023 г
newmagazineroom.ru - Счетоводни отчети. UNVD. Заплата и персонал. Валутни операции. Плащане на данъци. ДДС. Застрахователни премии