struttura SCHANNEL_CRED (schannel.h)
Nota
La struttura SCHANNEL_CRED è deprecata. È consigliabile usare invece SCH_CREDENTIALS.
La struttura SCHANNEL_CRED contiene i dati per una credenziale Schannel.
Sintassi
typedef struct _SCHANNEL_CRED {
DWORD dwVersion;
DWORD cCreds;
PCCERT_CONTEXT *paCred;
HCERTSTORE hRootStore;
DWORD cMappers;
_HMAPPER **aphMappers;
struct _HMAPPER;
DWORD cSupportedAlgs;
ALG_ID *palgSupportedAlgs;
DWORD grbitEnabledProtocols;
DWORD dwMinimumCipherStrength;
DWORD dwMaximumCipherStrength;
DWORD dwSessionLifespan;
DWORD dwFlags;
DWORD dwCredFormat;
} SCHANNEL_CRED, *PSCHANNEL_CRED;
Membri
dwVersion
Impostare su SCHANNEL_CRED_VERSION.
cCreds
Numero di strutture nella matrice paCred.
paCred
Matrice di puntatori alle strutture di CERT_CONTEXT. Ogni puntatore specifica un certificato che contiene una chiave privata da usare per l'autenticazione dell'applicazione. In genere, questa matrice contiene una struttura per ogni metodo di scambio di chiavi supportato dall'applicazione.
Le applicazioni client spesso passano un elenco vuoto e dipendono da Schannel per trovare un certificato appropriato o creare un certificato in un secondo momento, se necessario.
hRootStore
Opzionale. Valido solo per le applicazioni server. Gestire in un archivio certificati che contiene certificati radice autofirmati
cMappers
Riservato.
aphMappers
Riservato.
_HMAPPER
cSupportedAlgs
Numero di algoritmi nella matrice palgSupportedAlgs.
palgSupportedAlgs
Opzionale. Puntatore a una matrice di identificatori di algoritmo ALG_ID che rappresentano gli algoritmi supportati dalle connessioni effettuate con le credenziali acquisite usando questa struttura. Se cSupportedAlgs è zero o palgSupportedAlgs è NULL, Schannel usa le impostazioni predefinite di sistema.
Attualmente, gli identificatori dell'algoritmo CALG_AES, CALG_AES_128e CALG_AES_256 non sono supportati.
grbitEnabledProtocols
Opzionale. Un DWORD che contiene una stringa di bit che rappresenta i protocolli supportati dalle connessioni stabilite con le credenziali acquisite tramite questa struttura. Se questo membro è zero, Schannel seleziona il protocollo. Per il nuovo sviluppo, le applicazioni devono impostare grbitEnabledProtocols su zero e usare le versioni del protocollo abilitate nel sistema per impostazione predefinita.
Questo membro viene usato solo dal provider microsoft unified security protocol pacchetto di sicurezza.
Le impostazioni globali del Registro di sistema hanno la precedenza su questo valore. Ad esempio, se SSL3 è disabilitato nel Registro di sistema, non può essere abilitato usando questo membro.
Questo membro può contenere uno dei flag seguenti.
dwMinimumCipherStrength
Livello minimo di crittografia della crittografia bulk, in bit, consentito per le connessioni.
Se questo membro è zero, Schannel usa l'impostazione predefinita del sistema. Se questo membro è -1, vengono abilitati solo i pacchetti di crittografia SOLO SSL3/TLS (noti anche come crittografia NULL).
dwMaximumCipherStrength
Massimo livello di crittografia della crittografia bulk, in bit, consentito per le connessioni.
Se questo membro è zero, Schannel usa l'impostazione predefinita del sistema.
Se questo membro è -1, vengono abilitati solo i pacchetti di crittografia SOLO SSL3/TLS (noti anche come crittografia NULL). In questo caso,
dwSessionLifespan
Numero di millisecondi in cui Schannel mantiene la sessione nella cache della sessione. Dopo che è trascorso questo periodo di tempo, tutte le nuove connessioni tra il client e il server richiedono una nuova sessione Schannel. Impostare il valore di questo membro su zero per usare il valore predefinito di 360000000 millisecondi (dieci ore).
dwFlags
Contiene flag di bit che controllano il comportamento di Schannel. Questo membro può essere zero o una combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Solo client.
Questo flag è l'opposto di SCH_CRED_MANUAL_CRED_VALIDATION e fa parte del comportamento predefinito di Schannel. |
|
Indicare a Schannel di passare il flag di CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL alla funzione CertGetCertificateChain Windows Server 2003 e Windows XP/2000: Questo flag non è supportato. |
|
Solo server.
Se questo flag è impostato, gli handshake completi eseguiti con questa credenziale non consentiranno la riconnessione. Viene creata una voce della cache, in modo che la sessione possa essere riattivata in un secondo momento usando la funzione ApplyControlToken |
|
Quando si verificano i certificati revocati, ignorare CRYPT_E_NO_REVOCATION_CHECK errori. Per altre restrizioni, vedere Osservazioni. |
|
Quando si controllano i certificati revocati, ignorare CRYPT_E_REVOCATION_OFFLINE errori. Per altre restrizioni, vedere Osservazioni. |
|
Solo client.
Impedire a Schannel di convalidare la catena di certificati server ricevuta. |
|
Solo client.
Impedire a Schannel di tentare di fornire automaticamente una catena di certificati per l'autenticazione client. |
|
Solo client.
Impedire a Schannel di confrontare il nome di destinazione fornito con i nomi dei soggetti nei certificati del server . |
|
Solo server.
Impedire a Schannel di usare le funzioni di mapping dei certificati di sistema predefinite per eseguire il mapping dei certificati client a un account utente. |
|
Quando si convalida una catena di certificati, controllare tutti i certificati per la revoca. Per altre restrizioni, vedere Osservazioni. |
|
Quando si convalida una catena di certificati, non controllare la radice per la revoca. Per altre restrizioni, vedere Osservazioni. |
|
Quando si convalida una catena di certificati, controllare solo l'ultimo certificato per la revoca. Per altre restrizioni, vedere Osservazioni. |
|
Solo client.
Schannel tenta di fornire automaticamente una catena di certificati per l'autenticazione client. Questo valore è l'opposto di SCH_CRED_NO_DEFAULT_CREDS. |
|
Indicare a Schannel di suddividere i dati da crittografare in due record separati per contrastare i punti deboli presenti nel protocollo SSL/TLS quando usato con la suite di crittografia simmetrica usando la modalità di concatenamento a blocchi crittografati. Per altre informazioni, vedere vulnerabilità in SSL/TLS potrebbe consentire la divulgazione di informazioni.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP e Windows XP/2000: Questo flag non è supportato. |
|
Schannel invia il certificato radice come parte del messaggio del certificato.
Nota Il certificato radice inviato in rete dal client o dal server Schannel non deve essere considerato attendibile. Deve essere convalidata in base a un hash attendibile del certificato radice.
|
|
Indica a Schannel di disabilitare algoritmi di crittografia deboli noti, suite di crittografia e versioni del protocollo SSL/TLS che potrebbero essere altrimenti abilitate per una migliore interoperabilità. |
|
Indica a Schannel di selezionare solo pacchetti di crittografia PSK e disabilitare tutte le altre suite di crittografia. |
dwCredFormat
Schannel in modalità kernel supporta i valori seguenti.
Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP e Windows XP/2000: Questo flag non è supportato e deve essere zero.
Valore | Significato |
---|---|
|
Il membro paCred della struttura SCHANNEL_CRED passato deve essere un puntatore a una matrice di byte di lunghezza 20 contenente l'identificazione personale del certificato. Si presuppone che il certificato si trova nell'archivio "MY" del computer locale. |
|
Il membro paCred della struttura SCHANNEL_CRED punta a una struttura SCHANNEL_CERT_HASH_STORE. |
Osservazioni
I flag di revoca dei certificati seguenti si escludono a vicenda.
- SCH_CRED_REVOCATION_CHECK_CHAIN
- SCH_CRED_REVOCATION_CHECK_END_CERT
- SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
Per personalizzare la segnalazione degli errori di revoca dei certificati per Schannel, usare i flag seguenti:
- SCH_CRED_IGNORE_NO_REVOCATION_CHECK
- SCH_CRED_IGNORE_REVOCATION_OFFLINE
Quando Schannel controlla lo stato di revoca di una catena di certificati, questi flag indicano rispettivamente di ignorare eventuali CRYPT_E_NO_REVOCATION_CHECK e CRYPT_E_REVOCATION_OFFLINE errori. Questi flag vengono ignorati se non è impostato alcun flag di revoca del certificato.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 8.1 [solo app desktop] |
server minimo supportato | Windows Server 2012 R2 [solo app desktop] |
intestazione |
schannel.h (include Schnlsp.h) |