Лабораторлық жұмыс №8

Программалық құралдарды зерттеуден қорғау

Мақсаты: Зиянды программалардан қорғау және компьютерлік стеганография, шифрлеу программалық құралдарын оқыту.

Теориялық мәліметтер

Ең кең тараған программалық қамтаманы қорғаудың түрі бұл – парольга негізделген қорғаныс. Парольдік қорғанысты орнатқан кезде программаның жүктелуі парольдік және кейіннен енгізілген парольді түпнұсқасымен салыстыратын сұраныспен ертіледі.

Пароль алфавит және арнайы белгілердің тізбектелген символдарынан тұрады. Тізбек ең қысқа және ең ұзын ұзындықты қанағаттандыратындай шектелуі керек.Бірден айтып кетейік, парольдік қорғаныс белгілі бір аз пайдаланушылар үшін арналған арнайыланған программалық қамтаманы қорғау кезінде ғана қолдану ұсынылған. Егер де осындай әдіспен қорғалған программаны кең көлемде қолданса, онда ең болмаса бір заңды пайдаланушы зиянкестерге парольды хабарлап қойса жеткілікті бұл қорғалған программаның жалпыға ортақ болуы ықтималдылығы жоғары.Көңіл аударатын бір жай, парольді енгізу үрдісі кезінде дауыс шықпаса да бақылау жүргізілуі мүмкін. Парольді енгізіп жатқан пайдаланушының қасындағы адам пернетақтадан теру үрдісін бақылап отырып, енгізілген символдарды есте сақтап қалуы мүмкін. Ол түгіл, «троянский конь» сияқты, лайықты үзуді ұстап алуы арқылы пернетақтадан енгізілген паролды оқитын және сақтайтын, арнайыланған программалар өте көп.Жақсы қорғаныс жүйесі жақсы ұйымдастырылған болуы керек. Біріншіден, пайдаланушыға дұрыс емес парольды шексіз енгіздірмей, енгізу санына белгілі бір шек қоюы керек. Екіншіден, екі дұрыс емес енгізілген пароль арасында белгілі бір уақыт аралығында қорғаныс жүйесін бұзу саның азайту мақсатында арнайы уақыттық тежеу қойылады

Парольдің түпнұсқасын қорғалған программаға қолайлы және зиянкестерге қолжетерсіз жерге сақтау қажет. Бұдан парольдік қорғанысты пайдаланатын программаның авторларының негізгі тапсырмасы, парольдің түпнұсқасын жақсы жасыру болып табылады.

Ісжүзінде эталондық парольді сақтау үшін келесі әдістер қолданылады:

1) эталон қорғалған программада сақталады;

2) эталон арнайы арналған бөлек файлда сақталады(бұл әдіс Windows- програмаларын қорғау кезінде жиі қолданылады);

3) эталон жүйелік аумақтарда сақталады(дискінің бос, қосалқы немесе сирек қолданылатын аумақтарында). Мысал үшін, парольдің түпнұсқасы түп каталог секторының соңғыларының біріне жазылған. Windows- программаларын қорғау кезінде өңдірушілер парольдің түпнұсқасын Registry дерек қор жүйесінде жиі сақтайды.

Жаңа үйреніп келе жатқан программиста біледі, парольді ашық түрде сақтауға болмайды, өйткені, мысал үшін егер пароль қорғалынған программаның өзінде болған жағдайда зиянкес эталонды парольды не программа сақталған файл дампын қарап, не бүкіл текстік жолдарды баспаға шығаратын арнайы программалар көмегімен өте оңай тауып ала алады

Негізінен қорғаныс авторлары не парольды белгісіз немесе өзінің криптографикалық әдістермен шифрлайды, не парольды түрлендіру үшін хеш-функциясын (хеш-суммасы) қолданады. Парольды хешифрлеу әдісі. Бұл әдістің мәнісі мынада эталон ретінде парольдің өзін емес, ал автор қорғанысының қолданған пароль символдарына жүргізілген математикалық түрлендірулердің(осы түрлендірулер хэш-функциясы немесе хешифрлеу деп аталады) нәтижесі сақталады. Программаны жүктеу кезінде пайдаланушының енгізген паролы хешифрленеді және алынған нәтижені эталонмен салыстырады.

Көптеген жағдайда жай парольды сақтауды немесе парольды хешифрлеуді қолданатын қорғанысты зиянкестерге өтіп кету өте оңай. Бұзушылардың айтуы бойынша, - программада тек бір ғана байтты өзгерту жолымен.

