„управление и защита на корпоративни информационни системи


Криптиране на информацията



страница13/14
Дата28.10.2018
Размер1.15 Mb.
#103013
ТипПрограма
1   ...   6   7   8   9   10   11   12   13   14

3.3. Криптиране на информацията


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

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


3.3.1. Криптография – същност, цели, функциониране, проблеми


Информацията, която може да бъде прочетена и разбрана без някакви специални усилия се нарича открит текст (plaintext). Методът на преобразуване на открития текст така, че да се скрие неговото съдържание, се нарича криптиране (encryption). Криптираният текст е нечетаем и се нарича ciphertext. Криптирането се използва, за да се осигури скриването на информацията от тези, за които тя не е предзначена. Процесът на преобразуването на кодирания текст в неговият оригинал се нарича декриптиране.

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

Криптологията обхваща, както криптографията така и криптоанализът.

Криптографията може да бъде слаба и силна. Силата на криптографията се измерва с времето и ресурсите, които ще са неоходими, за да бъде възстановен оригиналният текст. Резултатът от силната криптография е шифриран текст, който може много трудно да бъде дешифриран без притежаването на подходящи декодиращи инструменти. Колко трудно? Ако вземем всичката днешна компютърна мощ и да предположим, че всеки компютър е способен да извършва милиард проверки в секунда, няма да е възможно да се разбие силната криптография преди краят на вселената.

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

Как работи криптографията - основни понятия

Криптографският алгоритъм е математическа функция, използвана при процесите на криптиране и декриптиране. Криптографският алгоритъм работи в комбинация с ключ (key) - дума, число или фраза, за да криптира открития текст. Един и същ открит текст, криптиран с различни ключове, дава различен кодиран текст. Сигурността на криптираната информация зависи изцяло от две неща: устойчивостта на криптографския алгоритъм и тайната на ключа.

Криптографски алгоритъм плюс всички възможни ключове и протоколи, използвани при работата му, създават една криптосистема. PGP – Pretty Good Privacy е криптосистема.

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

Криптиране

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

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

Секретната информация обикновено се нарича криптографски ключ или криптиращ ключ.

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

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

Ще разгледам по-подробно споменатите видове алгоритми за кодиране:

  • Симетрични алгоритми за кодиране, конвенционална криптография


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

Един пример за такъв криптографски алгоритъм е използваният в древен Рим начин за кодиране, измислен от Гай Юлий Цезар.

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

Нешифрован текст: Hello

Сменят се буквите: H -> I, e -> f, l -> m, o -> p

Шифрован текст: Ifmmp

Декриптиращ алгоритъм: заменя се всяка буква с предишната в азбуката.

Това е много прост алгоритъм, но работи. Галите не успели да декриптират съобщенията на Цезар и загубили войната.

Освен това винаги може да се смени стъпката на отместването, за да се получат други криптиращи "ключове".

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



По-известни симетрични алгоритми за криптиране са DES, 3DES, IDEA, CAST и др.

  • DES (Data Encryption Standard) е разработен през 1972 г. Той използва ключове с дължина от 64 бита, от които реално се използват за криптиране 56. Това го прави несигурен в днешно време. Разбиването със съвременни компютри на ключа става за по-малко от 24 часа, а чрез специално построен хардуер ключа се познава за по-малко от час. Принципа на действие е прост и се състои в приемане на 64 бита информация, която се преобразува в 64 бита криптирани данни. Ключът се използва при трансформацията на данните, за да може обратния процес на декриптиране да е възможен само ако е известен ключа.

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

  • IDEA (International Data Encryption Algoritthm) за по-голяма сигурност използва 128 битов ключ за криптиране на 64 битови блокове от данни. Допълнителна сигурност алгоритъма получава използвайки операции от математически неизморфни групи. Все още няма официално документирани недостатъци на сигурността на IDEA.

  • Друг алгоритъм за криптиране е CAST алгоритъмът, който поддържа ключове с променлива дължина (от 40 до 128 бита). Той е разработен през 1996 г. и също намира широко приложение.

Всички алгоритми постоянно се развиват, като основно се увеличава размера на ключовете, което практически прави невъзможно разбиването им с мощта на съвременните машини. За по-новите алгоритми не са известни методи за разбиване, освен пълното изчерпване на вариантите (brute force) за ключовете.
Конвенционална криптография

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



Работа с ключове и конвенционално криптиране

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

Обикновено процесът на конвенционалното криптиране може да бъде описан със следната схема:

нешифрован_текст ---> секретен_ключ (нешифрован_текст) ---> шифрован_текст ---> секретен_ключ (шифрован_текст) ---> нешифрован_текст

нешифрован_текст ---> секретен_ключ (нешифрован_текст) ---> секретен_ключ (секретен_ключ (нешифрован_текст)) ---> нешифрован_текст

Схемата използва следната проста нотация:

секретен_ключ (нешифрован_текст) - означава, че нешифрован_текст се криптира чрез секретен_ключ и по този начин се генерира шифрован_текст

секретен_ключ (секретен_ключ (нешифрован_текст)) - криптиране на шифрован_текст, използвайки секретен_ключ (или негов прост производен), за да се получи отново оригиналния нешифрован_текст.



Методът на криптиране с публичен ключ използва двойка ключове – един за криптиране и един за декриптиране на данните. В повечето алгоритми и двата могат да се използват за криптиране и съответно декриптиране. Единият от тези ключове е известен на всички участници в комуникацията и се нарича публичен ключ, а другият се съхранява във всяка една от страните и не се споделя и разкрива пред никого. Той се нарича частен ключ. Двата ключа са комплементарна двойка. Когато единият се използва за криптиране, само другият може да декриптира информацията и обратно. Тези ключове са математически свързани, като на един публичен ключ съответства точно един частен ключ и обратното. Обикновено това са големи числа (причината за това е от математически характер), като например за RSA е необходимо те да са прости. Един публичен ключ може да се използва за проверка на електронни документи, подписани с частния ключ, или за кодиране на документи, които да бъдат прочетени само с частния ключ. В известен смисъл частният ключ представлява вид парола, с която лицето се идентифицира. Така например, ако бъде откраднат този ключ, сигурността на защитата се губи и двойката ключове трябва да бъде обявена за невалидна и подменена с друга.

Криптографията с публични ключове (Public Key Criptography) решава проблема с разпространението на ключовете. Нейните основни концепции са били разработени през 1975 от Whitfield Diffie и Martin Hellman.

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



Популярни алгоритми за асиметрично кодиране са RSA (Rivest, Shamir, Adelman), DSA (Digital Signature Algorithm) и алгоритъмът на Diffie-Hellman.

Криптографията с публичен ключ е правилният метод за защита на обмяната на ключове поради факта, че когато искаме да комуникираме защитено, трябва да генерираме два ключа – криптиращ и декриптиращ. Те не могат да бъдат извлечени един от друг (освен с груба сила), затова трябва да ги пазиме и двата в паметта (или написани на хартия за по-лесно разбиране).

Обикновено процесът на криптиране с публичен ключ може да бъде описан със следната схема:

нешифрован_текст ---> криптиращ_ключ ( нешифрован_текст ) ---> шифрован_текст ---> декриптиращ_ключ ( шифрован_текст ) --->

нешифрован_текст

Ключовете са взаимно еквивалентни – това работи дори в обратната посока (т.е. и декриптиращият ключ също може да се използва за криптиране, като тогава другият ще служи за декодиране):

нешифрован_текст ---> декриптиращ_ключ (нешифрован_текст) ---> шифрован_текст ---> криптиращ_ключ (шифрован_текст) ---> нешифрован_текст

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

Обмяна на ключове

Обикновено процесът на обмяна на ключовете с другата страна протича така:

- генерирам ключовете

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

- декриптиращият ключ остава скрит при мен

- когато приятелят ми изпрати съобщение, той го криптира с публичния криптиращ ключ

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

Асиметричните алгоритми се използват при PGP (Pretty Good Privacy), метод за комуникация, в основата на който стои криптиране на данните чрез публичен ключ и възможност за проверка на изпращача и получателя на данни, както и на верността на данните, и предотвратяване на отричането, че изпратените данни са от точно този изпращач. Асиметрични алгоритми се използват и при протоколите за осъществяване на връзка между клиент и сървър. Например при SSL (Secure Sockets Layer), където участниците във връзката удостоверяват самоличността си с техните публични ключове и се определя начинът за криптиране на информацията, преди да се премине към трансфер на данни.



  • Сигурността на RSA зависи от дължината на ключовете - в момента 384 битови ключове са съвсем лесно пробиваеми с директни атаки, но се смята, че 1024 битови ще бъдат сигурни векове (а с програмата PGP масово се използват 2048 битови ключове). Разбира се последните предположения биха били в сила само ако не се измисли начин, по който може да бъде изваден e-ти корен по модул n, не е доказано, че не могат да съществуват подобни прости аналитични атаки.

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

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

Как работи криптосистемата Pretty Good Privacy - PGP

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

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

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

Комбинацията от два метода за криптиране използва удобството на криптирането с публични ключове и бързината на конвенционалните алгоритми. Конвенционалните алгоритми са около 1000 пъти по-бързи от тези с публични ключове.

Ключове

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

