【问题标题】:is cryptoapi good?cryptoapi 好用吗?
【发布时间】:2009-05-25 01:22:07
【问题描述】:

我正在编写一个加密程序,它可以在 c++ 中为 win32 执行哈希 (sha1)、加密、数字签名等操作 内置于 cryptoapi 安全中,或者我应该使用其他一些库,如 crypto++ 我需要最大的安全性并适用于所有系统 xp 和 vista(以及可选的 2000),但同时我需要最小化 exe 大小,因此不想要不需要的外部库

【问题讨论】:

    标签: c++ cryptography cryptoapi


    【解决方案1】:

    定义“安全”。内置的 windows 加密 api 做了它宣传的事情,并且没有任何没有得到纠正的缺陷,至少我知道。 “下一代加密货币”API 可能值得一看。

    通常,在安全程序中,问题在于人们对 API 所做的事情——密钥长度不足、以纯文本形式留下密钥等——这确实会造成麻烦,而不是供应商软件。

    【讨论】:

      【解决方案2】:

      “安全是一个过程,而不是一个产品。” - Schneier

      哈希、加密和签名等加密算法只是该过程的一部分:

      • 您如何存储您的密钥?它们会通过页面文件意外泄露到磁盘上吗?
      • 如何生成随机数?糟糕的随机数真的会削弱一切。只需向 DebianNetscape 询问恐怖故事即可。
      • IT 管理员能否更新允许使用组策略的算法?
      • 该解决方案是否支持外部强化设备?
      • 可以在内核模式下进行加密吗?
      • 在发生攻击或弱点时如何分发更新?

      CAPI 尤其是CNG on Vista 已经考虑过这些问题并且总体上是不错的。您可能想观看 CAPI 团队中的两个人的this video,以了解是谁设计的。

      此外,如果人们可以物理访问您的机器并放入键盘记录器,那么所有这些都没有实际意义。

      唉,这是一个过程……

      【讨论】:

        【解决方案3】:

        “最大安全性”将由您如何使用您选择的加密 API 来定义。它不会由 API 本身定义。

        只要 API 正确实现了各种加密算法,它就与任何其他加密 API 一样好。

        【讨论】:

          【解决方案4】:

          如果您需要“最大”的安全性,您确实需要聘请专家来帮助您。正如查理·马丁指出的那样,您不仅可以通过滥用加密 API 来结束不安全的程序,还可以通过正确使用错误类型的加密,通过滥用正确使用的 API 的结果,甚至在其他部分的不安全设计你的程序。

          这是软件行业非常常见的问题。

          【讨论】:

            【解决方案5】:

            如果使用得当,CryptoAPI 将尽其所能。

            您会发现有两种用于 Windows 加密的外部库:一种是重新实现所有内容的库,因为它们旨在支持多平台开发,另一种是在 CryptoAPI 之上为特定目的充当简化层。如果您属于前一类人群,请务必使用信誉良好的平台中立库。如果您发现在原始 CryptoAPI 中无法高效工作,请找到一个信誉良好的库,它可以在较少的步骤中完全满足您的需求。但是不要假设另一个库会因为它“更好”而解决您的安全风险;只要确保你使用的任何东西都是有信誉的。

            正如许多其他人指出的那样,如果您真的需要“最大安全性”(无论您的“最大”级别是多少),您可能需要聘请专家。此外,您确实需要从整体角度看待安全性;加密数据只是一方面。

            最后,不言而喻,不要梦想编写自己的密码库,甚至不要实现现有算法。你会失败的,很惨。

            【讨论】:

              【解决方案6】:

              出于安全考虑,请选择具有 fips 140-2 认证的库。之后,一切都取决于您是否安全地使用它。

              【讨论】:

                【解决方案7】:

                Crypto API 已弃用,在 Vista 中仍可使用,但您应该使用 CNG(下一代加密 API)。我不确定 Crypto API 在 Windows 7 中是否仍然可用。

                【讨论】:

                • cryptoAPI 在 windows 7 和 server 2008 中可用
                猜你喜欢
                • 2015-09-04
                • 1970-01-01
                • 2013-10-18
                • 2011-09-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多