【问题标题】:Open a certificate store (program only)打开证书存储(仅限程序)
【发布时间】:2020-12-08 09:55:28
【问题描述】:

我正在实施一个程序,该程序涉及在证书存储中保存和读取证书。

证书的打开和读取是通过以下2个API完成的:

  CertOpenStore()
  CertFindCertificateInStore()

例如,证书(A)由程序存储在证书存储中,我希望用户无法与存储证书的存储进行交互(手动添加、删除证书......)。证书的删除或添加仅由程序执行。 那我该怎么做呢?

提前致谢。

【问题讨论】:

    标签: c++ cryptography window x509certificate2 cng


    【解决方案1】:

    基本上,您无法完全使其正常工作,因为它类似于 DRM 问题。用户始终可以对您的应用程序进行逆向工程并创建自己的运行时。

    您可以尝试通过存储执行 MAC 并将密钥保留在您的应用程序中。但是,如果用户找到密钥,则可以更改您的商店并创建新的身份验证标签。

    最终,您的应用程序需要可信执行环境 (TEE) 或某种访问权限提升(即在可以更改文件的特定用户下运行,而普通用户只能读取文件)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 2010-11-05
      相关资源
      最近更新 更多