Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kryptografi-API: Nästa generations (CNG) tillhandahåller funktioner som frågar efter, lägger till, tar bort och prioriterar chiffersviterna som en provider stöder. Ändringar som görs med hjälp av dessa funktioner börjar gälla omedelbart och kräver inte omstart av en aktiv server.
Anteckning
Du kan också ändra listan över chiffersviter genom att konfigurera SSL Cipher Suite Order grupprincipinställningar med snapin-modulen Grupprincipobjekt i Microsoft Management Console.
För att konfigurera grupprincipinställningen för SSL-kryptouppsättningens ordning
- I en kommandotolk anger du gpedit.msc. Redigeraren för gruppolicyobjekt visas.
- Expandera Datorkonfiguration, Administrativa mallar, Networkoch klicka sedan på SSL-konfigurationsinställningar.
- Under SSL-konfigurationsinställningarklickar du på inställningen SSL Cipher Suite Order.
- I fönstret SSL Cipher Suite Order bläddrar du längst ned i fönstret.
- Följ anvisningarna Så här ändrar du den här inställningen.
Du måste starta om datorn när du har ändrat den här inställningen för att ändringarna ska börja gälla.
Listan över chiffersviter är begränsad till 1 023 tecken.
Information om hur du prioriterar chiffersviter för Schannel finns i följande exempel.
Lista chiffersviter som stöds
Anropa funktionen BCryptEnumContextFunctions för att visa en lista över chiffersviter som en provider stöder i prioritetsordning.
I följande exempel visas hur du använder funktionen BCryptEnumContextFunctions för att lista chiffersviter som stöds.
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
#pragma comment(lib, "Bcrypt.lib")
void main()
{
HRESULT Status = ERROR_SUCCESS;
DWORD cbBuffer = 0;
PCRYPT_CONTEXT_FUNCTIONS pBuffer = NULL;
Status = BCryptEnumContextFunctions(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
&cbBuffer,
&pBuffer);
if(FAILED(Status))
{
printf_s("\n**** Error 0x%x returned by BCryptEnumContextFunctions\n", Status);
goto Cleanup;
}
if(pBuffer == NULL)
{
printf_s("\n**** Error pBuffer returned from BCryptEnumContextFunctions is null");
goto Cleanup;
}
printf_s("\n\n Listing Cipher Suites ");
for(UINT index = 0; index < pBuffer->cFunctions; ++index)
{
printf_s("\n%S", pBuffer->rgpszFunctions[index]);
}
Cleanup:
if (pBuffer != NULL)
{
BCryptFreeBuffer(pBuffer);
}
}
Lägga till, ta bort och prioritera chiffersviter
Anropa funktionerna BCryptAddContextFunction och BCryptRemoveContextFunction för att lägga till och ta bort chiffersviter från listan över chiffersviter som stöds.
När du lägger till en chiffersvit, ange värdet för parametern dwPosition för BCryptAddContextFunction-funktionen till CRYPT_PRIORITY_TOP för att lägga till den överst i den prioriterade listan, eller till CRYPT_PRIORITY_BOTTOM för att lägga till den längst ner i listan.
Om du vill prioritera listan över chiffersviter tar du bort alla chiffersviter från listan och lägger sedan till chiffersviter i listan i den ordning du vill ha dem.
I följande exempel visas hur du lägger till en chiffersvit överst i den prioriterade listan för Microsoft Schannel-standardprovidern.
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
#pragma comment(lib, "Bcrypt.lib")
void main()
{
SECURITY_STATUS Status = ERROR_SUCCESS;
LPWSTR wszCipher = (L"RSA_EXPORT1024_DES_CBC_SHA");
Status = BCryptAddContextFunction(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
wszCipher,
CRYPT_PRIORITY_TOP);
}
I följande exempel visas hur du tar bort en chiffersvit från den prioriterade listan för Microsoft Schannel-standardprovidern.
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
#pragma comment(lib, "Bcrypt.lib")
void main()
{
SECURITY_STATUS Status = ERROR_SUCCESS;
LPWSTR wszCipher = (L"TLS_RSA_WITH_RC4_128_SHA");
Status = BCryptRemoveContextFunction(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
wszCipher);
}