Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej

Wielkość: px
Rozpocząć pokaz od strony:

Download "Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej"

Transkrypt

1 Ćwiczenie 9 - Zaawansowane metody programowania w sieci komputerowej Bezpieczne gniazda Poufna komunikacja przez otwarte medium, takie jak Internet, która ma uniemożliwiać podsłuch, bezwzględnie wymaga szyfrowania danych. Większość algorytmów szyfrowania, które mogą być realizowane przez komputery, opiera się na pojęciu klucza - rodzaju hasła, które nie jest ograniczone do tekstu. Komunikat pisany jawnym tekstem jest łączony z bitami klucza według pewnego algorytmu matematycznego, w wyniku czego otrzymuje się tekst zaszyfrowany. Używanie kluczy o większej liczbie bitów wykładniczo utrudnia odszyfrowanie komunikatu przez odgadywanie kluczy metodą brutalnej siły. W tradycyjnym szyfrowaniu kluczem tajnym (czyli szyfrowaniu symetrycznym) ten sam klucz służy do szyfrowania i deszyfrowania danych. Zarówno nadawca, jak i odbiorca muszą mieć jeden klucz. Przypuśćmy, że Anna chce wysłać Markowi tajną wiadomość. Najpierw wysyła Markowi klucz, który posłuży do przesłania sekretu. Klucz nie może jednak być zaszyfrowany, ponieważ Marek nie zna jeszcze klucza, więc Anna wysyła go w niezaszyfrowanej postaci. Załóżmy teraz, że Jan podsłuchuje połączenie między Anną i Markiem. Uzyska on klucz w tym samym momencie co Marek. Od tej chwili będzie mógł odczytywać wszystko, co Anna i Marek sobie przekazują. W szyfrowaniu kluczem publicznym (czyli szyfrowaniu asymetrycznym) do szyfrowania i deszyfrowania danych używa się innych kluczy. Jeden, nazywany kluczem publicznym, służy do szyfrowania danych. Ten klucz można dać każdemu. Drugi, nazywany kluczem prywatnym, służy do deszyfrowania danych. Musi być utrzymywany w tajemnicy, ale wystarczy, że będzie go miał tylko jeden z korespondentów. Jeśli Anna chce wysłać wiadomość do Marka, prosi go o klucz publiczny. Marek wysyła Annie klucz przez niezaszyfrowane połączenie. Anna szyfruje swoją wiadomość kluczem publicznym Marka i wysyła ją. Jeśli Jan podsłuchiwał, kiedy Marek przesyłał Annie klucz, to przechwycił klucz publiczny Marka. Nie pozwoli mu to jednak na rozszyfrowanie wiadomości przesłanej przez Annę, bo do tego niezbędny jest klucz prywatny Marka. Wiadomość jest bezpieczna nawet wtedy, gdy klucz publiczny zostanie przechwycony. Szyfrowanie asymetryczne może być także używane do uwierzytelniania i sprawdzania integralności komunikatów. Anna może na przykład zaszyfrować wiadomość swoim kluczem prywatnym. Kiedy Marek otrzyma wiadomość, spróbuje 1

