LIVELLO TRASPORTO:
SSL utilizza un sistema di crittografia basato su
chiave pubblica e privata. Tramite firma digitale si
punta a evitare modifiche non autorizzate dei dati.
L’implementazione SSL si occupa di assicurare
privacy e autenticazione, eventualmente basandosi
su un’autorità di certificazione per autenticare il Web
Service e il client. SSL lavora con una combinazione
di chiavi segrete e pubbliche per instaurare una
comunicazione sicura. La chiave segreta è utilizzata
per criptare e decriptare il traffico, mentre la chiave
pubblica è utilizzata per la autenticazione delle parti
coinvolte. Le caratteristiche offerte dal protocollo
forniscono Autenticazione, poiché la comunicazione
avviene tra attori fidati, Confidenzialità, poiché i
messaggi sono criptati, Integrità, poiché i messaggi
giungono non corrotti, Scambio sicuro di chiavi,
metodo crittografico.
Esistono diversi limiti di SSL:
- è un meccanismo di sicurezza punto-punto,
mentre nei Web Services necessitiamo di un end-to-
end;
- opera a livello trasporto e non messaggio, una
volta a destinazione i dati saranno registrati in chiaro
a meno di non fornire un ulteriore meccanismo di
criptografia a sé stante;
TLS è un protocollo basato su SSL. Utilizza certificati
per autenticare gli utenti e i client TLS adottano
chiavi pubbliche fornite dal server per criptare un
numero random da rinviare al server. Quest’ultimo,
combinato con numeri precedentemente scambiati,
viene impiegato per garantire una chiave di sessione
per criptare il successivo scambio di messaggi. Gli
URL che richiedono una connessione SSL cominciano
per https invece che per http.
Questi standard di sicurezza servono quando
l’applicazione non interagisce direttamente con il
Web Service, ma con intermediari, è consigliabile un
meccanismo a livello di messaggio. Altrimenti è
sufficiente utilizzare un meccanismo a livello
trasporto.
Certificati SSL, chiavi di sicurezza e X509
I certificati SSL sono files dati che consentono di
associare una chiave di criptografia a
un’organizzazione. Permettono di instaurare
comunicazioni sicure e in genere accoppiano alla
chiave un nome di dominio e l’identità di
un’organizzazione. Stabilito il certificato, è possibile
connettersi a un sito Web o a un Web service della
compagnia tramite HTTPS.
I certificati dovrebbero essere rilasciati da
un’autorità di certificazione. Hanno un costo elevato.
Esempio di Ente Certificatore: X.509 è uno standard
ITU-T (International Telecommunication Union –
Telecommunication Standardization Sector). È
basato su un sistema gerarchico di autorità di
certificazione (CA), la quale rilascia un certificato che
accoppia una chiave pubblica a un nome distintivo o
alternativo.
SOAP SIMPLE OBJECT ACCESS PROTOCOL
È un protocollo universale che viene usato per
tradurre un protocollo in un altro, quando due
framework diversi devono comunicare tra loro, per la
trasmissione dei dati di RPC (dati di chiamata di
procedura remota). È un protocollo Interoperabile. È
basato su XML e quindi è di natura testuale e lo
rende meno performante rispetto a CORBA, .NET,
che sono binari
SOAP non definisce semantiche per i dati e le
chiamate, ma fornisce agli sviluppatori i mezzi per
farlo; Con un intenso uso dei Namespace XML, SOAP
permette agli autori dei messaggi di dichiararne la
semantica usando grammatiche XML definite.
SOAP è stato pensato per usare http come trasporto.
Per i messaggi SOAP si usa la modalità POST, dove il
blocco di dati, cioè il payload è costituito da
messaggio SOAP vero e proprio.
Per quanto riguarda LA STRUTTURA DEL MESSAGGIO
è COMPOSTO:
• Un elemento radice, envelope,
obbligatorio. Il name space di SOAP viene
dichiarato all’interno di questo elemento
• Un elemento header opzionale. Il suo scopo è
quello di trasportare informazioni non facenti parte
del messaggio, destinate agli “attori”, cioè alle varie
parti che il messaggio attraverserà per arrivare al
suo destinatario finale. È possibile specificare se il
destinatario di una header entry debba elaborarla
oppure possa ignorarla. L’attributo globale
mustUnderstand, inserito in una header entry, Se
posto a “1”, indica che l’attore deve elaborare la
entry. Se questo non è possibile, l’attore deve
generare un errore. Se posto a “0” indica che
l’elaborazione della entry è opzionale. è di default.
• Un elemento body obbligatorio. Questo
elemento contiene il messaggio vero e proprio.
contiene le informazioni per il destinatario finale del
messaggio. Il contenuto di Body è definito
dall’implementatore del messaggio tramite l’uso di
un particolare namespace. Il destinatario dovrà
elaborare i dati e obbedire alla loro semantica,
specificata dal namespace di appartenenza
I messaggi sono codificati (encoding) in XML.
Esistono i tipi semplici e i Tipi composti sono:
• Il tipo Array: il SOAP encoding fornisce un
elemento Array, che può essere usato per
serializzare matrici e vettori. Le istanze di un
elemento di tipo Array devono contenere un
attributo di tipo array Type che specifica il tipo degli
elementi dell’array. Ogni elemento è identificato
dalla posizione
• Le Strutture: una struttura dati in SOAP è
codificata tramite un elemento che contiene altri
elementi nidificati. Ogni elemento è identificato da
un nome.
REST REPRESENTATIONAL STATE TRANFER
È uno stile architetturale per i sistemi distribuiti.
Secondo i principi REST, il Web ha tutto quello che
serve per essere considerata una piattaforma di
elaborazione distribuita e non sono necessarie altre
sovrastrutture per realizzare quello che è il Web
programmabile. I principi sono:
• L'architettura REST si basa su http, e utilizza
i metodi HTTP. Quando viene inserito un URI nella
barra degli indirizzi di un browser gli si chiede di
eseguire un metodo HTTP sulla risorsa individuata
dall’URI. Il metodo che implicitamente si esegue è
GET, il cui effetto è l’accesso ad una
rappresentazione della risorsa identificata dall’URI.
• Le risorse, cioè un qualsiasi elemento oggetto di
elaborazione, sono gli elementi fondamentali su cui
si basano i Web Service RESTful, a differenza dei
Web Service SOAP-oriented che sono basati sul
concetto di chiamata remota
• I principi REST non pongono nessun vincolo sulle
modalità di rappresentazione di una risorsa.
Virtualmente possiamo utilizzare il formato che
preferiamo senza essere obbligati a seguire uno
standard.
• il principio della comunicazione stateless si
applica ad un Web Service RESTful, cioè le
interazioni tra client e server devono essere senza
stato. È una delle caratteristiche principali del
-
Realizzazione Web Services attraverso Spring Boot
-
Prevenzione e repressione degli illeciti compiuti all'interno del Deep Web e del Dark Web
-
Programmazione web
-
Web Security: analisi di un CMS basato su Wordpress