【问题标题】:How to manage/store encryption key in .Net smart card?如何在 .Net 智能卡中管理/存储加密密钥?
【发布时间】:2013-02-27 09:34:41
【问题描述】:

我一直在这里搜索并阅读了很多关于密钥的 Q,但不幸的是没有人询问智能卡或任何便携式设备。

这是我的问题:

我有存储敏感医疗信息的智能卡。 ,我需要使用卡内的任何对称算法加密此信息。 但我真的对密钥感到困惑。

  • 我应该在哪里存放它?
  • 每次存储新信息时都必须生成吗?
  • 我应该选择一个强键并将其存储在某个地方而不更改吗?

【问题讨论】:

    标签: .net security encryption smartcard secret-key


    【解决方案1】:

    您的问题在这方面有点不清楚,您试图使用加密保护什么以及针对什么(爱好程序员、密码学专家、特勤局)。由于智能卡及其操作系统可以充分保护自己,因此您不太可能希望防止未经授权的卡被提取。合法主机应用程序也不太可能以加密形式进行处理。所以很可能读取过程本身需要受到保护,这对于非接触式/NFC 来说是显而易见的,但对于基于接触的通信来说也是一个好主意。

    这里的重要术语是安全消息传递。要么你有一个强大的静态密钥,它很少需要改变,这取决于使用的强度,或者更常见的是,你协商一个会话密钥,这也可能取决于一个(可能是固定的)秘密。两者都可以与序列计数器结合使用,因此即使在会话中读取相同的数据也会提供不同的密码。无论您选择哪种方式,都必须在两侧存储/计算密钥。部分机密需要自己进行安全存储,这取决于攻击的可能性,可能存储在磁盘上的加密文件(具有完全不同的密钥)中,或者在极端情况下,存储在称为 的特殊智能卡等设备上安全模块,可能具有硬件防篡改功能。 (如果不能阻止攻击,至少显示出操纵,例如通过损坏的安全封印)。

    【讨论】:

    • 非常感谢您的回答,实际上我想防止未经授权的应用程序读取数据,使用加密,因此只有授权的主机应用程序才能解密数据并读取它们
    • @hum。通常,人们会通过访问规则强制执行此操作,说明仅在质询-响应测试之后才允许读取包含健康数据的文件,因此不一定需要加密。这仍然需要对响应计算进行加密,并且密钥必须存在于双方:用于计算的主机端,用于验证的卡端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    相关资源
    最近更新 更多