Өзін жақсы жағынан көрсеткен әдіс бұл – парольды шифрлеу әдісі. Шифрлеу криптотұрақты емес алгоритмді және қысқа парольды қолданғанның өзінде бәрі бір алгоритмді зерттеуде, шабуылдайтын программаны жазуда біраз еңбекті және сәйкес парольды іздеуде ұзақ уақытты қажет етеді. Шифрленген парольды сақтауда аса үлкен көңілді программаның шифрлеу-дешифрлеу алгоритмін зерттеуден қорғауға бөлу керек. Парольдың түпнұсқасы қандай түрде сақталмасын(ашық, хеш-функция немесе шифрленген код), қорғаныс механизмі орындалу кезінде пайдаланушымен енгізілген паролы түпнұсқамен (кілтпен) салыстырылады. Бұдан парольдік қорғаныс кілттік салыстыру әдісіне жатады.

Көптеген мамандар программалық қамтаманы қорғауда шифрлеу деректер қауіпсіздігінің ең сенімді құралы болып табылады деп есептейді. Шифрлеу программалық қамтаманы легальді емес қолданудан, өзгертуден, сонымен қатар қорғалған программаның логикасының жұмысын зерттеуден қорғау үшін қолданылады.

Криптографиялық әдістер және алгоритмдер көптеген әдебиеттерде толық айтылған, мысалға , Ю.С. Харин, В.И. Берник, Г.В. Матвеев «Криптологияның математикалық негіздері». Сондықтан бұл жерде тек негізгі әдістер мен криптоалгоритмдерді атап өтіп, программалық қамтамадағы авторлық құқықты қорғауға арналған шифрлеудің қолдану әдістеріне тоқталамыз.

Атап өтейік, шифрлеу үшін қорғаныс авторы өзінің криптоалгоритмін қолдануы мүмкін. Бірақ, көбінесе ұсынылатын шифрлеу алгоритмдері әлсіз болып табылады, өйткені автор өзінің алгоритмдерінің беріктілігін (сенімділігін) субьекті түрде асыра бағалап жібереді. Бәрінен де бұрын бұның негізгі себебі, бүкіл қорғаныс авторлары криптоанализ саласында жақсы маман болып келмейді.

Криптоанализ дешифрлеу әдістерін, алгоритмдерін, құралдарын, оған қоса криптожүйенің беріктілігінің бағалауын біріктіреді.

Бұл жерде криптоалгоритмнің беріктілігі (сенімділігі) деп отырғанымыз криптоаналитикке кілтті ашу үшін (немесе негізгі тексті) қажетті компьютерлік операциялар саны.

Бұдан бізге енді қажеттісі криптошабуылды есептеу техникасында орындаған кезде, сол уақыт ішінде шифрленген ақпарат өзінің құндылығын жоғалтатындай машиналық уақытты қажет ететін, көптеген операциялар саны.

Негізінен, шифрлеуге негізделген қорғаныс механизмін орындаған кезде кілттің құпиялығына және таңдауына үлкен назар аудару қажет. Сапалы шифрлеудің критериі болып мына принцип болуы мүмкін:

шифр беріктілігі тек кілттің құпиялығымен анықталуы тиіс (Кирхгофф ережесі).

Сенімдірек кілт болып қандайда бір тексерілетін параметр функциясының мәні болып табылатын кілт есептеледі. Сапалы кілт ретінде қолданылатын кодтың(критериялық бөлім) бақылау қосындысын қолдануды ұсынуға болады.

Тәжірибе жүзінде шифрлеуге негізделген келесі программаны қорғау механизмі қолданылады.

Программа кодын шифрлеу, программа коды тек программа орынадалған кезде ғана шифр ашылатындай етіп шифрленеді.

Программа фрагментін(бөлігін) шифрлеу, шифрлеу үшін көбінесе программаның критериялық бөлігін таңдайды.

Екі жағдайда да статикалық та, және де динамикалық шифрлеуді қолдануға болады. Статикалық шифрлеу кезінде барлық код (код фрагменты) бір рет шифрланады/дешифрланады. Шифрленген түрде код ылғида сыртқы тасушыларда сақталады. Ашылған түрде жедел жадыда болады. Динамикалық шифрлеу кезінде программа үрдістері (немесе жеке фрагменттер) немесе программаның критериялық бөліктері тізбектеліп шифрленеді/дешифрленеді.

Тапсырмалар

1 Қолданушыларды және процестерді идентификациялау тәсілдерін орындайтын программа жаз

2 Аутентификация және идентификация процесстерін жүзеге асыру керек