400 000+ дайын материалды
1 жыл бойы шексіз жүктеңіз
ҚМЖ, БЖБ, ТЖБ, презентациялар және авторлық материалдар
4 990₸/ 1 жыл
🔥Арнайы баға ·10.12.2026 дейін
Одан кейін - 29 990 ₸
Бір рет төлейсіз · Автотөлем жоқ
Тақырып бойынша 11 материал табылды

Java тілінде клиент-серверлік бағдарламасын құрып, ақпаратты криптографиялық қорғау

Материал туралы қысқаша түсінік
студенттерге, криптография туралы жалпы түсінік
Материалдың қысқаша нұсқасы

Java тілінде клиент-серверлік бағдарламасын құрып, ақпаратты криптографиялық қорғау


Ақпараттық телекоммуникациялық технологиялар даму ғасырында ақпараттық қауіпсіздігі мәселесі барлық адамзатты толғандыруда. Сол себепті диссертацияның негізгі алға қойған мақсаттары мен міндеттері осы мәселені жан-жақты талқылап нақты қолданбалы шешім ұсыну болып табылады. Бүгінгі қолданыстағы ақпаратты қорғау әдістері мен құралдарына шолу жасау. Криптография өзге адамдардың мәліметтерді қалыпты күйіне түрлендеруге қиын, алайда мәліметті алушы адам оны қалыпты күйіне оңай түрлендіре алатын мәліметтің шифрланған түріне келтіретін ұстанымдар мен тәсілдерді оқу болып табылады. Алайда криптография түсінігі тек жәй шифрлау мен шифрдан шығару деген түсініктенде жоғары. Тәжірибе жүзінде ол құрамында математиканың өзге де салаларынан қосымшаланған ақпараттар теориясының мамандандырылған бұтағы болып келеді. Криптография компьютерлік кауіпсіздігі үшін негізгі құрылыс блогы ретінде үлкен мағынаға ие және коммуникация қауіпсіздігінің негізгі аспектісі болып келеді [1].

Picture 3

Бүгінгі таңда Интернет қолданушылары үшін хабарламаларды жылдам алмасу қызметі (instant messanger) клиенттер үшін алмастыруға келмейтін құрал болып табылады. Барлығына мәлім және біз әрбір күні қолданатын көптеген протоколдар және клиенттер (MSN, ICQ, Skype және т.с.с) бар. Әрбір компьютер IP-адреске ие. Бұл адрес сіздің үйіңіздің адресіне ұқсас, яғни, ол сіздің компьютеріңізді идентификациялайды және басқаларға сіздің компьютеріңіз арқылы қарым-қатынас жасауға мүмкіндік береді. Желідегі компьютерлердің идентификациясы – домендік атауы компьютердің адресін қарапайым сандар жиынтығына қарағанда ыңғайлы әдісі. Бір компьютерде бірнеше программалар параллелді түрде орындалуы мүмкін. Өз компьютеріңізде он программаны іске қостыңыз деп алайық. Және олардың барлығы басқа компьютерлердің олармен байланысуды күтеді. Үлкен кеңседе он адам бір телефонмен жұмыс жасайды деп қарастырайық және оның барлығы да өз клиенттерінен қоңырау күтеді. Сіз бұл мәселені қалай шешесіз? Ол үшін телефонды клиенті хабарласып тұрған қызметкерге алып келетін жауапты қызметші тағайындауға болады.