Обаче дължините на публичния ключ и секретния ключ, използвани при конвенционалната криптография, са напълно независими. Конвенционален ключ с дължина 80 бита има еквивалентната сила на 1024 битов публичен ключ. 128 битов конвенционален на 3000 битов публичен.

Публичният и частният ключ са математически родствени, но е много трудно да се извлече частният ключ от публичният. Обаче извличането е възможно ако се разполага с достатъчно време и компютърна мощност. Поради тази причина е много важно да се избере правилна дължина на ключовете. Голяма, за да бъдат сигурни, но и не много голяма за постигане на по-голямо бързодействие.

По-дългите ключове ще бъдат сигурни за по-дълъг период от време. Ако това, което искате да криптирате е нужно да бъде скрито за много години, вие може да пожелаете да използвате много дълги ключове. Обаче кой знае колко време ще отнеме да се определи ключа изолзвайки утрешните по-бързи и по-ефективни компютри. Имаше време когато 56 битовият симетричен ключ бе считан за изключително сигурен.

Ключовете се съхраняват в криптирана форма. PGP съхранява ключовете в два файла на твърдият диск: един за публичните ключове и един за частните. Тези файлове се наричат keyrings.



Цифрови подписи

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

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

Вместо да се използва публичният ключ на някой друг, при криптирането се използва собственият частен ключ.



Хеш функции

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


  • Проблеми на криптирането


Има няколко проблема, свързани с криптирането.

Първо, алгоритъмът и ключът трябва да предоставят защита от атака с груба сила (brute-force attack). Този тип атака се извършва, когато атакуващият не знае декриптиращия ключ. Той може да опита да генерира произволни ключове и с всеки от тях да опита да декодира шифрования текст. Когато се получи смислен резултат, атакуващият има ключа.

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

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

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

Проблеми при криптографията със секретен ключ

Секретен ключ (също познат като общ секрет или общ секретен ключ) означава, че криптиращият и декриптиращият ключ са "напълно" еднакви.

Общ секрет (Shared secret)

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

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

Това решение наистина не предпазва от споменатия проблем – офлайн атака с груба сила и разчита силно на сигурна обмяна на ключовете.



Проблеми на криптографията с публичен ключ

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

Времето за криптиране на дадено съобщение расте експоненциално с неговата дължина. Казано просто, това означава, че ако текст с дадена дължина изисква 10 секунди за кодиране/декодиране, то обработката на четири пъти по-дълго съобщение ще отнеме 16 пъти повече време, т.е. 160 секунди.

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


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


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

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

Електронният подпис също използва криптиране, но неговата цел е да докаже източника на информация, а не да криптира самите данни (реално се криптира хеш на данните). Ако Б желае всеки да бъде сигурен, че именно той е автор на даденото съобщение, той го подписва, използвайки частния си ключ, след което го изпраща (фиг. 1). Данните не са защитени, но всеки ще може да изчисли хеша им, използвайки същата хеш функция и да го сравни с хеша, който Б е криптирал с частния си ключ. Ако двата хеша съвпадат, съобщението със сигурност е издадено от Б и не е променяно след това (фиг. 2). Това всъщност е смисълът на електронния подпис.



Фигура 1

Фигура 2

Разгледаните операции осигуряват два важни елемента на сигурността:



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

  • Проверка на достоверността на източника на данни (Authentication). Всяка транзакция включва две части: клиент и сървър или клиент и доставчик. За много такива транзакции и за двете страни е желателно да съществува механизъм за доказване на тяхната самоличност. Например, преди клиентът да изпрати номера на кредитната си карта в някой комерсиален уеб сайт, той иска да се увери, че този сайт е достатъчно сигурен и че няма да осъществи комуникация с някой друг, който се представя за този сайт. В този случай се използва механизмът на елктронния подпис.

Каталог: files -> files
files -> Р е п у б л и к а б ъ л г а р и я
files -> Дебелината на армираната изравнителна циментова замазка /позиция 3/ е 4 см
files -> „Европейско законодателство и практики в помощ на добри управленски решения, която се състоя на 24 септември 2009 г в София
files -> В сила oт 16. 03. 2011 Разяснение на нап здравни Вноски при Неплатен Отпуск ззо
files -> В сила oт 23. 05. 2008 Указание нои прилагане на ксо и нпос ксо
files -> 1. По пътя към паметник „1300 години България
files -> Георги Димитров – Kreston BulMar
files -> В сила oт 13. 05. 2005 Писмо мтсп обезщетение Неизползван Отпуск кт


Сподели с приятели:
1   ...   6   7   8   9   10   11   12   13   14




©obuch.info 2024
отнасят до администрацията

    Начална страница