Guruh talabasi: Yoqubov Doniyor


Download 127.47 Kb.
Sana03.12.2023
Hajmi127.47 Kb.
#1797790
Bog'liq
Doniyor5


O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI.




INFOKOMMUNIKATSIYADA DASTURLASH FANIDAN
5-Amaliy ish.

431-21 guruh talabasi: Yoqubov Doniyor.

TOSHKENT 2023.


Tarmoqda xavfsiz soketlarlarni yaratish
Ishning maqsadi:
Talabalarda Java dasturlash tilining javax.net.* va javax.net.ssl.* paketlari klasslaridan foydalanib tarmoqda xavfsiz soketlarlarni yaratish bo‘yicha amaliy ko‘nikmalar hosil qilish.
Nazariy qism:
Xavfsiz soketlar. AT&T AQSh Milliy Xavfsizlik Agentligiga barcha kliyentlarning internet trafigiga paketlarni kommutatsiya markazlarida maxfiy xonalarga oʻrnatilgan ma’lumotlarni qayta ishlash qurilmalariga nushalash orqali toʻliq ulanish imkonini berdi. Britaniyaning GCHQ kompaniyasi jahonning koʻpgina telefon qoʻngʻiroqlari va Internet trafigiga ega boʻlgan optik tolali kabellarga kirib bordi. Shvetsiyada Milliy mudofaa radioeshittirish instituti optik tolali kabel egalari oʻz binolarida tolalar aks ettirish uskunalarini oʻrnatishlarini talab qiladi va bu biz biladigan narsalarni eshitib turadigan hukumatning kichik bir misolidir.
Internet foydalanuvchisi sifatida kuzatuvchilarga qarshi himoya qilish kerak. Internet ulanishlarini yanada xavfsiz qilish uchun soketlarni shifrlash mumkin. Bu esa, tranzaktsiyalarning konfidentsial, autentifikatsiya qilingan va toʻgʻri boʻlishiga imkon beradi.
Ammo, shifrlash murakkab masala. Uni toʻgʻri bajarish ma’lumotlarni faqat shifrlash uchun ishlatiladigan matematik algoritmlarni emas, balki kalitlarni va shifrlangan ma’lumotlarni almashish uchun ishlatiladigan protokollarni ham batafsil tushunishni talab qiladi. Hatto kichik xatolar qurilmadagi katta teshikni ochishi va aloqani xavfli boʻlishiga olib kelishi mumkin. Shifrlash dasturiy ta’minotini yozish eng yaxshi mutaxassislarga topshirilgan vazifadir. Yaxshiyamki, nomutaxassislar oddiy protokol va algoritmlar bilan mutaxassislar tomonidan yaratilgan dasturiy ta’minot yordamida aloqaning xavfsizligini ta’minlaydi. Internet doʻkondan biror narsa buyurtma qilganingizda, operatsiyani


