【问题标题】:Required permissions for accessing Smartcards from Windows Service从 Windows 服务访问智能卡所需的权限
【发布时间】:2010-11-14 09:04:35
【问题描述】:

我有一个使用智能卡做一些事情的 Windows 服务。智能卡的证书映射到本地机器的 MY 存储中。服务以 System 运行时访问智能卡的私钥没有问题,但以 NetworkService 运行时访问智能卡私钥失败。

我已经使用证书 MMC(管理私钥...)授予对 NetworkService 证书的访问权限。

我得到的错误是:智能卡资源管理器没有运行。

引发错误并带有加密异常。

Stacktrace:   at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters     parameters, Boolean randomKeyContainer)
    at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
    at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
    at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
    at System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()

您知道访问智能卡资源管理器需要哪些特权和/或权限吗?

亲切的问候,

亨宁克劳斯

【问题讨论】:

    标签: c# .net smartcard least-privilege


    【解决方案1】:

    LocalService 有足够的权限来访问智能卡。这是我采用的解决方案。

    【讨论】:

    • 这是有效的。但是LocalService 可以完全访问计算机。还有其他解决方案吗?将 NT Service\ 添加到 Windows 组之类的东西?或者以某种方式将其添加到组策略中?
    • 您是否将 LocalService 与 LocalSystem 混淆了? LocalService 类似于 NetworkService,但对远程系统进行匿名身份验证。
    • 抱歉,我将LocalSystemLocalService 混淆了。服务应该以NT Service\<ServiceName> 执行,它适用于 Windows 10。仅适用于 Windows 7 Pro,这不起作用。我能够在 Win 7 Pro 中使用 NT AUTHORITY\Local ServiceNT AUTHORITY\System 运行它。是否可以使用适当的服务帐户(NT Service\<ServiceName>)运行服务?这是在 SQL Server 中使用 Windows 身份验证所必需的。
    • 没有“真实”帐户 NT Service\。那是一个由 WIndows 创建的虚拟帐户。见stackoverflow.com/questions/14197908/…。因此,如果启用此功能,您可以基于 NT Service\ 而不是本地服务或本地系统授予权限。但这与服务实际运行的帐户无关。
    • "所以如果你启用这个,你可以基于 NT Service\ 授予权限,而不是本地服务或本地系统" ... 访问智能卡需要哪些权限?
    【解决方案2】:

    【讨论】:

    • 这不起作用,因为有问题的 ACL 在每次重新启动时都会重置。
    猜你喜欢
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多