Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
titkosítási API: A következő generációs (CNG) olyan függvényeket biztosít, amelyek lekérdezik, hozzáadják, eltávolítják és rangsorolják a szolgáltató által támogatott titkosítási csomagokat. A függvények használatával végrehajtott módosítások azonnal érvénybe lépnek, és nem igényelnek aktív kiszolgáló újraindítását.
Jegyzet
A titkosítási csomagok listáját úgy is módosíthatja, hogy konfigurálja a SSL titkosítási csomag sorrendjét a csoportházirend-beállítások segítségével a Microsoft Felügyeleti konzol csoportházirend-objektum beépülő moduljában.
A SSL-titkosítási csomag rendelésének csoportházirend-beállításának konfigurálása
- A parancssoron írja be: gpedit.msc. Megjelenik a csoportházirend-objektumszerkesztő.
- Bontsa ki számítógép konfigurációs, felügyeleti sablonok, hálózati, majd kattintson SSL-konfigurációs beállításokelemre.
- A SSL-konfigurációs beállításokterületen kattintson a SSL-titkosítási csomag rendelési beállítására.
- Az SSL titkosítási csomag sorrendje panelen görgessen a panel aljára.
- Kövesse a A beállítás módosításacímkével ellátott utasításokat.
A módosítás érvénybe lépéséhez a beállítás módosítása után újra kell indítani a számítógépet.
A rejtjelcsomagok listája legfeljebb 1023 karakter hosszúságú lehet.
A Schannel-titkosítási csomagok rangsorolásához tekintse meg az alábbi példákat.
- Támogatott titkosítási csomagok listázása
- Titkosítási csomagok hozzáadása, eltávolítása és rangsorolása
Támogatott titkosítási csomagok listázása
Hívja meg a BCryptEnumContextFunctions függvényt a szolgáltató által támogatott titkosítási csomagok prioritási sorrendben történő listázásához.
Az alábbi példa bemutatja, hogyan használható a BCryptEnumContextFunctions függvény a támogatott titkosítási csomagok listázására.
#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);
}
}
Titkosítási csomagok hozzáadása, eltávolítása és rangsorolása
Hívja meg a BCryptAddContextFunction és BCryptRemoveContextFunction függvényt, hogy a támogatott titkosítási csomagok listájából rejtjelcsomagokat vegyen fel és távolítson el.
Titkosítási csomag hozzáadásakor úgy állítsa be a BCryptAddContextFunction függvény dwPosition paraméterének értékét, hogy az CRYPT_PRIORITY_TOP a rangsorolt lista elejére kerüljön, vagy CRYPT_PRIORITY_BOTTOM a lista végére.
A titkosítási csomagok listájának rangsorolásához távolítsa el az összes titkosítási csomagot a listából, majd adja hozzá a titkosítási csomagokat a listához a kívánt sorrendben.
Az alábbi példa bemutatja, hogyan vehet fel titkosítási csomagot az alapértelmezett Microsoft Schannel-szolgáltató rangsorolt listájának tetejére.
#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);
}
Az alábbi példa bemutatja, hogyan távolíthat el egy titkosítási csomagot az alapértelmezett Microsoft Schannel-szolgáltató rangsorolt listájából.
#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);
}