2 rozszyfrować ją za pomocą klucza publicznego Anny. Jeśli to się uda, Marek będzie wiedział, że wiadomość przyszła od Anny - nikt inny nie mógłby utworzyć wiadomości, którą dałoby się poprawnie rozszyfrować za pomocą klucza publicznego Anny. Marek będzie również wiedział, że wiadomość nie została zmodyfikowana po drodze, albo celowo (przez Jana), albo przypadkowo (przez błędne oprogramowanie albo szum sieciowy), ponieważ każda zmiana uniemożliwiłaby jej rozszyfrowanie. Anna mogłaby także zaszyfrować wiadomość dwukrotnie, raz swoim kluczem prywatnym, a raz kluczem publicznym Marka, zyskując za jednym zamachem poufność, uwierzytelnienie i ochronę integralności. W praktyce szyfrowanie kluczem publicznym dużo bardziej obciąża procesor i jest znacznie wolniejsze niż szyfrowanie kluczem tajnym. Zamiast więc szyfrować całą komunikację za pomocą klucza publicznego Marka, Anna szyfruje tylko tradycyjny tajny klucz i przesyła go Markowi. Marek rozszyfrowuje go za pomocą swojego klucza prywatnego. Teraz Anna i Marek znają tajny klucz, a Jan nie. Dzięki temu Anna i Marek mogą skorzystać z szybszego szyfrowania kluczem tajnym, a Jan nie będzie mógł ich podsłuchać. Jan może jednak zaatakować ten protokół w inny sposób. (Bardzo ważne: atakowany jest protokół wysyłania i odbierania wiadomości, a nie same algorytmy szyfrujące. Atak ten nie wymaga złamania algorytmu szyfrującego i jest zupełnie niezależny od długości klucza). Jan nie tylko może odczytać klucz publiczny Marka w drodze do Anny, ale może też zastąpić go swoim własnym! Kiedy Anna będzie myślała, że szyfruje wiadomość kluczem publicznym Marka, w rzeczywistości będzie szyfrowała go kluczem Jana. Kiedy wyśle wiadomość, Jan przechwyci ją, rozszyfruje swoim kluczem prywatnym, zaszyfruje go kluczem publicznym Marka i prześle dalej do Marka. Nazywamy to atakiem typu człowiek w środku (ang. man-in-the-mid-dle). Jeśli Anna i Marek byliby zdani tylko na siebie, nie mogliby w prosty sposób się zabezpieczyć przed takim atakiem. Najpraktyczniejsze rozwiązanie polega na tym, że Marek i Anna przechowują i weryfikują swoje klucze publiczne w zaufanym, niezależnym urzędzie certyfikacyjnym. Zamiast przesyłać sobie klucze publiczne, pobierają je z urzędu certyfikacyjnego. Nadal nie jest to rozwiązanie idealne = Jan może wkraść się między Marka i urząd certfikacyjny, Annę i urząd certyfikacyjny oraz Annę i Marka - ale utrudnia zadanie Janowi. Jak widać na tym przykładzie, teoria i praktyka szyfrowania oraz uwierzytelniania -zarówno algorytmy, jak i protokoły - to trudna dziedzina, usłana polami 2

3 minowymi, na których poległ niejeden kryptograf-amator. Dużo łatwiej jest opracować zły niż dobry algorytm lub protokół szyfrujący, w dodatku nie zawsze wiadomo, które algorytmy i protokoły są dobre, a które nie. Żeby używać mocnego szyfrowania w swoich sieciowych programach Javy należy skorzystać z Java Secure Socket Extension (JSSE). JSSE to standardowe rozszerzenie Javy 1.2 i nowszych wersji, które wyręcza cię w szczegółach negocjowania algorytmów, wymiany kluczy, uwierzytelniania korespondentów i szyfrowania danych. JSSE pozwala na tworzenie gniazd klientów i serwerów, które niewidocznie obsługują negocjacje i szyfrowanie wymagane do bezpiecznej komunikacji. Ty musisz tylko wysłać swoje dane przez te same strumienie i gniazda, które znasz z poprzednich rozdziałów. Java Secure Socket Extension dzieli się na cztery pakiety: javax.net.ssl Abstrakcyjne klasy, które definiują programowy interfejs Javy do bezpiecznej komunikacji sieciowej. javax.net Abstrakcyjne klasy fabryk gniazd, używane zamiast konstruktorów do tworzenia bezpiecznych gniazd. javax.security.cert Minimalny zbiór klas do obsługi certyfikatów z kluczem publicznym, wymagany przez SSL w Javie l.1 (w Javie l.2 i późniejszych wersjach należy zamiast tego użyć pakietu java.security.cert). com.suń.net.ssl Konkretne klasy, które realizują algorytmy i protokoły szyfrujące w implementacji odniesienia JSSE opracowanej przez Suna. Z technicznego punktu widzenia nie są one częścią standardu JSSE. Inni implementatorzy mogą zastąpić ten pakiet swoim własnym, na przykład takim, który korzysta z rodzimego kodu danej platformy w celu przyspieszenia generacji kluczy i szyfrowania. Żaden z tych pakietów nie stanowi standardowej części JDK. Zanim będziesz 3

