Программа кодын шифрлеу
МАЗМҰНЫ
КІРІСПЕ 9
1 Программалық қорғаныс және оның негіздері 10
1.1 Программалық қамтаманы өндірушілерінің құқықтарын қорғау түрлері 10
1.2 Программалық қамтаманы қорғаудың классификациясы 10
1.3 Қорғаныстың техникалық құралдар түрі 11
1.4 Механизмдердің, алгоритмдердің, қорғаныс әдістерінің сенімділігі 11
1.5 Көшіруден қорғанудың дәстүрлі әдістері 13
1.6 Парольдік қорғаныс 19
2 Программалық қорғанысты бұзу техникалары 25
2.1 Кілттік диск көмегімен қорғанысты айналып өту әдістері 25
2.2 Кілттік салыстыруға негізделген қорғанысты бұзу технологиясы 26
2.3 Қорғаныстың крипторафиялық жүйесінің осалдығы 29
2.4 Толықтай таңдау шабуылы 31
3 Программаларды зерттеуден қорғау және программалық-аппараттық қорғаныс
35
3.1 Программаларды зерттеу құралдары 35
3.2 Программалық-апараттық қорғаныстың тағайындалуы 49
3.2.1 Заңсыз қатынастан қорғау 50
3.2.2 Қолданушының идентификациясы 51
3.2.3 Қолданушының аутенфикациясы 52
3.2.4 Электрондық кілттер 53
3.2.5 Программалық – аппараттық қорғанысты бұзу және қорғау әдістері 55
4 Экономикалық бөлім 57
4.1 Жалпы жағдай 57
4.2 Экономикалық есептеулер 60
5 Еңбек қорғау 68
5.1 Еңбекті қорғау туралы жалпы түсініктер 68
5.2 Санитарлы талаптар және ережелер 68
5.3 Электр қауіпсіздігі 69
5.4 Өрт қауіпсіздігі 73
ҚОРЫТЫНДЫ 77
ӘДЕБИЕТТЕР ТІЗІМІ 78
А ҚОСЫМША 80
КІРІСПЕ
Бұл дипломдық жұмыста қазіргі кезде кең таралған мәсәлелердің бірі
программалық қамтаманы заңсыз қолдану және одан қорғану жолдары
қарастырылған. Компьютерлік технология дамығаннан кейін программалық
қамтамаларға қызығушылық арта түсті. Кейбіреулердің программалық қамтаманы
заңды түрде сатып алуға жағдайлары жетпегендіктен, кейбіреулері сол арқылы
бизнес жасағысы келетіндіктен, ал кейбіреулер жай қызығушылықтан
программалық қамтаманы бұзуға кіріседі. Көріп отырғамыздай программалық
қамтаманы бұзудың ең негізгі себебі - экономикалық. Программалық қамтаманы
бұзу дегеніміз оны зерттеу. Бұзылған программалық қамтаманы одан ары
кейбіреулер өз игіліктеріне пайдаланады, жолдастарына таратады, ал
кейбірлер заңсыз көшіріп, өзінің тұпнұсқа бағасынан әлде қайда арзан етіп
“қара базарда” сатып, таратады. Бұзылған программалық қамтамалардың дұрыс
жұмыс істеуі, істемеуі екі талай және оларды қолданушылар түпнұсқасын
қолданушылары ие болатын артықшылықтарға ие бола алмайды. Сондықтан
программалық қамтаманы заңсыз көшіруін, таратуын, зерттеуін болдырмау үшін
біз программалық қамтамаға қорғаныс қоямыз. Сол қорғаныстың әдістері,
түрлері және мысалдары осы менім дипломдық жұмысымда қарастырылған.
1 Программалық қорғаныс және оның негіздері
1.1 Программалық қамтаманы өндірушілерінің құқықтарын қорғау түрлері
Программалық өнімді шығарушылардың заңдарын қорғаудың екі түрі
бар–заңды және техникалық.
Заңды қорғау компьютерлік программалардың авторларының құқығын заңды
түрде қорғауға негізделген.
Заңды қорғау программалық өнімнің авторлық құқығын бұзған адамды
азаматтық, қылмыстық, әкімшілік жауапкершілікке тартады. Заңды қорғау өте
тиімді, өйткені құқығы бұзылған авторға кеткен шығынды толық қайтарады.
Техникалық қорғау бұл негізінен техникалық құралдар көмегімен
программалық өнімді заңсыз пайдаланушыларға қолдануды қиындату немесе тіпті
болдырмауға бағытталған.
Техникалық құралдармен программалық өнімді қорғаудің бірнеше әдісі
бар:
1) Программаны басқа дискіге көшіруге қарсы әрекет жасау
2) Көшіруге рұқсат беріп, ал заңсыз көшірілген көшірмесінің жүктелуіне
немесе қолдануына қарсы әрекет жасау. Бұған қоса сол заңсыз
көшірілген программаның көшірмесін бұзушылармен зерттеуіне жол
бермеу.
3) Программаның көшірілуіне, қолдануына қарсы әрекет жасамай, бірақ
керек жағдайда программаның авторлылығын дәлелдейтін және заңсыз
түрде қолданылғаны жөнінде анықтайтын айғақты программаға орнату.
Программаларды шығаратын өндіруші фирмалар өздерінің прогммалық
өнімдерін қорғауда әртүрлі әдістерді қолданады. Кейбіреулер бұл мәселені
техникалық құралдар қорғанысының көмегімен шешеді. Олар өздерінің
программаларына қосады. Басқалары заңды қорғауды қолданады, мысалға
корпорация Microsoft. Өздерінің әйгілі программаларының құрамына өнімнің
көшірмесін болдырпайтын, көшіруге қарсы тұратын техникалық құралдар
қоғанысын қоспайды. Программалық өнімдер еркін көшіріледі, бірақ заңды
басқару ақпаратымен бірге. Корпорация өнім авторлық құқықпен және
халықаралық келісіммен қорғалғаны жөнінде ескертетін хабарды қолданады.
Жаңа технологиялық қорғаныс Microsoft корпорациясының оригинальды
өнімдері Windows 2000 операциялық жүйесімен и Office 2000 пакетінде енген.
1.2 Программалық қамтаманы қорғаудың классификациясы
Программалық қамтаманы қорғауды келесідей классификацияларға жіктеуге
болады:
– Заңсыз көшіруден(бейнелеуден) қорғау;
– Заңсыз қолданудан қорғау;
– Программаны зерттеуден қорғау;
– Программалық өнімді идентификациялау
Негізінен программалық өнімді бірмезгілде бірнеше әдіспен қорғауды
қолдансақ бұл өте сенімді болатыны сөзсіз. Сондықтан белгілі бір әдіске
негізделген техникалық немесе жүйелік қорғаныс туралы көп айтады.
1.3 Қорғаныстың техникалық құралдар түрі
Техникалық құрал қорғанысын бірнешеге бөлуге болады:
– Программалық;
– Аппараттық;
– Программа-аппараттық.
Программалық құрал қорғанысы болып программалық түрде қорғаныс.
Бұл ең қолайлы құрал.
Программалық қорғанысқа келесілерді ескеру қажет
Кез – келген программалық қорғанысты белгілі бір уақыт мезетінде
бұзуға болады.
Заңсыз көшіруден программалық қорғаныстың белгілі маманы А. Щербаков
былай дейді: Айтылған тұжырымды растайтын мынау, программаның қорғанысын
орындайтын командалар компьютерлермен анықталады(танылады) және де қолдану
кезінде машинналық командалар ретінде ашық түрде қатысады. Бұдан, бұл
командалар тізбегін кайтып қалпына келтірсек, қорғаныстын жұмысын түсінуге
болады
Аппараттық құрал қорғанысы деп әдейленген аппараттарды қолданатын
қорғаныс.
Аппараттық қорғаныс ең сенімді, бірақ өте қымбат және сондықтан
негізінен корпоративты тапсырушыларға ғана есептелген. Қазіргі уақытта
дүние жүзінде көптеген фирмалар және ұйымдар ыңғайлы және арзан, сонымен
қатар жеке қолданушыға есептелген аппараттық қорғанысты жасау үшін тер
төгуде.
Программалық – аппараттық құрал қорғанысы бұл программалық және
аппараттық қорғаныстардың жиынтығы.
Бұл оптимальды қорғаныс құралы. Олар аппараттық жағынан болсын,
программалық жағынан болсын артық болып келеді.
1.4 Механизмдердің, алгоритмдердің, қорғаныс әдістерінің сенімділігі
Программалық қамтама аумағындағы авторлық құқықты қорғауда
қолданылатын механизмдердің, алгоритмдердің, қорғаныс әдістерінің
сенімділігін анықтау үшін басындағы түсініктерді және стандарттар бойынша
ақпаратты технологиялар қауіпсіздігінің бағалауын негізге аламыз.
Ақпараттықтехнологиялар қауiпсiздiгiн бағалау аймағындағы негiзгi
құжаттар болып:
– сенiмдi компьютерлiк жүйелердi бағалаудың критериилерi(Trusted
Computer...) [5], оранжевая книга атауымен белгiлi, 1983 ж. АҚШ
қорғаныс министрлiгi шығарған.
– Ақпаратты технологиялар қауiпсiздiгiн бағалаудың критериилерi
(Information...) [6], Еуропа елдерiнiң гармондалған критериилерi деген
атпенбелгiлi. 1991 ж. Францияның, Герменияның, Голландияның және
Ұлыбританияның сәйкес орындарының атынан жарық көрдi.
– 1992 ж. қабылданған автоматтырылған жүйелер және есептеу техникалары
құрылғыларының қорғанысын бағалау критериясы бойынша Ресейдiң
нормативтiк құжаттары болып саналатын Ресейдiң Госттех коммисиясының
басқарушы құжаттары.
– Және соңғысы, ақпараттық технологиялардың қауiпсiздiгiн бағалаудың
жалпы критериилерi, бүкiл әлемдiк стандарт болып саналады. Мұнда 1999
ж. маусымда қабылданған, ақпараттық технологиялар қауiпсiздiгiн
бағалаудың дамыған нормативтi базасы келтiрiлген. Бұл стандартты
жасауға АҚШ, Канада, Англия, Франция, Гермения, Голландия қатысты.
– Келтiрiлген нормативтi – техникалық құжаттар позициясы жағынан
ақпараттық технологиялар қауiпсiздiгiн бағалау – бұл өнiмнiң
қауiпсiздiк қасиеттерiн зерттеу әдiстемесi немесе ақпараттық
технологиялар жүйесi.
Ескерту: бұл жерде қауiпсiздiктiң iшiнде бағалау нысанының
бүтiндiгiн, қатынасын, қамту түсiндiрiледi.
Ақпараттық технологиялар қауiпсiздiгiн бағалау сандық емес, сапалық
трге ие, және өзiмен бiрге анықталған түрде қауiпсiздiктi қамту
механизмдерiне, олардың тиiмдiлiгiне және iске асыру кепiлдемесiне
реттелген сапалы шарттарды келтiредi.
Қорғану механизмдерi мен әдiстерiнiң сенiмдiлiгiн бағалау үшiн
қолдануы тиiс ақпараттық технологиялардың қауiпсiздiгiн бағалау бойынша
құжаттардың базалық түсiнiгiн қарастырайық.
Сенiмдiлiк. Бағалау нысанының сенiмдiлiгi осы нысанаға келтiрiлген
сенiм деңгейi ретiнде қарастырылады.
Кепiлдiлiк. Сенiмдiлiк өлшемi ретiнде анықталады. Мұнда нысанның
қауiпсiздiк шаралары тиiмдi және дұрыс iске асырылған деп бекiтуге ьолады.
Iшкi (бұзуға ниеттенушiлер) және сыртқы (қате эксплуатацияланғандар)
қателерге қарсы қорғаныс механизмдерiнiң мүмкiндiктерiн тенксеру үшiн
қорғану механизмiнiң (әдiсiнiң) осалдығын бағалау өткiзу қажет.
Осалдықты бағалау кезiнде iшкi қателерге қарсы тұра бiлу жағынан
қажеттiлер:
– Механизмнiң осал жерлерiне талдау жасау;
– Механизмнiң қуаттылығын бағалау.
Осалдықты талдау кезiнде бұзышылардың қорғанысты бұзуы үшiн қолдануы
мүмкiн қорғаныс механизмдерiнiң мүмкiн болатын кемшiлiктерiн шығарады.
Бұзушылардың әр түрлi дәрежедегi дайындықтары мен қамтылу деңгейi
қарастырылады.
Осалдыққа анализ жасау негiзiнде қорғаныс механизмдерiнiң қуаттылығы
бағаланады.
Қорғаныс механизмдерiнiң қуаттылығы – қорғаныс мехенизмдерiнiң тiкелей
шабуылға қарсы тұра бiлу мүмкiндiгi.
Ескерту. Жалпы критерилерде қорғаныс механизмдерiнiң қуаттылығы
қауiпсiздiк функциясының күшi деген атқа ие болды.
Қорғаныс мехенизмiнiң қуаттылығы үшiн қуаттылықтың үш градациясы
анықталған – базалық, орта және жоғары.
Қорғаныс механизмiнiң қуаттылығы базалық деп бағаланады, егер талдауда
механизмнiң төменгi потенциалды шабуылға қарсы адекватты қорғанысын
қамтамассыз ете алатынын көрсететiн болса.
Басқа сөзбен айтқанда, егер де механизм жекелеген кездейсоқ қателерге
қарсы тұра алатын болса, онда қорғаныс механизмi базалық қуатқа ие.
Қорғаныс механизмiнiң қуаттылығы орташа деп бағаланады, егер талдауда
механизмнiң жеткiлiктi потенциалды шабуылға қарсы адекватты қорғанысын
қамтамассыз ете алатынын көрсететiн болса.
Басқаша айтқанда, егер де механизм шектелген қорлары және
мүмкiндiктерi бар бұзушыларға қарсы тұра алатын болса, онда қорғаныс
механизмi орташа қуатқа ие.
Қорғаныс механизмiнiң қуаттылығы жоғары деп бағаланады, егер талдауда
механизмнiң жоғары потенциалды шабуылға қарсы адекватты қорғанысын
қамтамассыз ете алатынын көрсететiн болса.
Қорғаныс механизмнiң жоғарғы қуаттылығы туралы мына жағдайда айту
керек, егер қорғаныс тек жоғары дәрежеде квалификацияланған бұзушымен
бұзылған болса.
Ары қарай бiз компьютерлiк программалардың авторларының құқығын
қорғаудың заңдық аспектiлерiн тереңiрек қарастырамыз, ал сосын программалық
қамтаманы қорғаудың техникалық құралдарын қарастырамыз.
Бұл тараудың осы бөлімінде қарастыратын программалық қорғанудың
әдістері программаның көшірмесін құруға, заңсыз көшірмесін жүктеуге немесе
қолданауға қарсы әрекетке негізделген.
Тағы бір айтып кетейік кез – келген программалық қорғанысты белгілі
бір уақыт мезетінде бұзуға болады.
Қай программалық қорғанысты бұзу кезінде бұзушы сол программанлық
өнімді сатып алуға немесе өзінің кодын құруға кететін шығынмен(материалдық
және уақыттық) салыстырғанда едәуір көп шығындалса, онда сол программалық
қорғаныс артық болып есептеледі. Басқа сөзбен айтқанда, программалық
қорғаныс сенімді болады, егер оны бұзу немесе қорғаныс механизмін өтіп кету
үшін бұзушыға жоғарғы потенциалды шабуылға ие болу қажет. Яғни жоғарғы
квалификацияға, белгілі бір материалды, еңбектік және уақыттық рессурстаға
ие болу керек.
Демек, программаның қорғанысының авторының алғашқы тапсырмасы –
қорғаныс механизмін анықтауды, зерттеуді немесе өзгертуді қиындату болып
табылады.
1.5 Көшіруден қорғанудың дәстүрлі әдістері
Ұзақ уақыт бойы программалық өнімдер иілгіш магнитті дискілер арқылы
таралғанына байланысты программалық өнімінің қорғаныстың ең өркендегені
болып иілгіш магнитті дискілерге орнатылғаны есептелді. Ал программалық
өнімді көшіруден қорғайтын әдістерін көбінесе дискілерді көшіреден қорғау
әдістері немесе қысқаша, дискілерді қоғау әдістері.
Иілгіш магнитті дискілерді көшіруден қорғау әдістері келесілерге
негізделген. Құрамында қорғалынатын программасы бар дискіге қандай бір,
кілттік белгі немесе кілт деп аталатын, жасырулы негізгі ақпарат
орнатылады. Кейде кілттік белгіні диск таңбасы деп атайды.
Құрамында кілттік белгісі бар дискіні кілттік диск деп атайды.
Егер де программаның көшірмесі бар дискіде кілт болмаса, онда бұл
заңсыз көшірме екеніне куәландырады.
Іс жүзінде кілттік дискінің көмегімен қорғанысты орындау үшін
программаның негізгі коды модульмен толықтырылады. Оның тапсырмасы
дискідегі кілтті тексеру немесе, басқа сөзбен айтқанда, кілттік салыстыру
болып табылады. Егер кілт күтілген кілтпен сәйкес келсе, онда басқаруды
программаның негізгі кодына беруі қажет, ал қарсы жағдайда – программаның
орындалуын тоқтату қажет.
Программаны көшіруден қорғаудың басты тапсырмасы кілттік белгіні басқа
дискіге көшіруді болдыртпау.
1.5.1 Кілттік дискілерді құру әдістері
Иілгіш магнитті дискілерді көшіруден қорғау үшін кілттерді құру
тәсілдерінің ең кең тарағандарын қарастырамыз.
Көшіруден қорғау үшін кілтті құрудың екі жолы бар:
1) Апараттық жолмен
2) Программалық жолмен
Бірінші жағдайда апаратура көмегімен (көбінесе үлкен дәлдік үшін лазер
көмегімен) диск бетінің кейбір бөлігі әдейі зақымдалады. Кейін зақымдалған
секторлардың номірлері анықталады(мысал ретінде әр секторға жазу жіне оқу
жолымен) және де солар қорғаныс кілтті болып табылады. Құрамында заңсыз
көшірмесі бар дискіде сәйкестірілген сектор номірлері зақымдалмаған,
өйткені көшіру құралдарымен зақымдалған секторларды оқу мүмкін емес.
Көшірменің легальдылығына тексерген кезде белгілі номерлі секторларға
белгілі ақпаратты жазып және оны есептеу қажет. Легеальды көшірме қатені
оқу немесе жазу кезінде анықтайды
Программалық әдістерде кілттік дискілерді құрудың бірнеше түрі бар.
Аппараттық әдіс сияқты негізгі идея құрыс оқылмайтын немесежәне
жазылмайтын кілт құру болып табылады.
Айтата кетейік, бастапқыда қорғаныстың программалық әдістері
стандартты форматы дискеталармен ғана танылатын программалық көшіруге
көзделген. Дискеттердің стандартты форматы форматтау параметрлері белгілі
мәнге ие болатын(цилиндрлердің, жолақтадың, диск секторларының номерациясы,
секторлар өлшемі және басқалар) қатал анықталған құрылыммен
қамтамасыздандырады. Мысал үшін диаметры 3,5 дюйма және сыйымдылығы 1,44
Мб дискеттердің стандартты цилиндр нөмірлері 0 - ден 79 - ға дейін, ал
секторлар 1 – ден 18 – ге дейін тізбектеліп өзгереді.
Егер де дискеттi ерекше (стандартсыз) түрде форматтап, кiлттi осындай
дискетте орналастыратын болсақ, онда әдеттегi көшiру программалары кiлттiк
белгiнi қайта жасай алмайды.
Осы идеяға негiзделген көшiруден қорғану әдiстерi мынандай жалпы атқа
бiрiккен – иәлгәш магниттi дисктi (стандартсыз) форматтау әдiсi. әдiстiң
жүзеге асырылуы, иiлгiш магниттi дисктiң бiр бөлiгiн (мiндеттi түрде
жүйелiк аймақтар қосу дисктiң кейбiр кеңiстiктерi) стандартты
параметрлермен форматталатындығында. Дисктiң қалған бөлiгi стандартсыз
түрде форматталады және мұнда қорғалатын программа орналасады. Стандартты
форматталған аймақта қорғалатын программаны орындауды жүктеуге және iске
қосуға арналған арнайы программа сақталады.
Дискетаны стандартсыз түрде форматтаудың көптеген әдiстерi мен
дискетада түйiндi ақпаратты сәйкес алмастыру құрылады. Бұл тәсiлдердi
түсiну оңайырақ болуы үшiн, иiлгiш магниттi дисктiң құрылымын және негiзгi
түсiнiктерiн қысқаша еске түсiремiз.
Иiлгiш магниттi дискте ақпараттар,мәлiметтер дисктiң екi бетiнде де
жазылған. Дисктiң әрбiр бетi сәйкес бастиекпен қызмет етiледi (дискетаның
төменгi жағы 0 нөмiрлi бастиекпен, төменгiсi – 1 нөмiрлi). Диск бетiнде
жолшықтар тiзбектелген. Жолшық – биттердiң тiзбектелуi түрiнде ақпарат
сақталған шоғырланған орта қарама – қарсы жатқан қос жолшық цилиндр деп
аталады. әрбiр жолшық программалық түрде (форматтау программасы)
секторларға орналастырылады. Барлық секторлардың ұзындықтары бiркелкi.
Секторлардың мөлшерi форматтау кезiнде анықталады.
Әрбiр секторда:
– синхрондау өрiсi (жол жиек) (екi, бiр сектор тақырыбы, басқасы – осы
сектордың аймағы);
– маркерлер, бiреуi – сектордың басын, екiншiсi сектордың мәлiметтер
аймағының басын кһрсетеді, сонымен қатар, әрбір жолшықта жолшық
басының маркері болады(маркерлердің мәліметтерден айырмашылығы, онда
синхрондау биттері бұзылуы жазбасының болуында);
– бастиек, сектор, цилиндр нөмірінен және сектор тақырыбының сектордың
логикалық кққрдинаттары бақылаулық қосындысынан (CRC) тұратын
идентификацияланған тақырып;
– сектордың деректер аймағы (DOS – стандарт үшін – 512 байт);
– деректердің бүтіндігін бақылауға арналған сектордың деректемелер
аймағындағы бақылаушы қосынды сақталатын өріс.
Келтірілген өрістерден басқа әрбір секторда тағы да екі арнайы өріс
бар: сектор тақырыбы зазор (16 байт) және құрылғыдағы қатенің алдын алуға
арналған мәліметтер аймағындағы аралық (50 байт).
Иілгіш дискті стандартты емес форматтау мен түйіндік белгіні
орналастырудың кейбір тәсілдерін қарастырайық:
Бұл берілген қорғаныс механизмдері қорғалған программаның көшірмелерін
стандартты прогораммалары көмегімен құрылуға арнап есептелген.
Кілтті арнайы форматталған қосымша жолшыққа орналастыру.
Мысалы, 1,44 Мб сыйымдылықтағы дискета үшін 80 – нөмірі (немесе одан
да көп) жолшықты форматтауға және онда кілтті орналастыруға болады.
Көшірудің стандартты программалары жолшықтан мұндай нөмірмен ақпаратты
көшіре алмайды.
Форматталған жолшықтар.
Көшірудің стандартты программалары жолашықтағыны соңғысына жеткенше
немесе форматталған жолшық кездестіргенше оқиды. Егер де бір жолшықты
форматтамай тастап кетсек, ол одан кейін түйіндік ақпаратты орналастыратын
болсақ, ол көшірілмейді.
Жолшықтағы стандартты емес нөмірленген секторлар.
Стандартты форматта жолшықтағы секторлар нөмірлері өсу бойынша
тізбектелген. Бірақ та ерікті нөмірленуі де мүмкін. Бұл жағдайда
секторлардың орналасуын тексеру стандартты және түйінді жолшықтағы екі
сектордың оқу аралығындағы уақыт өлшемімен жүзеге асырылады.
Сектордың стандартты емес өлшемі.
Қысқа өлшемді секторлардың көбірек санын форматтауға және ақпараттарды
ұзын секторлар түрінде жазуға болады.
Бұрыс бақылаулық қосындымен сектор құру.
Стандартты программалар бұрыс бақылаулық қосындысы бар секторларды
көшірмейді(сектор аймағының бақылаулық қосындысы жазылған өріч екі байт
орын алады). Мұнда секторға мәліметтерді жазғаннан кейінгі жазбаны үзу
көзделген, бірақ та бақылаулық қосындысының екінші байтты жазғанға дейін.
Бұл жағдайда қатынас ашық болғандықтан бақылаулық қосындысы мен сектор
мазмұнының сәйкессіздігі кілт болып табылады.
Бақылаулық қосындысының өзгеруі.
Секторды оқу кезінде операциялық жүйе бақылаулық қосындысы арнайы
алгоритм бойынша есептейді. Бақылаулық қосындыны есептеуде және
алгоритмдерді пайдалану арқылы стандартты құрылғылармен есептелген
бақылаулық қосынды CRC өрісіндегі жазбамен сәйкес келмейді, сол себепті
сектор оқылмайды.
Иілгіш магнитті дискілерді қорғау әдістері қорғалған программаларды
әрбір іске қосу кезінде түйіндік дискета дисководта болуы керек деп
есептейді. Бұл тиімді емес. Сонымен қатар программаларды винчестрге
инсталяциялау мүмкіндік бар.
1.5.2 Қатқыл дискілерде кілттерді құру әдістері
Қатқыл магнитті дискіде орналасқан, программаларды көшіруден қорғау
әдістерін қарастырамыз(қатқыл дискілерді қорғау әдістері).
Қатқыл дискілерде кілтті құру кезінде компьютердің жеке
ерекшеліктеріне талдау жасауға болады. Сол себепті дәстүрлі түрде
винчестрге, BIOS-қа, компьютер архитектурасына, программалық қамтама
жинағына және басқаларға байластыру әдісі қолданылады.
Винчестрге байластыру. Кілт ретінде қолдануға болатын қатқыл
дискілердің жеке-дара сипаттамаларына жататындар:
– қатқыл дисктің сериялық нөмірі (винчестрдің кейбір типтері үшін);
– bad – кластердің орналасуы(бұндай кламтерлердің болмауыда мүмүкін);
BIOS – байластыру мынандай параметрлерді тексеруді білдіреді:
– компьютердің типі;
– BIOS құру уақыты;
– BIOS жасауының сигнатурасы мен оның жадыдағы мекені;
– BIOS конфигурациялық кестесі;
– BIOS бақылау қосындысы;
– Кейбір үзулердің BIOS-қа кіру нүктелері және т.б.
Архитектураға байланысты – компьютердің конфигурациясын тексеруді
білдіреді:
– Иілгіш дискілердегі жинақтауыштың саны мен типі;
– Қатқыл дискілердегі жинақтауыштың саны мен типі;
– Бейне адаптердің типі;
– Жедел жады көлемі;
– Қосымша(өлшем) немесе кеңейтілген жадының болуы;
Кейде қолданылады:
– Клавиатура типі;
– “тышқан” және “желілік перо” монипуляторының интерфейсі мен
типі;
– параллель және тізбекті порттардың саны;
Программалық қамтамаға байластыру қатқыл дисктегі немесе жедел
жадыдағы арнайы программаларды тексеруді (көбінесе драйверлерді) білдіреді.
Кейде жүйелік файлдарда программалар мен командалардың іске қосылуының
арнайы тізбектілігінің болуын тексереді. Мұндай тексерулер көмегімен
алынған кілттер кездейсоқ сәйкестіктің үлкен ықтималдық күйіне сенімді.
Сонымен қатар, әрбір жаңа программалық қамтаманы орнатуда немесе
компьютердің конфигурациясы өзгергенде, мұндай кілтте өзгеруі тиіс,бұл
барлық уақытта тиімді емес.
Қатқыл магнитті дисктің кілтін алудың тағы бір жолы болып
аппаратураның өнімділігін өзгерту саналады:
– дисковод немесе винчестрдің айналу жылдамдығы;
– мегагерц бірлігіне дейінгі нақтылықтағы тактылы жилігі;
– жедел жадыға қатынас жасау уақыты;
– енгізу\шығару бағаныңқы жүйенің жылдамдығы және т.б.
Мұндай кілттің де сенімділігі жоғары емес.
Температураның ауытқуы, ауаның ылғалдылығы, желінің қысымдылығы,
компьютер бөлігінің төзімділігі келтірілген кейбір параметрге әсерін
тигізеді. Сонымен қатар, TURBO режимі қосылып\өшіріліп тұруы мүмкін. Кейбір
параметрлертек компьютердің бір партияларына ғана сәйкес келеді.
Қатқыл дискіге өзіндік кілтті құру үшін:
– қолданылған жолшықты стандартқа сәйкес емес форматтау.
Иілгіш дискті стандартты емес форматтау әдісіне ұқсас, бірақ мұнда
қосымша жолшық емес, пайдаланылмаған жолшық форматталады.
– жалған bad –кластерлерді белгілеу.
Сонымен бірге пайдаланушы псевдожаңылысуды байқау ықтималдылығын
төмендету үшін, мамандар FAT басына дейінгі бірінші басы орынды, немесе FAT
соңын белгілейді. Оны Speed Disk секілді құрылғылар көрсетпеуі үшін.
– ұзын оқу\жазу операцияларын пайдалану.
Бұл операциялар ұзындығы 516 байтқа дейінгі кеңейтілген сектормен
жұмыс істейді. Көріп отырғанымыздай, егер ұзын жазба операциясы, олсосын
қарапайым оқу операциясын орындаған болса, онда қосымша 4 байт оқылмайды.
Оларды тек ұзақ оқу операциясымен оқуға болады. Мұндай сектордың қарапайым
жазбасы қысқаша 4 байтты бұза алмайды.
– жүйелік файлдарды тізбекті бақылауымен модификациялау.
Программаны көшіруден қорғау үшін компьютердің өзіндік параметрлерін
немесе қатқыл дискті емес, ал сол қорғалып отырған программаның өзін,
дәлірек айтатын болсақ, ол өзі жазылған файлға бақылау жасауға болады.
Қатқыл диск үшін келесі сипаттама ерекше болып табылады:
– файлды (каталогты) құру уақыты;
– қолданылатын клстер нөмері;
– соңғы кластердің қолданылмаған жеріндегі ақпарат.
Мұндай кілттерді пайдаланғанда, оның дискті қайта ұйымдастыруда (қайта
фрагменттеу) тиімсіздігін есие ұстау керек. Файлдың орналасу орны
өзгеретіндіктен қорғалып отырған программа заңсыз көшірме сияқты
қабылданады.
Кілттік дискілерді пайдалануға негізделген қорғаныс әдістемесі
дәстүрлі болып саналады. Ең алдымен, себебі, кілттік диск бір уақытта
лицензиялылықты болып пайдалана алады. Сонымен қатар, өзінің барлық
кемшіліктерімен қорғаныстың бұл түрі өте арзан. Бүгінде DOS оаперациялау
жүйесімен басқарудағы жұмыс кезінде өздерін жақсы жағынан көрсетіп аталып
кеткен әдістер жиі қолданылып жүр. Біріншіден, еш қорғалмаған DOS
операциялық жүйесінің орнына көбірек қауіпсіздік функцияларын қолдайтын
операциялық жүйелер келіп жатыр. Бүгінде, мысалы WINDOWS NT операциялық
жүйесі артықшылығы жоқ қолданушыға дискке тікелей қатынас жасауға “Рұқсат
бермейді”, сол себепті кілтті қолданылмайтын немесе қосымша форматталмаған
жолшықта сақтауды және аналогты қабылдауды мақсат етіп алмаған.
Екіншіден,желілік технологичлардың қарқымды дамуы программалық
қамтаманы таратудың жаңа тәсілдерін айтады. Көбінесе авторлар өздерінің
өнімдерін иілгіш магнитті дискте немесе қазіргі уақыттағы компакт
дискілерді емес, ол компьютерлік желі арқылы тарату құрылғылар арқылы
таратады. Cол себепті дискілерді қорғаудың дәстүрі, әдістері актуалсыз
болуда. Олардың орнына қорғанудың басқа әдістері мен технологиялары келуде,
олардың көбісі дәстүрлі қорғанудың элементтерін қолданады.
1.5.3 Программалық қорғанудың базалық әдістері
Астында қарастыратын программалық қорғаныстың бұл әдістері заңсыз
пайдаланушылардың программаны жүктеуге жәненемесе қолдануға қарсы әрекет
жасау үшін арналған.
Заңсыз пайдаланудан программалық қорғаныстың базалық әдістеріне іс
жүзінде кең тараған әдістер жатады. Бұлар:
– Парольдік қорғаныс
– Шифрлеу
– Шартты-тегін программалық қамтаманың қорғану әдістері
1.6 Парольдік қорғаныс
Ең кең тараған программалық қамтаманы қорғаудың түрі бұл – парольга
негізделген қорғаныс. Парольдік қорғанысты орнатқан кезде программаның
жүктелуі парольдік және кейіннен енгізілген парольді түпнұсқасымен
салыстыратын сұраныспен ертіледі.
Пароль алфавит және арнайы белгілердің тізбектелген символдарынан
тұрады. Тізбек ең қысқа және ең ұзын ұзындықты қанағаттандыратындай
шектелуі керек.
Бірден айтып кетейік, парольдік қорғаныс белгілі бір аз пайдаланушылар
үшін арналған арнайыланған программалық қамтаманы қорғау кезінде ғана
қолдану ұсынылған. Егер де осындай әдіспен қорғалған программаны кең
көлемде қолданса, онда ең болмаса бір заңды пайдаланушы зиянкестерге
парольды хабарлап қойса жеткілікті бұл қорғалған программаның жалпыға ортақ
болуы ықтималдылығы жоғары.
Көңіл аударатын бір жай, парольді енгізу үрдісі кезінде дауыс шықпаса
да бақылау жүргізілуі мүмкін. Парольді енгізіп жатқан пайдаланушының
қасындағы адам пернетақтадан теру үрдісін бақылап отырып, енгізілген
символдарды есте сақтап қалуы мүмкін. Ол түгіл, троянский конь сияқты,
лайықты үзуді ұстап алуы арқылы пернетақтадан енгізілген паролды оқитын
және сақтайтын, арнайыланған программалар өте көп.
Жақсы қорғаныс жүйесі жақсы ұйымдастырылған болуы керек. Біріншіден,
пайдаланушыға дұрыс емес парольды шексіз енгіздірмей, енгізу санына белгілі
бір шек қоюы керек. Екіншіден, екі дұрыс емес енгізілген пароль арасында
белгілі бір уақыт аралығында қорғаныс жүйесін бұзу саның азайту мақсатында
арнайы уақыттық тежеу қойылады
Парольдің түпнұсқасын қорғалған программаға қолайлы және зиянкестерге
қолжетерсіз жерге сақтау қажет. Бұдан парольдік қорғанысты пайдаланатын
программаның авторларының негізгі тапсырмасы, парольдің түпнұсқасын жақсы
жасыру болып табылады.
Ісжүзінде эталондық парольді сақтау үшін келесі әдістер қолданылады:
1) Эталон қорғалған программада сақталады;
2) Эталон арнайы арналған бөлек файлда сақталады(бұл әдіс Windows-
програмаларын қорғау кезінде жиі қолданылады);
3) Эталон жүйелік аумақтарда сақталады(дискінің бос, қосалқы немесе
сирек қолданылатын аумақтарында). Мысал үшін, парольдің түпнұсқасы
түп каталог секторының соңғыларының біріне жазылған. Windows-
программаларын қорғау кезінде өңдірушілер парольдің түпнұсқасын
Registry дерек қор жүйесінде жиі сақтайды.
Жаңа үйреніп келе жатқан программиста біледі, парольді ашық түрде
сақтауға болмайды, өйткені, мысал үшін егер пароль қорғалынған программаның
өзінде болған жағдайда зиянкес эталонды парольды не программа сақталған
файл дампын қарап, не бүкіл текстік жолдарды баспаға шығаратын арнайы
программалар көмегімен өте оңай тауып ала алады
Негізінен қорғаныс авторлары не парольды белгісіз немесе өзінің
криптографикалық әдістермен шифрлайды, не парольды түрлендіру үшін хеш-
функциясын (хеш-суммасы) қолданады.Парольды хешифрлеу әдісі. Бұл әдістің
мәнісі мынада эталон ретінде парольдің өзін емес, ал автор қорғанысының
қолданған пароль символдарына жүргізілген математикалық
түрлендірулердің(осы түрлендірулер хэш-функциясы немесе хешифрлеу деп
аталады) нәтижесі сақталады. Программаны жүктеу кезінде пайдаланушының
енгізген паролы хешифрленеді және алынған нәтижені эталонмен салыстырады.
Көптеген жағдайда жай парольды сақтауды немесе парольды хешифрлеуді
қолданатын қорғанысты зиянкестерге өтіп кету өте оңай. Бұзушылардың айтуы
бойынша, - программада тек бір ғана байтты өзгерту жолымен.
Өзін жақсы жағынан көрсеткен әдіс бұл – парольды шифрлеу әдісі.
Шифрлеу криптотұрақты емес алгоритмді және қысқа парольды қолданғанның
өзінде бәрі бір алгоритмді зерттеуде, шабуылдайтын программаны жазуда біраз
еңбекті және сәйкес парольды іздеуде ұзақ уақытты қажет етеді. Шифрленген
парольды сақтауда аса үлкен көңілді программаның шифрлеу-дешифрлеу
алгоритмін зерттеуден қорғауға бөлу керек. Парольдың түпнұсқасы қандай
түрде сақталмасын(ашық, хеш-функция немесе шифрленген код), қорғаныс
механизмі орындалу кезінде пайдаланушымен енгізілген паролы түпнұсқамен
(кілтпен) салыстырылады. Бұдан парольдік қорғаныс кілттік салыстыру әдісіне
жатады.
1.6.1 Шифрлеу
Шифрлеу – бұл ақпаратты авторластырмаған кісілерден оның құрамын
жасыру мақсатында түрлндіру.
Авторластырған (авторластырмаған) кісілер – ақпаратқа оқуға, өзгертуге
және т.б. рұқсаты бар(жоқ) пайдаланушылар.
Дешифрлеу – ақпаратты қалпына келтіру, кері шифрлеу.
Ақпаратты шифрлеудің әдісән, алгоритмін және құралын криптография
зерттейді. Ақпаратты шифрлеуді қолданатын жүйелерді криптографиялық жүйелер
немесе криптожүйелер деп атайды.
Көптеген мамандар программалық қамтаманы қорғауда шифрлеу деректер
қауіпсіздігінің ең сенімді құралы болып табылады деп есептейді. Шифрлеу
программалық қамтаманы легальді емес қолданудан, өзгертуден, сонымен қатар
қорғалған программаның логикасының жұмысын зерттеуден қорғау үшін
қолданылады.
Криптографиялық әдістер және алгоритмдер көптеген әдебиеттерде толық
айтылған, мысалға , Ю.С. Харин, В.И. Берник, Г.В. Матвеев Криптологияның
математикалық негіздері. Сондықтан бұл жерде тек негізгі әдістер мен
криптоалгоритмдерді атап өтіп, программалық қамтамадағы авторлық құқықты
қорғауға арналған шифрлеудің қолдану әдістеріне тоқталамыз.
Атап өтейік, шифрлеу үшін қорғаныс авторы өзінің криптоалгоритмін
қолдануы мүмкін. Бірақ, көбінесе ұсынылатын шифрлеу алгоритмдері әлсіз
болып табылады, өйткені автор өзінің алгоритмдерінің беріктілігін
(сенімділігін) субьекті түрде асыра бағалап жібереді. Бәрінен де бұрын
бұның негізгі себебі, бүкіл қорғаныс авторлары криптоанализ саласында жақсы
маман болып келмейді.
Криптоанализ дешифрлеу әдістерін, алгоритмдерін, құралдарын, оған қоса
криптожүйенің беріктілігінің бағалауын біріктіреді.
Бұл жерде криптоалгоритмнің беріктілігі (сенімділігі) деп отырғанымыз
криптоаналитикке кілтті ашу үшін (немесе негізгі тексті) қажетті
компьютерлік операциялар саны.
Бұдан бізге енді қажеттісі криптошабуылды есептеу техникасында
орындаған кезде, сол уақыт ішінде шифрленген ақпарат өзінің құндылығын
жоғалтатындай машиналық уақытты қажет ететін, көптеген операциялар саны.
Ақпаратты қорғау мамандары жақсы зерттелген қасиеттері мен
кемшіліктері бар белгілі, берікті, математикалық негізделген
криптоалгоритмдердң қолдануды ұсынады.
Тәжірибе жүзінде негізінен криптожүйенің екі түрі қолданылады:
– Симметриялық
– Асимметриялық
Симметриялық криптожүйелерде сол бір құпия кілтпен шифрлеуде,
дешифрлеуде жүргізіледі. Ең белгілі, кең тараған симметриялық криптожүйелер
ұлттық стандарт болып есептелетін DES, GOST (ГОСТ), IDEA жүйелері
есептеледі.
Асимметриялық криптожүйелерде шифрлеу және дешифрлеу үшін әртүрлі
кілттер қолданылады. Құпия емес кілт(ашық) шифрлеу үшін қолданылады, ал
құпия кілт – дешифрлеу үшін қолданылады. Ашық кілт көмегімен кез-келген
адам ақпаратты шифрлей алады, бірақ тек құпия кілтті білетін адам ғана
дешифрлеуді жүргізе алады. Асимметриялық криптожүйені тағыда ашық кілт
жүйесі деп атайды. RSA шифрлеу әдісі осы ашық кілтпен шифрлеу әдісіне
жатады. Бұл ең сенімді және тәжірибиеде кең қолданылатын әдістердің бірі
ьолып есептеледі. Эль-Гамаль алгоритмі – көбісі мойындаған ашық кілтпен
шифрлеудің екінші әдісі. Осы RSA және Эль-Гамаль алгоритмдеріне
негізделіп ұлттық стандарттар қабылданған.
Қазіргі кезде біріктерілген жүйелер де қолданылады. Мысалға желі
арқылы жіберілгенде ақпарат DES типті симметриялық алгоритммен шифрленеді,
бірақ кілт ашық кілті бар RSA типті шифрлеу алгоритмі көмегімен шифрленген
түрде жіберіледі.
Негізінен мамандар криптоалгоритмдердің аталған классикалық сұлбаларын
өздігінен орындауға ұсынбайды, өйткені бұл сұлбалардың қиындығы жиі орындау
қателігіне әкеліп соғады, не алгоритм орындалуы тиімсіз болады. Жақсысы,
программалық қамтама базарында кеңінен ұсынылған дайын орындалуларды
қолданған дұрыс.
Шифрледің қарапайым түрілеріне ауыстыру және ауыстырып қою жатады.
Қарапайым шифрлеу туындылары (ауыстыру және ауыстырып қоюдың) бізге
сенімдірек, бірақ шифрлеудің және дешифрлеудің жеңілдігін қамтамассыз
ететін құрама шифрді береді. Қарапайым шифрлердің қайта – қайта алмасуы
берік алгоритм береді.
Бастушы программистердің сүйікті шифрлеу тәсілі XOR операциясының
көмегімен шифрлеу болып табылады. Бұл операция ерекшелігі, шифрлеу үрдісі
дешифрлеу үрдісіне сәйкес келеді, бұдан қорғаныс механизмін орындау өте
қарапайым.
Шын мәнінде,
0 xor 0 = 0
0 xor 1 = 1 (( Text xor Key = Shifr
1 xor 0 = 1 Shifr xor Key = Text
1 xor 1 = 0
Бұндай алгоритмдердің беріктілігі өте төмен (бұндай қорғаныс
механизміне негізделген жүйе базалық қуатқа ие) болып келеді. Бұл
механизмді бұзу теникасын төменде келтіреміз.
Негізінен, шифрлеуге негізделген қорғаныс механизмін орындаған кезде
кілттің құпиялығына және таңдауына үлкен назар аудару қажет. Сапалы
шифрлеудің критериі болып мына принцип болуы мүмкін:
шифр беріктілігі тек кілттің құпиялығымен анықталуы тиіс (Кирхгофф
ережесі).
Сенімдірек кілт болып қандайда бір тексерілетін параметр функциясының
мәні болып табылатын кілт есептеледі. Сапалы кілт ретінде қолданылатын
кодтың(критериялық бөлім) бақылау қосындысын қолдануды ұсынуға болады.
Тәжірибе жүзінде шифрлеуге негізделген келесі программаны қорғау
механизмі қолданылады.
Программа кодын шифрлеу.
Программа коды тек программа орынадалған кезде ғана шифр ашылатындай
етіп шифрленеді.
Прграмма фрагментін (бөлігін) шифрлеу
Шифрлеу үшін көбінесе программаның критериялық бөлігін таңдайды.
Екі жағдайда да статикалық та, және де динамикалық шифрлеуді
қолдануға болады. Статикалық шифрлеу кезінде барлық код (код фрагменты) бір
рет шифрланадыдешифрланады. Шифрленген түрде код ылғида сыртқы тасушыларда
сақталады. Ашылған түрде жедел жадыда болады. Динамикалық шифрлеу кезінде
программа үрдістері (немесе жеке фрагменттер) немесе программаның
критериялық бөліктері тізбектеліп шифрленедідешифрленеді.
Парольді шифрлеу
Бұл әдіс жоғарыда айтылған.
Деректерді шифрлеу
Шифрленген командаларды дешифрациядан кейін түрінен тану оңай,
сондықтан деректерді шифрлеу ұсынылады. Мамандармен пограмманың бастапқы
тексіндегі деректерді тікелей шифрлеу мойындалады.
1.6.2 Шартты-тегін программалық қамтаманың қорғану әдістері
Желілік технологиялардың дамуына байланысты программалық қамтамалар
жиі шартты – тегін түрінде тарала бастады. Бұл таралудың әдісі
пайдаланушыға программалық өнімді уақытша қолданыды ұсынады. Программа
өнімін тексеру (тестілеу) нәтижесінен кейін пайдаланушы бұл өнімді сатып
алу, не алмауына шешім қабылдайды. Бұндай әдістермен өзінің программалық
қамтамаларын тарататын авторларға программаны тегін қолдану уақытының шегін
тағайындау сұрағын шешу қажет.
Кейбір қу пайдаланушылар барлық әдіс – амалмен не программаның тегін
қолдану уақыт созуға, не тіпті барлық шектеуді алып тастауға ұмтылады.
Сондықтан, шартты –тегін программалық қамтаманы өңдірушілерге өзінің еңбегі
үшін материалдық сыйақы алу үшін өзінің програмасын қорғауға тура келеді.
Тәжірибиеде өңдірушілер қорғаныстың келесі принциптерін қолданады;
– Тіркелу кодтары;
– Уақыт бойынша шектеу;
– Жүктелу санын шектеу;
– Тітіркену экрандары(Nag Screen).
Тіркелу кодтары.
Пайдаланушыларды тіркеуге негізделіп жасалған программалығ қорғаныс
әдісі өте кең тараған.
Өңдірушілер пайдаланушылардың қолдануына не көру режимінде жұмыс
істейтін, не мүмкіншіліктері шектелген программаның тіркелмеген түрі деп
аталатын программаны ұсынады. Ақысын төлегеннен кейін пайдаланушы парольды
жәненемесе енгізуі программаның толық көлемде жұмыс істеуін қамтамассыз
ететін (программа түрінің ендігі аты тіркелген) тіркелу нөмірін алады.
Бұл қорғанысты қолдану кезінде авторлар негізінен екі жолмен жүреді.
Бірінші жағдайда енгізілген пароль немесе тіркелу нөмірі жай ғана эталонмен
салыстырылады. Екінші жағдайда (қорғаныс сенімдірек) пайдаланушының паролы
мен тіркелу нөміріне негізделген арнайыланған механизмдер (бұл көбінесе
математикалық түрлендірулер) көмегімен тіркелу коды генерацияланады.
Программа бұл кезде парольды енгізу модулімен (тіркелу кодымен), кодты
генерациялау механизмімен және алынған нәтижені кодтың түпнұсқасымен
салыстырумен толықтырылады.
Көптеген авторлар тегін программаны жұмысын шектейтін басқа да
әдістерді қолданады: уақыт бойынша шектелген немесе жүктелу саны бойынша
шектелген. Бұл жағдайларда өңдірушілер пайдаланушыларға танысу және
тестілеу үшін өнімнің толық түрін ұсынады.
Уақыт бойынша шектелген әдістің негізі, ол пайдаланушыларға не бірінші
жүктелгеннен кейін белгілі бір уақыт мерзімінен соң, не соңғы жүктелуі
белгілі бір датамен (уақыт) шектелген тегін программалық қамтаманы
қолдануға мүмкіндік береді. Бұл жағлайда программа ағымдағы датаны
(уақытты) оқитын және эталонмен салыстыратын функциялармен толықтырылады.
Жүктелу саны бойынша шектелген әдісі кезінде белгілі бір санашық
қолданылады, ол программаның әрбір жүктелуі кезінде белгілі бір мәнге
(немесе нөлге) жеткенше дейін артады (немесе кемиді). Одан кейін программа
не жүктелмейді, не көрсету түрінде жұмыс істейді.
Көңіл аударатын бір жай, аталған барлық программалық қамтамаларды
қорғаудың әдістерінде өңдірушілерге эталондық ақпаратты (тіркелу коды,
жүктелу уақыты немесе саны) бір жерде сақтауы және әр кезде ағымдағы
ақпаратпен салыстыруы қажет. Шын мәнісінде эталондық ақпаратты кілт болып
келеді, сондықтан аталған әдістердің бәрі кілтпен салыстыру әдістеріне
жатады.
Психологиялық әсер ету әдісі. Тіркелмеген пайдаланушыға экран бетіне
пайдаланушының тіркелмегені жөнінде шығарылған хабары психикалық әсер
етеді. Негізгі идея мынада, бұндай типті хабар терезе түрінде программамен
жұмыс әстеу сеансының барысында қайта – қайта шығарылады. Пайдаланушыға
жұмысты жалғастыру үшін бұл терезелерді қайта – қайта жабу қажет, ол оны
қайта - қайта аландатады және тітіркендіреді. Әдістің орындалуының ең
қызықтысы, бұндай терезелерді жабу үшін пайдаланушыға әркезде әртүрлі
пернетақтаға басу немесе ұзақ сөздерді енгізу қажет. Бұндай қорғанысты Nag
Screen – тітіркедіру экраны (ағлш. Nsg – тітіркендіру, жынды қылу) деп
атайды. Авторлар пайдаланушыны ылғида тітіркендіру арқылы оны программамен
жұмыс істеуден бас тартуға, не программа өнімі үшін ақысын төлеуге және
тіркелуге итермелейді деп үміттенеді.
Жоғарыда қарастырылған қорғаныстар орындау өте оңай, сондықтан кең
көлемде қолданылады. Бірақ басқа жағынан, олар сонымен қатар қорғанысты
бұзуда жақсы зерттелген, сондықтан басқа механизмдермен бірге қолдану
ұсынылады.
2 Программалық қорғанысты бұзу техникалары
2.1 Кілттік диск көмегімен қорғанысты айналып өту әдістері
Қорғаныстың техникалық әдісін білетін программист, міндетті түрде
қорғанысты бұзу технологиясын білу қажет, өйткені біріншіден басқа
жүйелердің қателігін қайталамау үшін, екіншіден сенімдірек және тиімдірек
механизмдерді құру үшін. Қорғаныс авторы сонымен бірге қазіргі бұзушылардың
құралдарымен өте жақсы таныс болу керек және программалық қамтаманың
қорғаныс жүйесін және механизмін жобалаған кезде сол программаны зерттеу
құралдарының (жөндеуіштер, дисассемблер, бақылаушы) мүмкіншілігін ескеру
қажет.
Бұл тарауда негізгі программалық қорғанысты алып тастайтын, өтіп
кететін және бұзатын идеяларды, әдістерді, алгоритмдер мен технологияларды
қарастырамыз. Және де қорғаныс механизмдерді жақсартатын бірнеше
ұсыныстарды береміз.
Кілттік диск көмегімен қорғанысты өтіп кетудің бірнеше әдістері бар.
Ең қарапайым әдісі – кілттік дискіні көшіру . Ескерте кетейік, көптеген
дәстүрлі әдістер стандартты көшіргіш – программалары үшін кілттік дискінің
көшірмесін құру мүмкін емес етуге есептелген. Дегенмен стандартты
көшіргіштермен қатар басқада арнайыланған программалар бар. Олар дискіні
көшіруді битке бит әдісі арқылы жүзеге асырады, былайша айтқанда бттік
көшіргіш. Көшіру кезінде бұндай программалар форматтаудың стандартты
параметрлерінен тәуелсіз болады, яғни жолашықтардың санын және нөмірін,
жолашықтардың секторларының санын және нөмірін, басқа да дискіні
ұйымдастыру ерекшкліктерін тексермейді. Олар тікелей жолашықтардың бірінен
соң бірін биттік түрде оқып, форматталмаған жолашықтарды елемейді. Кілттік
дискіні стандартты емес форматталуын қолданатын барлық әдістер, осылайша,
биттік көшіргіш көмегімен өтіліп кетуі мүмкін. Қазіргі кезде дискіні
аналогты көшіру (мысалға, биттік көшіруге арналған платалар) үшін арнайы
апаратураны қолданылады.
Кілттік дискі көмегімен қорғанысты алудың басқа әдісі - кілттік
дискіге жолдауды модельдеу. Бұл әдіс егер биттік көшіргіш өзінің дискінің
көшірмесін құру тапсырмасын орындай алмаған жағдайда қолданылады.
Негізгі идея кілттік дискіні имитациялауда. Арнайыланған имитатор –
программасы аппарттық үзулерді айырбастау арқылы қорғаныстың сұранысына
оған қажетті (қорғанысқа) аяқтау және қате кодтарын қайтаратындай етіп
құрылған. Бұл әдіс көмегімен әдетте, мысалы, үстінгі беті физикалық
зақымдалған дискінің қорғанысын алып тастай алады. Дәл осы үлгі бойынша
құрамында зақымдалған кластерлері бар дискілердің қорғанысын өтіп кетуге
болады. Мысалға, дискінің секторларын оқу арқылы алдын – ала кластердің
зақымдалған нөмірін анықтауға болады, ал кейін имитатор – программасын
құрып, қорғаныс механизміне қажетті сектор нөмірін қайтарады.
Дәстүрлі қорғаныс механизмдерін (атап өтейік негізінен DOS операциялық
жүйенің басқаруында жұмыс істеу кезінде қолданылады) сонымен бірге жадыдан
программаны көшіру сияқты әдіспен де бұзуға болады. Бұл әдіс идеясы DOS
жедел жады құрамындағы деректерді дискіге көшіруге мүмкіндік беретіне
негізделген.
2.2 Кілттік салыстыруға негізделген қорғанысты бұзу технологиясы
Практикада қолданылатын қорғаныстардың көпшілігі әсіресе түйіндік
салыстыруға неігізделгенін қайталаймыз. Шындығына келетін болсақ,
форматтаудың стандартсыз параматрлері және кілттік дисктің басқа да
параметрлері сияқты, сонымен қатар парольдар да, тіркеу нөмері де
(кодтар), программаны іске қосу мөлшері де программаны жасауды ақысыз
пайдалану уақытта да, орнатылған көшірмелер санаушы да негізінде
қорғаныстың кілті болып саналады. Болашақта қолданушы енгізілгендіктен
сақталған эталонды мәндермен міндетті түрде салыстыруға жатады, яғни
кілттік салыстыруға есептелген .
Бұзушыға ең алдымен бұзу үшін қорғалған программаның кодын зерттеу
және қорғаныс механизм жұмысының логикасын түсіну қажет. Сол себепті
бұзушының бірінші қадамы – программаларды дисассембрлеу.
Тәжірибиесіз программистердің арасында қорғаныстың алгоритмін талдау
- өте қиын жұмыс,себебі дисассембрлер өзінің жұмысының нәтижесінде іс
жүзінде түсіну мүмкін емес. Көптеген парақтарбереді деген адасушылық кең
тарағанын байқаймыз. Осыған сүйенетін авторлар
программалардыдисассембрлеуден алған қатар санын (ондаған, жүз мыңдаған,
миллиондаған) программаның өзінің қатарының санына тәуелділігін салыстыру
үшін жиі келтіреді.
Бұл адасушылық – ия, шындығында, мықты қорғанысты бұзу өте қиын жұмыс.
Жоғары квалификацияны қажет етеді. Бірақта бұзушыға қорғаныс механизмінің
жұмысының логикасын зерттеу үшін барлық дисассембрленген кодтарды түсіну
қажет емес. Қазіргі таңдағы, мықты интерактивті дисассембрлер(қазіргі кезде
олардың ішіндегі ең күштісі болып IDA – Interacnive DisAssembler саналады).
Үлкен көлемді функцияларды шақыру көптеген өткелдер және программалық басқа
да командаларының арасынан қорғаныс механизмдерін тез табуға мүмкіндік
береді.
Қорғаныс механизмін тауып алу әдістерінің идеясы қолданушыға
шығаралатын сұраныстар мен хабарға байланысты қатарды іздеуде жатыр.
Мысалы, “Парольді енгізіңіз”, “Пароль ОК”, “Пароль қате” сияқты парольды
қорғаныс жағдайында. Хабар - қатарларының өздері деректер сегментінде
орналасқандықтан, мұндай жолдарға сілтемені іздеу қажет. Көптеген
жағдайларда енгізілген парольды эталондымен салыстыратын қорғаныс механизмі
осындай сілтеменің маңайында орналасады. Ал интерактивті дисассемблер
бұзушыға мұндай сілтемелерді тез және оңай табу үшін жеткілікті құрал
береді.
Бұзушының екінші қадамы - шартты өту тармақшасы мен кілтті салыстыру
командаларын іздеу. Мысалы, парольды қорғаныс жағдайында жобамен келесідей
код күтіледі.
Call Cheek Password ; парольды тексеру
Or, ax, ax ; процесін шақыру.
J2 Password OK ; егер пароль дұрыс болса, Pus...Ok
; белгісіне өту
: ; пароль қате болған жағдайда
: ; орындалған программалар
Password Ok:... ; программаның негізгі бөлімі
Программма кез-келген парольді дұрыс пароль ретінде қабылдауы үшін JZ
шартты өткелін шартсыз JMP – мен ауыстыру жеткілікті. Тек жалғыз байтты (!)
ғана алмастырып бұзудың белгілі техникасы бар.
Программистер арасында парольды араластыру қорғанысты күшейтеді деген
ой кеңінен таралғаны таң қалдырады. Бұл адасушының мыналарға байланысты
болуы мүмкін, біріншіден, күрделі математикалық есептеулер программаның
кодын талдауы қиындатады, ал екіншіден нақты түрде жоқтарды қарау коды мен
парольді таба алмайды. Бұл жағдайда шындығына келгенде бұзушының барлық
қорғаныс механизмін және математикалық есептеулерді түсініп жатуына
қажеттілік жоқ, салыстыруды, шақыру командасын тауып, шартты өткелді
шартсызбен алмастыру (бұрынғыдай тек бір байт) жетіп жатыр. Мұндай
қорғанысты жүзеге асырудың артықшылығы программаларда енгізілген пароль
түпнұсқасымен емес, ол енгізілменген нақты парольді алмастыру нәтижелері
салыстырылады.
Парольді шифплеу көшірмемен қорғанысты жүзеге асырудың кең тарағаны
туралы да осылай айтуға болады. Көріп отырғанымыздай парольді шифрлеу
арқылы қорғанысты жүзеге асырудың кез-келген вариантында міндетті түрде
салыстыру командасы болады; не енгізілген пароль шифрленген және
сақталынған шифрленгентүрдегі эталонмен салыстырылады немесе шифрленген
эталон дешифрленеді де қолданушы парольмен салыстырылады.
Интерактивті дисассемблердің қазіргі кездегі версиялары контексті
іздеуді жүргізуге мүмүкіндік береді. Тәжірибиелі бұзушыға программаның
қозғалыс механизмін жедел түрде жергіліктендіру үшін іздеуге арналған
масканы дұрыс таңдап, көрсетуі жеткілікті. Мысалы, бұзушылар белгілі
тізбектелген команда сигнатурасын қосатын масканы пайдаланады.
call ? ; or ax,ax; j?
қосу хаьар жолына “Пароль қате” секілді сілтеме сонымен ... жалғасы
КІРІСПЕ 9
1 Программалық қорғаныс және оның негіздері 10
1.1 Программалық қамтаманы өндірушілерінің құқықтарын қорғау түрлері 10
1.2 Программалық қамтаманы қорғаудың классификациясы 10
1.3 Қорғаныстың техникалық құралдар түрі 11
1.4 Механизмдердің, алгоритмдердің, қорғаныс әдістерінің сенімділігі 11
1.5 Көшіруден қорғанудың дәстүрлі әдістері 13
1.6 Парольдік қорғаныс 19
2 Программалық қорғанысты бұзу техникалары 25
2.1 Кілттік диск көмегімен қорғанысты айналып өту әдістері 25
2.2 Кілттік салыстыруға негізделген қорғанысты бұзу технологиясы 26
2.3 Қорғаныстың крипторафиялық жүйесінің осалдығы 29
2.4 Толықтай таңдау шабуылы 31
3 Программаларды зерттеуден қорғау және программалық-аппараттық қорғаныс
35
3.1 Программаларды зерттеу құралдары 35
3.2 Программалық-апараттық қорғаныстың тағайындалуы 49
3.2.1 Заңсыз қатынастан қорғау 50
3.2.2 Қолданушының идентификациясы 51
3.2.3 Қолданушының аутенфикациясы 52
3.2.4 Электрондық кілттер 53
3.2.5 Программалық – аппараттық қорғанысты бұзу және қорғау әдістері 55
4 Экономикалық бөлім 57
4.1 Жалпы жағдай 57
4.2 Экономикалық есептеулер 60
5 Еңбек қорғау 68
5.1 Еңбекті қорғау туралы жалпы түсініктер 68
5.2 Санитарлы талаптар және ережелер 68
5.3 Электр қауіпсіздігі 69
5.4 Өрт қауіпсіздігі 73
ҚОРЫТЫНДЫ 77
ӘДЕБИЕТТЕР ТІЗІМІ 78
А ҚОСЫМША 80
КІРІСПЕ
Бұл дипломдық жұмыста қазіргі кезде кең таралған мәсәлелердің бірі
программалық қамтаманы заңсыз қолдану және одан қорғану жолдары
қарастырылған. Компьютерлік технология дамығаннан кейін программалық
қамтамаларға қызығушылық арта түсті. Кейбіреулердің программалық қамтаманы
заңды түрде сатып алуға жағдайлары жетпегендіктен, кейбіреулері сол арқылы
бизнес жасағысы келетіндіктен, ал кейбіреулер жай қызығушылықтан
программалық қамтаманы бұзуға кіріседі. Көріп отырғамыздай программалық
қамтаманы бұзудың ең негізгі себебі - экономикалық. Программалық қамтаманы
бұзу дегеніміз оны зерттеу. Бұзылған программалық қамтаманы одан ары
кейбіреулер өз игіліктеріне пайдаланады, жолдастарына таратады, ал
кейбірлер заңсыз көшіріп, өзінің тұпнұсқа бағасынан әлде қайда арзан етіп
“қара базарда” сатып, таратады. Бұзылған программалық қамтамалардың дұрыс
жұмыс істеуі, істемеуі екі талай және оларды қолданушылар түпнұсқасын
қолданушылары ие болатын артықшылықтарға ие бола алмайды. Сондықтан
программалық қамтаманы заңсыз көшіруін, таратуын, зерттеуін болдырмау үшін
біз программалық қамтамаға қорғаныс қоямыз. Сол қорғаныстың әдістері,
түрлері және мысалдары осы менім дипломдық жұмысымда қарастырылған.
1 Программалық қорғаныс және оның негіздері
1.1 Программалық қамтаманы өндірушілерінің құқықтарын қорғау түрлері
Программалық өнімді шығарушылардың заңдарын қорғаудың екі түрі
бар–заңды және техникалық.
Заңды қорғау компьютерлік программалардың авторларының құқығын заңды
түрде қорғауға негізделген.
Заңды қорғау программалық өнімнің авторлық құқығын бұзған адамды
азаматтық, қылмыстық, әкімшілік жауапкершілікке тартады. Заңды қорғау өте
тиімді, өйткені құқығы бұзылған авторға кеткен шығынды толық қайтарады.
Техникалық қорғау бұл негізінен техникалық құралдар көмегімен
программалық өнімді заңсыз пайдаланушыларға қолдануды қиындату немесе тіпті
болдырмауға бағытталған.
Техникалық құралдармен программалық өнімді қорғаудің бірнеше әдісі
бар:
1) Программаны басқа дискіге көшіруге қарсы әрекет жасау
2) Көшіруге рұқсат беріп, ал заңсыз көшірілген көшірмесінің жүктелуіне
немесе қолдануына қарсы әрекет жасау. Бұған қоса сол заңсыз
көшірілген программаның көшірмесін бұзушылармен зерттеуіне жол
бермеу.
3) Программаның көшірілуіне, қолдануына қарсы әрекет жасамай, бірақ
керек жағдайда программаның авторлылығын дәлелдейтін және заңсыз
түрде қолданылғаны жөнінде анықтайтын айғақты программаға орнату.
Программаларды шығаратын өндіруші фирмалар өздерінің прогммалық
өнімдерін қорғауда әртүрлі әдістерді қолданады. Кейбіреулер бұл мәселені
техникалық құралдар қорғанысының көмегімен шешеді. Олар өздерінің
программаларына қосады. Басқалары заңды қорғауды қолданады, мысалға
корпорация Microsoft. Өздерінің әйгілі программаларының құрамына өнімнің
көшірмесін болдырпайтын, көшіруге қарсы тұратын техникалық құралдар
қоғанысын қоспайды. Программалық өнімдер еркін көшіріледі, бірақ заңды
басқару ақпаратымен бірге. Корпорация өнім авторлық құқықпен және
халықаралық келісіммен қорғалғаны жөнінде ескертетін хабарды қолданады.
Жаңа технологиялық қорғаныс Microsoft корпорациясының оригинальды
өнімдері Windows 2000 операциялық жүйесімен и Office 2000 пакетінде енген.
1.2 Программалық қамтаманы қорғаудың классификациясы
Программалық қамтаманы қорғауды келесідей классификацияларға жіктеуге
болады:
– Заңсыз көшіруден(бейнелеуден) қорғау;
– Заңсыз қолданудан қорғау;
– Программаны зерттеуден қорғау;
– Программалық өнімді идентификациялау
Негізінен программалық өнімді бірмезгілде бірнеше әдіспен қорғауды
қолдансақ бұл өте сенімді болатыны сөзсіз. Сондықтан белгілі бір әдіске
негізделген техникалық немесе жүйелік қорғаныс туралы көп айтады.
1.3 Қорғаныстың техникалық құралдар түрі
Техникалық құрал қорғанысын бірнешеге бөлуге болады:
– Программалық;
– Аппараттық;
– Программа-аппараттық.
Программалық құрал қорғанысы болып программалық түрде қорғаныс.
Бұл ең қолайлы құрал.
Программалық қорғанысқа келесілерді ескеру қажет
Кез – келген программалық қорғанысты белгілі бір уақыт мезетінде
бұзуға болады.
Заңсыз көшіруден программалық қорғаныстың белгілі маманы А. Щербаков
былай дейді: Айтылған тұжырымды растайтын мынау, программаның қорғанысын
орындайтын командалар компьютерлермен анықталады(танылады) және де қолдану
кезінде машинналық командалар ретінде ашық түрде қатысады. Бұдан, бұл
командалар тізбегін кайтып қалпына келтірсек, қорғаныстын жұмысын түсінуге
болады
Аппараттық құрал қорғанысы деп әдейленген аппараттарды қолданатын
қорғаныс.
Аппараттық қорғаныс ең сенімді, бірақ өте қымбат және сондықтан
негізінен корпоративты тапсырушыларға ғана есептелген. Қазіргі уақытта
дүние жүзінде көптеген фирмалар және ұйымдар ыңғайлы және арзан, сонымен
қатар жеке қолданушыға есептелген аппараттық қорғанысты жасау үшін тер
төгуде.
Программалық – аппараттық құрал қорғанысы бұл программалық және
аппараттық қорғаныстардың жиынтығы.
Бұл оптимальды қорғаныс құралы. Олар аппараттық жағынан болсын,
программалық жағынан болсын артық болып келеді.
1.4 Механизмдердің, алгоритмдердің, қорғаныс әдістерінің сенімділігі
Программалық қамтама аумағындағы авторлық құқықты қорғауда
қолданылатын механизмдердің, алгоритмдердің, қорғаныс әдістерінің
сенімділігін анықтау үшін басындағы түсініктерді және стандарттар бойынша
ақпаратты технологиялар қауіпсіздігінің бағалауын негізге аламыз.
Ақпараттықтехнологиялар қауiпсiздiгiн бағалау аймағындағы негiзгi
құжаттар болып:
– сенiмдi компьютерлiк жүйелердi бағалаудың критериилерi(Trusted
Computer...) [5], оранжевая книга атауымен белгiлi, 1983 ж. АҚШ
қорғаныс министрлiгi шығарған.
– Ақпаратты технологиялар қауiпсiздiгiн бағалаудың критериилерi
(Information...) [6], Еуропа елдерiнiң гармондалған критериилерi деген
атпенбелгiлi. 1991 ж. Францияның, Герменияның, Голландияның және
Ұлыбританияның сәйкес орындарының атынан жарық көрдi.
– 1992 ж. қабылданған автоматтырылған жүйелер және есептеу техникалары
құрылғыларының қорғанысын бағалау критериясы бойынша Ресейдiң
нормативтiк құжаттары болып саналатын Ресейдiң Госттех коммисиясының
басқарушы құжаттары.
– Және соңғысы, ақпараттық технологиялардың қауiпсiздiгiн бағалаудың
жалпы критериилерi, бүкiл әлемдiк стандарт болып саналады. Мұнда 1999
ж. маусымда қабылданған, ақпараттық технологиялар қауiпсiздiгiн
бағалаудың дамыған нормативтi базасы келтiрiлген. Бұл стандартты
жасауға АҚШ, Канада, Англия, Франция, Гермения, Голландия қатысты.
– Келтiрiлген нормативтi – техникалық құжаттар позициясы жағынан
ақпараттық технологиялар қауiпсiздiгiн бағалау – бұл өнiмнiң
қауiпсiздiк қасиеттерiн зерттеу әдiстемесi немесе ақпараттық
технологиялар жүйесi.
Ескерту: бұл жерде қауiпсiздiктiң iшiнде бағалау нысанының
бүтiндiгiн, қатынасын, қамту түсiндiрiледi.
Ақпараттық технологиялар қауiпсiздiгiн бағалау сандық емес, сапалық
трге ие, және өзiмен бiрге анықталған түрде қауiпсiздiктi қамту
механизмдерiне, олардың тиiмдiлiгiне және iске асыру кепiлдемесiне
реттелген сапалы шарттарды келтiредi.
Қорғану механизмдерi мен әдiстерiнiң сенiмдiлiгiн бағалау үшiн
қолдануы тиiс ақпараттық технологиялардың қауiпсiздiгiн бағалау бойынша
құжаттардың базалық түсiнiгiн қарастырайық.
Сенiмдiлiк. Бағалау нысанының сенiмдiлiгi осы нысанаға келтiрiлген
сенiм деңгейi ретiнде қарастырылады.
Кепiлдiлiк. Сенiмдiлiк өлшемi ретiнде анықталады. Мұнда нысанның
қауiпсiздiк шаралары тиiмдi және дұрыс iске асырылған деп бекiтуге ьолады.
Iшкi (бұзуға ниеттенушiлер) және сыртқы (қате эксплуатацияланғандар)
қателерге қарсы қорғаныс механизмдерiнiң мүмкiндiктерiн тенксеру үшiн
қорғану механизмiнiң (әдiсiнiң) осалдығын бағалау өткiзу қажет.
Осалдықты бағалау кезiнде iшкi қателерге қарсы тұра бiлу жағынан
қажеттiлер:
– Механизмнiң осал жерлерiне талдау жасау;
– Механизмнiң қуаттылығын бағалау.
Осалдықты талдау кезiнде бұзышылардың қорғанысты бұзуы үшiн қолдануы
мүмкiн қорғаныс механизмдерiнiң мүмкiн болатын кемшiлiктерiн шығарады.
Бұзушылардың әр түрлi дәрежедегi дайындықтары мен қамтылу деңгейi
қарастырылады.
Осалдыққа анализ жасау негiзiнде қорғаныс механизмдерiнiң қуаттылығы
бағаланады.
Қорғаныс механизмдерiнiң қуаттылығы – қорғаныс мехенизмдерiнiң тiкелей
шабуылға қарсы тұра бiлу мүмкiндiгi.
Ескерту. Жалпы критерилерде қорғаныс механизмдерiнiң қуаттылығы
қауiпсiздiк функциясының күшi деген атқа ие болды.
Қорғаныс мехенизмiнiң қуаттылығы үшiн қуаттылықтың үш градациясы
анықталған – базалық, орта және жоғары.
Қорғаныс механизмiнiң қуаттылығы базалық деп бағаланады, егер талдауда
механизмнiң төменгi потенциалды шабуылға қарсы адекватты қорғанысын
қамтамассыз ете алатынын көрсететiн болса.
Басқа сөзбен айтқанда, егер де механизм жекелеген кездейсоқ қателерге
қарсы тұра алатын болса, онда қорғаныс механизмi базалық қуатқа ие.
Қорғаныс механизмiнiң қуаттылығы орташа деп бағаланады, егер талдауда
механизмнiң жеткiлiктi потенциалды шабуылға қарсы адекватты қорғанысын
қамтамассыз ете алатынын көрсететiн болса.
Басқаша айтқанда, егер де механизм шектелген қорлары және
мүмкiндiктерi бар бұзушыларға қарсы тұра алатын болса, онда қорғаныс
механизмi орташа қуатқа ие.
Қорғаныс механизмiнiң қуаттылығы жоғары деп бағаланады, егер талдауда
механизмнiң жоғары потенциалды шабуылға қарсы адекватты қорғанысын
қамтамассыз ете алатынын көрсететiн болса.
Қорғаныс механизмнiң жоғарғы қуаттылығы туралы мына жағдайда айту
керек, егер қорғаныс тек жоғары дәрежеде квалификацияланған бұзушымен
бұзылған болса.
Ары қарай бiз компьютерлiк программалардың авторларының құқығын
қорғаудың заңдық аспектiлерiн тереңiрек қарастырамыз, ал сосын программалық
қамтаманы қорғаудың техникалық құралдарын қарастырамыз.
Бұл тараудың осы бөлімінде қарастыратын программалық қорғанудың
әдістері программаның көшірмесін құруға, заңсыз көшірмесін жүктеуге немесе
қолданауға қарсы әрекетке негізделген.
Тағы бір айтып кетейік кез – келген программалық қорғанысты белгілі
бір уақыт мезетінде бұзуға болады.
Қай программалық қорғанысты бұзу кезінде бұзушы сол программанлық
өнімді сатып алуға немесе өзінің кодын құруға кететін шығынмен(материалдық
және уақыттық) салыстырғанда едәуір көп шығындалса, онда сол программалық
қорғаныс артық болып есептеледі. Басқа сөзбен айтқанда, программалық
қорғаныс сенімді болады, егер оны бұзу немесе қорғаныс механизмін өтіп кету
үшін бұзушыға жоғарғы потенциалды шабуылға ие болу қажет. Яғни жоғарғы
квалификацияға, белгілі бір материалды, еңбектік және уақыттық рессурстаға
ие болу керек.
Демек, программаның қорғанысының авторының алғашқы тапсырмасы –
қорғаныс механизмін анықтауды, зерттеуді немесе өзгертуді қиындату болып
табылады.
1.5 Көшіруден қорғанудың дәстүрлі әдістері
Ұзақ уақыт бойы программалық өнімдер иілгіш магнитті дискілер арқылы
таралғанына байланысты программалық өнімінің қорғаныстың ең өркендегені
болып иілгіш магнитті дискілерге орнатылғаны есептелді. Ал программалық
өнімді көшіруден қорғайтын әдістерін көбінесе дискілерді көшіреден қорғау
әдістері немесе қысқаша, дискілерді қоғау әдістері.
Иілгіш магнитті дискілерді көшіруден қорғау әдістері келесілерге
негізделген. Құрамында қорғалынатын программасы бар дискіге қандай бір,
кілттік белгі немесе кілт деп аталатын, жасырулы негізгі ақпарат
орнатылады. Кейде кілттік белгіні диск таңбасы деп атайды.
Құрамында кілттік белгісі бар дискіні кілттік диск деп атайды.
Егер де программаның көшірмесі бар дискіде кілт болмаса, онда бұл
заңсыз көшірме екеніне куәландырады.
Іс жүзінде кілттік дискінің көмегімен қорғанысты орындау үшін
программаның негізгі коды модульмен толықтырылады. Оның тапсырмасы
дискідегі кілтті тексеру немесе, басқа сөзбен айтқанда, кілттік салыстыру
болып табылады. Егер кілт күтілген кілтпен сәйкес келсе, онда басқаруды
программаның негізгі кодына беруі қажет, ал қарсы жағдайда – программаның
орындалуын тоқтату қажет.
Программаны көшіруден қорғаудың басты тапсырмасы кілттік белгіні басқа
дискіге көшіруді болдыртпау.
1.5.1 Кілттік дискілерді құру әдістері
Иілгіш магнитті дискілерді көшіруден қорғау үшін кілттерді құру
тәсілдерінің ең кең тарағандарын қарастырамыз.
Көшіруден қорғау үшін кілтті құрудың екі жолы бар:
1) Апараттық жолмен
2) Программалық жолмен
Бірінші жағдайда апаратура көмегімен (көбінесе үлкен дәлдік үшін лазер
көмегімен) диск бетінің кейбір бөлігі әдейі зақымдалады. Кейін зақымдалған
секторлардың номірлері анықталады(мысал ретінде әр секторға жазу жіне оқу
жолымен) және де солар қорғаныс кілтті болып табылады. Құрамында заңсыз
көшірмесі бар дискіде сәйкестірілген сектор номірлері зақымдалмаған,
өйткені көшіру құралдарымен зақымдалған секторларды оқу мүмкін емес.
Көшірменің легальдылығына тексерген кезде белгілі номерлі секторларға
белгілі ақпаратты жазып және оны есептеу қажет. Легеальды көшірме қатені
оқу немесе жазу кезінде анықтайды
Программалық әдістерде кілттік дискілерді құрудың бірнеше түрі бар.
Аппараттық әдіс сияқты негізгі идея құрыс оқылмайтын немесежәне
жазылмайтын кілт құру болып табылады.
Айтата кетейік, бастапқыда қорғаныстың программалық әдістері
стандартты форматы дискеталармен ғана танылатын программалық көшіруге
көзделген. Дискеттердің стандартты форматы форматтау параметрлері белгілі
мәнге ие болатын(цилиндрлердің, жолақтадың, диск секторларының номерациясы,
секторлар өлшемі және басқалар) қатал анықталған құрылыммен
қамтамасыздандырады. Мысал үшін диаметры 3,5 дюйма және сыйымдылығы 1,44
Мб дискеттердің стандартты цилиндр нөмірлері 0 - ден 79 - ға дейін, ал
секторлар 1 – ден 18 – ге дейін тізбектеліп өзгереді.
Егер де дискеттi ерекше (стандартсыз) түрде форматтап, кiлттi осындай
дискетте орналастыратын болсақ, онда әдеттегi көшiру программалары кiлттiк
белгiнi қайта жасай алмайды.
Осы идеяға негiзделген көшiруден қорғану әдiстерi мынандай жалпы атқа
бiрiккен – иәлгәш магниттi дисктi (стандартсыз) форматтау әдiсi. әдiстiң
жүзеге асырылуы, иiлгiш магниттi дисктiң бiр бөлiгiн (мiндеттi түрде
жүйелiк аймақтар қосу дисктiң кейбiр кеңiстiктерi) стандартты
параметрлермен форматталатындығында. Дисктiң қалған бөлiгi стандартсыз
түрде форматталады және мұнда қорғалатын программа орналасады. Стандартты
форматталған аймақта қорғалатын программаны орындауды жүктеуге және iске
қосуға арналған арнайы программа сақталады.
Дискетаны стандартсыз түрде форматтаудың көптеген әдiстерi мен
дискетада түйiндi ақпаратты сәйкес алмастыру құрылады. Бұл тәсiлдердi
түсiну оңайырақ болуы үшiн, иiлгiш магниттi дисктiң құрылымын және негiзгi
түсiнiктерiн қысқаша еске түсiремiз.
Иiлгiш магниттi дискте ақпараттар,мәлiметтер дисктiң екi бетiнде де
жазылған. Дисктiң әрбiр бетi сәйкес бастиекпен қызмет етiледi (дискетаның
төменгi жағы 0 нөмiрлi бастиекпен, төменгiсi – 1 нөмiрлi). Диск бетiнде
жолшықтар тiзбектелген. Жолшық – биттердiң тiзбектелуi түрiнде ақпарат
сақталған шоғырланған орта қарама – қарсы жатқан қос жолшық цилиндр деп
аталады. әрбiр жолшық программалық түрде (форматтау программасы)
секторларға орналастырылады. Барлық секторлардың ұзындықтары бiркелкi.
Секторлардың мөлшерi форматтау кезiнде анықталады.
Әрбiр секторда:
– синхрондау өрiсi (жол жиек) (екi, бiр сектор тақырыбы, басқасы – осы
сектордың аймағы);
– маркерлер, бiреуi – сектордың басын, екiншiсi сектордың мәлiметтер
аймағының басын кһрсетеді, сонымен қатар, әрбір жолшықта жолшық
басының маркері болады(маркерлердің мәліметтерден айырмашылығы, онда
синхрондау биттері бұзылуы жазбасының болуында);
– бастиек, сектор, цилиндр нөмірінен және сектор тақырыбының сектордың
логикалық кққрдинаттары бақылаулық қосындысынан (CRC) тұратын
идентификацияланған тақырып;
– сектордың деректер аймағы (DOS – стандарт үшін – 512 байт);
– деректердің бүтіндігін бақылауға арналған сектордың деректемелер
аймағындағы бақылаушы қосынды сақталатын өріс.
Келтірілген өрістерден басқа әрбір секторда тағы да екі арнайы өріс
бар: сектор тақырыбы зазор (16 байт) және құрылғыдағы қатенің алдын алуға
арналған мәліметтер аймағындағы аралық (50 байт).
Иілгіш дискті стандартты емес форматтау мен түйіндік белгіні
орналастырудың кейбір тәсілдерін қарастырайық:
Бұл берілген қорғаныс механизмдері қорғалған программаның көшірмелерін
стандартты прогораммалары көмегімен құрылуға арнап есептелген.
Кілтті арнайы форматталған қосымша жолшыққа орналастыру.
Мысалы, 1,44 Мб сыйымдылықтағы дискета үшін 80 – нөмірі (немесе одан
да көп) жолшықты форматтауға және онда кілтті орналастыруға болады.
Көшірудің стандартты программалары жолшықтан мұндай нөмірмен ақпаратты
көшіре алмайды.
Форматталған жолшықтар.
Көшірудің стандартты программалары жолашықтағыны соңғысына жеткенше
немесе форматталған жолшық кездестіргенше оқиды. Егер де бір жолшықты
форматтамай тастап кетсек, ол одан кейін түйіндік ақпаратты орналастыратын
болсақ, ол көшірілмейді.
Жолшықтағы стандартты емес нөмірленген секторлар.
Стандартты форматта жолшықтағы секторлар нөмірлері өсу бойынша
тізбектелген. Бірақ та ерікті нөмірленуі де мүмкін. Бұл жағдайда
секторлардың орналасуын тексеру стандартты және түйінді жолшықтағы екі
сектордың оқу аралығындағы уақыт өлшемімен жүзеге асырылады.
Сектордың стандартты емес өлшемі.
Қысқа өлшемді секторлардың көбірек санын форматтауға және ақпараттарды
ұзын секторлар түрінде жазуға болады.
Бұрыс бақылаулық қосындымен сектор құру.
Стандартты программалар бұрыс бақылаулық қосындысы бар секторларды
көшірмейді(сектор аймағының бақылаулық қосындысы жазылған өріч екі байт
орын алады). Мұнда секторға мәліметтерді жазғаннан кейінгі жазбаны үзу
көзделген, бірақ та бақылаулық қосындысының екінші байтты жазғанға дейін.
Бұл жағдайда қатынас ашық болғандықтан бақылаулық қосындысы мен сектор
мазмұнының сәйкессіздігі кілт болып табылады.
Бақылаулық қосындысының өзгеруі.
Секторды оқу кезінде операциялық жүйе бақылаулық қосындысы арнайы
алгоритм бойынша есептейді. Бақылаулық қосындыны есептеуде және
алгоритмдерді пайдалану арқылы стандартты құрылғылармен есептелген
бақылаулық қосынды CRC өрісіндегі жазбамен сәйкес келмейді, сол себепті
сектор оқылмайды.
Иілгіш магнитті дискілерді қорғау әдістері қорғалған программаларды
әрбір іске қосу кезінде түйіндік дискета дисководта болуы керек деп
есептейді. Бұл тиімді емес. Сонымен қатар программаларды винчестрге
инсталяциялау мүмкіндік бар.
1.5.2 Қатқыл дискілерде кілттерді құру әдістері
Қатқыл магнитті дискіде орналасқан, программаларды көшіруден қорғау
әдістерін қарастырамыз(қатқыл дискілерді қорғау әдістері).
Қатқыл дискілерде кілтті құру кезінде компьютердің жеке
ерекшеліктеріне талдау жасауға болады. Сол себепті дәстүрлі түрде
винчестрге, BIOS-қа, компьютер архитектурасына, программалық қамтама
жинағына және басқаларға байластыру әдісі қолданылады.
Винчестрге байластыру. Кілт ретінде қолдануға болатын қатқыл
дискілердің жеке-дара сипаттамаларына жататындар:
– қатқыл дисктің сериялық нөмірі (винчестрдің кейбір типтері үшін);
– bad – кластердің орналасуы(бұндай кламтерлердің болмауыда мүмүкін);
BIOS – байластыру мынандай параметрлерді тексеруді білдіреді:
– компьютердің типі;
– BIOS құру уақыты;
– BIOS жасауының сигнатурасы мен оның жадыдағы мекені;
– BIOS конфигурациялық кестесі;
– BIOS бақылау қосындысы;
– Кейбір үзулердің BIOS-қа кіру нүктелері және т.б.
Архитектураға байланысты – компьютердің конфигурациясын тексеруді
білдіреді:
– Иілгіш дискілердегі жинақтауыштың саны мен типі;
– Қатқыл дискілердегі жинақтауыштың саны мен типі;
– Бейне адаптердің типі;
– Жедел жады көлемі;
– Қосымша(өлшем) немесе кеңейтілген жадының болуы;
Кейде қолданылады:
– Клавиатура типі;
– “тышқан” және “желілік перо” монипуляторының интерфейсі мен
типі;
– параллель және тізбекті порттардың саны;
Программалық қамтамаға байластыру қатқыл дисктегі немесе жедел
жадыдағы арнайы программаларды тексеруді (көбінесе драйверлерді) білдіреді.
Кейде жүйелік файлдарда программалар мен командалардың іске қосылуының
арнайы тізбектілігінің болуын тексереді. Мұндай тексерулер көмегімен
алынған кілттер кездейсоқ сәйкестіктің үлкен ықтималдық күйіне сенімді.
Сонымен қатар, әрбір жаңа программалық қамтаманы орнатуда немесе
компьютердің конфигурациясы өзгергенде, мұндай кілтте өзгеруі тиіс,бұл
барлық уақытта тиімді емес.
Қатқыл магнитті дисктің кілтін алудың тағы бір жолы болып
аппаратураның өнімділігін өзгерту саналады:
– дисковод немесе винчестрдің айналу жылдамдығы;
– мегагерц бірлігіне дейінгі нақтылықтағы тактылы жилігі;
– жедел жадыға қатынас жасау уақыты;
– енгізу\шығару бағаныңқы жүйенің жылдамдығы және т.б.
Мұндай кілттің де сенімділігі жоғары емес.
Температураның ауытқуы, ауаның ылғалдылығы, желінің қысымдылығы,
компьютер бөлігінің төзімділігі келтірілген кейбір параметрге әсерін
тигізеді. Сонымен қатар, TURBO режимі қосылып\өшіріліп тұруы мүмкін. Кейбір
параметрлертек компьютердің бір партияларына ғана сәйкес келеді.
Қатқыл дискіге өзіндік кілтті құру үшін:
– қолданылған жолшықты стандартқа сәйкес емес форматтау.
Иілгіш дискті стандартты емес форматтау әдісіне ұқсас, бірақ мұнда
қосымша жолшық емес, пайдаланылмаған жолшық форматталады.
– жалған bad –кластерлерді белгілеу.
Сонымен бірге пайдаланушы псевдожаңылысуды байқау ықтималдылығын
төмендету үшін, мамандар FAT басына дейінгі бірінші басы орынды, немесе FAT
соңын белгілейді. Оны Speed Disk секілді құрылғылар көрсетпеуі үшін.
– ұзын оқу\жазу операцияларын пайдалану.
Бұл операциялар ұзындығы 516 байтқа дейінгі кеңейтілген сектормен
жұмыс істейді. Көріп отырғанымыздай, егер ұзын жазба операциясы, олсосын
қарапайым оқу операциясын орындаған болса, онда қосымша 4 байт оқылмайды.
Оларды тек ұзақ оқу операциясымен оқуға болады. Мұндай сектордың қарапайым
жазбасы қысқаша 4 байтты бұза алмайды.
– жүйелік файлдарды тізбекті бақылауымен модификациялау.
Программаны көшіруден қорғау үшін компьютердің өзіндік параметрлерін
немесе қатқыл дискті емес, ал сол қорғалып отырған программаның өзін,
дәлірек айтатын болсақ, ол өзі жазылған файлға бақылау жасауға болады.
Қатқыл диск үшін келесі сипаттама ерекше болып табылады:
– файлды (каталогты) құру уақыты;
– қолданылатын клстер нөмері;
– соңғы кластердің қолданылмаған жеріндегі ақпарат.
Мұндай кілттерді пайдаланғанда, оның дискті қайта ұйымдастыруда (қайта
фрагменттеу) тиімсіздігін есие ұстау керек. Файлдың орналасу орны
өзгеретіндіктен қорғалып отырған программа заңсыз көшірме сияқты
қабылданады.
Кілттік дискілерді пайдалануға негізделген қорғаныс әдістемесі
дәстүрлі болып саналады. Ең алдымен, себебі, кілттік диск бір уақытта
лицензиялылықты болып пайдалана алады. Сонымен қатар, өзінің барлық
кемшіліктерімен қорғаныстың бұл түрі өте арзан. Бүгінде DOS оаперациялау
жүйесімен басқарудағы жұмыс кезінде өздерін жақсы жағынан көрсетіп аталып
кеткен әдістер жиі қолданылып жүр. Біріншіден, еш қорғалмаған DOS
операциялық жүйесінің орнына көбірек қауіпсіздік функцияларын қолдайтын
операциялық жүйелер келіп жатыр. Бүгінде, мысалы WINDOWS NT операциялық
жүйесі артықшылығы жоқ қолданушыға дискке тікелей қатынас жасауға “Рұқсат
бермейді”, сол себепті кілтті қолданылмайтын немесе қосымша форматталмаған
жолшықта сақтауды және аналогты қабылдауды мақсат етіп алмаған.
Екіншіден,желілік технологичлардың қарқымды дамуы программалық
қамтаманы таратудың жаңа тәсілдерін айтады. Көбінесе авторлар өздерінің
өнімдерін иілгіш магнитті дискте немесе қазіргі уақыттағы компакт
дискілерді емес, ол компьютерлік желі арқылы тарату құрылғылар арқылы
таратады. Cол себепті дискілерді қорғаудың дәстүрі, әдістері актуалсыз
болуда. Олардың орнына қорғанудың басқа әдістері мен технологиялары келуде,
олардың көбісі дәстүрлі қорғанудың элементтерін қолданады.
1.5.3 Программалық қорғанудың базалық әдістері
Астында қарастыратын программалық қорғаныстың бұл әдістері заңсыз
пайдаланушылардың программаны жүктеуге жәненемесе қолдануға қарсы әрекет
жасау үшін арналған.
Заңсыз пайдаланудан программалық қорғаныстың базалық әдістеріне іс
жүзінде кең тараған әдістер жатады. Бұлар:
– Парольдік қорғаныс
– Шифрлеу
– Шартты-тегін программалық қамтаманың қорғану әдістері
1.6 Парольдік қорғаныс
Ең кең тараған программалық қамтаманы қорғаудың түрі бұл – парольга
негізделген қорғаныс. Парольдік қорғанысты орнатқан кезде программаның
жүктелуі парольдік және кейіннен енгізілген парольді түпнұсқасымен
салыстыратын сұраныспен ертіледі.
Пароль алфавит және арнайы белгілердің тізбектелген символдарынан
тұрады. Тізбек ең қысқа және ең ұзын ұзындықты қанағаттандыратындай
шектелуі керек.
Бірден айтып кетейік, парольдік қорғаныс белгілі бір аз пайдаланушылар
үшін арналған арнайыланған программалық қамтаманы қорғау кезінде ғана
қолдану ұсынылған. Егер де осындай әдіспен қорғалған программаны кең
көлемде қолданса, онда ең болмаса бір заңды пайдаланушы зиянкестерге
парольды хабарлап қойса жеткілікті бұл қорғалған программаның жалпыға ортақ
болуы ықтималдылығы жоғары.
Көңіл аударатын бір жай, парольді енгізу үрдісі кезінде дауыс шықпаса
да бақылау жүргізілуі мүмкін. Парольді енгізіп жатқан пайдаланушының
қасындағы адам пернетақтадан теру үрдісін бақылап отырып, енгізілген
символдарды есте сақтап қалуы мүмкін. Ол түгіл, троянский конь сияқты,
лайықты үзуді ұстап алуы арқылы пернетақтадан енгізілген паролды оқитын
және сақтайтын, арнайыланған программалар өте көп.
Жақсы қорғаныс жүйесі жақсы ұйымдастырылған болуы керек. Біріншіден,
пайдаланушыға дұрыс емес парольды шексіз енгіздірмей, енгізу санына белгілі
бір шек қоюы керек. Екіншіден, екі дұрыс емес енгізілген пароль арасында
белгілі бір уақыт аралығында қорғаныс жүйесін бұзу саның азайту мақсатында
арнайы уақыттық тежеу қойылады
Парольдің түпнұсқасын қорғалған программаға қолайлы және зиянкестерге
қолжетерсіз жерге сақтау қажет. Бұдан парольдік қорғанысты пайдаланатын
программаның авторларының негізгі тапсырмасы, парольдің түпнұсқасын жақсы
жасыру болып табылады.
Ісжүзінде эталондық парольді сақтау үшін келесі әдістер қолданылады:
1) Эталон қорғалған программада сақталады;
2) Эталон арнайы арналған бөлек файлда сақталады(бұл әдіс Windows-
програмаларын қорғау кезінде жиі қолданылады);
3) Эталон жүйелік аумақтарда сақталады(дискінің бос, қосалқы немесе
сирек қолданылатын аумақтарында). Мысал үшін, парольдің түпнұсқасы
түп каталог секторының соңғыларының біріне жазылған. Windows-
программаларын қорғау кезінде өңдірушілер парольдің түпнұсқасын
Registry дерек қор жүйесінде жиі сақтайды.
Жаңа үйреніп келе жатқан программиста біледі, парольді ашық түрде
сақтауға болмайды, өйткені, мысал үшін егер пароль қорғалынған программаның
өзінде болған жағдайда зиянкес эталонды парольды не программа сақталған
файл дампын қарап, не бүкіл текстік жолдарды баспаға шығаратын арнайы
программалар көмегімен өте оңай тауып ала алады
Негізінен қорғаныс авторлары не парольды белгісіз немесе өзінің
криптографикалық әдістермен шифрлайды, не парольды түрлендіру үшін хеш-
функциясын (хеш-суммасы) қолданады.Парольды хешифрлеу әдісі. Бұл әдістің
мәнісі мынада эталон ретінде парольдің өзін емес, ал автор қорғанысының
қолданған пароль символдарына жүргізілген математикалық
түрлендірулердің(осы түрлендірулер хэш-функциясы немесе хешифрлеу деп
аталады) нәтижесі сақталады. Программаны жүктеу кезінде пайдаланушының
енгізген паролы хешифрленеді және алынған нәтижені эталонмен салыстырады.
Көптеген жағдайда жай парольды сақтауды немесе парольды хешифрлеуді
қолданатын қорғанысты зиянкестерге өтіп кету өте оңай. Бұзушылардың айтуы
бойынша, - программада тек бір ғана байтты өзгерту жолымен.
Өзін жақсы жағынан көрсеткен әдіс бұл – парольды шифрлеу әдісі.
Шифрлеу криптотұрақты емес алгоритмді және қысқа парольды қолданғанның
өзінде бәрі бір алгоритмді зерттеуде, шабуылдайтын программаны жазуда біраз
еңбекті және сәйкес парольды іздеуде ұзақ уақытты қажет етеді. Шифрленген
парольды сақтауда аса үлкен көңілді программаның шифрлеу-дешифрлеу
алгоритмін зерттеуден қорғауға бөлу керек. Парольдың түпнұсқасы қандай
түрде сақталмасын(ашық, хеш-функция немесе шифрленген код), қорғаныс
механизмі орындалу кезінде пайдаланушымен енгізілген паролы түпнұсқамен
(кілтпен) салыстырылады. Бұдан парольдік қорғаныс кілттік салыстыру әдісіне
жатады.
1.6.1 Шифрлеу
Шифрлеу – бұл ақпаратты авторластырмаған кісілерден оның құрамын
жасыру мақсатында түрлндіру.
Авторластырған (авторластырмаған) кісілер – ақпаратқа оқуға, өзгертуге
және т.б. рұқсаты бар(жоқ) пайдаланушылар.
Дешифрлеу – ақпаратты қалпына келтіру, кері шифрлеу.
Ақпаратты шифрлеудің әдісән, алгоритмін және құралын криптография
зерттейді. Ақпаратты шифрлеуді қолданатын жүйелерді криптографиялық жүйелер
немесе криптожүйелер деп атайды.
Көптеген мамандар программалық қамтаманы қорғауда шифрлеу деректер
қауіпсіздігінің ең сенімді құралы болып табылады деп есептейді. Шифрлеу
программалық қамтаманы легальді емес қолданудан, өзгертуден, сонымен қатар
қорғалған программаның логикасының жұмысын зерттеуден қорғау үшін
қолданылады.
Криптографиялық әдістер және алгоритмдер көптеген әдебиеттерде толық
айтылған, мысалға , Ю.С. Харин, В.И. Берник, Г.В. Матвеев Криптологияның
математикалық негіздері. Сондықтан бұл жерде тек негізгі әдістер мен
криптоалгоритмдерді атап өтіп, программалық қамтамадағы авторлық құқықты
қорғауға арналған шифрлеудің қолдану әдістеріне тоқталамыз.
Атап өтейік, шифрлеу үшін қорғаныс авторы өзінің криптоалгоритмін
қолдануы мүмкін. Бірақ, көбінесе ұсынылатын шифрлеу алгоритмдері әлсіз
болып табылады, өйткені автор өзінің алгоритмдерінің беріктілігін
(сенімділігін) субьекті түрде асыра бағалап жібереді. Бәрінен де бұрын
бұның негізгі себебі, бүкіл қорғаныс авторлары криптоанализ саласында жақсы
маман болып келмейді.
Криптоанализ дешифрлеу әдістерін, алгоритмдерін, құралдарын, оған қоса
криптожүйенің беріктілігінің бағалауын біріктіреді.
Бұл жерде криптоалгоритмнің беріктілігі (сенімділігі) деп отырғанымыз
криптоаналитикке кілтті ашу үшін (немесе негізгі тексті) қажетті
компьютерлік операциялар саны.
Бұдан бізге енді қажеттісі криптошабуылды есептеу техникасында
орындаған кезде, сол уақыт ішінде шифрленген ақпарат өзінің құндылығын
жоғалтатындай машиналық уақытты қажет ететін, көптеген операциялар саны.
Ақпаратты қорғау мамандары жақсы зерттелген қасиеттері мен
кемшіліктері бар белгілі, берікті, математикалық негізделген
криптоалгоритмдердң қолдануды ұсынады.
Тәжірибе жүзінде негізінен криптожүйенің екі түрі қолданылады:
– Симметриялық
– Асимметриялық
Симметриялық криптожүйелерде сол бір құпия кілтпен шифрлеуде,
дешифрлеуде жүргізіледі. Ең белгілі, кең тараған симметриялық криптожүйелер
ұлттық стандарт болып есептелетін DES, GOST (ГОСТ), IDEA жүйелері
есептеледі.
Асимметриялық криптожүйелерде шифрлеу және дешифрлеу үшін әртүрлі
кілттер қолданылады. Құпия емес кілт(ашық) шифрлеу үшін қолданылады, ал
құпия кілт – дешифрлеу үшін қолданылады. Ашық кілт көмегімен кез-келген
адам ақпаратты шифрлей алады, бірақ тек құпия кілтті білетін адам ғана
дешифрлеуді жүргізе алады. Асимметриялық криптожүйені тағыда ашық кілт
жүйесі деп атайды. RSA шифрлеу әдісі осы ашық кілтпен шифрлеу әдісіне
жатады. Бұл ең сенімді және тәжірибиеде кең қолданылатын әдістердің бірі
ьолып есептеледі. Эль-Гамаль алгоритмі – көбісі мойындаған ашық кілтпен
шифрлеудің екінші әдісі. Осы RSA және Эль-Гамаль алгоритмдеріне
негізделіп ұлттық стандарттар қабылданған.
Қазіргі кезде біріктерілген жүйелер де қолданылады. Мысалға желі
арқылы жіберілгенде ақпарат DES типті симметриялық алгоритммен шифрленеді,
бірақ кілт ашық кілті бар RSA типті шифрлеу алгоритмі көмегімен шифрленген
түрде жіберіледі.
Негізінен мамандар криптоалгоритмдердің аталған классикалық сұлбаларын
өздігінен орындауға ұсынбайды, өйткені бұл сұлбалардың қиындығы жиі орындау
қателігіне әкеліп соғады, не алгоритм орындалуы тиімсіз болады. Жақсысы,
программалық қамтама базарында кеңінен ұсынылған дайын орындалуларды
қолданған дұрыс.
Шифрледің қарапайым түрілеріне ауыстыру және ауыстырып қою жатады.
Қарапайым шифрлеу туындылары (ауыстыру және ауыстырып қоюдың) бізге
сенімдірек, бірақ шифрлеудің және дешифрлеудің жеңілдігін қамтамассыз
ететін құрама шифрді береді. Қарапайым шифрлердің қайта – қайта алмасуы
берік алгоритм береді.
Бастушы программистердің сүйікті шифрлеу тәсілі XOR операциясының
көмегімен шифрлеу болып табылады. Бұл операция ерекшелігі, шифрлеу үрдісі
дешифрлеу үрдісіне сәйкес келеді, бұдан қорғаныс механизмін орындау өте
қарапайым.
Шын мәнінде,
0 xor 0 = 0
0 xor 1 = 1 (( Text xor Key = Shifr
1 xor 0 = 1 Shifr xor Key = Text
1 xor 1 = 0
Бұндай алгоритмдердің беріктілігі өте төмен (бұндай қорғаныс
механизміне негізделген жүйе базалық қуатқа ие) болып келеді. Бұл
механизмді бұзу теникасын төменде келтіреміз.
Негізінен, шифрлеуге негізделген қорғаныс механизмін орындаған кезде
кілттің құпиялығына және таңдауына үлкен назар аудару қажет. Сапалы
шифрлеудің критериі болып мына принцип болуы мүмкін:
шифр беріктілігі тек кілттің құпиялығымен анықталуы тиіс (Кирхгофф
ережесі).
Сенімдірек кілт болып қандайда бір тексерілетін параметр функциясының
мәні болып табылатын кілт есептеледі. Сапалы кілт ретінде қолданылатын
кодтың(критериялық бөлім) бақылау қосындысын қолдануды ұсынуға болады.
Тәжірибе жүзінде шифрлеуге негізделген келесі программаны қорғау
механизмі қолданылады.
Программа кодын шифрлеу.
Программа коды тек программа орынадалған кезде ғана шифр ашылатындай
етіп шифрленеді.
Прграмма фрагментін (бөлігін) шифрлеу
Шифрлеу үшін көбінесе программаның критериялық бөлігін таңдайды.
Екі жағдайда да статикалық та, және де динамикалық шифрлеуді
қолдануға болады. Статикалық шифрлеу кезінде барлық код (код фрагменты) бір
рет шифрланадыдешифрланады. Шифрленген түрде код ылғида сыртқы тасушыларда
сақталады. Ашылған түрде жедел жадыда болады. Динамикалық шифрлеу кезінде
программа үрдістері (немесе жеке фрагменттер) немесе программаның
критериялық бөліктері тізбектеліп шифрленедідешифрленеді.
Парольді шифрлеу
Бұл әдіс жоғарыда айтылған.
Деректерді шифрлеу
Шифрленген командаларды дешифрациядан кейін түрінен тану оңай,
сондықтан деректерді шифрлеу ұсынылады. Мамандармен пограмманың бастапқы
тексіндегі деректерді тікелей шифрлеу мойындалады.
1.6.2 Шартты-тегін программалық қамтаманың қорғану әдістері
Желілік технологиялардың дамуына байланысты программалық қамтамалар
жиі шартты – тегін түрінде тарала бастады. Бұл таралудың әдісі
пайдаланушыға программалық өнімді уақытша қолданыды ұсынады. Программа
өнімін тексеру (тестілеу) нәтижесінен кейін пайдаланушы бұл өнімді сатып
алу, не алмауына шешім қабылдайды. Бұндай әдістермен өзінің программалық
қамтамаларын тарататын авторларға программаны тегін қолдану уақытының шегін
тағайындау сұрағын шешу қажет.
Кейбір қу пайдаланушылар барлық әдіс – амалмен не программаның тегін
қолдану уақыт созуға, не тіпті барлық шектеуді алып тастауға ұмтылады.
Сондықтан, шартты –тегін программалық қамтаманы өңдірушілерге өзінің еңбегі
үшін материалдық сыйақы алу үшін өзінің програмасын қорғауға тура келеді.
Тәжірибиеде өңдірушілер қорғаныстың келесі принциптерін қолданады;
– Тіркелу кодтары;
– Уақыт бойынша шектеу;
– Жүктелу санын шектеу;
– Тітіркену экрандары(Nag Screen).
Тіркелу кодтары.
Пайдаланушыларды тіркеуге негізделіп жасалған программалығ қорғаныс
әдісі өте кең тараған.
Өңдірушілер пайдаланушылардың қолдануына не көру режимінде жұмыс
істейтін, не мүмкіншіліктері шектелген программаның тіркелмеген түрі деп
аталатын программаны ұсынады. Ақысын төлегеннен кейін пайдаланушы парольды
жәненемесе енгізуі программаның толық көлемде жұмыс істеуін қамтамассыз
ететін (программа түрінің ендігі аты тіркелген) тіркелу нөмірін алады.
Бұл қорғанысты қолдану кезінде авторлар негізінен екі жолмен жүреді.
Бірінші жағдайда енгізілген пароль немесе тіркелу нөмірі жай ғана эталонмен
салыстырылады. Екінші жағдайда (қорғаныс сенімдірек) пайдаланушының паролы
мен тіркелу нөміріне негізделген арнайыланған механизмдер (бұл көбінесе
математикалық түрлендірулер) көмегімен тіркелу коды генерацияланады.
Программа бұл кезде парольды енгізу модулімен (тіркелу кодымен), кодты
генерациялау механизмімен және алынған нәтижені кодтың түпнұсқасымен
салыстырумен толықтырылады.
Көптеген авторлар тегін программаны жұмысын шектейтін басқа да
әдістерді қолданады: уақыт бойынша шектелген немесе жүктелу саны бойынша
шектелген. Бұл жағдайларда өңдірушілер пайдаланушыларға танысу және
тестілеу үшін өнімнің толық түрін ұсынады.
Уақыт бойынша шектелген әдістің негізі, ол пайдаланушыларға не бірінші
жүктелгеннен кейін белгілі бір уақыт мерзімінен соң, не соңғы жүктелуі
белгілі бір датамен (уақыт) шектелген тегін программалық қамтаманы
қолдануға мүмкіндік береді. Бұл жағлайда программа ағымдағы датаны
(уақытты) оқитын және эталонмен салыстыратын функциялармен толықтырылады.
Жүктелу саны бойынша шектелген әдісі кезінде белгілі бір санашық
қолданылады, ол программаның әрбір жүктелуі кезінде белгілі бір мәнге
(немесе нөлге) жеткенше дейін артады (немесе кемиді). Одан кейін программа
не жүктелмейді, не көрсету түрінде жұмыс істейді.
Көңіл аударатын бір жай, аталған барлық программалық қамтамаларды
қорғаудың әдістерінде өңдірушілерге эталондық ақпаратты (тіркелу коды,
жүктелу уақыты немесе саны) бір жерде сақтауы және әр кезде ағымдағы
ақпаратпен салыстыруы қажет. Шын мәнісінде эталондық ақпаратты кілт болып
келеді, сондықтан аталған әдістердің бәрі кілтпен салыстыру әдістеріне
жатады.
Психологиялық әсер ету әдісі. Тіркелмеген пайдаланушыға экран бетіне
пайдаланушының тіркелмегені жөнінде шығарылған хабары психикалық әсер
етеді. Негізгі идея мынада, бұндай типті хабар терезе түрінде программамен
жұмыс әстеу сеансының барысында қайта – қайта шығарылады. Пайдаланушыға
жұмысты жалғастыру үшін бұл терезелерді қайта – қайта жабу қажет, ол оны
қайта - қайта аландатады және тітіркендіреді. Әдістің орындалуының ең
қызықтысы, бұндай терезелерді жабу үшін пайдаланушыға әркезде әртүрлі
пернетақтаға басу немесе ұзақ сөздерді енгізу қажет. Бұндай қорғанысты Nag
Screen – тітіркедіру экраны (ағлш. Nsg – тітіркендіру, жынды қылу) деп
атайды. Авторлар пайдаланушыны ылғида тітіркендіру арқылы оны программамен
жұмыс істеуден бас тартуға, не программа өнімі үшін ақысын төлеуге және
тіркелуге итермелейді деп үміттенеді.
Жоғарыда қарастырылған қорғаныстар орындау өте оңай, сондықтан кең
көлемде қолданылады. Бірақ басқа жағынан, олар сонымен қатар қорғанысты
бұзуда жақсы зерттелген, сондықтан басқа механизмдермен бірге қолдану
ұсынылады.
2 Программалық қорғанысты бұзу техникалары
2.1 Кілттік диск көмегімен қорғанысты айналып өту әдістері
Қорғаныстың техникалық әдісін білетін программист, міндетті түрде
қорғанысты бұзу технологиясын білу қажет, өйткені біріншіден басқа
жүйелердің қателігін қайталамау үшін, екіншіден сенімдірек және тиімдірек
механизмдерді құру үшін. Қорғаныс авторы сонымен бірге қазіргі бұзушылардың
құралдарымен өте жақсы таныс болу керек және программалық қамтаманың
қорғаныс жүйесін және механизмін жобалаған кезде сол программаны зерттеу
құралдарының (жөндеуіштер, дисассемблер, бақылаушы) мүмкіншілігін ескеру
қажет.
Бұл тарауда негізгі программалық қорғанысты алып тастайтын, өтіп
кететін және бұзатын идеяларды, әдістерді, алгоритмдер мен технологияларды
қарастырамыз. Және де қорғаныс механизмдерді жақсартатын бірнеше
ұсыныстарды береміз.
Кілттік диск көмегімен қорғанысты өтіп кетудің бірнеше әдістері бар.
Ең қарапайым әдісі – кілттік дискіні көшіру . Ескерте кетейік, көптеген
дәстүрлі әдістер стандартты көшіргіш – программалары үшін кілттік дискінің
көшірмесін құру мүмкін емес етуге есептелген. Дегенмен стандартты
көшіргіштермен қатар басқада арнайыланған программалар бар. Олар дискіні
көшіруді битке бит әдісі арқылы жүзеге асырады, былайша айтқанда бттік
көшіргіш. Көшіру кезінде бұндай программалар форматтаудың стандартты
параметрлерінен тәуелсіз болады, яғни жолашықтардың санын және нөмірін,
жолашықтардың секторларының санын және нөмірін, басқа да дискіні
ұйымдастыру ерекшкліктерін тексермейді. Олар тікелей жолашықтардың бірінен
соң бірін биттік түрде оқып, форматталмаған жолашықтарды елемейді. Кілттік
дискіні стандартты емес форматталуын қолданатын барлық әдістер, осылайша,
биттік көшіргіш көмегімен өтіліп кетуі мүмкін. Қазіргі кезде дискіні
аналогты көшіру (мысалға, биттік көшіруге арналған платалар) үшін арнайы
апаратураны қолданылады.
Кілттік дискі көмегімен қорғанысты алудың басқа әдісі - кілттік
дискіге жолдауды модельдеу. Бұл әдіс егер биттік көшіргіш өзінің дискінің
көшірмесін құру тапсырмасын орындай алмаған жағдайда қолданылады.
Негізгі идея кілттік дискіні имитациялауда. Арнайыланған имитатор –
программасы аппарттық үзулерді айырбастау арқылы қорғаныстың сұранысына
оған қажетті (қорғанысқа) аяқтау және қате кодтарын қайтаратындай етіп
құрылған. Бұл әдіс көмегімен әдетте, мысалы, үстінгі беті физикалық
зақымдалған дискінің қорғанысын алып тастай алады. Дәл осы үлгі бойынша
құрамында зақымдалған кластерлері бар дискілердің қорғанысын өтіп кетуге
болады. Мысалға, дискінің секторларын оқу арқылы алдын – ала кластердің
зақымдалған нөмірін анықтауға болады, ал кейін имитатор – программасын
құрып, қорғаныс механизміне қажетті сектор нөмірін қайтарады.
Дәстүрлі қорғаныс механизмдерін (атап өтейік негізінен DOS операциялық
жүйенің басқаруында жұмыс істеу кезінде қолданылады) сонымен бірге жадыдан
программаны көшіру сияқты әдіспен де бұзуға болады. Бұл әдіс идеясы DOS
жедел жады құрамындағы деректерді дискіге көшіруге мүмкіндік беретіне
негізделген.
2.2 Кілттік салыстыруға негізделген қорғанысты бұзу технологиясы
Практикада қолданылатын қорғаныстардың көпшілігі әсіресе түйіндік
салыстыруға неігізделгенін қайталаймыз. Шындығына келетін болсақ,
форматтаудың стандартсыз параматрлері және кілттік дисктің басқа да
параметрлері сияқты, сонымен қатар парольдар да, тіркеу нөмері де
(кодтар), программаны іске қосу мөлшері де программаны жасауды ақысыз
пайдалану уақытта да, орнатылған көшірмелер санаушы да негізінде
қорғаныстың кілті болып саналады. Болашақта қолданушы енгізілгендіктен
сақталған эталонды мәндермен міндетті түрде салыстыруға жатады, яғни
кілттік салыстыруға есептелген .
Бұзушыға ең алдымен бұзу үшін қорғалған программаның кодын зерттеу
және қорғаныс механизм жұмысының логикасын түсіну қажет. Сол себепті
бұзушының бірінші қадамы – программаларды дисассембрлеу.
Тәжірибиесіз программистердің арасында қорғаныстың алгоритмін талдау
- өте қиын жұмыс,себебі дисассембрлер өзінің жұмысының нәтижесінде іс
жүзінде түсіну мүмкін емес. Көптеген парақтарбереді деген адасушылық кең
тарағанын байқаймыз. Осыған сүйенетін авторлар
программалардыдисассембрлеуден алған қатар санын (ондаған, жүз мыңдаған,
миллиондаған) программаның өзінің қатарының санына тәуелділігін салыстыру
үшін жиі келтіреді.
Бұл адасушылық – ия, шындығында, мықты қорғанысты бұзу өте қиын жұмыс.
Жоғары квалификацияны қажет етеді. Бірақта бұзушыға қорғаныс механизмінің
жұмысының логикасын зерттеу үшін барлық дисассембрленген кодтарды түсіну
қажет емес. Қазіргі таңдағы, мықты интерактивті дисассембрлер(қазіргі кезде
олардың ішіндегі ең күштісі болып IDA – Interacnive DisAssembler саналады).
Үлкен көлемді функцияларды шақыру көптеген өткелдер және программалық басқа
да командаларының арасынан қорғаныс механизмдерін тез табуға мүмкіндік
береді.
Қорғаныс механизмін тауып алу әдістерінің идеясы қолданушыға
шығаралатын сұраныстар мен хабарға байланысты қатарды іздеуде жатыр.
Мысалы, “Парольді енгізіңіз”, “Пароль ОК”, “Пароль қате” сияқты парольды
қорғаныс жағдайында. Хабар - қатарларының өздері деректер сегментінде
орналасқандықтан, мұндай жолдарға сілтемені іздеу қажет. Көптеген
жағдайларда енгізілген парольды эталондымен салыстыратын қорғаныс механизмі
осындай сілтеменің маңайында орналасады. Ал интерактивті дисассемблер
бұзушыға мұндай сілтемелерді тез және оңай табу үшін жеткілікті құрал
береді.
Бұзушының екінші қадамы - шартты өту тармақшасы мен кілтті салыстыру
командаларын іздеу. Мысалы, парольды қорғаныс жағдайында жобамен келесідей
код күтіледі.
Call Cheek Password ; парольды тексеру
Or, ax, ax ; процесін шақыру.
J2 Password OK ; егер пароль дұрыс болса, Pus...Ok
; белгісіне өту
: ; пароль қате болған жағдайда
: ; орындалған программалар
Password Ok:... ; программаның негізгі бөлімі
Программма кез-келген парольді дұрыс пароль ретінде қабылдауы үшін JZ
шартты өткелін шартсыз JMP – мен ауыстыру жеткілікті. Тек жалғыз байтты (!)
ғана алмастырып бұзудың белгілі техникасы бар.
Программистер арасында парольды араластыру қорғанысты күшейтеді деген
ой кеңінен таралғаны таң қалдырады. Бұл адасушының мыналарға байланысты
болуы мүмкін, біріншіден, күрделі математикалық есептеулер программаның
кодын талдауы қиындатады, ал екіншіден нақты түрде жоқтарды қарау коды мен
парольді таба алмайды. Бұл жағдайда шындығына келгенде бұзушының барлық
қорғаныс механизмін және математикалық есептеулерді түсініп жатуына
қажеттілік жоқ, салыстыруды, шақыру командасын тауып, шартты өткелді
шартсызбен алмастыру (бұрынғыдай тек бір байт) жетіп жатыр. Мұндай
қорғанысты жүзеге асырудың артықшылығы программаларда енгізілген пароль
түпнұсқасымен емес, ол енгізілменген нақты парольді алмастыру нәтижелері
салыстырылады.
Парольді шифплеу көшірмемен қорғанысты жүзеге асырудың кең тарағаны
туралы да осылай айтуға болады. Көріп отырғанымыздай парольді шифрлеу
арқылы қорғанысты жүзеге асырудың кез-келген вариантында міндетті түрде
салыстыру командасы болады; не енгізілген пароль шифрленген және
сақталынған шифрленгентүрдегі эталонмен салыстырылады немесе шифрленген
эталон дешифрленеді де қолданушы парольмен салыстырылады.
Интерактивті дисассемблердің қазіргі кездегі версиялары контексті
іздеуді жүргізуге мүмүкіндік береді. Тәжірибиелі бұзушыға программаның
қозғалыс механизмін жедел түрде жергіліктендіру үшін іздеуге арналған
масканы дұрыс таңдап, көрсетуі жеткілікті. Мысалы, бұзушылар белгілі
тізбектелген команда сигнатурасын қосатын масканы пайдаланады.
call ? ; or ax,ax; j?
қосу хаьар жолына “Пароль қате” секілді сілтеме сонымен ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz