{"id":687,"date":"2021-02-25T12:10:20","date_gmt":"2021-02-25T11:10:20","guid":{"rendered":"https:\/\/www.autenticazionesicura.it\/blog\/?p=687"},"modified":"2021-04-08T12:16:44","modified_gmt":"2021-04-08T10:16:44","slug":"jwt-per-un-dialogo-sicuro-fra-client-e-server","status":"publish","type":"post","link":"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/","title":{"rendered":"JWT: per un dialogo sicuro fra client e server"},"content":{"rendered":"<p>C\u2019\u00e8 una <strong>vulnerabilit\u00e0<\/strong> che affligge la maggior parte delle soluzioni software, soprattutto in ambito web: <strong>l\u2019identificazione dell\u2019utente e l\u2019autorizzazione all\u2019accesso<\/strong>.<\/p>\n<p>Il riconoscimento dell\u2019identit\u00e0 dell\u2019utente \u00e8 fondamentale sia in fase di accesso, che in ogni successiva fase del dialogo tra l\u2019utente (applicazione) e i suoi dati (server\/database).<\/p>\n<p>La <strong>tecnologia Json Web Token (JWT) <\/strong>garantisce che questo dialogo avvenga in modo sicuro.<\/p>\n<h3>Cosa significa JWT?<\/h3>\n<p>Il JSON Web Token (JWT) \u00e8 uno standard open che definisce uno schema in formato JSON per lo scambio di informazioni tra vari servizi.<\/p>\n<p>Il meccanismo alla base del funzionamento del JWT prevede che il client invii una richiesta al server, il server generi un token firmato e lo restituisca al client che, da quel momento in poi, lo utilizzer\u00e0 per autenticare le successive richieste.<\/p>\n<p>Il token generato dal server pu\u00f2 essere firmato, con una chiave segreta che conosce solo chi lo genera, tramite un algoritmo, oppure utilizzando una <strong>coppia di chiavi asimmetriche<\/strong> (pubblica\/privata).<\/p>\n<h3>Come \u00e8 fatto il JWT?<\/h3>\n<p>Il token \u00e8 composto da 3 parti fondamentali: <strong>header<\/strong>, <strong>payload<\/strong> e <strong>signature<\/strong>.<\/p>\n<ul>\n<li>L\u2019<strong>header<\/strong> contiene informazioni sulla tipologia del token e sul tipo di algoritmo di cifratura utilizzato, che sar\u00e0 a doppia chiave asimmetrica o a singola chiave, in funzione del livello di sicurezza che si vuole raggiungere.<\/li>\n<li>Il <strong>payload<\/strong>, nucleo principale del token, contiene le informazioni che serviranno per identificare l\u2019utente che ha effettuato l\u2019accesso e altre informazioni di interscambio. Tutte queste informazioni non sono criptate, perch\u00e9 la sicurezza intrinseca del token \u00e8 che non contiene informazioni utilizzabili da altri all\u2019infuori dello sviluppatore.<\/li>\n<li>La <strong>signature<\/strong> \u00e8, in pratica, la convalida del token e rappresenta la sicurezza oggettiva del JWT. La generazione del token avviene codificando in base 64 l\u2019header e il payload e unendo i due risultati separandoli con un \u201c.\u201d. Successivamente si applica l\u2019algoritmo di cifratura indicato nell\u2019header alla stringa ottenuta utilizzando la chiave segreta. Solamente chi \u00e8 in possesso della chiave \u00e8 in grado di effettuare la decodifica di verifica dell\u2019autenticit\u00e0. Il cambiamento anche di un solo bit delle prime due parti, infatti, invaliderebbe la firma digitale. Se il token firmato lato server viene corrotto o modificato da un agente esterno, non passer\u00e0 la successiva validazione.<\/li>\n<\/ul>\n<h3>Come si implementa il JWT?<\/h3>\n<p>L\u2019utilizzo di token <strong>JWT rappresenta molto di pi\u00f9 di un meccanismo di semplice autenticazione<\/strong>. L\u2019implementazione, tuttavia, pu\u00f2 risultare onerosa se si deve sviluppare tutto ex novo.<\/p>\n<p>La piattaforma Autentica permette agli sviluppatori di sfruttare le potenzialit\u00e0 del dialogo basato su JWT con un impatto trascurabile sui tempi di sviluppo e sulla complessit\u00e0 della successiva manutenzione.<\/p>\n<p>Scordavo. JWT e Autentica rispettano il GDPR..<\/p>\n<p>Se vuoi sapere ancora di pi\u00f9 su JWT puoi leggere <a href=\"https:\/\/www.autenticazionesicura.it\/documenti\/JWT.pdf\">qui<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\u2019\u00e8 una vulnerabilit\u00e0 che affligge la maggior parte delle soluzioni software, soprattutto in ambito web: l\u2019identificazione dell\u2019utente e l\u2019autorizzazione all\u2019accesso. Il riconoscimento dell\u2019identit\u00e0 dell\u2019utente \u00e8&#8230;<\/p>\n","protected":false},"author":3,"featured_media":686,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[15,16],"tags":[40,27,50,37,38,39],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JWT: per un dialogo sicuro fra client e server - Autentica<\/title>\n<meta name=\"description\" content=\"Il JSON Web Token (JWT) \u00e8 uno standard open che definisce uno schema in formato JSON per lo scambio di informazioni tra vari servizi.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JWT: per un dialogo sicuro fra client e server - Autentica\" \/>\n<meta property=\"og:description\" content=\"Il JSON Web Token (JWT) \u00e8 uno standard open che definisce uno schema in formato JSON per lo scambio di informazioni tra vari servizi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Autentica\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-25T11:10:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-08T10:16:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.autenticazionesicura.it\/blog\/wp-content\/uploads\/2021\/02\/per-blog-JWT.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1152\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/#website\",\"url\":\"https:\/\/www.autenticazionesicura.it\/blog\/\",\"name\":\"Autentica\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.autenticazionesicura.it\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/#primaryimage\",\"inLanguage\":\"it-IT\",\"url\":\"https:\/\/www.autenticazionesicura.it\/blog\/wp-content\/uploads\/2021\/02\/per-blog-JWT.jpg\",\"contentUrl\":\"https:\/\/www.autenticazionesicura.it\/blog\/wp-content\/uploads\/2021\/02\/per-blog-JWT.jpg\",\"width\":1920,\"height\":1152,\"caption\":\"Json Web Token: come funziona\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/#webpage\",\"url\":\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/\",\"name\":\"JWT: per un dialogo sicuro fra client e server - Autentica\",\"isPartOf\":{\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/#primaryimage\"},\"datePublished\":\"2021-02-25T11:10:20+00:00\",\"dateModified\":\"2021-04-08T10:16:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/#\/schema\/person\/9dda5bd45749b023300e4327a827b658\"},\"description\":\"Il JSON Web Token (JWT) \\u00e8 uno standard open che definisce uno schema in formato JSON per lo scambio di informazioni tra vari servizi.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/\",\"url\":\"https:\/\/www.autenticazionesicura.it\/blog\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/jwt-per-un-dialogo-sicuro-fra-client-e-server\/#webpage\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/#\/schema\/person\/9dda5bd45749b023300e4327a827b658\",\"name\":\"Francesco Reale\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.autenticazionesicura.it\/blog\/#personlogo\",\"inLanguage\":\"it-IT\",\"url\":\"https:\/\/www.autenticazionesicura.it\/blog\/wp-content\/uploads\/2021\/01\/francessco.jpg\",\"contentUrl\":\"https:\/\/www.autenticazionesicura.it\/blog\/wp-content\/uploads\/2021\/01\/francessco.jpg\",\"caption\":\"Francesco Reale\"},\"sameAs\":[\"https:\/\/www.geninfo.it\/\"],\"url\":\"https:\/\/www.autenticazionesicura.it\/blog\/author\/francesco-reale\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/posts\/687"}],"collection":[{"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/comments?post=687"}],"version-history":[{"count":2,"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/posts\/687\/revisions"}],"predecessor-version":[{"id":689,"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/posts\/687\/revisions\/689"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/media\/686"}],"wp:attachment":[{"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/media?parent=687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/categories?post=687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.autenticazionesicura.it\/blog\/wp-json\/wp\/v2\/tags?post=687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}