4 mógł skorzystać z zawartych w nich klas, będziesz musiał pobrać JSSE (wersję krajową lub międzynarodową) pod adresem - jak zwykle, ten adres może się zmienić. W przyszłości interfejs ten mogą zrealizować także firmy trzecie. Implementacja odniesienia Suną jest rozpowszechniana jako plik zip, który możesz rozpakować i umieścić w dowolnym katalogu. W podkatalogu lib tego pliku znajdziesz trzy archiwa JAR: jcert.jar, jnet.jar i jsse.jar. Musisz umieścić je na swojej ścieżce klas. W Javie 1.2 i nowszych wersjach wystarczy przenieść je do katalogu jre/lib/ext. Natomiast w Javie 1.1 będziesz musiał dopisać do swojej zmiennej środowiskowej CLASSPATH ścieżkę do wszystkich archiwów. Następnie musisz zarejestrować dostawcę usług kryptograficznych, edytując plik jre/lib/extlsecurity/java.secuńty. Otwórz ten plik w edytorze tekstów i poszukaj linii podobnej do poniższej: security.provider.1=sun.security.provider.sun security.provider.2=com.sun.rsajca.provider W twoim pliku może się znajdować więcej albo mniej takich dostawców. Dodaj jeszcze jednego, wpisując następującą linię: security.provider.3=com.sun.net.ssl.internal.ssl.provider Być może będziesz musiał zmienić liczbę 3 na 2,4,5 lub inną kolejną liczbę w twojej sekwencji dostawców usług bezpieczeństwa. Jeśli zainstalujesz implementację JSSE napisaną przez firmę trzecią, dołączysz następną podobną linię z nazwą klasy wziętą z dokumentacji twojej implementacji JSSE. UWAGA Jeśli używasz wielu kopii JRE, będziesz musiał powtórzyć tę procedurę dla każdej kopii. Z niezrozumiałych dla mnie powodów Sun zainstalował oddzielne kopie JRE 1.3 w moim systemie plików, jedną na potrzeby kompilacji, a drugą na potrzeby uruchamiania programów. Musiałem dokonać tych zmian w obu kopiach, aby nakłonić programy JSSE do działania. 4

