Tecniche di protezione della proprieta intellettuale del software
|
|
- Jacopo Carlucci
- 8 anni fa
- Visualizzazioni
Transcript
1 Tecniche di protezione della proprieta intellettuale del software Cosimo Anglano Dipartimento di Informatica e Centro Studi sulla Criminalita Informatica Universita del Piemonte Orientale, Alessandria Franco Sirovich Dipartimento di Informatica Universita di Torino 1
2 La pirateria del software Fenomeno dilagante in tutto il mondo Dati dallo studio di IDC commissionato da Business Software Alliance (BSA) nel Circa il 35% del software installato nel corso del 2006 su Personal Computer e stato ottenuto illegalmente Le perdite economiche ammontano a circa 40 miliardi di dollari USA 2
3 La pirateria del software Il fenomeno e presente in percentuale diverse nei vari paesi 3
4 Software libero e non Non tutto il software e soggetto alla pirateria Il cosiddetto software libero (free software), per sua stessa natura, non e piratabile La cultura del software libero ha origine negli anni 80, grazie anche all opera di Richard Stallman Fondatore del progetto GNU ( GNU is Not Unix ) nel 1983 Software libero!= open source 4
5 La filosofia Open Source L'utente puo' gratuitamente: Utilizzare Copiare Distribuire Studiare Cambiare Migliorare il software AA Giovanna Petrone 5
6 La filosofia Open Source Un buon prodotto sw inizia con un problema personale di uno sviluppatore I bravi programmatori sanno cosa scrivere. I migliori sanno cosa riscrivere. Quando un programma non ti interessa piu e tuo dovere passare le consegne ad un successore competente Trattare gli utenti come sviluppatori e il modo migliore per ottenere debugging efficace e miglioramenti del codice Distribuisci presto e spesso (e ascolta gli utenti). AA Giovanna Petrone 6
7 Il processo Open Source Il processo e pubblico Le implementazioni sono controllate da una board che revisiona e testa il codice proposto Il codice e prodotto attraverso: Modifiche moderate Build frequenti E proprietà collettiva Non esiste il MANTENIMENTO AA Giovanna Petrone 7
8 GNU e General Public License GNU: lanciato nel 1984 per sviluppare un sistema operativo tipo Unix (Linux) Licenza GPL: Si puo' distribuire e offrire il supporto a pagamento Ma il codice sorgente deve rimanere modificabile e distribuibile GRATUITAMENTE AA Giovanna Petrone 8
9 When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. AA Giovanna Petrone 9
10 Proteggere il software Impedire l utilizzo di software acquisito illegalmente impiego di tecniche anti copia (copy protection) Impedire la decodifica del software per proteggere il proprio know how Impiego di tecniche di anti reversing 10
11 Sistemi di copy protection Hanno l obiettivo di controllare le modalita di utilizzo del software da loro protetto In genere vuol dire cose diverse a seconda del tipo di licenza del software Impedire il funzionamento del software dopo un certo periodo di tempo Impedire il trasferimento verso altri soggetti Permettere il trasferimento ma non la duplicazione 11
12 Copy protection: requisiti Resistenza agli attacchi Ogni sistema e violabile, ma i sistemi che richiedono uno sforzo maggiore sono ovviamente da preferirsi Trasparenza per l utente finale L utente legittimo non deve incorrere in problemi/scomodita dovuti al sistema anti copia Flessibilita Gestire tipi diversi di protezione 12
13 Copy protection: problemi Class break: si verifica quando la compromissione dello schema si applica a tutte le copie che usano quello schema E sufficiente che chi viola un sistema di copy protection pubblichi il metodo di violazione per permettere la copia di qualunque programma impieghi il sistema violato 13
14 Copy protection: idea di base Creazione di una componente sicura ed affidabile (trusted) cui viene delegato il compito di controllare la liceita della copia utilizzata Implementabile in software, hardware, o una combinazione dei due 14
15 Protezione basata su supporto fisico Creazione di difetti fittizi in posti ben precisi del supporto su cui e distribuito il software All atto dell installazione, il programma controlla che tali difetti siano presenti nei punti previsti 15
16 Protezione basata su supporto fisico Approccio tipicamente in uso negli anni 80 Il supporto era tipicamente un floppy disk Marcatura di bad sector bad sector 16
17 Protezione basata su supporto fisico Principio di base: la copia del contenuto del floppy non considerava i settori marcati bad Copia mediante sistema operativo 17
18 Protezione basata su supporto fisico Protezione aggirata mediante programmi di copia che agivano a livello fisico CopyWrite/ Transcopy 18
19 Protezione basata su meccanismi software Codici seriali da inserire nel programma all atto di installazione/attivazione Facile da bypassare Condivisione di codici seriali con altri utenti Patching: individuazione della parte di codice che controlla la validita del seriale e suo by-pass Key gening: scoperta dell algoritmo di generazione dei seriali validi e sua implementazione in un programma apposito 19
20 Protezione basata su meccanismi software Challenge-response con codice di attivazione encryption key codice seriale cleartext message CPU id 20
21 Protezione basata su meccanismi software Challenge-response con codice di attivazione cleartext message encryption key validation server 21
22 Protezione basata su meccanismi software Challenge-response con codice di attivazione encrypted validation message encryption key validation server 22
23 Protezione basata su meccanismi software Challenge-response con codice di attivazione encryption key decrypted activation code encrypted message decryption 23
24 Protezione basata su meccanismi software Challenge-response con codice di attivazione Aggirabile mediante lo sviluppo di programmi keygen che utilizzano lo stesso algoritmo utilizzato dal validation server per generare i codici di attivazione cifrati 24
25 Protezione basata su meccanismi hardware Uso di un microchip detto dongle: il software funziona solo se il dongle e collegato al computer In passato si usavano dongle connessi alla porta parallela, attualmente si utilizzano interfacce USB 25
26 Protezione basata su meccanismi hardware Implementazione ovvia: Il programma invoca un driver del dongle, che controlla se il dongle e collegato al computer In caso negativo, il programma smette di funzionare Facile da aggirare: basta scrivere un driver che emula il driver del dongle e fornisce risposte positive (false) alle richieste del software 26
27 Protezione basata su meccanismi hardware Implementazione piu raffinata: il programma viene distribuito in forma criptata la chiave di decrittazione viene memorizzata nel dongle all atto dell esecuzione, un loader ottiene la chiave dal dongle, decripta il programma e lo manda in esecuzione 27
28 Protezione basata su meccanismi hardware Program loader encripted program decripted program 28
29 Protezione basata su meccanismi hardware Vulnerabilita : basta copiare l eseguibile dopo che lo stesso e stato caricato in memoria in forma decriptata decripted program Ripped program 29
30 Protezione basata su meccanismi hardware Per attenuare questa vulnerabilita, si puo dividere il programma in parti, ciascuna delle quali cifrata con una chiave diversa Durante l esecuzione del programma, sono caricate in memoria solo le parti effettivamente necessarie 30
31 Protezione basata su meccanismi hardware Program loader encripted program chunk #1 encripted program chunk #2 encripted program chunk #3 decripted program chunk #1 decripted program chunk #2 encripted program chunk #3 31
32 Protezione basata su meccanismi hardware Vulnerabilita : Acquisizione delle chiavi di decriptazione che sono trasmesse in chiaro al loader Implementazione di un emulatore del dongle che invia al loader le varie chiavi man mano che queste vengono richieste 32
33 Protezione basata su meccanismi hardware Per evitare di esporre le chiavi di decriptazione, di recente sono stati sviluppati dongle dotati di un processore che effettua la decriptazione internamente Il loader invia un frammento cifrato del programma, ed ottiene in risposta il codice decifrato eseguibile sul processore Difficile da violare perche bisogna essere in grado di riassemblare nell ordine giusto i vari frammenti di codice decifrato 33
34 Ma esiste la protezione inviolabile? Tale tecnica dovrebbe fornire: Cifratura con chiave sufficientemente lunga Messa in sicurezza della chiave e del processo di decriptazione primo problema risolto Il secondo e molto piu difficile da risolvere Le istruzioni del programma sono eseguibili solo in forma decifrata Durante l esecuzione, permangono nella memoria fisica da cui possono essere copiate 34
35 Alcune soluzioni in tal senso Crypto-processori in grado di eseguire istruzioni criptate Ogni processore e dotato di una coppia di chiavi (pubblica e privata) e di un numero di serie univoco Una trusted authority mantiene un database con le associazioni <numero di serie, chiave pubblica> All atto dell acquisto di un programma, il produttore lo cifra con la chiave pubblica del processore dell utente L utente esegue il programma in forma criptata, ed il crypto-processor lo decodifica usando la sua chiave privata e lo memorizza in un area di memoria non accessibile via software 35
36 Alcune soluzioni in tal senso Trusted Computing Platforms (TPM): Implementazione tecnologicamente piu fattibile dei crypto-processors Sistema dotato di chiavi pubblica e privata Contenuto (software, ma non solo) cifrato con la chiave pubblica dell acquirente Inutilizzabile (non decifrabile) su un altro sistema dotato di chiavi differenti Contenuto decriptato memorizzato in una partizione protetta della memoria 36
37 Tecniche anti-reversing Problema: proteggere il know how su cui e basata l applicazione anche nel caso in cui sia violata la protezione dalla copiatura Reverse engineering (reversing): dedurre la struttura del codice di un applicazione senza averne a disposizione il sorgente Compito difficile, ma non impossibile soprattutto per i linguaggi non compilati in istruzioni macchina (Java, C#, ecc.) 37
38 Quando impedire il reversing? Applicazioni non rilasciate con licenza opensource Sistemi di protezione dalla copia Impiego di piattaforme basate su bytecode (Java,.NET, ecc.) 38
39 Approccio all anti-reversing Eliminazione delle informazioni simboliche per ostacolare la decompilazione e/o il disassemblaggio Offuscamento del programma per impedire l analisi statica Evitare l esecuzione all interno di un debugger per impedire l analisi dinamica 39
40 Eliminazione di informazioni simboliche Non e un grosso problema per i linguaggi compilati tradizionali (C, C++, ecc.) tipicamente le versioni distribuite non contengono informazioni simboliche attenzione comunque alle symbol table utilizzate per il caricamento di librerie dinamiche, o per l esportazione di funzioni di libreria 40
41 Eliminazione di informazioni simboliche Problema rilevante per i linguaggi basati su bytecode (Java, C#, ecc.) Riferimenti interni basati su nomi invece che su indirizzi (nomi di classi e loro metodi, oggetti globali, ecc.) Molto facili da decompilare 41
42 Eliminazione di informazioni simboliche Un semplice esempio: calcolo del fattoriale import java.io.*; // User enters integer N. The program calculates N factorial. // class Fattoriale { public static void main (String[] args ) throws IOException { BufferedReader userin = new BufferedReader (new InputStreamReader(System.in)); String inputdata; long N, fact = 1; System.out.println( "Enter N:" ); inputdata = userin.readline(); N = Integer.parseInt( inputdata ); if ( N >= 0 ) { while ( N > 1 ) { fact = fact * N; N = N - 1; } System.out.println( "factorial is " + fact ); } else { System.out.println("N must be zero or greater"); } } } 42
43 Eliminazione di informazioni simboliche 43
44 Eliminazione di informazioni simboliche Codice decompilato // Decompiled by DJ v Copyright 2007 Atanas Neshkov Date: 12/9/ :12:17 PM // Source File Name: Fattoriale.java import java.io.*; class Fattoriale { Fattoriale() { } public static void main(string args[]) throws IOException { BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(System.in)); long l1 = 1L; System.out.println("Enter N:"); String s = bufferedreader.readline(); long l = Integer.parseInt(s); if(l >= 0L) { for(; l > 1L; l--) l1 *= l; System.out.println((new StringBuilder()).append("factorial is ").append(l1).tostring()); } else { System.out.println("N must be zero or greater"); } } } 44
45 Code obfuscation Mira a ridurre la possibilita di effettuare analisi statiche del codice Tecniche che modificano la struttura, la logica interna, la strutturazione dei dati e l organizzazione del codice mantenendolo funzionalmente identico all originale 45
46 Code obfuscation Tecniche semplici: Aggiungere porzioni di codice inutili (tipo quelle incluse in test sempre falsi), modificare i nomi, ecc. Essendo di natura sintattica, sono facilmente aggirabili mediante tecniche automatiche di deoffuscazione Sono richieste tecniche piu complesse Che hanno lo svantaggio di aumentare la dimensione del programma, il tempo di esecuzione, o entrambi) 46
47 Tecniche anti-debugger Mediante l impiego di un debugger, e possibile effettuare un esecuzione timestepped del programma, ed esaminarne lo stato ad ogni step Tecnica di base: detection e terminazione dell esecuzione 47
48 Tecniche anti-debugger Tecniche di detection: System/platform/debugger specific: Utilizzare funzioni previste dal sistema (IsDebuggerPresent/SystemKernelDebuggerInformation in ambito Windows) Sfruttare la conoscenza sul funzionamento di specifici debugger Code checksum: calcolare checksum di parti del codice I debugger funzionano modificano (on the fly) il codice eseguibile Il codice verifica se qualche parte del codice e stata modificata 48
49 Conclusioni La protezione dalla copiatura illegale del software e un problema sempre attuale La violazione di un meccanismo di copy protection porta alla creazione di nuovi meccanismi di copy protection, che a loro volta saranno violati La soluzione definitiva richiede necessariamente il supporto dell hardware Tali soluzioni pero sbilanciano fortemente il rapporto produttori-consumatori del sofware a vantaggio dei primi 49
50 Conclusioni Il problema dell anti-reversing non puo essere risolto in modo completamente automatico I tool di questo tipo funzionano in base ad euristiche non sempre efficaci Il loro operato puo essere sovvertito da appositi strumenti o da programmatori abili Occorre integrarli con l operato di programmatori competenti in grado di padroneggiare le tecniche di anti-reversing 50
La graduabilita della tutela della proprieta intellettuale del software
La graduabilita della tutela della proprieta intellettuale del software Cosimo Anglano Dipartimento di Informatica /Centro Studi sulla Criminalita Informatica Universita del Piemonte Orientale, Alessandria
DettagliArchitetture Applicative
Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliSoftware di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche
Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica
DettagliApproccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
DettagliProgrammare in Java. Olga Scotti
Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
DettagliIl Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10
Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
DettagliChi, come e quando predispone il contenuto delle specifiche?
Chi, come e quando predispone il contenuto delle specifiche? Giovanna Petrone Dipartimento di Informatica Università di Torino La Crisi del Software Problemi con il software: Spesso consegnato troppo tardi
DettagliReflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione
DettagliLICENZE D'USO E TIPOLOGIE DI SOFTWARE
LICENZE D'USO E TIPOLOGIE DI SOFTWARE Il software è tutelato dalle leggi sul diritto d'autore, in maniera simile a quanto avviene per le opere letterarie. Il contratto che regola l'uso del software è la
DettagliIntroduzione alla teoria dei database relazionali. Come progettare un database
Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare
DettagliArchitettura di un sistema operativo
Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
DettagliCoordinazione Distribuita
Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,
DettagliSoftware per Helpdesk
Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella
DettagliCome funzione la cifratura dell endpoint
White Paper: Come funzione la cifratura dell endpoint Come funzione la cifratura dell endpoint Chi dovrebbe leggere questo documento Amministratori della sicurezza e IT Sommario Introduzione alla cifratura
DettagliLICARUS LICENSE SERVER
UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Progetto per il corso di Sicurezza dei Sistemi Informatici LICARUS LICENSE SERVER
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliCon il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
DettagliCosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
DettagliSOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:
1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni
DettagliIntroduzione alla Virtualizzazione
Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse
DettagliPaolo Zatelli. Dipartimento di Ingegneria Civile e Ambientale Università di Trento. Open Source e Free Software. Open Source e Free Software
Paolo Zatelli Università di Trento 1/11 Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Università di Trento Paolo Zatelli Università di Trento 2/11 Free Software Il termine free si deve tradurre
DettagliLa Soluzione per CdA e Top Management. La soluzione è Secure Board by Boole Server
La Soluzione per Fusioni e acquisizioni, changing management, pianificazione e sviluppo del business, la documentazione correlata ai consigli di amministrazione, il corretto utilizzo dei documenti riservati
DettagliIl software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi
Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliVMware. Gestione dello shutdown con UPS MetaSystem
VMware Gestione dello shutdown con UPS MetaSystem La struttura informatica di una azienda Se ad esempio consideriamo la struttura di una rete aziendale, i servizi offerti agli utenti possono essere numerosi:
DettagliLa gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Dettagli10 - Programmare con gli Array
10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliFondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
DettagliSistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
DettagliLe licenze d uso. Le principali tipologie di licenze
Le licenze d uso La legge 633/41 attribuisce in via esclusiva all autore dell opera software tutti i diritti derivanti dall opera stessa, e vieta e punisce ogni abuso che leda questi diritti esclusivi.
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliIl Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo
Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza
DettagliDomande e risposte su Avira ProActiv Community
Domande e risposte su Avira ProActiv Community Avira AntiVir versione 10 sfrutta un innovativa tecnologia protettiva cloud-based, denominata ProActiv, che identifica e blocca i nuovi virus non appena questi
DettagliIl software e la programmazione
Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate
DettagliGuida alla prevenzione della pirateria software SIMATIC
Guida alla prevenzione della pirateria software SIMATIC Introduzione Questa guida è stata realizzata per aiutare la vostra azienda a garantire l utilizzo legale del software di Siemens. Il documento tratta
DettagliProtezione del Software
Protezione dalla copia Protezione del Software Alfredo De Santis! Aprile 0! Trovare un metodo contro la pirateria efficiente economico resistente contro i pirati esperti non invasivo Compito impossibile!
DettagliIntroduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)
Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,
DettagliIstruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)
Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza
DettagliSistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliMECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo
DettagliInformatica per la comunicazione" - lezione 13 -
Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
DettagliInizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
DettagliGESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
DettagliCorso di PHP. Prerequisiti. 1 - Introduzione
Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere
DettagliMagiCum S.r.l. Progetto Inno-School
MagiCum S.r.l. Progetto Inno-School Area Web Autore: Davide Revisione: 1.2 Data: 23/5/2013 Titolo: Innopedia File: Documentazione_tecnica Sito: http://inno-school.netsons.org/ Indice: 1. Presentazione
DettagliLicenze d uso libere. Rossetto Stefano Seminario di Commercio Elettronico
Licenze d uso libere Rossetto Stefano Seminario di Commercio Elettronico Open Source L OSI definisce un elenco di condizioni per definire una licenza Open Source: 1. Redistribuzione libera; 2. Codice sorgente
Dettaglideveloped by Emanuele De Carlo
developed by Emanuele De Carlo WorkGym è un Software sviluppato in JAVA pensato per migliorare la gestione di piccole e grandi palestre. Il suo principale scopo è quello di mantenere un DataBase contenente
DettagliIl Software. Il software del PC. Il BIOS
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
DettagliIl web server Apache Lezione n. 3. Introduzione
Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
DettagliTale attività non è descritta in questa dispensa
Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa
DettagliSistemi Operativi. 5 Gestione della memoria
Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria
DettagliARCHIVI E DATABASE (prof. Ivaldi Giuliano)
ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).
DettagliInformatica 1 Lezione 1
Informatica 1 Lezione 1 Concetti base: Hardware È l insieme delle parti fisiche, elettroniche e meccaniche che compongono il computer, quali il chip, il mouse, il lettore CDROM, il monitor, le schede,
DettagliLa Gestione delle risorse Renato Agati
Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)
DettagliChe cosa è un VIRUS?
Virus & Antivirus Virus Nella sicurezza informatica un virus è un software, appartenente alla categoria dei malware, che è in grado, una volta eseguito, di infettare dei file in modo da riprodursi facendo
DettagliLa soluzione software per CdA e Top Management
La soluzione software per CdA e Top Management DATI E DOCUMENTI PROTETTI Sempre. Ovunque. La Soluzione per Quando si parla di fusioni e acquisizioni, di cambiamenti di gestione, di pianificazione o di
DettagliCorso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 08 Traduzione ed esecuzione di programmi Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente materiale didattico
DettagliSistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
DettagliIl sistema operativo TinyOS
tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
DettagliGuida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724)
Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Procedo con un esempio: voglio proteggere una applicazione (nell esempio Blocco Note di Windows: notepad.exe) per distribuirla con
DettagliSistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL
STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione
DettagliSilca Software GLOSSARIO. February 2013 Copyright Silca S.p.A. V.2.0
GLOSSARIO Che cos è una SCHEDA? SCHEDA ovvero l insieme dei parametri relativi a spazi, profondità, basi del taglio, angoli, riferimenti, morsetto, fresa ( un totale di circa 250 parametri per ogni asse
DettagliIl Sistema Operativo. C. Marrocco. Università degli Studi di Cassino
Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.
DettagliGestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliModulo 1. Concetti di base della Tecnologia dell Informazione ( Parte 1.8) Rielaborazione dal WEB: prof. Claudio Pellegrini - Sondrio.
Modulo 1 Concetti di base della Tecnologia dell Informazione ( Parte 1.8) Rielaborazione dal WEB: prof. Claudio Pellegrini - Sondrio Copyright Tutte le software house tutelano il loro diritto a impedire
Dettagli1) GESTIONE DELLE POSTAZIONI REMOTE
IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo
DettagliCreare connessioni cifrate con stunnel
ICT Security n. 24, Giugno 2004 p. 1 di 5 Creare connessioni cifrate con stunnel Capita, e purtroppo anche frequentemente, di dover offrire servizi molto insicuri, utilizzando ad esempio protocolli che
DettagliUn nuovo modo per fare analisi e generare documenti dinamici
Un nuovo modo per fare analisi e generare documenti dinamici Cos è Web4Project Web4Project (W4P) è un software nel cloud che consente di fare analisi e generare documenti dinamici/report. Cosa fa W4P è
DettagliCorso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
DettagliIntroduzione alle tecnologie informatiche. Strumenti mentali per il futuro
Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle
DettagliCORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
DettagliFisciano, 24 ottobre 2008
Virtualizzazione applicazioni per la sicurezza Luigi Catuogno Fisciano, 24 ottobre 2008 Sommario Virtualizzazione e para-virtualizzazione Sicurezza Separazione delle applicazioni Virtual data center Trusted
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliLa soluzione software per Avvocati e Studi legali
La soluzione software per Avvocati e Studi legali DATI E DOCUMENTI PROTETTI Sempre. Ovunque. La Soluzione per La realtà operativa degli Studi Legali è caratterizzata dalla produzione e dalla consultazione
DettagliIl computer: primi elementi
Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni
DettagliIl SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)
Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliArchivi e database. Prof. Michele Batocchi A.S. 2013/2014
Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi
Dettagliintroduzione I MICROCONTROLLORI
introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la
DettagliIntroduzione al Software Libero
Introduzione al Software Libero Linux Day 6 23 novembre 2002 Il software Programma (codice) scritto in un particolare linguaggio di programmazione esistono molti linguaggi di programmazione (Di solito)
DettagliCompilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
Dettagli