amalga oshirish jarayoni shifrlangan va tasdiqlangan protokol hamda algoritmlardan foydalanib autentifikatsiya qilinadi. Internet doʻkonlar bilan aloqa qiladigan dasturiy ta’minot dasturini yozmoqchi boʻlgan dasturchilar protokol va algoritmlar haqida bir oz koʻproq ma’lumotga ega boʻlishi kerak. Agar siz internet doʻkonni boshqarayotgan server dasturini boshqa dasturlardan foydalanmasdan yozmoqchi boʻlsangiz koʻproq tajribaga ega boʻlish zarur.
Java Secure Sockets Extension (JSSE) Secure Sockets Layer (SSL) va Transport Layer Security (TLS) protokollari va ularga bogʻliq algoritmlar yordamida tarmoq aloqalarini xavfsizligini ta’minlash mumkin. SSL veb- brauzerlar va boshqa TCP kliyentlarining HTTP va boshqa TCP serverlari bilan turli xil konfidentsiallik va autentifikatsiya darajalarida aloqa qilish imkonini beradigan xavfsizlik protokoli.
Xavfsiz aloqa. Internet kabi ochiq kanal orqali konfedentsial aloqalar ma’lumotlarning shifrlangan boʻlishini talab qiladi. Kompyuterda koʻpgina shifrlash sxemalari matn bilan cheklanmagan, umumiy parolning kalitiga asoslangan. Matematik algoritmga muvofiq kalitning bitlari bilan birlashtirilgan oddiy matnli xabar shifrlangan matnini yaratadi. Bitlar sonini oshirish orqali xabarlarni deshifrlashni qiyinlashtiradi.
An’anaviy yopiq kalit (yoki simmetrik) shifrlashda, bitta kalit ma’lumotlarni shifrlash va deshifrlash uchun ishlatiladi. Yuboruvchi va qabul qiluvchi bitta kalitni bilishi kerak. Tasavvur qiling, Anvar Sobirga maxfiy xabar yuborishni xohlaydi. U avval Sobirga sirli almashuv uchun foydalanadigan kalitni yuboradi. Lekin kalitni shifrlash mumkin emas, chunki Sobirning kaliti hali mavjud emas, shuning uchun Anvar kalitni shifrlanmagan joʻnatishi kerak. Eldor, Anvar bilan Sobir oʻrtasidagi aloqani eshitib turuvchi. U kalitni Sobir bilan bir vaqtning oʻzida oladi. Shundan boshlab Anvar va Sobir shu kalit yordamida joʻnatilgan xabarlarni Eldor eshitib turadi.
Ochiq kalit (yoki assimetrik) shifrlashda ma’lumotlarni shifrlash va deshifrlash uchun turli xil kalitlardan foydalaniladi. Ochiq kalit deb ataladigan bitta kalit ma’lumotni shifrlaydi. Bu kalit ixtiyoriy odamga berilishi mumkin.

*********************************************


import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
public static void main(String[] args) throws IOException {
Socket socket = null;
InputStreamReader inputStreamReader = null;
OutputStreamWriter outputStreamWriter = null;
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;

ServerSocket serverSocket=null;


serverSocket=new ServerSocket(1234);

while (true) {
try {
socket=serverSocket.accept();
inputStreamReader = new InputStreamReader(socket.getInputStream());
outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
bufferedReader = new BufferedReader(inputStreamReader);
bufferedWriter = new BufferedWriter(outputStreamWriter);

while (true){
String msgFromCliend = bufferedReader.readLine();
System.out.println("Client"+msgFromCliend);
bufferedWriter.write("MSG Resived");
bufferedWriter.newLine();
bufferedWriter.flush();

if (msgFromCliend.equalsIgnoreCase("BYE"))
break;
}
socket.close();
inputStreamReader.close();
outputStreamWriter.close();
bufferedWriter.close();
bufferedReader.close();

} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}


import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class Client {


public static void main(String[] args) {
Socket socket = null;
InputStreamReader inputStreamReader = null;
OutputStreamWriter outputStreamWriter = null;
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;

try {
socket = new Socket("localhost", 1234);


inputStreamReader = new InputStreamReader(socket.getInputStream());
outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
bufferedReader = new BufferedReader(inputStreamReader);
bufferedWriter = new BufferedWriter(outputStreamWriter);

Scanner scanner = new Scanner(System.in);

while (true) {
String msgToSend = scanner.nextLine();

bufferedWriter.write(msgToSend);


bufferedWriter.newLine();
bufferedWriter.flush();

System.out.println(("Server :" + bufferedReader.readLine()));

if (msgToSend.equalsIgnoreCase("BYE"))
break;
}

} catch (IOException e) {


throw new RuntimeException(e);
} finally {
try {
if (socket != null)
socket.close();
if (inputStreamReader != null)
inputStreamReader.close();
if (outputStreamWriter != null)
outputStreamWriter.close();
if (bufferedReader != null)
bufferedReader.close();
if (bufferedWriter != null)
bufferedWriter.close();

} catch (IOException e) {


e.printStackTrace();
}
}

}
}






Download 127.47 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling