TPSIT PDF- Introduzione alle reti e alla crittografia
Document Details

Uploaded by HighSpiritedHeliotrope22
Tags
Related
- Chapter 8 - Cloud Computing 2023 PDF
- Unit 01 - Introduction to Cloud Computing and Cloud Service Models.pdf
- Chapter 10 - 02 - Understand Cloud Computing Fundamentals - 01_ocred.pdf
- Chapter 10 - 02 - Understand Cloud Computing Fundamentals - 02_ocred.pdf
- Chapter 10 - 02 - Understand Cloud Computing Fundamentals - 03_ocred.pdf
- Chapter 10 - 02 - Understand Cloud Computing Fundamentals - 04_ocred.pdf
Summary
Il documento tratta diversi argomenti relativi all'informatica, come le reti, l'e-commerce, il cloud computing, la crittografia e la firma digitale. Vengono spiegati i concetti di intranet, extranet, e-commerce e modelli come B2C e B2B, fornendo una panoramica dei servizi di cloud computing e degli strumenti per l'amministrazione digitale. Viene fornita una sintesi sulle tecnologie di sicurezza informatica. PDF.
Full Transcript
TPSIT INTRANET ed EXTRANET Per Intranext intendiamo una rete usata all’interno di un’azienda, dai vari dipendenti, verso l’interno. Intendiamo sia la rete vista come infrastruttura, sia i vari software scelti dall’azienda. Per Extranet intendiamo invece una rete, legata sempre all’azienda, ma di ba...
TPSIT INTRANET ed EXTRANET Per Intranext intendiamo una rete usata all’interno di un’azienda, dai vari dipendenti, verso l’interno. Intendiamo sia la rete vista come infrastruttura, sia i vari software scelti dall’azienda. Per Extranet intendiamo invece una rete, legata sempre all’azienda, ma di base utilizzata da collaboratori esterni ad essa, per esempio una rete che collega due sedi lontani della stessa azienda. Anche in questo caso però si parla sempre di rete privata, usata solo da persone affiliate o selezionate dall’azienda. Una extranet può essere realizzata sfruttando quindi server aziendali (interni o esterni), ai quali ci si connette, oppure anche una VPN. In genere tutti i software/infrastrutture utilizzati da un’azienda generica difficilmente sono proprietari dato che costerebbe molto di più la loro gestione e manutenzione. Per questo si parla di ASP (Application Service Provider) indicando quelle società che, a pagamento, mettono a disposizione il software applicativo, mantenendolo sui propri server. Esempi di servizi offerti da loro sono: Applicazioni specialistiche, quali ERP (Enterprise Resource Planning) o SCM (Supply Chain Management). Il primo riguarda la gestione di un’azienda in tutti i suoi aspetti, attraverso software modulari (gestione magazzino, costi, personale); il secondo riguarda la gestione della catena di approvvigionamento. Accesso remoto ad un loro terminale più potente. CLOUD COMPUTING Di base permette di accedere in remoto ai vari software o servizi messi a disposizione da un CSP (Cloud Service Provider), ottenendo vantaggi legati alla gestione aziendale. L’azienda scarica il lavoro di manutenzione e gestione ad apposite società e questo le permette di ridurre i costi, risparmiando anche su eventuali apparecchiature hardware costose. In alcuni casi però, quando si parla ad esempio di ripristino o di backup dei vari dati, questi sistemi possono essere più lenti e quindi nulla vieta ad un’azienda di affidarsi a questi provider mantenendo però sempre una copia fisica delle varie informazioni. I provider poi devono garantire sempre il servizio, ed in questo senso ritorna il concetto di fault tolerance, con sistemi di backup dislocati (Sistema RAID) e sistemi di disaster recovery. I servizi di cloud di cui un’azienda può usufruire sono: SaaS (Software as a Service): servizi ed app. PaaS (Platform as a Service): un ambiente di sviluppo, utile agli sviluppatori per condivisione di risorse. IaaS (Infrastructure as a Service): server virtuale online messo a disposizione dal provider ma gestito poi interamente dall’utente (azienda). Per esempio ci carico sopra il mio software e lo gestisco da lì. Il cloud può essere poi: Privato: una piattaforma di servizi ed applicazioni dedicata ad una singola azienda o ente, realizzata sui sistemi informatici dell’azienda ma hostata sui server remoti. Pubblico - Ibrido: il provider mette a disposizione spazio di memorizzazione, applicazioni e capacità elaborativa, utilizzabile da singoli utenti o eventualmente in modo privato (e con appositi piani) dalle aziende. Altri vantaggi sono: Non dover aggiornare continuamente software o piattaforme su ogni singolo computer. Non dover installare in locale troppi dati ed informazioni. Possibilità di accesso da qualsiasi luogo. Maggiori opportunità di lavoro collaborativo e di condivisione delle informazioni. COMMERCIO ELETTRONICO Corrisponde alla vendita di beni e servizi attraverso la rete Internet e l’utilizzo di tecnologie Web (e-commerce). Viene classificato in due categorie: Business to consumer (B2C): relazioni e transazioni tra impresa e consumatore. Business to business (B2B): relazioni e transazioni tra imprese (acquisito di materie prime) Il B2C è quello che si svolge in un negozio virtuale (Amazon) e gli obiettivi che spingono le aziende ad orientarsi verso questo modello sono: Diminuzione costi. Riduzione tempi del ciclo di vendita (richiesta – vendita – consegna). Rapidità di risposta alle esigenze del cliente. Maggiore feedback – miglioramento del servizio. Generazione di nuovi canali di vendita e presenza su nuovi mercati (mercati esteri). Possibilità di tracciare meglio profilo del cliente, con gusti e comportamenti. Analisi statistiche in tempi brevi. Dropshipping = non si ha un magazzino fisico, ma si ha un fornitore di fiducia. Quindi io gestisco le richieste che arrivando ed incasso i pagamenti, per poi delegare tutto il resto della catena di vendita al mio fornitore di fiducia (approvvigionamento, spedizione ecc). Io divento quindi un intermediario. E-procurement = gestione di tutta la catena sfruttando i vantaggi della rete, dal reperimento delle materie prime fino alla gestione dell’ordine e alla vendita del prodotto al cliente. (SCM) CRITTOGRAFIA Tecnica utilizzata per rendere visibili le informazioni trasmesse in una rete solo a chi sono destinate. Testo in chiaro = messaggio che può essere letto da tutti. Testo cifrato = messaggio illeggibile. Cifratura/codifica = tecnica attraverso la quale si passa da un testo in chiaro ad un testo cifrato, grazie ad una chiave. Decifratura = tecnica attraverso la quale si passa da un testo cifrato ad un testo in chiaro, grazie ad una chiave. Entrambi i processi sono eseguiti basandosi su uno o più algoritmi crittografici. Cifrario a sostituzione = la chiave serve per capire la logica dietro lo spostamento di lettere/numeri in successioni. Cifrario a trasposizione = la chiave serve per spezzare il messaggio su più righe e per poi ordinare le colonne risultanti. Le tecniche crittografiche possono essere classificate in due principali sistemi: Crittografia a chiave simmetrica: è usata una sola chiave per cifrare e decifrare i messaggi. Crittografia a chiave asimmetrica: c’è una chiava privata (che non deve essere conosciuta da nessuno) ed una pubblica Considerando il primo sistema, esempi nella storia sono il DES (Data Encryption Standard, 1977, chiave a 56 bit), Triple-DES (chiave di maggiori dimensioni), CAST e IDEA (1990, entrambi a 128 bit), AE (2001), Chacha20 e Salsa20 (entrambi 2005). Tra un algoritmo all’altro, oltre a cambiare la complessità , cambia soprattutto la lunghezza della chiave, dato che più è lunga minori sono le possibilità che venga compromessa (brute-force). Un esempio più semplice di crittografia a chiave simmetrica corrisponde all’utilizzo doppio dell’operatore XOR. Tutto si basa su una relazione matematica, ovvero (A xor K) xor K = A dove A=sequenza di bit | K = chiave in bit Esempio: 1 0 0 1 A base 2 = 10 1 1 1 1 K base 2 = 11 0 1 1 0 Verde = risultato xor righe precedenti Parlando invece di crittografia a chiave asimmetrica, è stata introdotta nel 1975 con l’obiettivo di risolvere il problema legato alla distribuzione sicura delle chiavi (in quella simmetrica la chiave era una sola e doveva essere condivisa tra i due dispositivi per poter comunicare, ma come si poteva trasmettere in modo sicuro?). Viene utilizzata una coppia di chiavi, pubblica (a disposizione di tutti) e privata (conosciuta solo dall’utente/terminale). I 2 principi alla base del sistema sono: Criptando con una chiave posso decriptare solo con l’altra (Solitamente si cripta con la pubblica del destinatario e lui può decriptare con la sua chiave privata). Conoscendo una chiave è estremamente difficile ricavare l’altra (non è impossibile, perché comunque esiste una corrispondenza matematica tra le due chiavi, ma il tempo ed i tentativi per trovarla sono altissimi (più è lunga o complessa la chiave più aumenteranno)). Oltre alla segretezza, la crittografia a chiave asimmetrica deve garantire anche l’identità del mittente. Ciò avviene secondo i seguenti passaggi: Il mittente cripta con la sua chiave privata. Il mittente cripta con la chiave pubblica del destinatario. Il destinatario decripta con la sua chiave privata. Il destinatario decripta con la chiave pubblica del mittente. L’algoritmo a chiave asimmetrica più utilizzato è l’RSA, basato sulla fattorizzazione dei numeri primi. Alcuni protocolli, standard e software per la crittografia sono: PGP: Pretty Good Privacy. Standard per la crittografia a chiave simmetrica. GPG: Software open source del PGP. SSH (22): Secure Shell. Utilizzato per la connessione remota sicura SSL (: Secure Socket Layer. Protezione per le comunicazioni web. TLS: Transport Layer Security. Evoluzione dell’SSL. HTTPS (443): Connessione HTTP criptata. FIRMA DIGITALE La firma digitale permette ad una persona di apporre un segno distintivo ai documenti digitali. Il processo per la firma digitale è il seguente: La funzione HASH genera un DIGEST (riassunto) del documento, ovvero un codice che deve essere univoco per ogni documento. Il DIGEST viene criptato con la chiave privata dell’autore del documento. Il digest criptato potrà poi essere decriptato con la chiave pubblica dell’autore per confermarne la proprietà . Le chiavi vengono rilasciate da enti di certificazione (CERTIFICATION AUTHORITIES, come l’AGID per la pubblica amministrazione). Il certificato digitale (formato x.509) emesso contiene: Numero di serie del certificato. Ragione e denominazione del certificatore. Nome, cognome e data di nascita del titolare delle chiavi. Valore della chiava pubblica. Algoritmi di generazione e modifica delle chiavi. Periodo di validità delle chiavi E-GOVERNMENT Indica l’utilizzo e l’applicazione delle tecnologie informatiche con obiettivo quello di rendere la Pubblica Amministrazione più veloce, trasparente, efficiente e accessibile ai cittadini. Alla base c’è la volontà di dematerializzare e di renderla più sicura e attenta alla privacy. Una delle prime rivoluzioni si è avuta con il Codice dell’Amministrazione Digitale (d.l. 82 del 2005, in vigore dal 1° gennaio 2006), che stabilisce i principi e le modalità per consentire ai cittadini di usufruire di dati e servizi digitali. Sempre con questo decreto è stata riconosciuta la validità della firma digitale e quindi dei vari documenti in formato elettronico. Per dare attenzione ai progetti dell’amministrazione digitale è nato l’Ente Nazionale per la Digitalizzazione della Pubblica Amministrazione, denominato Agenzia per l’Italia Digitale, con il compito di fornire supporto alla PA nell’utilizzo efficace dell’informatica e delle tecnologie. STRUMENTI E TENOLOGIE PER L’AMMINISTRAZIONE DIGITALE Banche dati, sportelli telematici, portali, siti Web. Pagamenti e transazioni commerciali, con attenzione verso l’home banking. Utilizzo di software open source. Gestione dei documenti: l’autenticità e l’integrità dei documenti nei passaggi all’interno e all’esterno della PA sono garantiti attraverso l’uso della firma digitale. In questo caso, si basa su Certificati elettronici rilasciati solo da certificatori accreditati presso l’ente governativo Agenzia per l’Italia Digitale e iscritti in un apposito elenco. Riconoscimento e identificazione digitale, tramite: o Carta d’Identità Elettronica (CIE) = smart card con banda ottica e microprocessore. Ha sopra impressi i dati del cittadino in modo fisico e anche sulla banda ottica, che consente la sicurezza di quelle informazioni perché non alterabile o modificabile. Emessa dal Comune. o Carta Nazionale dei Servizi (CNS) = è uno strumento che permette di identificare con certezza il cittadino online. Si tratta di una chiavetta USB oppure di una smart card, dotata di microchip e anche di tecnologia contactless, che consente di accedere ai servizi messi a disposizione dalla pubblica amministrazione in internet. Contiene un certificato di firma digitale. o Carta Regionale Servizi (CRS) = come la CNS, ma valida anche come tessera sanitaria e attestamento del Codice Fiscale. PEC (Posta Elettronica Certificata) Per garantire la certezza legale dei messaggi e dei documenti trasmessi si usa la Posta Elettronica Certificata, che ha assunto valore legale nel 2005. Ecco il suo funzionamento: 1. Alice invia un messaggio a Bob, tramite servizio PEC. Il gestore PEC di Alice controlla l’identità di Alice e le caratteristiche formali del messaggio (se rispetta il protocollo). In caso positivo, invia a Alice una ricevuta di accettazione. 2. Il gestore PEC di Alice costruisce la busta di trasporto contenente messaggio e firma digitale del gestore stesso. 3. La busta viene inviata al gestore PEC di Bob. 4. Il gestore PEC di Bob controlla la validità della firma e la validità del messaggio. Se ok, invia al gestore di Alice una ricevuta di presa in carico e a Bob il messaggio. 5. Appena il messaggio arriva sulla casella di Bob, il gestore di Bob viene notificato ed invia una ricevuta di avvenuta consegna al gestore PEC di Alice. 6. Alice si troverà nella sua casella postale almeno 2 ricevute: accettazione e avvenuta (o non avvenuta) consegna. In alcuni casi si può trovare anche la ricevuta di consegna, ma non sempre è così. (Da alice fino al gestore PEC di Bob viene usato l’SMTP (25). Bob invece, per scaricare le proprie email dal proprio gestore, userà IMAP (143) o POP3(110). Dal 2011, le imprese e i professionisti iscritti agli Ordini devono obbligatoriamente dotarsi di una casella PEC. LEGGE STANCA La Legge Stanca (n.4 del 9 gennaio 2004) ha l'obiettivo di garantire l’accessibilità dei sistemi informatici, inclusi siti web e applicazioni mobili, a persone con disabilità . Si applica a: Siti della Pubblica Amministrazione, Servizi di pubblica utilità , Soggetti che ricevono fondi pubblici per sviluppare servizi informatici. Accessibilità e Disabilità L'accessibilità è la capacità di un prodotto o servizio di essere fruibile da tutti, inclusi gli utenti con disabilità . Il concetto si basa sul Modello Sociale della Disabilità , secondo cui una persona è disabile quando il contesto la rende tale. Le disabilità si suddividono in: Visive (cecità , ipovisione, daltonismo), Motorie (limitazioni fisiche o muscolari), Uditive (sordità o ipoacusia), Cognitive (difficoltà di attenzione, memoria, comprensione). Esistono anche disabilità temporanee o situazionali, come un braccio ingessato o un ambiente rumoroso. Accessibilità nel Web L'accessibilità web è ancora un problema diffuso, creando un divario tra chi può accedere ai servizi digitali e chi ne è escluso (Web Accessibility Divide). Il W3C ha definito quattro principi fondamentali per l’accessibilità web: 1. Percepibile – Le informazioni devono essere accessibili ai sensi dell’utente. 2. Operabile – L’interfaccia deve poter essere utilizzata con diversi strumenti. 3. Comprensibile – I contenuti devono essere chiari e intuitivi. 4. Robusto – Compatibilità con tecnologie assistive. Accorgimenti per l’Accessibilità Web Alcune buone pratiche per migliorare l’accessibilità includono: Contrasto adeguato tra testo e sfondo, Etichettatura esterna dei campi di input, Uso di simboli oltre al colore per differenziare elementi, Scelta di font leggibili e dimensioni adeguate, Spazi bianchi per separare i contenuti, Sottotitoli per contenuti multimediali, Testi alternativi per immagini, Evitare effetti luminosi dannosi (es. lampeggiamenti), Struttura coerente e navigazione intuitiva, Compatibilità con l’uso della tastiera. Tecnologie Assistive Sono strumenti software e hardware che migliorano l’accessibilità , come: Screen readers (lettori di schermo), Tastiere personalizzate, Mouse ergonomici, Eye-tracking (controllo con il movimento oculare), Sensori a pressione. DEFINIZIONI E-democracy = espressione del voto elettronico. E-procuremente = già visto sopra. Nel caso della pubblica amministrazione uno dei portali usati è il MEPA (Mercato Elettronico della Pubblica Amministrazione). Open data = dati a disposizione di ogni singolo cittadino, consultabili tramite appositi portali (trasparenza) ed in formati utilizzabili da software di vario tipo. CMS (Content Management System) = tipo wordpress. Auditing = tenere traccia di tutto quello che succede. SOCKET – LAB C’è un programma server ed uno client che comunicano tra loro seguendo protocolli, ovvero insiemi ben definiti di regole. Nell’architettura TCP-IP questi programmi si posizionano sul livello 5 ed in particolare su una specifica porta. Per socket intendiamo l’insieme di IP DISPOSITIVO + PORTA SERVIZIO. L’ip del dispositivo potrà rimanere anche uguale, ma la porta tra servizi diversi cambierà quasi sicuramente e quindi questo permette alla macchina di gestire più applicazioni contemporaneamente, identificandole in modo univoco. Su Java, le librerie usate sono java.net e java.io. 1. Socket = new Socket("127.0.0.1"//Indirizzo, 3000//Porta); //Try-catch 2. Sono inoltre necessarie due classi BufferedReader e PrintWriter 3. //LETTURA - BufferedReader 4. InputStream iS = socket.getInputStream(); 5. InputStreamReader iSR = new InputStreamReader(iS); 6. BufferedReader sIn = new BufferedReader(iSR); 7. 8. //SCRITTURA - PrintWriter 9. OutputStream oS = socket.getOutputStream(); 10. PrintWriter sOut = new PrintWriter(oS); 11. Il server è sempre in ASCOLTO. Il socket ha bisogno solo della Porta: 12. ServerSocket = new ServerSocket(3000); 13. Il server è sempre in attesa della richiesta 14. Socket = serverSocket.accept(); 15. Per scrivere: 16. sOut.println(today.toString()); 17. sOut.flush(); 18. socket.close(); 19. Per leggere: System.out.println(sIn.readLine()); 20. socket.close(); 21. Per rendere il server utilizzabile più volte inserire un while(true) 22. THREAD – LAB Le applicazioni sono gestite da un insieme di THREAD (programmi in esecuzione in parallelo) che collaborano e condividono dati per raggiungere un risultato. Per utilizzare i thread in java è necessario aggiungere l’interfaccia Runnable alla classe e implementare il metodo Run(). @Override public void Run() { } Per utilizzare il thread, nel main di un’altra classe: MyThread t1 = new MyThread(); Thread thread1 = new Thread(t1); thread1.start(); Si usa il metodo start() perché se si usasse il methodo Run() direttamente il thread andrebbe direttamente in esecuzione, mentre con start() viene messo in fase di Ready. I thread vengono eseguiti in ordine casuale. Per sincronizzare i thread si usa Join(). STREAMING OGGETTI – LAB 1. Socket server = new Socket("localhost", 5000) 2. ObjectOutputStream out = new ObjectOutputStream(server.getOutputStream()); 3. out.writeObject(p); 4. 5. SUL SERVER INVECE 6. Socket client = serverSocket.accept(); 7. ObjectInputStream in = new ObjectInputStream(client.getInputStream()); 8. Prenotazione p = ((Prenotazione) in.readObject()); SQLITE– LAB 1. Class.forName("org.sqlite.JDBC"); 2. 3. Connection connection = DriverManager.getConnection("jdbc:sqlite:./db/canzoni.db"); 4. // ESEGUIRE UNA QUERY 5. String query = "INSERT INTO SONGS (titolo, artista, streamings, featuring) VALUES (?,?,?,?)"; 6. PreparedStatement stat = connection.prepareStatement(query); 7. stat.setString(1, title); 8. stat.setString(2, artist); 9. stat.setInt(3, streamingsInt); 10. stat.setString(4, featuring); 11. int result = stat.executeUpdate(); // esegue query e restituisce l’esito 12. 13. Statement statement = connection.createStatement(); 14. ResultSet resultSet = statement.executeQuery("SELECT * FROM songs WHERE TITOLO = '" + title + "'"); 15. 16. while (resultSet.next()) { 17. System.out.println(resultSet.getString("titolo") + " " + resultSet.getString("artista") + " " + resultSet.getInt("visualizzazioni")); 18. } 19. 20. connection.close(); 21. resultSet.close(); 22.