У меня есть программа C# (работа на .NET 8), которая подписывает данные с использованием клавиши RSA, которая хранится в Windows Cert-/KeyStore. Ключ был импортирован с использованием Windows certmgr.msc в «персональный» магазин. Параметр импорта «Высокая безопасность» (пароль требуется) + Безопасность на основе виртуализации (делает ключ не экспортируемой) была активирована в диалоговом окне «Импорт». < /P>
static void Main()
{
string subjectName = "selfsigned";
using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectName,
subjectName,validOnly: false);
if (certs.Count == 0)
{
Console.WriteLine($"Certificate containing subject '{subjectName}' not found.");
return;
}
X509Certificate2 cert = certs[0];
using (RSA rsa = cert.GetRSAPrivateKey()) // fails here
{
if (rsa == null)
{
Console.WriteLine("Certificate does not have an RSA private key.");
return;
}
// ... do something with the key
}
}
}
< /code>
Код работает в системе Windows 10 (22H2, последние обновления), когда выполненные Windows отобразит диалог ввода пароля, и если пароль был правильно введен, я могу использовать закрытый ключ, например. Для подписания данных. < /p>
В корпоративной системе Windows 11 (24H2, последние обновления), однако, он не удастся с ошибкой «неверная ручка». Диалог ввода пароля никогда не отображается. То же самое на второй Win 11 Home System. < /P>
Ошибка: < /p>
Незаглавленное исключение.
system.security.cryptography.cryptographycexception: Das angegebene System.security.cryptography.cnghelpers.getProperty (SafeCrypThandle ncrypThandle, String PropertyName, Options CngProperTyoptions)
at system.security.cryptography.cngkey.get_algorithmgroup ()
att System.security.cryptography.rsacng.set_key (значение cngkey)
at system.security.cryptography.rsacng..cor System.security.cryptography.x509Certiationates.certificatePal. C.B__68_1 (CNGKEY CNGKEY)
at System.security.cryptography.x509certificates.certificatepal.getPrivatekey [t]2 createCsp, Func< /code> 2 createcng)
at system.security.cryptography.x509certiationates.certificateextensionscommon.getprivatekey [t] (x509certificate2 сертификат, предикат '1 matchestresstraints)
at program. /> это ошибка Windows 11 или система Windows 11 настроена таким образом, чтобы предотвратить использование таких клавиш? Только если вы установите дополнительный пароль, он всегда выйдет из строя в Windows 11.
Подробнее здесь: https://stackoverflow.com/questions/797 ... y-password
Windows 11: закрытый ключ не используется при защите VBS + High Security (пароль) ⇐ C#
Место общения программистов C#
1756195899
Anonymous
У меня есть программа C# (работа на .NET 8), которая подписывает данные с использованием клавиши RSA, которая хранится в Windows Cert-/KeyStore. Ключ был импортирован с использованием Windows certmgr.msc в «персональный» магазин. Параметр импорта «Высокая безопасность» (пароль требуется) + Безопасность на основе виртуализации (делает ключ не экспортируемой) была активирована в диалоговом окне «Импорт». < /P>
static void Main()
{
string subjectName = "selfsigned";
using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectName,
subjectName,validOnly: false);
if (certs.Count == 0)
{
Console.WriteLine($"Certificate containing subject '{subjectName}' not found.");
return;
}
X509Certificate2 cert = certs[0];
using (RSA rsa = cert.GetRSAPrivateKey()) // fails here
{
if (rsa == null)
{
Console.WriteLine("Certificate does not have an RSA private key.");
return;
}
// ... do something with the key
}
}
}
< /code>
Код работает в системе Windows 10 (22H2, последние обновления), когда выполненные Windows отобразит диалог ввода пароля, и если пароль был правильно введен, я могу использовать закрытый ключ, например. Для подписания данных. < /p>
В корпоративной системе Windows 11 (24H2, последние обновления), однако, он не удастся с ошибкой «неверная ручка». Диалог ввода пароля никогда не отображается. То же самое на второй Win 11 Home System. < /P>
Ошибка: < /p>
Незаглавленное исключение.
system.security.cryptography.cryptographycexception: Das angegebene System.security.cryptography.cnghelpers.getProperty (SafeCrypThandle ncrypThandle, String PropertyName, Options CngProperTyoptions)
at system.security.cryptography.cngkey.get_algorithmgroup ()
att System.security.cryptography.rsacng.set_key (значение cngkey)
at system.security.cryptography.rsacng..cor System.security.cryptography.x509Certiationates.certificatePal. C.B__68_1 (CNGKEY CNGKEY)
at System.security.cryptography.x509certificates.certificatepal.getPrivatekey [t]2 createCsp, Func< /code> 2 createcng)
at system.security.cryptography.x509certiationates.certificateextensionscommon.getprivatekey [t] (x509certificate2 сертификат, предикат '1 matchestresstraints)
at program. /> это ошибка Windows 11 или система Windows 11 настроена таким образом, чтобы предотвратить использование таких клавиш? Только если вы установите дополнительный пароль, он всегда выйдет из строя в Windows 11.
Подробнее здесь: [url]https://stackoverflow.com/questions/79745589/windows-11-private-key-not-usable-when-protected-vbs-high-security-password[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия