Cube2 e collegamento con protocollo TLS 1.2 | |||
In seguito all'utilizzo sempre più esteso e obbligatorio nelle reti, del protocollo di comunicazione con sicurezza TLS 1.2, e abbandono dei protocolli precedenti (deprecati), dalla versione Cube2 SR3 sono state effettuate alcune implementazioni per permettere l'utilizzo del protocollo di comunicazione TLS 1.2, verso SQL Server e Crystal Reports. Le versioni precedenti di Cube2 SR3 comunicano correttamente con SQL utilizzando il protocollo TLS 1.2 e SQL Server, ma alcuni accorgimenti sono necessari per permettere il funzionamento delle stampe di Crystal Reports, che di default utilizza un protocollo che non supporta TLS 1.2.
Nell'ultima sezione di questa pagina sono presenti diversi riferimenti all'argomento. Tutte le operazioni segnalate richiedono che gli aggiornamenti installati nel proprio sistema operativo siano allineati agli ultimi distribuiti da Microsoft. Stampe con Crystal Reports e TLS 1.2 Il driver standard, con il quale Crystal Reports contatta SQL Server, non è compatibile con un ambiente TLS 1.2 abilitato, e TLS 1.0 disabilitato. In questa casistica è richiesto pertanto la installazione (nel caso non sia già presente nel sistema) e l'utilizzo di un driver compatibile, come quello da noi utilizzato, "SQL Server Native Client 11.0".
In seguito all'installazione di un driver più aggiornato (come, nell'esempio, SQL Server Native Client 11.0), sarà necessario abilitare una opzione di registro, per indicare a Cube2 quale driver comunicare a Crystal Reports, nella stringa di connessione: BUSINESS/OPZIONI/CRPE_UsaSqlServerOdbcDriver Questo parametro permette di specificare il driver, installato nel sistema, compatibile con TLS 1.2. Nei nostri test abbiamo utilizzato "SQL Server Native Client 11.0", e abbiamo selezionato questo driver fra quelli disponibili nelle proprietà della opzione indicata. Resta comunque possibile indicare un driver diverso e non incluso fra quelli da noi indicati: verrà trasferito il nome del driver indicato dall'utente (procedura utile nel caso vi siano aggiornamenti futuri al nome del driver da parte di Microsoft ). Nota: se sono presenti report personalizzati, che prevedono anche l'indicazione di connessioni che differiscono da quella standard trasferita da Cube2, sarà necessario modificare i report per indicare il driver corretto da utilizzare durante il collegamento. Qui sotto una visualizzazione del driver SQL Server Native Client 11.0 presente nel sistema:
Installazione/aggiornamento di Cube2 SR3 Durante l'installazione di Cube2 SR3 (BUSSETUP), o l'esecuzione degli aggiornamenti (BUSAGG), viene rilevata la eventuale disabilitazione, nel registro di Windows, dei protocolli TLS 1.0 e 1.1, attraverso la lettura delle voci: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server\Enabled & HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client\Enabled HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server\Enabled & HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client\Enabled Se una delle due proprietà è impostata 0 si assume che tale protocollo è disattivato. Il supporto al protocollo di sicurezza TLS 1.2 è garantito solo dal nuovo Ole Db Provider di SQL Server (MSOLEDBSQL.DLL) e non dal vecchio (SQLOLEDB.DLL) da sempre utilizzato dal Setup/Aggiornamento di Business. Pertanto, il programma di Setup/Aggiornamento, all'avvio rileva se è installato tale nuovo provider. Se il protocollo TSL 1.0 è disabilitato e il nuovo provider Ole Db MSOLEDBSQL.DLL non è installato, viene prelevato da Microsoft (o da NTS Informatica se il Setup è avviato col parametro /DOWNLOADNTS) e installato in Windows. In questa fase può essere richiesto il riavvio del sistema operativo.
Quando il programma di Setup/Aggiornamento apre la connessione all'instanza di SQL Server scelta, qualora il protocollo TLS 1.0 è disabilitato, utilizza il nuovo provider Ole Db, quindi la stringa di connessione a SQL sarà "Provider=MSOLEDBSQL;..." al posto di "Provider=SQLOLEDB;..." Per forzare sempre l'utilizzo del nuovo Provider, indipendentemente dalla disabilitazione del protocollo TLS 1.0 nel registro di Windows, è possibile avviare il Setup/Aggiornamento con il nuovo parametro /FORZAUSOMSOLEDBSQL Nota: l'utilizzo di una configurazione di sicurezza di rete "mista", dove ad esempio esistono postazioni con TLS 1.0 abilitato, e altre postazioni dove TLS 1.0 è stato disabilitato, il processo di installazione/aggiornamento non può essere gestito automaticamente con la modalità sopra indicata. Questo perchè è possibile leggere il registro di Windows solo del computer corrente, e non di quello remoto (che potrebbe appunto avere configurazioni differenti nei protocolli di comunicazione).
Qui sotto viene mostrato il driver installato.
Ad oggi (maggio 2019) Microsoft non ha previsto un tool che semplifichi la gestione dei protocolli abilitati/disabilitati. Pertanto, per disabilitare i protocolli deprecati e considerati non sicuri (TLS 1.0 e TLS 1.1), e abilitare il protocollo TLS 1.2, si deve fare riferimento alla modifica dei parametri del registro di Windows, riportati nella pagina Microsoft: https://docs.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings Per agevolare una rapida configurazione, potrebbe essere utile caricare in un file con estesione .reg, e poi applicarlo, quanto di seguito riportato.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
L'inserimento delle ultime voci elencate, riferite a TLS 1.2, devono obbligatoriamente essere inserite su tutti i sistemi per permettere l'utilizzo del TLS 1.2. Per Windows 7 e Windows Server 2008 R2, che non prevede l'utilizzo del protocollo, è necessario verificare l'installazione, o procedere alla installazione della fix Microsoft segnalata nel KB3140245 . Inoltre è necessario abilitare questa voce: 64 bit Framework 4.x [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 32 bit Framework 4.x [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
64 bit Framework 2.x (non utilizzato da Cube2) [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 32 bit Framework 2.x (non utilizzato da Cube2) [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 (vedi anche https://docs.microsoft.com/it-it/dotnet/framework/network-programming/tls ) Sistemi Operativi Ricordiamo che i sistemi operativi antecedenti Windows 7 e Windows Server 2008 R2 non sono supportati da Microsoft: Note varie
TLS - Indicazioni generali sul protocollo
TLS 1.2 e SQL Server - Indicazioni sui Service Pack richiesti per le versioni antecedenti a SQL Server 2016 https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server SQL Server Native Client - Lifetime https://blogs.msdn.microsoft.com/sqlreleaseservices/snac-lifecycle-explained/ SQL Server - collegamenti OLE DB to ODBC deprecati SQL Server - OLE DB per SQL Server https://docs.microsoft.com/it-it/sql/connect/oledb/oledb-driver-for-sql-server?view=sql-server-2017 Sistema operativo Windows - schema di compatibilità con TLS https://docs.microsoft.com/en-us/windows/desktop/secauthn/protocols-in-tls-ssl--schannel-ssp- Procedure consigliate per TLS https://docs.microsoft.com/it-it/dotnet/framework/network-programming/tls Riepilogo di Microsoft sulla abilitazione di TLS 1.2 https://docs.microsoft.com/it-it/sccm/core/plan-design/security/enable-tls-1-2
|