5 Jeśli nie zrobisz tego poprawnie, zobaczysz wyjątki w rodzaju java.net.socket- Exception: SSL implementation not available, kiedy spróbujesz uruchomić programy używające JSSE. Zamiast edytować plik java.security, możesz dodać poniższą linię do klas używających implementacji JSSE Suna: java.security.security.addprovider(new com.sun.net.ssl.internal.ssl. Może to być przydatne, jeśli piszesz oprogramowanie przeznaczone dla kogoś innego i nie chcesz prosić go o modyfikowanie pliku java.security. 2. Tworzenie bezpiecznych gniazd klienta Jeśli nie interesują cię szczegóły, używanie zaszyfrowanych gniazd SSL w celu porozumienia się z istniejącym zabezpieczonym serwerem jest bardzo proste. Zamiast tworzyć obiekt java.net.socket za pomocą konstruktora, uzyskujesz gniazdo z klasy javax.net.ssl.sslsocketfactory, używając jej metody create-socket().sslsocketfactory to klasa abstrakcyjna, która nie odbiega od typowego wzoru abstrakcyjnej fabryki obiektów: public abstract class SSLSocketFactory extends SocketFactory Poniższy przykład to nieskomplikowany program, który łączy się z zabezpieczonym serwerem HTTP, wysyła proste żądanie GET i wyświetla odpowiedź. Przykład 1. Klient HTTPS import java.net.*; import java.io.*; import java.security.*; import javax.net.ssl.*; public class HTTPSClient { public static void main(string[] args) { if (args.length == 0) { System.out.println( Użycie: java HTPSClient host ); return; 5

6 int port = 443; // domyślny port https String host = args[0]; try { Security.addProvider(new com.sun.net.ssl.internal.ssl. Provider()); SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault(); SSLSocket socket = (SSLSocket) factory.createsocket(host, port); Writer out = new OutputStreamWriter (socket.getoutputstream ()); // https wymaga pełnego adresu URL w linii GET out.write( GET + host + / HTTP/1. l\r\n ); out.write( \r\n ); out.flush(); // czytamy odpowiedź BufferedReader in = new BufferedReader( new InputStreamReader(socket.getlnputStream())); int c; while ((c = in.read())!= -1) { System.out.write(c); out.close(); in.close(); socket.close(); catch (IOException e) { System.err.println(e); Kiedy uruchomisz ten program, zapewne zauważysz, że reaguje ze znacznym opóźnieniem. Generowanie i wymiana kluczy publicznych stanowi znaczne obciążenie dla procesora i sieci. Jeśli nawet masz szybkie połączenie sieciowe, nawiązywanie połączenia może trwać 10 sekund, a nawet dłużej. Nie powinieneś więc udostępniać przez HTTPS wszystkich swoich danych, a tylko te, których prywat- 6

7 ność naprawdę trzeba chronić. 3. Tworzenie bezpiecznych gniazd serwera Bezpieczne gniazda klientów to tylko połowa równania. Drugą są gniazda serwerów z obsługą SSL. Są to instancje klasy javax.net.sslserversocket: public abstract class SSLServerSocket extends ServerSocket Podobnie jak w przypadku SSLSocket, wszystkie konstruktory tej klasy są chronione. Wszystkie instancje SSLServerSocket są tworzone przez abstrakcyjną klasę fabryczną, javax.net.sslserversocketfactory: public abstract class SSLServerSocketFactory extends ServerSocketFactory Tak jak w przypadku SSLSocketFactory, instancja klasy SSLServerSocket- Factory jest zwracana przez statyczną metodę SSLServerSocketFactory.getDefault(): public static SSLServerSocketFactory.getDefault() Tak jak SSLSocketFactory, SSLServerSocketFactory ma trzy przedefiniowane metody createserversocket(), zwracające instancje klasy SSL- ServerSocket, których działanie łatwo zrozumieć przez analogię z konstruktorami klasy java.net.serversocket: public abstract ServerSocket createserversocket(int port) throws IOException public abstract ServerSocket createserversocket(int port, int queuelength) throws IOException public abstract ServerSocket createserversocket(int port, int ąueuelength, InetAddress interface) throws IOException Jeśli to wystarczyłoby do utworzenia zabezpieczonych gniazd serwerów, wówczas byłyby one nieskomplikowane i łatwe w użyciu. Niestety, potrzeba czegoś więcej. Fabryka zwracana przez metodę SSLServerSocketFactory.get- 7

8 Default() obsługuje tylko uwierzytelnianie serwera. Nie obsługuje szyfrowania. Aby połączenie było szyfrowane, bezpieczne gniazda serwerów muszą być odpowiednio zainicjowane i skonfigurowane. Szczegóły tej operacji zależą od implementacji. W implementacji odniesienia opracowanej przez Suną za tworzenie w pełni skonfigurowanych i zainicjowanych gniazd serwerów odpowiedzialny jest obiekt com.sun.net.ssl.sslcontext. W różnych implementacjach JSSE proces przebiega odmiennie, ale w celu utworzenia zabezpieczonego gniazda w implementacji odniesienia, będziesz musiał: wygenerować klucze publiczne i certyfikaty za pomocą programu keytool, zapłacić za uwierzytelnianie twoich certyfikatów przez zaufaną stronę trzecią, na przykład Yerisign, utworzyć SSLContext dla używanego algorytmu, utworzyć TrustManagerFactory jako źródło danych certyfikacyjnych, których będziesz używać, utworzyć obiekt KeyS tore jako bazę danych z kluczami i certyfikatami (w implementacji Suna domyślnie jest to JKS), wypełnić KeyStore kluczami i certyfikatami, na przykład ładując je z pliku przy użyciu hasła, którym są zaszyfrowane, zainicjować KeyManagerFactory za pomocą obiektu KeyStore i jego hasła, zainicjować kontekst za pomocą odpowiednich menedżerów kluczy z Key- ManagerFactory, menedżerów zaufania z TrustManagerFactory i źródła danych losowych (ostatnie dwa parametry mogą być puste, jeśli chcesz przyjąć wartości domyślne). Poniższy przykład przedstawia tę procedurę w programie SecureOrderTaker, który przyjmuje zamówienia i wyświetla je na System.out. Oczywiście, w prawdziwej aplikacji zrobiłbyś z tymi zamówieniami coś bardziej interesującego. Przykład 2. SecureOrderTaker 8

9 import java.net.*; import java.io.*; import java.util.*; import java. security.*; import javax.net.ssl.*; import javax.net.*; import com.sun.net.ssl.*; public class SecureOrderTaker ( public finał static int DEFAULT_PORT = 7000; public finał static String algorithm = SSLv2 ; public static void main (String [] args) { int port = DEFAULT_PORT; if (args.length > 0) { try { port = Integer.parselnt(args [0]); if (port <= 0 port >= 65536) { System.out.println ( Port musi należeć do zakresu ); return; catch (NumberFormatException e) { try { SSLContext context = SSLContext.getlnstance( SSL ); // Implementacja odniesienia obsługuje tylko klucze X.509 KeyManagerFactory kmf = KeyManagerFactory.getlnstance( SunX509 ); // Domyślny rodzaj magazynu kluczy Suna KeyStore ks = KeyStore.getInstance( JKS ); // Ze względów bezpieczeństwa, każdy magazyn kluczy jest szyfrowany // za pomocą hasła, które należy podać, zanim załadujemy magazyn // z dysku. Hasło jest przechowywane w tablicy char[], aby można // było je szybko usunąć z pamięci, zamiast czekać na źbieracza // odpadków". Oczywiście, użycie znakowego literału pozbawia // to rozwiązanie jego zalet. 9

10 char[] password = 2andnotafnord.toCharArray(); ks.loadfnew FilelnputStream ( jnp2e19.keys ), password); kmf.init(ks, password); // context.init (kmf.getkeymanagers(), null, null); SSLServerSocketFactory factory = context.getserversocketfactory(); SSLServerSocket server = (SSLServerSocket) factory.createserversocket (port); // Zakończyliśmy konfigurację i możemy skupić się // na rzeczywistej komunikacji try { while (true) { // To gniazdo będzie zabezpieczone, // chociaż w kodzie tego nie widać. Socket connection = server.accept(); InputStream in = connection.getinputstream (); int c; while ((c = in.read(()!= -1) { System.out.write (c)); connection.close(); // end while // end try catch (IOException e) { System.err.println(e); // end catch // end try catch (IOException e) { e.printstacktrace(); // end catch catch (KeyManagementException e) { e.printstacktrace(); // end catch 10

11 catch (KeyStoreException e) { e.printstacktrace(); // end catch catch (NoSuchAlgorithmException e) { e.printstacktrace(); // end catch catch (java.security.cert.certificateexception e) { e.printstacktrace(); // end catch catch (UnrecoverableKeyException e) { e.printstacktrace (); // end catch // end main // end SecureOrderTaker 11

JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html

JAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html JAVA I SIECI ZAGADNIENIA: URL, Interfejs gniazd, transmisja SSL, protokół JNLP. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,

Bardziej szczegółowo

Łukasz Przywarty Wrocław, r. Grupa: WT/N 11:15-14:00. Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API

Łukasz Przywarty Wrocław, r. Grupa: WT/N 11:15-14:00. Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API Łukasz Przywarty 171018 Wrocław, 17.01.2013 r. Grupa: WT/N 11:15-14:00 Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API Prowadzący: mgr inż. Mariusz Słabicki 1 / 5 1. Treść zadania laboratoryjnego W

Bardziej szczegółowo

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

Bardziej szczegółowo

Przykłady interfejsu TCP i UDP w Javie

Przykłady interfejsu TCP i UDP w Javie Przykłady interfejsu TCP i UDP w Javie W Javie interfejsy TCP i UDP znajdują się w pakiecie java.net http://docs.oracle.com/javase/6/docs/api/java/net/packagesummary.html 1 Przykład interfejsu UDP Protokół

Bardziej szczegółowo

Programowanie w języku Java

Programowanie w języku Java Programowanie w języku Java Wykład 4: Programowanie rozproszone: TCP/IP, URL. Programowanie sieciowe w Javie proste programowanie sieciowe (java.net) na poziomie UDP na poziomie IP na poziomie URL JDBC

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 4 Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Protokół SSL do zabezpieczenia aplikacji na poziomie protokołu transportowego

Bardziej szczegółowo

Programowanie rozproszone w języku Java

Programowanie rozproszone w języku Java Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna 1. Wstęp Wprowadzenie do PKI Infrastruktura klucza publicznego (ang. PKI - Public Key Infrastructure) to termin dzisiaj powszechnie spotykany. Pod tym pojęciem kryje się standard X.509 opracowany przez

Bardziej szczegółowo

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 6, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do operacji wejścia/wyjścia: strumienie 2. Podstawowe klasy strumieni i InputStream/OutputStream

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 11 Spis treści 16 Zarządzanie kluczami 3 16.1 Generowanie kluczy................. 3 16.2 Przesyłanie

Bardziej szczegółowo

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2. Aplikacje RMI Część 2 Budowa aplikacji rozproszonych http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/index.html I. Implementacja gniazd dziedziczących po Socket i ServerSocket oraz produkcji

Bardziej szczegółowo

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Laboratorium nr 5 Podpis elektroniczny i certyfikaty Laboratorium nr 5 Podpis elektroniczny i certyfikaty Wprowadzenie W roku 2001 Prezydent RP podpisał ustawę o podpisie elektronicznym, w która stanowi że podpis elektroniczny jest równoprawny podpisowi

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Java programowanie w sieci. java.net RMI

Java programowanie w sieci. java.net RMI Java programowanie w sieci java.net RMI Programowanie sieciowe OSI WARSTWA APLIKACJI (7) WARSTWA PREZENTACJI(6) WARSTWA SESJI (5) WARSTWA TRANSPORTU (4) DoD Warstwa aplikacji (HTTP) Transport (gniazdka)

Bardziej szczegółowo

Java, bazy danych i SSL

Java, bazy danych i SSL Java, bazy danych i SSL 1. MySQL: własności połączenia, transmisja z wykorzystaniem SSL. 2. Własne programy wykorzystujące SSL. 3. RMI i SSL - implementacja własnych wersji klas ServerSocket i Socket.

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami Serwer SSH Serwer SSH Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami Serwer SSH - Wprowadzenie do serwera SSH Praca na odległość potrzeby w zakresie bezpieczeństwa Identyfikacja

Bardziej szczegółowo

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016 Wykład 10 05 maja 2016 Biblioteka wejścia/wyjścia (Input/Output) import java.io.*; Umożliwia przechowywania danych na nośniku zewnętrznym Dane moga być wysyłane do plików, na drukarkę, do bufora pamięci,

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Płace Optivum. Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac?

Płace Optivum. Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac? Płace Optivum Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac? Program Płace Optivum umożliwia wysyłanie pracownikom pasków z list płac drogą elektroniczną.

Bardziej szczegółowo

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas)

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas) Hosting WWW Bezpieczeństwo hostingu WWW Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas) Szyfrowana wersja protokołu HTTP Kiedyś używany do specjalnych zastosowań (np. banki internetowe), obecnie zaczyna

Bardziej szczegółowo

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science Systemy internetowe Wykład 5 Architektura WWW Architektura WWW Serwer to program, który: Obsługuje repozytorium dokumentów Udostępnia dokumenty klientom Komunikacja: protokół HTTP Warstwa klienta HTTP

Bardziej szczegółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017 APLIKACJE SIECIOWE Definicja Architektura aplikacji sieciowych Programowanie

Bardziej szczegółowo

Przykłady ataków. Błąd dotyczy np. forów dyskusyjnych z możliwością umieszczania plików grafcznych. Pozwala to na wykonanie dowolnego żądania HTTP.

Przykłady ataków. Błąd dotyczy np. forów dyskusyjnych z możliwością umieszczania plików grafcznych. Pozwala to na wykonanie dowolnego żądania HTTP. Bezpieczeństwo 1. Zagrożenia w sieci WWW. przykłady ataków na serwisy internetowe. 2. Bezpieczeństwo przesyłanych informacji przez sieć TCP protokół SSL, protokół S-HTTP, protokoły SSH. 1 Przykłady ataków

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

SSL (Secure Socket Layer)

SSL (Secure Socket Layer) SSL --- Secure Socket Layer --- protokół bezpiecznej komunikacji między klientem a serwerem, stworzony przez Netscape. SSL w założeniu jest podkładką pod istniejące protokoły, takie jak HTTP, FTP, SMTP,

Bardziej szczegółowo

Platformy Programistyczne Zagadnienia sieciowe i wątki

Platformy Programistyczne Zagadnienia sieciowe i wątki Platformy Programistyczne Zagadnienia sieciowe i wątki Agata Migalska 27/28 maja 2014 Komunikacja sieciowa 1 Komunikacja sieciowa 2 Wiele wątków 3 Serializacja Architektura typu klient-serwer Architektura

Bardziej szczegółowo

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja KAMELEON.CRT Funkcjonalność szyfrowanie bazy danych 42-200 Częstochowa ul. Kiepury 24A 034-3620925 www.wilksoft..pl Wtyczka kryptograficzna do KAMELEON.ERP Wymagania : KAMELEON.ERP wersja 10.10.0 lub wyższa

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 13 Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods

Bardziej szczegółowo

KLASY, INTERFEJSY, ITP

KLASY, INTERFEJSY, ITP KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

Podstawy Secure Sockets Layer

Podstawy Secure Sockets Layer Podstawy Secure Sockets Layer Michał Grzejszczak 20 stycznia 2003 Spis treści 1 Wstęp 2 2 Protokół SSL 2 3 Szyfry używane przez SSL 3 3.1 Lista szyfrów.................................... 3 4 Jak działa

Bardziej szczegółowo

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja

Bardziej szczegółowo

Komunikacja z użyciem gniazd aplikacje klient-serwer

Komunikacja z użyciem gniazd aplikacje klient-serwer Programowanie obiektowe Komunikacja z użyciem gniazd aplikacje klient-serwer Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Architektura

Bardziej szczegółowo

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

ZiMSK. Konsola, TELNET, SSH 1

ZiMSK. Konsola, TELNET, SSH 1 ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl Konsola, TELNET, SSH 1 Wykład

Bardziej szczegółowo

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie

Bardziej szczegółowo

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP PGP - Pretty Good Privacy Użycie certyfikatów niekwalifikowanych w programie PGP Spis treści: Wstęp...3 Tworzenie klucza prywatnego i certyfikatu...3 Import kluczy z przeglądarki...9 2 Wstęp PGP - to program

Bardziej szczegółowo

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania:

Bardziej szczegółowo

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

MAMP: Można to pobrać i zainstalować z   XAMPP: Można go pobrać i zainstalować z WordPress : Omówienie I Instalacja Na początek, dlaczego byłbyś zainteresowany wykorzystaniem WordPressa razem z PhoneGap? Zapytałbym: "Dlaczego byś nie?" Moim zdaniem WordPress jest jednym z najłatwiejszych

Bardziej szczegółowo

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG Opracowano w Departamencie Informatyki i Administracji Bankowego Funduszu Gwarancyjnego Październik 2013 Spis treści: 1. Dostęp do strony portalu...

Bardziej szczegółowo

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x Spis treści Wstęp... 1 Instalacja certyfikatów w programie pocztowym... 1 Instalacja certyfikatów własnych... 1 Instalacja certyfikatów innych osób... 3 Import certyfikatów innych osób przez odebranie

Bardziej szczegółowo

Przewodnik użytkownika

Przewodnik użytkownika STOWARZYSZENIE PEMI Przewodnik użytkownika wstęp do podpisu elektronicznego kryptografia asymetryczna Stowarzyszenie PEMI Podpis elektroniczny Mobile Internet 2005 1. Dlaczego podpis elektroniczny? Podpis

Bardziej szczegółowo

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG Opracowano w Departamencie Informatyki Bankowego Funduszu Gwarancyjnego Październik 2016 Spis treści: 1. Dostęp do strony Portalu... 3 1.1. Adres

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi. Spis treści: Czym jest szyfrowanie Po co nam szyfrowanie Szyfrowanie symetryczne Szyfrowanie asymetryczne Szyfrowanie DES Szyfrowanie 3DES Szyfrowanie IDEA Szyfrowanie RSA Podpis cyfrowy Szyfrowanie MD5

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3(); 1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {; static public void m2() {; void abstract m3(); default static void m4() {; a) Poprawnie zadeklarowano metodę m1() b) Poprawnie

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

Java wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 14 Bezpieczeństwo Podstawowe pojęcia uwierzytelniania (authentication) autoryzacja (authorization) atrybuty bezpieczeństwa informacji integralność danych (data integrity)

Bardziej szczegółowo

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1) Maciej Zakrzewicz Platformy softwarowe dla rozwoju systemów intra- i internetowych Architektura Internetu (1) Internet jest zbiorem komputerów podłączonych do wspólnej, ogólnoświatowej sieci komputerowej

Bardziej szczegółowo

JAX-RS czyli REST w Javie. Adam Kędziora

JAX-RS czyli REST w Javie. Adam Kędziora JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL

Bardziej szczegółowo

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN)

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN) Bezpieczeństwo Systemów Komputerowych Wirtualne Sieci Prywatne (VPN) Czym jest VPN? VPN(Virtual Private Network) jest siecią, która w sposób bezpieczny łączy ze sobą komputery i sieci poprzez wirtualne

Bardziej szczegółowo

INSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win

INSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win INSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win Łukasz Awsiukiewicz Solid Security wew 1211 l.awsiukiewicz@solidsecurity.pl wersja 1.0 Pobieramy program gpg4win ze strony http://www.gpg4win.org/download.html.

Bardziej szczegółowo

Instrukcja generowania żądania CSR SOW WERSJA 1.6

Instrukcja generowania żądania CSR SOW WERSJA 1.6 Instrukcja generowania żądania CSR SOW WERSJA 1.6 Informacja o wydaniu Data wydania Wersja Opis wydania 2018.01.11 1.0 Wydanie pierwsze 2018.01.26 1.1 Wydanie 1.1 2018.02.02 1.2 Wydanie 1.2 2018.02.13

Bardziej szczegółowo

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12 Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12 Wersja 3.0 02-03-2017 Spis treści Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Protokoły zdalnego logowania Telnet i SSH

Protokoły zdalnego logowania Telnet i SSH Protokoły zdalnego logowania Telnet i SSH Krzysztof Maćkowiak Wprowadzenie Wykorzystując Internet mamy możliwość uzyskania dostępu do komputera w odległej sieci z wykorzystaniem swojego komputera, który

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Bezpieczeństwo systemów informatycznych

Bezpieczeństwo systemów informatycznych Politechnika Poznańska Bezpieczeństwo systemów rozproszonych Bezpieczeństwo systemów informatycznych ĆWICZENIE VPN 1. Tunele wirtualne 1.1 Narzędzie OpenVPN OpenVPN jest narzędziem służącym do tworzenia

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Zdalne logowanie do serwerów

Zdalne logowanie do serwerów Zdalne logowanie Zdalne logowanie do serwerów Zdalne logowanie do serwerów - cd Logowanie do serwera inne podejście Sesje w sieci informatycznej Sesje w sieci informatycznej - cd Sesje w sieci informatycznej

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Aplikacje w Javie- wykład 11 Wątki-podstawy

Aplikacje w Javie- wykład 11 Wątki-podstawy 1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/

Bardziej szczegółowo

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października 2011. Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października 2011. Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński Wykład 4 Protokoły SSL i TLS główne slajdy 26 października 2011 Instytut Informatyki Uniwersytet Jagielloński 4.1 Secure Sockets Layer i Transport Layer Security SSL zaproponowany przez Netscape w 1994

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

DESlock+ szybki start

DESlock+ szybki start DESlock+ szybki start Wersja centralnie zarządzana Wersja bez centralnej administracji standalone WAŻNE! Pamiętaj, że jeśli chcesz korzystać z centralnego zarządzania koniecznie zacznij od instalacji serwera

Bardziej szczegółowo

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1 P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Wykład 8: Obsługa Wyjątków

Wykład 8: Obsługa Wyjątków Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Aplikacje RMI Lab4

Aplikacje RMI   Lab4 Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych

Bardziej szczegółowo

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna PuTTY Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP Marcin Pilarski PuTTY emuluje terminal tekstowy łączący się z serwerem za pomocą protokołu Telnet, Rlogin oraz SSH1 i SSH2. Implementuje

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami Windows Serwer 2008 R2 Moduł 5. Zarządzanie plikami Sprawdzamy konfigurację kart sieciowych 172.16.x.0 x nr w dzienniku Na serwerze musi działać Internet! Statyczny adres IP jest potrzebny komputerom,

Bardziej szczegółowo

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP Marcin Pilarski PuTTY PuTTY emuluje terminal tekstowy łączący się z serwerem za pomocą protokołu Telnet, Rlogin oraz SSH1 i SSH2. Implementuje

Bardziej szczegółowo

Czym jest kryptografia?

Czym jest kryptografia? Szyfrowanie danych Czym jest kryptografia? Kryptografia to nauka zajmująca się układaniem szyfrów. Nazwa pochodzi z greckiego słowa: kryptos - "ukryty", gráphein "pisać. Wyróżniane są dwa główne nurty

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo