生成 CrypoAPI (CAPI) 私钥

2024-01-01

我正在尝试使用静态加密IXml加密器 https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/extensibility/key-management?view=aspnetcore-3.1#ixmlencryptor。特别是使用证书加密器。 (这是 IXmlRepository 系统的一部分,用于共享解密 cookie 和通用密钥的密钥密钥管理 https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/implementation/key-management?view=aspnetcore-3.1在 ASP.NET Core 中。)

This 文档页面 https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/implementation/key-encryption-at-rest?view=aspnetcore-3.1#x509-certificate讨论为此目的使用 X.509 证书。

它表示“只有带有CAPI私钥都支持”。

谷歌搜索显示 CAPI 意味着 Microsoft CryptAPI。但我找不到更多关于它的信息,而且我能找到的似乎与 C++ 相关。

当我问我的“证书人”什么是“CAPI 私钥”时,他基本上告诉了我这一点:

Microsoft 生成的转换为 x509 的 PFX 文件有一个密码。这是我唯一能想到的。

这是同一件事吗?

If not, 如何创建带有 CAPI 私钥的 X.509 证书?

注意:X.509 证书是列表中列出的唯一选项。文档页面 https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/implementation/key-encryption-at-rest?view=aspnetcore-3.1#x509-certificate它将在 Linux 机器(容器)上运行。这就是为什么我不考虑任何其他(可能更简单)的选择。


您的“证书人”不正确。

Microsoft 有两个版本的加密系统:Legacy CrypotAPI(简称 CryptoAPI 或 CAPI)和下一代加密技术(CNG、CAPI2)。

CrytpoAPI 是在 Windows 2000 中发明的。旧版 CryptoAPI 在道德上已经过时,不支持 ECC、SHA2:仅支持 RSA/旧版 DSA(最多 1k 长密钥)、DES/3DES、RCx,没有内置 AES。密钥存储在传统加密服务提供商(或 CSP)中。不过,在 Windows Vista+ 中,添加了具有 SHA2 和 AES 的旧版 CSP,以帮助旧应用程序利用它们,而无需对代码进行太多更改。

CNG 于 2007 年在 Windows Vista/Windows Server 2008 中首次引入,确实是一个好东西:它非常可扩展,具有 NSA Suite B 加密技术(ECC 非对称密钥、SHA2 算法组)的本机支持、密钥隔离、统一的密钥集BCrypt 的功能还必须更多。大多数仅限 CNG 的 API 包括NCrypt, BCrypt, CNG, NG名称中的后缀/前缀明确表示它是 CNG API。在 CNG 中,密钥存储在重新设计的称为密钥存储提供程序 (KSP) 的 CSP 中,以将其与传统 CSP 区分开来,因为它们不相同(尽管有一个单向桥可以从 KSP 访问 CSP,但除此之外则不然)。

然而,.NET 在采用 CNG 方面遇到了困难,并且仅在 .NET 4.7 中或多或少可用(以前存在实现,但有已知的限制),并且第 3 方应用程序仅在明确添加对 CNG 的支持时才支持 CNG,因为 CNG使用不同的 API,并且 .NET Framework 升级不会使应用程序支持 CNG。

这是关于 CAPI 和 CAPI2 之间差异的一些理论。

您的文档表明它需要使用旧版 CSP 来存储私钥的证书。在 Windows 中创建时,如果使用以下提供程序之一,则使用旧版 CSP:

Microsoft Base Cryptographic Provider v1.0
Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
Microsoft Base DSS Cryptographic Provider
Microsoft Base Smart Card Crypto Provider
Microsoft DH SChannel Cryptographic Provider
Microsoft Enhanced Cryptographic Provider v1.0
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
Microsoft Enhanced RSA and AES Cryptographic Provider
Microsoft RSA SChannel Cryptographic Provider <- this is preferred for legacy CSPs
Microsoft Strong Cryptographic Provider