Бірақ ол кезде басқа кызметкерлер телефонды күтіп қалады. Одан бөлек бұл қоңырауларға жауап беретін қызметші үшін қиын және қолайсыз. Егер бір компьютерде орындалатын программалар өз клиенттерінен белгілі IP-адрес арқылы хабарласуын сұрай алса, онда олардың клиенттерінің көңілі толмайды. Ол үшін әрбір программаға жеке IP-адрес қажет деп ойлайсыз ба? Олай емес! Бізге жеке-жеке телефон нөмірлері қажет болады. “Жеке-жеке телефон нөмері” желі тілінде порт деген атауға ие. Порт – бұл жай ғана сан және ерекшеленген компьютерлердегі орындалатын программалар жеке порт нөмерін таңдай алады.Ескеру қажет, бұл порттарды сіз компьютердің аппараттық құрылғысы емес.Бұл сандар – логикалық сандар. Толығырақ: желідегі белгілі бір компьютерді басқа компьютерлер көре алатын IP-адрес болады және компьютерде орындалып жатқан кейбір программаларды анықтайтын порт сандар беріледі. Сондай-ақ, әртүрлі компьютерлерде жұмыс жасап жатқан екі программа бір ғана портты қолдана алады. Формула жүзінде көрсетейік: IP-адрес = желідегі компьютердің ерекше адрес. Порт-сан = сәйкес компьютерде орындалатын программалар анықтайтын ерекше сан. IP-адрес + Порт-сан = Сокет. Нәтижесінде сокет дегеніміз IP-адрес пен Порт-тың жиынтығы. Сокет адрес желідегі басқа компьютерлерге белгілі бір компьютерлерде орындалып жатқан программаны анықтауға мүмкіндік береді.

Сокет адресті былай берсек болады: 64.104.137.58:80, мұндағы, 64.104.137.58 –IP-адрес және 80 – порт. Сокеттің мүмкіншілігін көрсету үшін келесі іс-әрекетті орындаймыз: Екі Java программа құрылады. Оның біреуі екіншісімен байланысу керек болады. Оның біреуін Client десек, екіншісін Server деп атаймыз. Клиент Сервермен сәтті байланысқаннан соң, клиент сіздің деректерді енгізгеніңізді күтіп, оны серверге жібереді. Толығырақ ашып қарасақ, алдымен екі программа құрамыз, Server.java и Client.java. Сервер – бұл бөлек компьютерде орындалған арнайы бағдарлама. Ал, клиент – серверден сұраныстар жіберіп, клиентке сұранысқа жауап деректерін қайтаратын программа. Хостта сервер жұмысы үшін негізі порт бөлінеді. Осы портқа клиент байланысу керек болады. Клиент хосттағы сервер байланысқан портпен байланысу үшін сокет құрылады. Клиент-серверлік жүйенің жұмысының алгоритмі мынадай түрде болады: - сервер хосттағы портпен байланысады және клиентпен байланысты күтеді; - клиент сокетті құрып, хосттағы портпен қосуды тырысады; - егер сокет сәтті құрылса, сервер клиенттен команданы күту режиміне түседі; - клиент команда әзірлейді және оны серверге жіберіп, жауапты күту режиміне түседі; - сервер осы команданы қабылдап, оны орындайды және жауапты клиентке жібереді және т.с.с.

Желілік бағдараламаларды ретке келтіруші аспаптық құралы telnet утилитасы болып табылады. Telnet утилитасы арқылы тек қана алыстағы компьютермен байланысу үшін ғана емес, сонымен қатар оның көмегімен әртүрлі желілік қызметтермен өзара әрекет жасауға болады. Төменде осы утилитаның ерекше қолдану мысалы көрсетілген. Ол үшін командалық жолда келесі команданы енгізіңіз: telnet time-A.timefreq.bldrdoc. gov 13 telnet утилитасы UNIX операциялық жүйесімен басқарылатын көп компьютерлерде жұмыс жасайтын уақытты есептеп беретін қызмет серверіне қосылады. Осы мысалда көрсетілгендей сервер Боулдер қаласы, Колорадо штатындағы Ұлттық стандарттар мен технологиялар институтында орналасқан. Оның жүйелік уақыты цезиялық атомдық сағаттармен синхрондалған. Қабылданған ережеге сәйкес уақыт қызметінің сервері әрқашан 13 портымен байланысады. Сервердің бағдарламалық қамтамасыздандыруы әрқашан алыстатылған компьютерде жұмыс жасайды және 13 порты арқылы желілік трафиктің түсуін күтеді.

