663 messaggi dal 08 aprile 2009
Secondo il GDPR mi contestano il fatto che quando viene effettuato il login alle mie applicazioni in fase di POST username e password sono inviati in chiaro.
Dettato anche da mia ignoranza pensavo che MVC mettendo un dato come tipo password lo inviasse già da se criptato ma non è così. Provato anche su applicativi dove già c'è il certificato SSL e anche lì è in chiaro.
Quindi chiedo che strada mi conviene intraprendere per gestire queste informazioni in post non in chiaro?
10.680 messaggi dal 09 febbraio 2002
Contributi
Ciao Laura,
avere il certificato SSL è sufficiente perché il protocollo HTTPS opera una crittografia a livello di trasporto, cioè i byte che vengono inviati dal client al server sono cifrati e perciò la comunicazione è assolutamente confidenziale. Eventuali "osservatori" esterni che dovessero sniffare il traffico, non potrebbero venire a conoscenza della password non essendo in possesso della chiave di decifratura che solo client e server conoscono. Tutto ciò avviene in maniera trasparente per l'applicazione server, che riesce a leggere la password originale perché dietro le quinte c'è stato lo stack di networking del sistema operativo che ha fatto tutto il lavoro di decifratura della richiesta del client.

Non è necessario fare cifratura anche a livello applicativo (cioè scrivendo codice C# e/o javascript) perché è superflua. Chi ti dice il contrario non sa di cosa sta parlando.
Le attività da fare sono:
  • Proteggi tutte le tue applicazioni server con certificato SSL emesso da una certification authority riconosciuta. Assolutamente non usare certificati autofirmati. C'è Let's Encrypt che ti permette di ottenere certificati validi e gratuiti;
  • Assicurati che lato server siano abilitati solo i protocolli TLS 1.2 e TLS 1.1, e disabilita invece TLS 1.0 e SSL 3.0 che hanno delle vulnerabilità;
  • In ottica GDPR, lato server dovresti cifrare i dati degli utenti at-rest, cioè mentre sono memorizzati nel db. Se ti interessa questa cosa in caso approfondiamo il discorso.



MVC mettendo un dato come tipo password

No, il campo password è una normale casella di testo come le altre. L'unica differenza è che il browser mette dei pallini al posto dei caratteri digitati. È solo un effetto visivo che serve a mascherare il valore agli occhi di altre eventuali persone presenti nella stanza, ma il valore non viene cifrato in nessun modo.

ciao,
Moreno
Modificato da BrightSoul il 25 maggio 2018 13.47 -

Enjoy learning and just keep making
663 messaggi dal 08 aprile 2009
Graize Moreno per la risposta.
Ci stiamo muovendo per mettere tutto sotto certificato SSL e li acquistiamo tramite il nostro provider register. Quindi penso che siano sicuri.

La configurazione su IIS la faccio io perchè su Windows non ho un sistematista specializzato che mi supporta purtroppoe io ho fatto una configurazione standard.
Tu mi dici questo:
Assicurati che lato server siano abilitati solo i protocolli TLS 1.2 e TLS 1.1, e disabilita invece TLS 1.0 e SSL 3.0 che hanno delle vulnerabilità;

Da dove si fa?

Per quanto riguarda i dati in post mi contestano quello che si vede dagli Headers nel form data tipo nel mio login vedi questo:
__RequestVerificationToken: wRHiEfeQh4k0myQ04kAldxvJh3wMflL_zjM5lLSMYupWGwH2KatKJQLmumsYLj2RNlZDQ255QQ88Mz7qDa4bzzRNso8yDwXggxTdkzKdbdE1
Username: username
Password: password
RememberMe: false


Questo è già su SSL.

Diciamo che chi mi ha fatto questa contestazione è una ditta tedesca (al momento mi hanno fatto chiudere l'applicazione) che si sono fatti verificare l'app web da un ente certificatore tedesco.
10.680 messaggi dal 09 febbraio 2002
Contributi
Ma tu hai possibilità di parlare direttamente con questo ente certificatore?
Hai l'esatta trascrizione di quello che hanno messo nel loro resoconto?
Vorrei vedere quello che hanno scritto perché può darsi che ti stiano contestando il fatto che la richiesta può essere inviata ANCHE su http, ovvero in chiaro. In quel caso la soluzione è impedire che l'applicazione venga servita sua porta 80 e mettere invece un redirect verso 443 (https).

Come ripeto, se questa applicazione è protetta da certificato SSL sei a posto perché i byte viaggiano su rete internet dopo che sono stati cifrati.


Per quanto riguarda i dati in post mi contestano quello che si vede dagli Headers nel form data tipo nel mio login vedi questo:

Ok, a che livello hanno fatto questa rilevazione e con quale tool? Per esempio, se io vado a vedere la richiesta dagli strumenti di sviluppo del browser (tasto F12) trovo lo username e la password in chiaro ma è normale che sia così. Il browser mi mostra, per mia convenienza, la richiesta in chiaro cioè PRIMA che fosse cifrata e che entrasse nella rete internet. Il fatto che io possa leggere username e password in chiaro dagli strumenti di sviluppo del browser non vuol dire che i dati viaggeranno in chiaro anche a livello di trasporto.
Per avere una rilevazione più accurata, bisognerebbe usare Wireshark che ti mostra esattamente gli effettivi pacchetti che vengono inviati al server remoto. Questo lo puoi fare anche tu sul PC client per dimostrargli che il traffico in realtà è cifrato.
https://www.youtube.com/watch?v=AVwkfl4wfp0


Per quanto riguarda i protocolli, leggi qui. Va solo fatta una verifica, credo che tu sia già a posto.
https://support.microsoft.com/it-it/help/187498/how-to-disable-pct-1-0-ssl-2-0-ssl-3-0-or-tls-1-0-in-internet-informat
https://blogs.msdn.microsoft.com/friis/2016/07/25/disabling-tls-1-0-on-your-windows-2008-r2-server-just-because-you-still-have-one/

ciao,
Moreno

EDIT: ho corretto il messaggio a proposito della porta 80 e aggiunto la questione di Wireshark
Modificato da BrightSoul il 25 maggio 2018 14.43 -

Enjoy learning and just keep making
663 messaggi dal 08 aprile 2009
partendo dal presupposto che attualmente questa app web non è sotto ssl perchè mandato preventivo per l'impostazione ancora non hanno risposto.
lo hanno fatto certificare dal TUV https://www.tuev-sued.de/home_de
Mi hanno mandato un pdf in tedesco (dove adesso io sto cercando di fare una traduzione iniziale prima che mi arriva da loro quella effettiva) con tutta l'analisi dove addirittura mi contestano che non vengono utilizzate tutte le ultime versioni di qualsiasi cosa. Il check lo hanno fatto con questo tool online
https://www.wappalyzer.com/

Quello che mi dico adesso io: è possibile che adesso tutti i nostri clienti che si affideranno ad enti certificatori che non hanno competenze tecniche noi dobbiamo stare a rispondere e spiegare che, se hai fatto una web application 3 anni fa è normale che non utilizzi l'ultima versione di jquery e che io non mi metterò mai ad aggiornarla?

Comunque quello che volevo è essere sicura di quello che andrò a dire e l'unico punto era appunto quello della password.

Per https adesso io li sto configuardo che in http non sono più raggiungibili e quindi faccio un redirect automatico su https. Questo vuol dire che le pagine non sono raggiungibili in http e questo l'ho fatto in questo modo:
 <system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
    </modules>
    <rewrite>
      <rules>
        <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
        <match url="(.*)" />
        <conditions logicalGrouping="MatchAny">
          <add input="{SERVER_PORT_SECURE}" pattern="^0$" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>


Leggendo mi sembrava la soluzione migliore...però forse sbaglio.


Sono andata nelle chiavi di registro e ho solamente SSL 2.0. Quindi devo creare come da guida TLS 1.1 e TLS 1.2 vero?


Per il resto io non posso parlare direttamente con questi tizi perchè noi effettivamente abbiamo venduto a una ditta italiana che danno il configuratore come servizio in germania.

Sapevo che c'erano 2 punti fondamentali che per il GDPR non andavano bene e uno di questi è il certificato ma che addirittura mi contesti le versioni del framework, versione di iis e jquery è veramente assurdo ed è ancora più assurdo che devo dare spiegazioni.
10.680 messaggi dal 09 febbraio 2002
Contributi
Che versione di IIS, Windows Server e .NET Framework hai?
Fai un test con questo tool per vedere quali sono i protocolli di sicurezza esposti dal tuo server
https://www.ssllabs.com/ssltest/
Modificato da BrightSoul il 25 maggio 2018 16.04 -

Enjoy learning and just keep making
663 messaggi dal 08 aprile 2009
loro sono su un server Windows Server 2012 R2, IIS è la versione 8.5, l'app web è compilata con .Net Framework 4.5, versione ASP.NET core v4.0.30319, e su IIS il pool è su un CLR Version 4.0
10.680 messaggi dal 09 febbraio 2002
Contributi
Ok, credo che TLS 1.1 e 1.2 siano già abilitati e che tu non debba far nulla, ma verificalo con questo tool. Lì puoi vedere anche se SSL 3.0 e TLS 1.0 sono abilitati o no (devono essere disabilitati).
https://www.ssllabs.com/ssltest/

Per il resto posso proseguire stasera tornato dal lavoro.

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.