您可以在 Windows 上创建证书(密钥对)时指定其中任何一个。例如,当使用New-SelfSignedCertificatePowerShell cmdlet(默认为 CNG KSP)或 certreq.exe 工具,用于生成由外部 CA 签名的请求。这部分取决于您用于创建证书/证书请求的工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生成 CrypoAPI (CAPI) 私钥 的相关文章

  • 无法使用 ASP.NET Core 从 JWT 令牌获取声明

    我正在尝试使用 ASP NET Core 实现 JWT 持有者身份验证的非常简单的实现 我从控制器返回的响应有点像这样 var identity new ClaimsIdentity identity AddClaim new Claim
  • 在 C# 中加密并在 Flex 中解密

    我需要解密 Flex 中的一些数据 这些数据是用 C 加密并写入文件的 为了简单起见 我选择使用 as3crypto As3 库和 Bruce Schneier C 库 AS3 as3加密链接 http code google com p
  • C# 证书生成框架

    有谁知道可以生成公钥 私钥 X 509 证书并签署这些证书的 C 框架 BouncyCastleCrypto 虽然这个名字很疯狂 但我很确定它具有所有这些功能 几乎所有 RFC 标准均已实施 当我几年前使用它时 它的文档记录很少 但是单元测
  • ASP.NET Core 会话超时

    我记得我们在 ASP NET 中使用了 session timeout 来更改会话超时 如果不更改 则为 20 分钟 我尝试在 Startup cs 中更改 ASP NET Core 3 1 中的会话超时 但没有任何反应 我对操作员使用身份
  • 无论如何要解密加密的sql server存储过程吗?

    我有几个 ms sql server 2000 存储过程 很久以前就被前雇员加密了 一切都很好 直到我们需要稍微改变一下 有什么方法可以检索源代码吗 或者重写是唯一的选择 多谢 或者免费 谷歌是你的朋友 http searchsqlserv
  • 无法在 ASP.NET Core 项目中添加对 .NET Core 类库的引用

    我创建了一个新的ASP NET CoreVS 2015 更新 3 中的项目和类库 就是这样project json好像 version 1 0 0 dependencies NETStandard Library 1 6 0 framewo
  • 新任务中使用的依赖注入服务

    我在需要时使用依赖项注入来访问我的服务 但我现在想要创建一个并发任务 但这会由于依赖项注入对象及其生命周期而导致问题 我读过这篇文章 标题 防止多线程 Link http mehdi me ambient dbcontext in ef6
  • .Net Core 模拟无法与 Process.Start 一起使用

    在 Net Core 下使用模拟时 我似乎无法以其他用户身份启动进程 我在 Linqpad 中以 User1 身份运行此脚本 并尝试以 User2 身份启动程序 起初 模仿似乎有效 Console Writeline 当前用户的 s 从 U
  • ASP.NET Core Identity 更改登录 URL

    我正在使用 ASP NET Core 2 1 并且使用脚手架来添加身份 工作正常 除了当我尝试转到需要登录的页面时 它需要我 Identity Account Login ReturnUrl 如何将其更改为仅转到 Account Login
  • 如何在 EF Core 2.1 中定义外键关系

    我的 DAL 使用 EF Core 2 1 这就是我的模型的样子 一名用户只能拥有一种角色 Role entity kind of master public class Role public int RoleId get set pub
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 为什么AES java解密返回额外的字符?

    请原谅我英语不好 我使用 mcrypt 我从这里得到它用于 php 和 java 的 MCrypt https snipt net raw ee573b6957b7416f28aa560ead71c3a2 nice 在我的android应用
  • 检测到的包版本超出依赖性约束:Microsoft.AspNetCore.App 2.1.1

    我正在尝试使用以下命令在我的 API 中安装一些软件包 Install Package Microsoft EntityFrameworkCore SqlServer 它抛出一个错误 如下所示 NU1608 Detected package
  • crypto++ / pycrypto 与谷歌应用程序引擎

    我正在使用 crypto 将 AES 加密的 http 请求发送到应用程序引擎 计划在那里解密它们 我的计划是加密 之后的部分所以它是这样的 http myurl com Command eiwjfsdlfjldkjfs http myur
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • .NET CORE WEB API 接受整数列表作为 HTTP GET API 中的输入参数

    我正在使用 net core 3 Web api 下面是我的操作的样子 它使用 HTTP GET 我想传递几个字段 其中一个字段是整数列表 HttpGet Route cities public ActionResult
  • 增加在 Azure 上运行的 Dockerized ASP.NET Core 站点的最大上传大小限制?

    以下是应用程序的架构 使用 ASP NET Core 编写的 Web API Dockerfile 使用以下命令构建 Web 应用程序microsoft dotnet 2 1 sdk并使用执行 APImicrosoft dotnet asp
  • 使用 PBKDF2 和 SHA256 生成 128 位 AES 密钥是否安全?

    我想使用 PBKDF2 和一些加密哈希函数来生成 128 位 AES 密钥 SHA1 也是 128 位 所以我想将其与 PBKDF2 一起使用 但它已损坏 所以我选择使用 SHA256 这是否安全 或者散列大小和生成的密钥大小之间的差异是否
  • 从类型获取 DbSet

    我正在尝试为 MVC 6 应用程序制作通用表查看器 编辑器 我目前使用 Context GetEntityTypes 返回给我一份表格列表 现在我需要获取特定类型的数据 我当前的实现是 On my context public IQuery
  • 证书问题 - Windows 7 升级后导入密钥“对象已存在”时出错

    我有大约 60 个 pfx 文件 用于项目的所有主要程序集 它们是独特的文件 但我对所有文件使用相同的密码 从 Windows Vista 升级到 Windows 7 后 当我在 Visual Studio 2008 中单击 生成 时 会出