Алыстатылған компьютерде 13 портқа жалғану туралы сұранысы бар желілік пакеттің операциялық жүйесін қабылдағаннан соң серверде сәйкес процесс іске асырылады және байланыс орнатылады. Мұндай байланыс оның кез келген бір қолданушысымен тоқтатылуы мүмкін. time-A.timefreq.bldrdoc. gov параметрлі telnet утилитасы іске қосылғаннан соң 13 порты арқылы байланыс сеансын бастау мақсатында тәуелсіз желілік бағдарламалық қамтамасыздандыру 132.163.4.104 IP-адресіне “time-A.timefreq.bldrdoc. gov” жолын түрлендіреді. Содан соң 13 порты арқылы берілген компьютермен байланысу сұранысын жібереді. Байланыс орнатылғаннан соң алыстатылған компьютердегі бағдарлама деректері бар жолды қайта жібереді, одан кейін байланысты үзеді. Клиенттер мен серверлер байланысты үзгенше оданда киынырақ диалогтарды жүргізуі мүмкін. Кодтың бірінші жолында сокет ашылады. Сокет – бұл желі арқылы деректер алмасу үшін бағдарламаларға байланыс орнатуға мүмкіндік беретін абстрактілі түсінік. Сокет құрылымына алыстатылған сервер адресі мен порт нөмері беріледі. Егер байланыс орнатылмаса UnknownHostException типті ерекшелік түрленеді, ал басқа қиыншылықтарды IOException типті ерекшелік жүзеге асады. UnknownHostException классы IOException классынан шыққын ішкі класс болып табылады, сондықтан берілген қарапайым мысалды суперкластағы ерекшелік қана өңделеді. Сокет ашылғаннан соң getInputStream () әдісі java.net.Socket класынан кез келген енгізу ағыны ретінде қолдануға болатын InputStream типті объектіні қайтарады. Енгізу ағынын алғаннан соң қарастырылып отқан бағдарлама әрбір енгізілген символдық жолды стандартты шығару ағынына шығаруды жүзеге асыруға кіріседі. Бұл процесс енгізу ағыны тоқтамайынша немесе сервермен байланыс үзілмейінше жалғаса береді.

Берілген бағдарлама тек өте қарапайым сервермен, мысалы, ағындағы уақытты есептеу қызметімен өзара әрекеттесе алады. Қиын жағдайларда клиент серверге деректерді алуға сұраныс жасайды, ал сервер сұранысқа жауапты жібергеннен соң кішкене уақыт аралығында орнатылған байланысты қолдай алады. Socket классы желіде жұмыс жасауда өте ыңғайлы, себебі, Java кітапханасының құралдарымен жүзеге асқан желілік байланыстың орнатылғандығы және желі арқылы деректер жіберілуі туралы барлық қиындықтар мен толығырақ ақпараттарды жасырады. Ал java.net пакеті файлдармен жұмыс жасау үшін қолданылатын дәл сол бағдарламалық интерфейсті көрсетеді. Айтылмыш хост немесе порт арқылы байланыс орнату үшін сокетті құрады: Socket(String host, int port); Сокеттен деректерді оқу үшін енгізу немесе сокетке деректер жазу ағынын алады: InputStream getInputStream(); OutputStream getOutputStream(); Сокеттен деректер оқу деректер қолжетімділігін жоймайынша жалғаса береді.

