Сигурност в Интернет пространството PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document is about internet security and covers topics such as cryptography, cryptanalysis, and PKI. It discusses the core concepts of cryptography and its role in securing data.
Full Transcript
Сигурност в Интернет пространството Криптография – същност. Oсновни понятия. Методи за криптиране и декриптиране на данни. Приложение на инфраструктурата на публичния ключ (PKI). Криптология (cryptology) Криптологията е наука, която се занимава с проблемите на защитата на инф...
Сигурност в Интернет пространството Криптография – същност. Oсновни понятия. Методи за криптиране и декриптиране на данни. Приложение на инфраструктурата на публичния ключ (PKI). Криптология (cryptology) Криптологията е наука, която се занимава с проблемите на защитата на информацията. Тя има гръцки произход и произлиза от κρυπτός (скрит, таен) и λόγος (наука). Включва в себе си две взаимосвързани направления: криптография (cryptography) – от гръцки (κρυπτός и γράφω – пиша); криптоанализ (cryptanalysis) – от гръцки (κρυπτός и ανάλυση – анализ). 2 Криптография Криптографията се занимава с разработването на: сигурни алгоритми за криптиране и декриптиране; различни кодове и протоколи; ефективни режими и средства за тяхната реализация. Целта е данните да се преобразуват във вид, който е неразбираем и безполезен за външни лица. Основна функция на криптографията е защита на данните срещу неоторизиран достъп или неоторизирана подмяна. Защитните си функции криптографията осъществява чрез идентификация на различните участници в един комуникационен процес посредством обмяна на сертификати (дигитални документи за удостоверяване на самоличност). Всеки сертификат еднозначно верифицира личността на неговия притежател или идентичността на използващия го обект. 3 Приложение на криптографията Използването на криптографията позволява да се реализират две от основните цели на информационна сигурност: защита на конфиденциалността на данните; защита на целостта на данните. 4 Основни понятия в криптографията явен текст (plain text) – оригиналното съобщение преди да бъде обработено с определен криптографски алгоритъм; криптиран текст (cipher text) – получената символна поредица след криптирането на явния текст; криптиране (encryption) – метод за изменение на съобщение или документ по такъв начин, че неговото съдържание да стане неразбираемо за всеки, който не познава използвания метод; декриптиране (decryption) – обратна на криптирането операция, при която криптираните данни се трансформират в явни; 5 Основни понятия в криптографията криптографски алгоритъм (cryptographic algorithm) – правило за преобразуване на данни в неразбираеми последователности от символи и тяхното правилно обратно възстановяване; криптографски протокол (cryptographic protocol) – правило за обмен на данни и използване на криптографския алгоритъм; криптографска система (cryptosystem) – съвкупност от криптографски алгоритъм и криптографски протокол; криптографски ключ (key) – множество от числа и/или символи, което се използва за криптиране или декриптириране на съобщенията. В съвременните криптографски системи алгоритъмът на шифриране е известен и криптографската му устойчивост изцяло се определя от дължината на използвания ключ.; 6 Основни понятия в криптографията секретен ключ (secret key) – кодиращ/декодиращ ключ, известен и на двете страни, които разменят кодирани съобщения. Използва се в симетричните криптиращи системи както за кодиране, така и за декодиране на предаваните между две страни съобщения. Ако ключът бъде разбит или откраднат, тези системи вече няма да са защитени (на практика те са разбити).; частен ключ (private key) – кодиращ/декодиращ ключ, известен само на на неговия притежател. Използва се в асиметричните криптиращи системи в комбинация с публичен ключ.; публичен ключ (public key) – вторият от двойката ключове, които се използват в асиметричните криптографски системи. За разлика от частния, публичният ключ е общодостъпен за всеки и с него се кодират/декодират съобщенията, изпращани до/от неговия притежател.; 7 Основни понятия в криптографията криптограф (cryptographer) – лице, създаващо и прилагащо методите на криптографията; криптоаналитик (cryptanalyst) – лице, създаващо и прилагащо методите на криптоанализа; криптолог (cryptologist) – обединяващо наименование за криптограф и криптоаналитик; криптографска атака (cryptographic attack) – опит на криптоаналитик или хакер да предизвика отклонения в атакуваната защитена система за обмен на информация. Успешната криптографска атака се нарича разбиване или отваряне.; криптографска устойчивост (strong cryptography) – способност на криптографския алгоритъм да се противопостави на прилагани върху него методи на криптоанализа. 8 Класификация на алгоритмите за криптиране и декриптиране на данни 9 Симетрични алгоритми Използват един и същ секретен ключ (secret key) както за криптиране, така и за декриптиране. Затова ключът се нарича симетричен (symmetric), а алгоритмите, които го ползват – симетрични (symmetric algorithms). Някои от по-известните симетрични алгоритми са: DES (Data Encryption Standard); Triple DES; AES (Advanced Encryption Standard); Twofish; Blowfish; IDEA (International Data Encryption Algorithm); RC6/5/4/2. 10 Описание на някои симетрични алгоритми DES (Data Encryption Standard) – разработен от IBM. Един от най-широко разпространените алгоритми за криптиране и съответно най-често подлаган на криптоанализ. Използва ключ с дължина 64 бита. Всеки блок от криптираните данни се обработва в 16 рунда. От 1993 г. алгоритъмът се счита за компрометиран и използването му е нецелесъобразно.; Triple DES – разработен в процеса на търсене на заместник на алгоритъма DES. Криптира всеки входен блок от данни с три различни ключа.; AES (Advanced Encryption Standard) – съвременният заместник на DES. Данните за криптиране се обработват под формата на 128 битови блокове. Ключовете, с които се извършва криптирането, могат да са с дължина 128, 192 и 256 бита.; 11 Описание на някои симетрични алгоритми IDEA (International Data Encryption Algorithm) – разработен от Ascom Tech AG (Switzerland) и публикуван през 1993 година. Има входен 64 битов блок, който се криптира със 128 битов ключ. Процесът на криптиране изисква 8 комплексни рунда. Структурата на алгоритъма е много добра както за хардуерна, така и за софтуерна реализация.; Blowfish – симетричен блоков алгоритъм. Използва се като заместник на DES или IDEА. Има променлива дължина на ключа (от 32 до 448 бита). Разработен е през 1993 г. от Bruce Schneier като свободна и бърза алтернатива на съществуващите до момента алгоритми. Blowfish не е патентован и не подлежи на лицензионни такси. 12 Асиметрични алгоритми Използват два ключа – частен (private) и публичен (public). Частният ключ е известен само на неговия собственик, докато публичният ключ е достъпен за всеки, който желае да му изпрати криптирано съобщение. Чрез частния ключ притежателят може да доказва своята самоличност. В този случай той го използва като идентификационен признак. Някои от по-известните асиметрични алгоритми са: RSA (Rivest-Shamir-Adleman); DH (Diffie-Hellman); ElGamal; PGP (Pretty Good Privacy); DSA (Digital Signature Algorithm); ECDH (Elliptic Curve Diffie-Hellman); ECDSA (Elliptic Curve Digital Signature Algorithm). 13 Описание на някои асиметрични алгоритми RSA – класически асиметричен алгоритъм, чиято сигурност се определя от факторизацията (разлагане на прости множители) на големи естествени числа. Името му произлиза от първите букви на създателите на алгоритъма – математиците от Масачузетският Технологичен Институт Ron Rivest, Adi Shamir, и Leonard Adleman. В момента RSA се използва от SWIFT (Society for Worldwide Interbank Financial Telecommunications – организация за световна комуникация между банки и финансови организации) като стандарт за международен финансов трансфер. RSA се използва в браузърите, виртуалните частни мрежи (Virtual Private Networks – VPNs), устройствата за мрежова комуникация, смарт картите, методите за електронно разплащане.; DSA, ECDSA – използват се в механизми за създаване на електронен подпис. 14 Алгоритми без ключ хеш функции (hash functions) – използват се за удостоверяване на източника и целостта на данните. Някои от по-известните алгоритми за генериране на хеш стойности са: SHA-1 (Secure Hash Algorithm 1), SHA-2, SHA-3, MD4 (Message- Digest Algorithm), MD5, MD6. генератори на случайни числа – физическо или изчислително (компютърно базирано) устройство, предназначено да генерира случайна поредица от числа или символи. 15 Криптиране със симетричен ключ Това е класическият вид криптография. Този криптографски метод е част от симетричните криптосистеми. При тях страните, обменящи информация, използват общ ключ (shared secret key) за криптиране и декриптиране на данните. За целта те трябва да се споразумеят за използвания ключ преди осъществяването на самия обмен. Най-добре е ключът да не се предава по същия канал, през който се предава криптираното съобщение, за да не бъде прихванат заедно с него. 16 Изисквания към симетричните ключове дължината на ключа да е възможно най-голяма; за създаването на ключа да се използват алгоритми, базирани на сложни математически изчисления; ключът да се използва само веднъж и след това да се “изхвърля”. Схема за използване на симетричен алгоритъм за криптиране 17 Технология на кодирането със симетрични ключове В основата на кодирането стои ключ, който се налага като матрица върху изходния текст. Това става като последователно се вземат части от текста, към които се добавя избрания ключ. Компютърът ги смесва по определен алгоритъм, при което на изхода се извежда криптиран текст. Ключът е с определена дължина, която много често е по- малка от едно голямо съобщение. Затова преди кодирането съобщението се разделя на части. Според начина на разделяне на части, симетричните алгритми се делят на: блокови; поточни. 18 Блокови алгоритми Изходният текст се разделя на блокове (всеки блок влючва определен брой символи), които след това се криптират с подходящ за целта алгоритъм. Често използвани блокови алгоритми са: DES, IDEA, SAFER, Blowfish, Skipjack. Блоковите алгоритми използват главно две математически операции: субституция – извършваща еднозначно и обратимо съпоставяне на символ (блок от символи) в дадено съобщение с друг символ (блок от символи); транспозиция – еднозначно и обратимо преобразуване на блок от краен брой октети (поредица от осем символа) чрез пренареждането им, извършвано по определен криптографски алгоритъм и с определен ключ. 19 Примери за блоков алгоритъм със субституция Прост алгоритъм, използван от древноримския император Гай Юлий Цезар при войната му с галите. Същност: Заменя се всяка буква в нешифрования текст със следващата буква от азбуката. Нешифрован текст: Hello Прилага се криптиращия алгоритъм: H -> I, e -> f, l - > m, o -> p Шифрован текст: Ifmmp Декриптиращ алгоритъм: заменя се всяка буква с предходната буква от азбуката. 20 Примери за блоков алгоритъм със субституция По-сложен пример: 21 Пример за блоков алгоритъм с транспозиция 22 Поточни алгоритми При поточните алгоритми един и същ бит, знак, байт или дума (зависи върху какви части от входните данни се прилага), се преобразува в различен бит, знак, байт или съответно дума. При поточните алгоритми ключовите стойности, с които се извършва кодирането се променят непрекъснато или се създават по време на шифрирането като се използва подходящ алгоритъм. Най-използваните поточни шифри са: RC6(5,4), Fish, Helix, Panama, Phelix, A5/1(2,3,4) при мобилни комуникации. 23 Предимства и недостатъци на криптирането със симетричен ключ Предимства: бързина – за кодирането и декодирането се използват еднакви ключове; трудни за разбиване – единственият възможен начин за тяхното разбиване е да се изпробват всички възможни ключове, създадени на базата на определен алгоритъм (brute-force attack); Недостатъци: необходимост от предварителен обмен на избраните ключове; налага се честа смяна на използвания ключ; необходимост от правилно съхраняване на изпoлзваните ключове, за да не бъдат откраднати. 24 Криптиране с обществен ключ Криптирането с обществен ключ се използва в асиметричните криптосистеми. Този метод е особено важен за осигуряването на сигурно предаване на данните в Интернет пространството. За разлика от метода със симетрични ключове, тук ключовете са два и се генерират едновременно по определен алгоритъм. Всеки желаещ да обменя криптирани данни, трябва да има своя собствена уникална двойка от: публичен ключ (public key) – използва се само за криптиране на изходните данни. Достъпен е за всеки, който иска да изпрати информация на притежателя му.; частен ключ (private key) – с него разполага само притежателя му. Използва се за декриптиране на данните, криптирани със съответния публичен ключ. 25 Схема на асиметричния метод криптиране и декриптиране на данни 26 Приложение на асиметричното кодиране Асиметричното криптиране намира голямо приложение, т.к. при него отпада необходимостта от предварителна размяна на ключове между комуникиращите страни. Това прави възможно предлагането на редица онлайн услуги като електронни разплащания, сигурен обмен на данни и други. Поради по-голямата изчислителна мощ, необходима за реализиране на алгоритмите за криптиране с публичен ключ, този метод е сравнително по-бавен от криптирането със симетричен ключ. Затова в чист вид обикновено се прилага само за предаване на кратки съобщения. 27 Недостатъци на асиметричното кодиране Въпреки по-голямата сигурност, която предлага, асиметричното кодиране има няколко съществени недостатъка: криптирането и декриптирането се осъществяват значително по-бавно, т.к. се използват двойка ключове; ключът за криптиране е много по-дълъг от този, използван при симетричните криптосистеми; публичният ключ създава проблеми по отношение на автентикацията на изпращащия съобщението, защото е общодостъпен. Това налага допълнително организиране на процедурата по автентикация на изпращача. 28 Организиране на процедурата по автентикация на изпращача Реализира се чрез прилагане на публичния и частния ключ в обратен ред както следва: за криптиране на съобщението подателят използва своя частен ключ; получената криптограма се кодира повторно с публичния ключ на получателя; криптираното съобщение се изпраща по определен комуникационен канал; получателят го декриптира, като прилага своя частен ключ; след това го декриптира повторно с публичния ключ на подателя и така получава оригиналния текст. 29 Устойчивост на криптирането с публичен ключ Много математици и компютърни специалисти са опитвали да разбият различни криптографски системи, използващи публичен ключ. Това на практика е възможно, но не си заслужава усилията. Публичният ключ е прекалено дълъг и финансовите средства, които трябва да се отделят за неговото разбиване, са често по-големи от стойността на предаваната информация. 30 Хибридни системи за криптиране Обединяват предимствата на симетричните и асиметричните криптографски системи и преодоляват техните недостатъци. Тези системи използват комбинация от симетрични и асиметрични подходи. При тях съобщението се криптира със симетричен ключ (File Encryption Key - FEK), т.к. криптирането с обществен ключ отнема много време. След това симетричният ключ се кодира с публичния ключ на получателя и се прикрепва към вече криптираното съобщение. По този начин се постига по-висока скорост и защита на предаваните данни. 31 Схема на криптиране и декриптиране на данни при хибридни системи 32 Цели на криптоанализа Целите, които си поставя криптоанализа са насочени към декриптиране на целия секретен текст или части от него, без предварително да е известен ключа, с който е реализирано криптирането. Основната цел на криптоанализа е откриването на секретния ключ. 33 Форми на атака (методи) при криптоанализа атака единствено върху секретния текст – провежда се само върху криптиран текст, без да е достъпен явния, от който е произлязъл. За провеждане на успешна атака е необходимо наличието на голям брой криптирани съобщения, в които да се търси информация за ключа (търсенето се извършва чрез статистически анализи и хипотези).; атака върху част от секретен текст и кореспондиращ с него явен текст – поради по-богатата изходна информация и възможността за по-малко хипотези за ключа, провеждането на тази атака дава по-добри шансове за откриване на секретния ключ; 34 Форми на атака (методи) при криптоанализа атака с избор на явен текст – прилага се в случаите, когато се разполага с криптиращото устройство, но още не е ясно как работи (анализ на черна кутия). Целта е да се разкрие тайната му. При тази атака е възможно предварително да се избере явен текст и да се криптира. След това се търсят зависимости за определяне на ключа посредством съпоставяне на явния текст с криптирания.; адаптивна атака с избор на явен текст – специален случай на описаната в предходната точка атака. На основата на резултати от анализи на предишни криптирани поредици, при нея може да се променя динамично подлагания на криптиране явен текст.; 35 Форми на атака (методи) при криптоанализа адаптивна атака с избран криптиран текст – предполага се, че провеждащият криптоанализа има на разположение хардуера за декриптиране, но не може да получи директно ключа за декриптиране. За да го открие, анализаторът използва части от прихванат криптиран текст и го подава за декриптиране. Върху получените резултати се строят работни хипотези за възможните стойности на ключа. 36 Основни принципи на криптографията Основни принципи на криптографията: съхраняване на секретността на ключовете на криптиращите алгоритми; разработване на сигурни методи за тяхната обмяна. Криптографията, като наука се развива в две направления, свързани с подобряване на сигурността на криптиращите системи: математическа разработка на нови алгоритми за криптиране; намиране на нови ключове с увеличена дължина и сложност. 37 Основни постулати на сигурните криптографски системи сигурността на системата не зависи от секретността на криптографския алгоритъм, а от секретността на използвания ключ за криптиране/декриптиране на данните; сигурната (силната) криптосистема разполага с голямо разнообразие от ключове; сигурната криптосистема произвежда криптиран текст, в който има напълно случайно статистическо разпределение на символите и който не подлежи на статистически анализ; 38 Основни постулати на сигурните криптографски системи цената за “разбиване” на алгоритмите за криптиране трябва да е много по-висока от стойността на защитената информация; времето, необходимо за разбиване на алгоритмите за криптиране, трябва да е по-дълго от времето, за което криптираната информация представлява интерес. 39 Избор на криптиращ ключ За постигане на висока устойчивост на криптографските системи съществена роля играят: ключовете за криптиране; техните дължини. Един примерен ключ за криптиране с дължина 56 бита може да има следния вид: 01101011100110011101010100111000111000100100010010101001 40 Дължина на криптиращия ключ Дължината на криптиращия ключ се определя така, че съответната криптографска система да бъде защитена от атака с пълно изброяване (комбиниране, brute-force attack) на възможните стойности. Обемът на необходимите за разбиване на ключа изчисления нараства експоненциално при увеличаване на размера му. Броят на възможните ключове се определя по формулата 2L, където L е дължината на ключа (при L=128/256 бита – 2128/2256). 41 Предпоставки за разработване на добри криптиращи алгоритми За да се разработят добри криптиращи алгоритми е необходимо усилието на много хора, както по синтеза на конкретен алгоритъм, така и за криптоанализ, доказващ неговата сила. Това е една от основните причини силните алгоритми за криптиране да се получават в рамките на широка публичност и достъпност за криптоанализ. За да се избегнат ограниченията, налагани от дължината на криптографския ключ, са създадени алгоритми, за които теоретично е доказано, че са устойчиви дори и на най-сложните методи, използвани от криптоанализа. Ако даден алгоритъм е устойчив на най-сложните атаки, основани на съвременните методи на криптоанализа, той може да бъде препоръчан за реализация в практиката. 42 Степени на криптиране В зависимост от степента на защита, технологиите за криптиране могат да се разделят в следните групи: слаби – прилагат се в определени програми за защита на създаваните с тях документи (напр. задаване на парола на текстови документи при използане на съответната програма). Този тип програми използват криптиране с много ниска степен на надеждност. Използваната парола може да се разбие с много прости средства.; 43 Степени на криптиране устойчиви – използват обикновено технологии за симетрично криптиране, които създават относително устойчива защита. При предаване на ключа през несигурни мрежи, той може да се прихване. Това е слабата им страна.; силни – използването на технологии с обществен ключ (хибридни криптосистеми) прави предаването на ключа през несигурни мрежи много по-надеждно. 44 Хеш функции – общи положения Хеш функцията (hash function) е еднопосочна математическа функция, която служи за “раздробяване” (сгъстяване) на дадено множество. Haй-oбщo xeшиpaщитe aлгopитми пoлyчaвaт нa вxoдa cи няĸaĸвa пopeдицa oт дaнни c пpoизвoлнa дължинa, a нa изxoдa ce пoлyчaвa cтpинг (поредица от произволни символи) c фиĸcиpaнa дължинa, ĸoйтo xapaĸтepизиpa “yниĸaлнo” цялoтo вxoднo cъoбщeниe. 45 Условия, на които трябва да отговаря един добър хеширащ алгоритъм дa e нeoбpaтим – дa нe cъщecтвyвa aлгopитмичeн нaчин зa възcтaнoвявaнe нa изxoдният cтpинг oт xeш cтoйнocттa; дa дaвa възмoжнo нaй-paвнoмepнo paзпpeдeлeниe нa хеш cтoйнocтитe в дoпycтимия диaпaзoн (зa типичнитe пpeдcтaвитeли нa вxoдният cтpинг). Пpи мaлĸи paзлиĸи във вxoднитe cтpингoвe, xeш фyнĸциятa тpябвa дa дaвa гoлeми paзлиĸи в изxoднитe им cтoйнocти. Πo тoвa cвoйcтвo xeш фyнĸциитe мнoгo пpиличaт нa гeнepaтopитe нa cлyчaйни чиcлa.; по възможност хеш функцията трябва да се изпълнява бързо (не е абсолютно задължително, но повече скорост никога не вреди). 46 Хеширането не е криптиране Нaй-oбщият cмиcъл нa термина “ĸpиптиpaнe” пpeдпoлaгa, чe aĸo ce paзпoлaгa c подходящите ĸлючoвe, декриптирането e възмoжнo. B cлyчaя c xeш фyнĸциитe, тoвa въoбщe нe e тaĸa. Нaй-тoчнoтo oпиcaниe нa xeшиpaнeтo e “eднoпocoчнo пpeoбpaзуване” или “нeoбpaтимo пpeoбpaзуване”. 47 Уникалност на хеш функциите Xeш cтoйнocтитe нeвинаги ca yниĸaлни зa дaдeн вxoдeн cтpинг. B зaвиcимocт oт дължинaтa нa xeш cтoйнocттa и aлгopитъмa нa xeшиpaнe, имa пo-мaлĸa или пo-гoлямa вepoятнocт зa т.нар. xeш ĸoлизии (двa paзлични cтpингa да имaт eднa и cъщa xeш cтoйнocт). Всъщност, ĸoлĸoтo дължинaтa нa xeшa e пo-гoлямa, тoлĸoвa пo-pядĸo cтaвaт ĸoлизии. Aĸo дължинaтa нa xeшa e пo-гoлямa oт нaй-дългият cтpинг, мoжe дa ce нaмepи тaĸaвa фyнĸция, ĸoятo ниĸoгa нямa дa дaвa ĸoлизии. Изпoлзвaнeтo обаче на тoлĸoвa дълги xeш cтoйнocти e дoпycтимo caмo зa мнoгo cпeцифични зaдaчи. 48 Приложение на хеш функциите Хeш фyнĸциитe намират гoлямо пpилoжeниe при: идeнтифиĸaция нa пoтpeбитeлите; paзпoзнaвaнe нa пapoли. Tyĸ ce изпoлзвa cвoйcтвoтo нa xeшa, чe e нeoбpaтим, т.е. нямa aлгopитмичeн нaчин пo xeш cтoйнocттa дa се oпpeдeли нaчaлният cтpинг. Кoлизиитe тук нямaт знaчeниe, зaщoтo мoгат дa се изпoлзвaт xeшoвe c пpoизвoлнa дължинa (дopи пo-гoлямa oт вxoдният cтpинг). В случая се търси cигypнocт, а не бъpзoдeйcтвиe. Аĸo дължинaтa нa xeшa e пo-гoлямa oт тaзи нa вxoдния cтpинг, e възмoжнo дa ce нaмepи тaĸaвa фyнĸция, ĸoятo дa нe дaвa ĸoлизии зa цeлият диaпaзoн нa вxoднитe cтpингoвe. 49 Разпознаване на потребителите по парола Bcъщнocт пpaвилнoтo peшeниe e пpocтo. Нe трябва да се пазят пapoлитe нa пoтpeбитeлитe, a да се съхраняват caмo xeш cтoйнocтите (“отпечатъци”) oт тях. Пpи иcĸaнe нa дocтъп дo няĸoй pecypc, пoтpeбитeлят въвeждa своята парола. Тя се xeшиpa, след което пoлyчeнaтa cтoйнocт ce cpaвнявa c БД зa съответния пoтpeбитeл. Aĸo xeш cтoйнocтитe cъвпaднaт, пoтpeбитeлят ce е автентикирал успешно. Дopи няĸoй дa имa дocтъп дo БД, тoй нямa дa мoжe дa paзбepe ĸaĸви ca пapoлитe нa пoтpeбитeлитe, зaщoтo xeш стойностите нe мoгат дa ce инвepтиpaт. 50 Хеш фунции, използвани в криптографията код за автентикация на съобщението (Message Authentication Code - MAC) – разполагат със секретен ключ и се използват за автентикация на източника на информацията (напр. MD5 за MACintosh, DES in CBC (Cipher Block Chaining) mode of operation, MAA (Message Authentication Algorithm); код за откриване на модификации (Modification Detection Code - MDC) – не използват секретен ключ и се прилагат само за проверка на целостта на данните (напр. MD4, MD5, SHA-1). Реализация на хеш функция 51 Инфраструктура на публичния ключ (PKI) Управлението на криптографията с публични ключове се осъществява чрез т. нар. инфраструктура на публичния ключ (Public Key Infrastructure - PKI). PKI съдържа протоколи, услуги и стандарти, регламентиращи употребата на публични криптографски средства. Чрез нея се налагат спецификациите, подпомагащи изграждането на цялостна сигурна публична система, гарантираща: конфиденциалност, интегритет и автентичност на данните; надеждност и сигурност на ресурсите на комуникационните мрежи; автентикация на страните в един комуникационен процес. Наличието на такава инфраструктура гарантира сигурността на електронните пощи, уеб транзакциите, електронната търговия, корпоративните частни мрежи и бизнес приложенията. 52 Елементи на PKI Public Key Infrastructure включва процедури : по създаване и регистриране на сертификати за публични ключове; за унищожаване на сертификати; за генериране на публични ключове; за оценка на сигурността, валидността и разрешените операции с един сертификат. 53 Структури, осигуряващи управлението на PKI сертифицираща (Certification Authority); регистрираща (Registration Authority). 54 Certification Authority Certification Authority e организация за издаване и удостоверяване на валидността на цифров сертификат (представлява електронен документ и се изработва по стандарт X.509). Базова дейност на сертифициращата организация е управление на публичните и секретните ключове на потребителите, което включва: процедура за генериране на ключовете; създаване на архив на ключовете; процедура за възстановяване на ключа; процедура за обновяване на ключа; поддържане на списък с отменените сертификати (Certificate Revocation List – CRL). 55 Начини за генериране на ключове централизирано; децентрализирано. 56 Централизирано генериране на ключове Ключовете се създават в сертифициращата организация (Certification Authority – CA) и се включват в издавания от нея сертификат. Сертификатът се записва на смарт карта (може и на други носители). Тя се предоставя на потребителя, за да може да изпълнява криптиращи и декриптиращи процедури. Достъпът до тази смарт карта се извършва посредством номер за персонална идентификация (Personal Identification Number - PIN). 57 Децентрализирано генериране на ключове Изпълнява се по следния алгоритъм: желаещият да получи сертификат подава заявка в орган за регистрация (Registration Authority), който удостоверява неговата самоличност; след установяване на самоличността му, органът за регистрация инициира процедура за издаване на сертификат като изисква от потребителя да представи своите ключове; бъдещият собственик на сертификата предоставя ключовете, които той или трета страна са генерирали; 58 Децентрализирано генериране на ключове получените ключове се изпращат в сертифицираща организация (Certification Authority); сертифициращата организация генерира сертификат и записва публичният ключ на собственика, както и самия сертификат, в общодостъпна БД. 59 Орган за регистрация (Registration Authority) Представлява компания или организация, отговорна за идентификацията и автентикацията на субекта, подал заявление за издаване на сертификат. Желаещите да получат цифров подпис подават документите си в такава организация. Организацията е длъжна да проучи клиента и да го идентифицира еднозначно. В процеса на идентификация от клиента се изисква предоставянето на валидни документи, удостоверяващи неговата идентичност и гарантиращи сигурността на връзката при установяване на контакт с него. 60 Начини за съхраняване на ключовете Надеждното съхраняване на сертификата и запазването на секретния ключ в тайна е от основно значение за валидността на сертификата. На ниво потребител за съхраняване на ключовете могат да се използват: криптографски устройства с памет, защитена от несанкциониран достъп; външна памет (смарт карти, флаш памети и др.). 61 Криптографски устройства с памет, защитена от несанкциониран достъп Този метод е най-сигурен. Той обаче не може да се използва във всяка криптографска система, т.к. изисква повече средства. Освен това паметта на криптографските устройства е с ограничен обем. Затова практически се използват предимно за съхраняване на “главните” ключове. 62 Външна памет Този метод не изисква допълнителни усилия и средства. В днешно време криптографските ключове се съхраняват на: електронни магнитни карти – използват се главно за записване на пароли и кодове. Могат да служат и за съхраняване на криптографски ключове от най-ниско ниво, поради ниската си надеждност.; 63 Външна памет устройства от типа touch memory – те са с ограничен обем на използваната памет. Не са предназначени за изпълнение на сложни изчислителни порцедури. Могат успешно да се използват за идентификация и автентикация на потребителите, ако на тях се съхранява необходимата за целта информация (потребителски имена, пароли) в криптиран вид. Тези устройства се характеризират с голяма надеждност. Препоръчват се при съхраняване на малка по обем ключова информация, която се обновява по-рядко и изисква високо ниво на секретност. Не разполагат със собствена ОС.; 64 Външна памет смарт карти – по своята същност една смарт карта представлява миникомпютър. В постоянната ѝ памет (препрограмируема – EPROM) е инсталирана ОС на картата (Card Operating System - COS). Най-важните функции, които могат да се реализират с помощта на смарт картите, са следните: v дефиниране на правата на достъп до отделните компоненти на системата; v криптиране на данни с различни криптографски алгоритми; v съхраняване на информацията за ключовете; v генериране на електронен подпис. 65 Приложение на PKI Public Key Infrastructure намира приложение при реализация на услуги като: SSL/TLS сертификати (certificates); цифрови подписи (digital signatures); защита на електроната поща. 66 SSL/TLS протоколи SSL (Secure Sockets Layer) и неговият по-надежден приемник TLS (Transport Layer Security) са криптографски протоколи, осигуряващи защитена клиент-сървър връзка, използвана от браузърите и уеб сървърите за предаване на чувствителна информация. Тази криптирана връзка предоставя сигурен достъп до лична информация, която не трябва да става достояние на трети лица. SSL/TLS е технология, която използват повечето уеб сайтове. Чрез нея те осигуряват защита на онлайн транзакциите със своите клиенти. 67 SSL/TLS сертификати SSL/TLS протоколите са в основата на едноименните SSL/TLS сертификати. Един такъв правилно инсталиран сертификат съдържа обикновено информация за: домейна, името на компанията, адрес, град, област и държава. Допълнителната информация в SSL/TLS сертификата включва: неговата валидност (дата на издаване, дата на изтичане), детайлите на сертифициращата организация и методите за кодиране. Ако даден уеб сайт използва SSL/TLS сертификати, в адресното поле на браузъра се появява заключен катинар и наименованието на http протокола в името му се променя от http:// на https://. 68 Възможности на SSL/TLS протокола SSL/TLS протоколът дава възможност на различни софтуерни продукти и програми в конфигурация клиент- сървър да комуникират помежду си, без да могат да бъдат “подслушвани” и подправяни. Клиентската програма и сървърът установяват връзка чрез специална процедура, наречена “ръкостискане” (handshaking). По време на тази процедура клиентът и сървърът “съгласуват” различни условия и параметри, чрез които се гарантира сигурността на връзката. 69 Криптиране на връзката при SSL/TLS сертификати Криптирането на връзката в този случай представлява сложен математически процес, при който се кодира и декодира информация. Числата или битовете, които могат да се видят във всеки един SSL/TLS сертификат (128, 256) представляват дължината на ключа, използван за криптиране на връзката. Колкото по-дълъг е ключът, толкова повече комбинации трябва да отгатне атакуващият, ако иска да достигне до предаваната информация. 70 Видове SSL/TLS сертификати SSL/TLS сертификатите, които се издават от доверен оторизиран за целта орган (Certificate Authority - CA), са следните: SSL/TLS сертификати за домейн (Domain Validated - DV) – могат да се закупят от всеки. Използват се за валидация само на един единствен домейн (за друг домейн или поддомейн трябва да се инсталира нов сертификат). Например при онлайн банкирането преводът на пари може да се направи само от компютъра, на който е инсталиран сертификата.; 71 Видове SSL/TLS сертификати SSL/TLS сертификати за организация (Organization Validated - OV) – по-скъпи от DV сертификатите. Те валидират името на домейна и легитимират идентичността на компанията. Преди да бъдат издадени, съответната организация подлежи на детайлна проверка, с която се гарантира нейната идентичност. Най- често такъв тип сертификати използват сайтове, свързани с електронната търговия, т.к. през тях преминава чувствителна информация, свързана с банкирането.; 72 Видове SSL/TLS сертификати EV (Extended Validation) SSL/TLS сертификати – предназначени единствено за юридически лица. Те удостоверяват автентичността и произхода на фирмени уеб сайтове. Прилагат се при цифровите подписи, т.к. с тях се подписват важни документи и фактури.; Wildcard SSL/TLS сертификати – най-добрия избор за организации, които управляват няколко поддомейна към основния си домейн (напр. поддомейните “blog.website.com” и “news.website.com” могат да бъдат удостоверени с един WildCard сертификат за *.website.com). Тези сертификати са особено подходящи за големи корпоративни сайтове, сайтове за е-търговия, сайтове на банки и финансови институции. 73 Някои по-известни сертифициращи организации (CA) Symantec (VeriSign); GeoTrust; GoDaddy; Comodo. 74 Клиент-сървър комуникация с използване на SSL/TLS протоколи Комуникацията между клиента и сървъра с използване на SSL/TLS протоколи протича в следната последователност: клиентът (браузърът) изпраща заявка за установяване на SSL/TLS сесия; сървърът изпраща обратно данни за своя SSL/TLS сертификат и публичния си ключ; браузърът прави проверка на сертификата като следи дали: v е издаден от валиден сертифициращ орган; v срокът му на валидност не е изтекъл; v името на сайта, което е закодирано в сертификата, отговаря на реалният адрес, който е зареден в браузъра. 75 Клиент-сървър комуникация с използване на SSL/TLS протоколи след като проверките минат успешно браузърът и сървърът определят какъв симетричен криптографски алгоритъм да използват за комуникация (напр. AES, RC4, Triple DES и т.н.); браузърът генерира произволен симетричен ключ, който криптира с публичния ключ на сървъра и го изпраща към него; сървърът декриптира изпратения симетричен ключ посредством частния си ключ; сървърът установява защитена сесия с клиента, при която те комуникират чрез криптиране с избрания симетричен ключ; 76 Клиент-сървър комуникация с използване на SSL/TLS протоколи след завършване на сесията сървърът и клиента “изхвърлят” използвания симетричен ключ. Инициирането на всяка допълнителна сесия изисква генериране на нов симетричен ключ и повторение на описания вече алгоритъм. 77 Предимства на SSL/TLS сертификатите предоставят сигурна криптирана връзка; осигуряват надеждна защита на личните данни при евентуална атака (напр. ако БД на уеб сайт съдържа информация за номерата на кредитните карти на своите потребители). 78 Недостатъци на SSL/TLS сертификатите трябва да се подновяват обикновено всяка година; инсталират се допълнително на уеб сайта; поради криптирането на връзката уеб сайтът работи по-бавно; могат да се наложат допълнителни настройки на софтуера, който се използва на уеб сайта, за да се съвмести с SSL/TLS сертификата. Ако сертификатът не е инсталиран правилно, той няма да бъде разпознат от браузъра и потребителят ще получи съобщение за грешка. 79 Цифрови подписи (Digital signatures) Освен за криптиране и декриптиране на информацията, криптографията може да се използва и за други цели. Процесите на идентификация и автентикация са едни от най-важните при изграждане на връзката на доверие. Може да се има доверие на някой, само ако се знае кой е той. В много случаи идентификацията се прави чрез подписване на документ. Удостоверяването на истинността на един електронен документ се прави чрез подписването му с т. нар. цифров подпис. Това е механизъм, чрез който се гарантира, че автор на документа е притежателят на съответния цифров подпис. 80 Същност на цифровия подпис Цифровият подпис е реквизит на електронен документ, предназначен да го защити от фалшификация. Представлява криптографски подпис. Всъщност е математическа функция, получена в резултат на криптографска обработка на информацията в съобщението. Чрез нея се удостоверява самоличността на изпращача и се гарантира, че информацията не е била променяна по своя път от точката на изпращане до крайната си цел. Електронните подписи се използват навсякъде, където се обменя важна информация по електронен път, за да я предпазят успешно от опити за фалшифициране (напр. дистрибуция на софтуер, финансови транзакции и др.). 81 Технология на цифровия подпис Цифровият подпис използва асиметрична криптография с двойка ключове (частен и публичен), като с единия се криптира съобщението, а с другия то се декриптира. Действията, които извършват двама потребители (условно обозначени с A и B) при изпращане на цифрово подписано съобщение от A до B, могат да се обособят условно в две групи: действия, които предприема потребител A (подател на съобщението); действия, които предприема потребител B (получател на съобщението). 82 Действия, които предприема подателят на съобщението потребител A изготвя съобщението и го обработва с точно определена хеш функция. На този етап се получава уникален блок от битове, еднозначно описващ съответното съобщение.; потребител A криптира получената хеш стойност с частния си ключ. Получената криптограма представлява неговият цифров подпис.; потребител А генерира симетричен ключ, с който криптира съобщението, цифровия си подпис и копие на своя сертификат, съдържащо публичния му ключ за използвания при комуникацията с B асиметричен алгоритъм (напр. RSA).; потребител A криптира използвания симетричен ключ с публичния ключ на потребител B и го изпраща по комуникационния канал заедно с криптираните преди това съобщение, цифров подпис и копие на своя сертификат. 83 Действия, които предприема получателят на съобщението потребител B получава криптираните данни от А; използва частния си ключ за използвания при комуникацията с А асиметричен алгоритъм (напр. RSA) и декриптира изпратения от А симетричен ключ; с получения симетричен ключ потребител B декриптира изпратените от потребител А данни, включващи входното съобщение, цифровия му подпис и копието на неговия сертификат; от сертификата на А, потребител В получава неговия публичен ключ за използвания при двустранната комуникация асиметричен алгоритъм (напр. RSA); 84 Действия, които предприема получателят на съобщението с получения публичен ключ В декриптира изпратения цифров подпис, който съдържа стойността от хеш функцията, приложена от потребител А; потребител B обработва декриптираното входно съобщение с хеш функцията, използвана от потребител А; изчислената стойност се сравнява с хеш стойността, получена след декриптирането на цифровия подпис на А. ако сравнението на двете стойности е успешно (те са еднакви), се счита че данните са автентични и е запазен техния интегритет и конфиденциалност. 85 Защита на електроннта поща Защитата на електронната поща може да се осъществи чрез използването на: протоколи за четене на писма IMAP/POP3 (Internet Message Access Protocol/ Post Office Protocol, version 3) и протокол за изпращане на писма SMTP (Simple Mail Transfer Protocol), базирани на SSL/TLS криптиране; S/MIME (Secure/Multipurpose Internet Mail Extensions) криптиране; специализирани програми за криптиране; уеб мейл сървъри, използващи протокола HTTP (HyperText Transfer Protocol), базиран на SSL/TLS криптиране. 86 IMAP/POP3 и SMTP протоколи, базирани на SSL/TLS криптиране За целта мейл сървъра и имейл клиента, който използва потребителя, трябва да поддържат криптирана комуникация. Най-известните имейл клиенти са: Mozilla Thunderbird, MS Outlook, Mail в Android и iPhone. Стъпките за конфигуриране на различните имейл клиенти са специфични. Крайният резултат, който трябва да се постигне, е възможността да се използва SSL/TLS криптиране за всеки от протоколите (IMAP, POP3 и SMTP). 87 S/MIME криптиране S/MIME е защитено разширение на стандарта за електронна поща MIME. То е базирано на RSA Data Security технология за криптографска защита, включваща ЕlGamal (схема с публичен ключ), Digital Signature Standard (DSS) и Secure Hash Algorithm (SHA). S/MIME позволява изпращането на кодирани и подписани съобщения чрез стандартния протокол за доставка на поща SMTP. S/MIME използва криптография с публичен ключ за следните цели: защита на поверителността на съдържанието – кодиране на съобщението при изпращане и декодирането му със съответния частен ключ при получаване; автентичност и защита на целостта – подписване при изпращане и потвърждаване на подписа при получаване. 88 Специализирани програми за криптиране Най-често използваните програми са: PGP (Pretty Good Privacy) и неговият аналог с отворен код GNUPG (GNU Privacy Guard). Основните мейл клиенти (MS Outlook, Mozilla Thunderbird и др.) могат да се конфигурират така, че да работят гладко с подобен криптиращ софтуер. Използването на криптиращи програми има два недостатъка: всяка от страните, които комуникират помежду си трябва да ги използва; всеки, който изпраща криптирани с тези програми имейли, трябва да осигури и надлежно потвърди публичните ключове на хората, на които ги изпраща, т.к. някой, прослушващ имейл комуникацията може да го “надхитри” с използването на грешен ключ. Тази хитрост е известна като атака на “човека по средата” (Man-in-the-middle attack). 89 Уеб мейл сървъри, използващи HTTP, базиран на SSL/TLS криптиране Уеб мейлът е един от най-удобните и бързи начини за работа с електронна поща. За да може връзката с уеб мейл сървъра да е сигурна, потребителите задължително трябва да го зареждат през сигурния му https адрес. Много уеб мейл доставчици използват HTTPS само за страницата, на която потребителите се логват. След това се връщат към стандартния HTTP протокол, който не е сигурен. При подобен случай трябва да се потърси опция в конфигурацията на акаунта на потребителя (или browser plugin), осигуряваща перманентна употреба на HTTPS за съответната поща. 90 Популярни програми за криптиране и декриптиране на данни PGP (Pretty Good Privacy) – eдна от най-популярните програми, създадена е от Phil Zimmermann. Освен платена програмата притежава и безплатна версия.; GNUPG (GNU Privacy Guard) – криптираща програма с отворен код. Алтернатива на PGP. Работи на почти всички ОС.; KeePass Password Safe – безплатна програма с отворен код за съхраняване на пароли. Освен като хранилище за потребителски имена, пароли и друга лична информация, програмата може да се използва и за автоматичното им въвеждане в уеб страници. Това осигурява защита срещу зловредни програми от типа “keyloggers”. 91 Стеганография (Steganography) Стеганографията е научно-приложна област (съвкупност от технически умения и изкуство), която се занимава с начините за предаване на скрити съобщения в Интернет. Тя се използва за скриване на секретни съобщения в цифрова медия като глас, видео и снимки. Това може да се направи например като се замени младшия бит на всеки пиксел на избраната медия. 92 Стеганография (Steganography) В повечето случаи скритите съобщения също са криптирани, което ги прави трудни за разкриване. С използването на тази техника е възможно предаването на данни без никой да ги забележи. Изпращането на изображения през Интернет е нещо обичайно. Проверката дали съдържат криптирани или скрити съобщения е доста трудна, а понякога и невъзможна. 93 Заключение Всеки има възможност при сърфиране в Интернет да се предпази от проследяване (да прикрие своя IP адрес). За целта се прилагат различни решения, изпoлзващи подходящи криптиращи алгоритми и защитни протоколи, които осигуряват възможност на потребителите да останат скрити за трети страни или злонамерени фактори. Най-често това се постига чрез използване на: анонимни прокси сървъри (anonymous proxies); виртуални частни мрежи (Virtual Private Network - VPN). 94