随机推荐

  • 如何获得isolatedStorage中所有文件的平面列表?

    我需要获取给定isolatedStorage文件夹中所有文件的列表 isolatedStorage 的根目录下有一些子文件夹 这些子文件夹需要包含在列表中 通常的 System IO 类不能与isolatedStorage 一起使用 这是我
  • Keras 预测不会返回 celery 任务

    以下 Keras 函数 预测 在同步调用时有效 pred model predict x 但当从异步任务队列 Celery 中调用时它不起作用 Keras 预测函数在异步调用时不会返回任何输出 堆栈是 Django Celery Redis
  • AngularJS 承诺返回空对象

    基本上我想做的是从解析承诺的函数调用中分配一些模型值 像这样 value someFun 这是我调用此函数的服务 app factory SomeService function q return someFun function var
  • pandas 系列的循环移位

    我正在对 pandas 中的数据系列使用移位方法 文档 http pandas pydata org pandas docs stable generated pandas Series shift html 是否可以一步进行循环移位 即第
  • 如何使用Delphi2007运行非提升的进程

    我有一个类似安装程序的应用程序 我必须在 Vista 上以提升的身份运行它 但从那里我必须开始一个非提升的新流程 有什么提示如何使用 Delphi2007 做到这一点吗 我找到了一个C 的优秀示例 http www codeproject
  • 如何更改 Visual Studio Code 中的解释器?

    我在我的系统上安装了几个 Python 解释器 2 x 和 3 x 版本 我正在尝试准备我的工作环境 以便可以在用两个 Python 版本编写的代码之间轻松切换 在 Visual Studio Code VSC 中拥有尽可能灵活的设置非常重
  • 如何更改 Font Awesome 5 中图标的颜色?

    我无法使用这些代码为 Font Awesome 5 图标着色 我试过fillcss 属性用于设置颜色 但它不起作用 HTML 代码 div class container mt200 icons div class col md 3 div
  • SQL Server 中的函数与存储过程

    在 SQL 中什么时候应该使用函数而不是存储过程 反之亦然 每个的目的是什么 函数是计算值 不能执行永久的环境更改SQL Server 即 没有INSERT or UPDATE允许声明 函数可以内联使用SQL如果它返回标量值 则可以使用语句
  • Google Play 游戏应用中未显示成就

    我们根据官方谷歌开发文档为我们的 Android 游戏实现了 Google Play 成就 但似乎有些不对劲 因为我们注意到 Google Play 游戏应用程序中存在以下奇怪的行为 成就不会显示在 Google Play 游戏应用中 在
  • 计算三个加密数字的平均值

    是否可以计算三个加密整数的平均值 对加密方法没有限制 这样做的目的只是隐藏三个数字并求平均值 你似乎正在寻找的东西叫做同态加密 http en wikipedia org wiki Homomorphic encryption 一种加密方案
  • LibGDX FreeType 字体模糊

    我正在使用屏幕高度百分比和设置百分比动态生成字体 显然将来会乘以密度 一些笔记 我正在读取 OTF 文件 使用最新版本的LibGDX 版本1 2 0 我有以下问题 字体有很大的断裂 看起来很模糊 但仅限于medium Large and s
  • 如何在android中滚动tableview

    我有一个要滚动的表格视图 因为数据未显示完整
  • ggplot2 轴标签分组

    我正在尝试使用 ggplot2 构建一个图 在 X 轴上我可以找到某种为变量组添加标签的方法 这是我的代码的最小版本 Bzero lt 100 matrix runif 100 ncol 10 nrow 10 B lt 99 LNtype
  • 横向压平两列,雪花中不重复

    我有一个查询 该查询按两个变量进行分组以获得另一个变量的总数 为了维护我的表结构以供以后计算 我列出了另外两个变量以保存查询的下一阶段 但是 当我尝试稍后对 listagg 列进行两次展平时 我的数据会重复多次 示例 my table id
  • PyQt |信号不在 QThread 中处理,而是在主线程中处理

    在这个简单的 PyQt 演示程序中 我从主线程发出信号 在工作线程中 我连接到它们 但信号处理程序在主线程中运行 from PyQt4 import QtGui QtCore import threading from time impor
  • 使用没有 Surface View 的 Android 相机

    我正在android上开发 我想用相机做一些事情 处理像素的值 但只是在后台 是否可以在没有表面视图的情况下做到这一点 只需使用缓冲区读取像素值并进行处理 感谢每一位可以帮助我的人 从 API 级别 11 开始表面纹理 http devel
  • 哪些 GCC 优化标志和技术在 CPU 上是安全的?

    当编译 链接适用于 ISA 例如 x86 64 的所有实现的 C C 库或程序时 从正确性和运行时性能的角度来看 哪些优化标志是安全的 我希望优化能够产生正确的结果 并且不会对特定 CPU 的性能造成损害 例如 我希望避免优化标志 这些优化
  • SpannableStringBuilder 用正则表达式替换内容

    我有以下代码 我将在其中标记大括号之间的内容SpannableString并删除花括号 但它给出了错误的结果 String text the quic k brown fox jumps over the lazy dog A Quick
  • 嵌套参数无法编译

    我正在尝试将我的代码编译成 Python 3 模块 当我在 IDLE 中选择 运行模块 时它运行良好 但当我尝试创建发行版时收到以下语法错误 File usr local lib python3 2 dist packages simple
  • 生成 CrypoAPI (CAPI) 私钥

    我正在尝试使用静态加密IXml加密器 https learn microsoft com en us aspnet core security data protection extensibility key management vie