Егер хост қол жетпес болса, қолданбалы бағдарлама көп уақыт күтіп қалады және компьютер басқаратын операциялық жүйе күту периодын тоқтату моментін анықтағаныннан тәуелді болады. Нақты қолданбалы бағдарлама үшін өз бетінше сокетке ең сәйкес күту уақыт көлемін анықтауға болады, одан кейін осы көлемді миллисекундта орнату үшін setSoTimeout () әдісін шақырамыз. Оны былай жазамыз: Socket s = new Socket (. . .); s.setSoTimeout (1000); // күту уақыты 10 секундтан кейін бітеді Егер күту уақытының көлемі сокет үшін берілсе, онда барлық деректерді оқу және жазу тізбектелген операциялары орындалу кезінде күту уақытының бітуінен ағындағы операцияның аяқталғанға дейін SocketTimeoutException типті ерекшелігі арқылы түрленеді. Алайда бұл ерекшелікті берілген оқиғаға жауап қайтару үшін жаулап алуды келесідей іске асыруға болады. try { InputStream in = s.getInputStream (); // in енгізу ағынынан деректерді оқу ... } catch (InterruptedIOException exception) { күту уақытының бітуіне жауап қайтару } Сокет үшін күту уақытына байланысты қалайда болсын шешу керек қиындық туады. Төменде келтірілген құрылым хостпен алғашқы байланыс орнатылмайынша анықталмаған уақыт периодында блоктауды орната алады. Socket (String host, int port)

Бұл қиындықты былай шешуге болады, егер алдымен байланыспаған сокетті құрып, содан кейін белгіленген күту уақытымен байланыстырсақ: Socket s = new Socket (); s.connect (new InetSocketAddress(host,port),timeout); Алдымен клиент және сервер бағдарламасын құрайық. Сокетті құру және басқару үшін Java-да арнайы кластар бар: java.net.Socket және java.net.ServerSocket. Оның алдыңғысы клиент үшін, екіншісі сервер үшін. Бірінші орындалатын іс-әрекет хосттағы портқа қосылу. Оны орындау үшін ServerSocket класс құрылымының мүмкіншілігін пайдаланамыз. Ескеретін жағдай, құрылым IOException типті ерекше жағдайларды алып тастайды, яғни try – catch блогын қолданамыз. Кодка түсініктеме берсек. public class client extends JFrame implements Runnable- client атты ішкі класс құрылды, ішкі класта потокты құру интерфейсі болады.

Енді бағдарламалар байланысу үшін сокет құрамыз, біздің жағдайда ол connection деп аталады. Оны анықтау үшін public void run() класында, try-catch блогы ішінде құрамыз. Себебі, онда ерекше жағдайлар болғанда кластан шығу үшін орындалу үшін. Сервер көп ағынды болу үшін Thread қосамыз. Java-да көпағынды бағдарламаларды немесе графикалық интерфейс басқа функция орындасада, қолданушы қолдануына мүмкіншілік береді. Сервердің басты мақсаты клиенттің серверге қосу туралы сұранысын орындау, оның логин және паролініңдұрыстығын тексеру, егерде дұрыс болған жағдайда ғана оған бір ағын беріп, сол ағын арқылы шифрланған хабарламалардың қауіпсіз жетуін қадағалау. Ол ағын жұмысын бастап және аяқталуына әсерлеседі.

Материалды Word форматында жүктеп аласыз
Тарифке кіреді
0 ұстаз жүктеп алған
1 наурыз
422
Бұл материалды қолданушы жариялаған. UstazTilegi материалдың мазмұны мен авторлық құқықтарына жауап бермейді. Авторлық құқық бұзылған жағдайда шағым қалдыра аласыз
"Ұстаз" платформасында тіркелген пәндік олимпиадалар
Аттестацияға жарамды екенін көру үшін "Ұстаз" платформасында "Жарыстар, олимпиадалар тізімінен "Ustaz tilegi" деп іздесеңіз шығады
Қазақстандағы ең үлкен материалдар базасынан іздеу
Сіз үшін 400 000 ұстаздардың еңбегі мен тәжірибесін біріктіріп, ең үлкен материалдар базасын жасадық. Төменде керек материалды іздеп, жүктеп алып сабағыңызға қолдана аласыз
Осы тақырыпта
көрнекілік керек па?
10 000 астам көрнекіліктерді жинап қойдық.
Көрнекілік бөліміне өтіп тақырыбын жазып жүктеп алыңыз!
Министірлікпен келісілген Аттестацияға жарамды курстар тізімі