Преглед на системите за криптиране на данни
Напоследък различни софтуерни и хардуерни системи за защита на информацията, предназначени за криптиране на данни, съхранявани на твърди дискове, станаха доста широко разпространени. Такива са добре познатите PGPdisk и BestCrypt, българските разработки на Indis от LAN-Crypto, StrongDisk от Phystechsoft, Zdisk и Zserver от SecurIT и др.
Освен това има самостоятелни системи за криптиране на отделни файлове и директории, най-известната и широко разпространена от които е EFS (Encrypted File System), която е част от MS Windows, започвайки с Windows 2000.
Всички тези системи се различават една от друга по начин на криптиране, алгоритми, възможности и т.н. до такава степен, че потенциалният потребител на такива системи понякога се губи и не винаги може да разбере какви точно възможности предоставя тази или онази система и защо се нуждае от всичко това.
Въпреки многото различия, всички съвременни системи за криптиране на данни работят на принципа на "прозрачното" криптиране. Същността на този принцип е, че криптирането на данни не е отделна операция, която потребителят трябва да извърши по време на работа, а се извършва едновременно с работата на потребителя, автоматично, при четене и запис на данни. Потребителят трябва само да активира криптирането, като въведе някакъв вид парола или ключ за криптиране.
Нека разгледаме редица въпроси, които възникват пред потребителя, който избира система за криптиране на данни, и отговорите на които засягат стратегията за информационна сигурност като цяло. 1. Защо е необходимо криптиране на данни, от какво защитава и от какво не защитава? 2. Какъв алгоритъм за криптиране и дължина на ключа за криптиране да изберете? 3. Трябва ли да се използват хардуерни ключове за съхраняване на ключове за криптиране? 4. Какви обекти да криптирате, отделни файлове или целия диск? 5. Криптиране на диска - да се използва ли криптиране на файлов контейнер или дял? Защо имам нужда от криптиране на данни Първият въпрос, който възниква пред потенциалния потребител на такава система е „защо имам нужда от това?“. Има операционна система Windows 2000 или Windows XP, която е доста надеждна по отношение на контрола на достъпа, парола от десет знака е името на любима котка, например dF2$%oHn9=, почти невъзможно е да я вземете и защо иначе да се заблуждавате с някакво криптиране?
По принцип е глупаво да се отрича необходимостта от използване на "силни" пароли, файлова система NTFS и добре конфигурирани правила за контрол на достъпа. Това са всички необходими условия, за да получите увереност, че никой няма да получи достъп до важна информация. Но, както се оказва, напълно недостатъчно.
В нашите български условия е лесно да си представим ситуация, когато твърд диск се извади от компютър, който съхранява поверителна информация и се свърже с друг компютър. И там, който иска да се запознае с информацията си знае паролата и има администраторски права. Като се има предвид тази възможност, разчитането само на парола е доста несериозно.
В същото време криптирането е безсилно срещу различни софтуерни и хардуерни отметки, троянски коне, мрежови хакери и други атаки, на които може да бъде изложен работещ компютър с изтеглени ключове за криптиране, когато потребител или администратор може просто да не знае, че външен човек е влязъл в компютъра. В този случай нападателят по един или друг начин се представя за легален потребител и получава достъп до информация по същия начин като законен потребител. За съжаление криптирането не знае как да проверява правата за достъп.потребителите за достъп до информация.
Следователно криптирането на данни е само един от важните елементи на системата за информационна сигурност, но съвсем не е достатъчно. Необходимо е наличието на добре конфигурирана система за контрол на достъпа, контрол на целостта на операционната среда, инструменти за откриване на прониквания, антивирусна и антитроянска защита и др. Избор на алгоритъм за криптиране и ключ Кой алгоритъм за криптиране да използвате, когато защитавате данните си, е въпрос от до голяма степен „религиозен“ характер, като например „кой език за програмиране или операционна система е по-готин?“.
Естествено, това трябва да бъде добре познат алгоритъм за криптиране, признат от световната криптографска общност и за предпочитане избран от някоя държава като национален стандарт.
Твърденията на производителите на системи за сигурност, че използват собствен алгоритъм за криптиране, определено трябва да са тревожни, тъй като много малък брой хора и екипи в света имат интелектуалния и научен потенциал, необходим да измислят свой собствен силен алгоритъм за криптиране.
Единственото нещо, което има смисъл, е дължината на ключа за криптиране. За симетрични алгоритми дължината на ключа за криптиране е поне 128 бита. Смята се, че при нормални размери на съобщенията и такава дължина на ключа декриптирането със статистически методи на съвременната технология е невъзможно за разумно време.
Струва си да се препоръча да се въздържате от използването на алгоритъма DES и неговите модификации (Triple DES) за криптиране на данни. Разбира се, това е един от най-заслужените алгоритми за криптиране, който е национален стандарт на САЩ повече от двадесет години и по инерция, поради консерватизъм, мнозина го използват и до днес. Въпреки това, този алгоритъм иманезадоволителна към момента дължина на ключа за криптиране - 56 бита; освен това е изключително бавен. Защо са необходими електронни ключове След като засегнахме темата за алгоритмите за криптиране, няма как да не кажем нещо по-конкретно за ключовете за криптиране, освен че дължината му трябва да бъде поне 128 бита.
За ключа за криптиране е важна не само неговата дължина, но и параметър, който може да се нарече криптографско качество. Както знаете, идеалният ключ е последователност от напълно произволни битове, тоест всеки следващ бит в тази последователност не може да бъде предвиден въз основа на предишните.
В същото време е желателно криптоаналитикът да има възможно най-малко информация за ключа за криптиране или за "изходния материал" - данните, от които е получен ключът за криптиране. Например, ако парола, въведена от потребителя от клавиатурата, се използва като ключ за шифроване, това дава на криптоаналитика допълнителна информация за това как е създаден ключът и е много вероятно тази информация да се използва за значително намаляване на броя на ключовете за изброяване.
Също така трябва да бъдете много скептични относно ключовете за криптиране, получени на базата на функции като rand (), вградени в стандартните библиотеки на езиците за програмиране, тъй като тези функции дават само псевдослучайни, но всъщност съвсем определени поредици от числа.
Най-добрият начин за генериране на произволни числа е с физически сензор, който регистрира някакъв вид непредвидими събития, като брояч на Гайгер или радиоприемник, който приема атмосферен шум.
На практика обаче такива устройства рядко се срещат сред стандартните периферни устройства за компютри, следователно, за да генерират ключ за криптиране, те често прибягват до по-оригиналниначин. Потребителят е подканен да натиска клавиши на клавиатурата или да движи мишката за определен период от време, в зависимост от дължината на клавиша. В този случай, за да се генерира един бит от ключа за криптиране, се измерва времето между съседните натискания на клавиши с точност до милисекунда. Ако броят на милисекундите е четен, тогава към ключа за криптиране се добавя нула, ако е нечетен, едно.
След генерирането на такъв ключ възниква съвсем разумен въпрос как да го съхранявате. За съвременните потребители на компютри запомнянето дори на 16 байта, всеки от които може да приема стойности от 0 до 255, не е тривиална задача.
Криптирането на ниво файл е по-лесно за потребителя от криптирането на ниво диск. Очевидно понякога е много по-удобно да изберете няколко файла или директории на диска и да ги обявите за криптирани, вместо да се занимавате със създаване на виртуални дискове или повторно разделяне на твърд диск, за да създадете отделен криптиран дял върху него.
Тази гъвкавост обаче е изпълнена с клопки. Първо, има трудности, когато е необходимо повече от един потребител да има достъп до някои файлове. Второ, съществува потенциална опасност от изтичане на данни при създаване на временни файлове извън криптирани директории; всяка програма може да направи това, без да информира потребителя. И накрая, не трябва да забравяме за човешкия фактор: потребителят може да забрави, че е необходимо да запазите всички файлове стриктно в криптирана директория, а поверителна информация ще бъде на диска в ясен текст. Криптиране на файлов контейнер или блоков дял Ако говорим за криптиране на ниво диск, тогава то също може да бъде реализирано по различни начини.
Първият начин е контейнерен файл. Същността му е, че на твърдия диск на компютъра се създава голям файл.размер, който се „проектира” от специален драйвер в системата като друг диск. Всичко, което е записано на този виртуален диск, всъщност е криптирано и записано във файл. При четене се извършва обратната операция. Всички програми, системни помощни програми, потребители виждат този виртуален диск като обикновен твърд диск.
Вторият метод е блоково криптиране на дял на твърдия диск. В този случай не се създават контейнерни файлове и допълнителни виртуални дискове, но един или няколко съществуващи дяла на твърдия диск се криптират. Тази функционалност се осигурява от специален драйвер за дисков филтър, като информацията се криптира сектор по сектор, в процеса на четене и запис.
Очевидните предимства на първия подход са гъвкавостта и удобството. Първо, потребителят не трябва да се грижи предварително, че има повече от един дял на неговия твърд диск, тъй като е невъзможно да шифровате зареждащия и системния дял по този начин. Второ, не е нужно да се притеснявате за размера на криптирания диск, тъй като повечето системи, които работят на принципа на контейнерния файл, прилагат функционалността на „гумения диск“, когато размерът на виртуалния диск може да бъде увеличен по време на работа, тъй като се запълва. И накрая, процедурата за архивиране е опростена. Можете просто да копирате контейнерния файл на всяко подходящо място (мрежово устройство, CD-ROM, лента и т.н.), без изобщо да се притеснявате за сигурността на резервното копие - всички данни в контейнерния файл вече са криптирани.
Системите с файлови контейнери обаче имат един много съществен недостатък, който се състои в много по-голям спад в производителността при четене и запис в сравнение със системите за криптиране на блокови дялове и теоретично по-ниската надеждност на такива системи.
Вижда се, че приБлоковото криптиране на дял добавя само една връзка към веригата на I/O манипулатора на диска. Системата с файлови контейнери, от друга страна, увеличава значително веригата за I/O обработка на диска, тъй като в нея I/O заявка преминава през файловата система два пъти!
Очевидно такова увеличение води до намаляване както на производителността на системата, така и на нейната надеждност, тъй като файловата система е сложен системен компонент, обикновено състоящ се от три до пет модула (кеш мениджър, драйвери на файловата система и т.н.)
За защита на корпоративните сървъри, които имат по-високи изисквания за производителност и надеждност, се препоръчва използването на блоково криптиране на дисковите дялове. В този случай допълнителната, освен това, като правило, еднократна работа по инсталирането и конфигурирането на системата за защита е напълно оправдана от по-висока степен на надеждност и по-малък спад в производителността.
Освен това не забравяйте за човешкия фактор. Както знаете, всяка защита се разбива най-лесно в най-слабото й място и доста често най-слабото звено в системата за обработка на информация не са компютрите, а хората, работещи с тях. Очевидно използването на суперкомпютър за разбиване на криптиращ ключ чрез груба сила не е сравнимо по цена с подкуп или други методи за „работа“ с мениджър, секретар или системен администратор за получаване на необходимата информация.