smartcard - 如何检查智能卡是否有效?
问题描述
我想从智能卡中读取数据,但同时我需要确保卡是有效的。这个想法是我想在我的服务器上接收卡 ID 和卡女巫的签名,我可以检查它是否有效。我无权访问该卡提供的任何私钥。
我注意到一些像 card_certificate 这样的 ef,但我不确定二进制文件的结构是什么。
解决方案
由于以下原因,我认为这种方法没有很大的成功机会(据我所知):
- 卡 ID 不一定是唯一的。
- 证明智能卡有效性的标准解决方案是将卡中包含的密钥应用于先前查询的随机数,以阻止简单的重放攻击。没有静态数据数据交换可以实现这一点。
- 卡片丢失;如果没有 2 因素授权,丢失的卡将成为安全风险。
- 在服务器端,除了到达的字节流(可能来自卡或不来自卡)之外,您没有什么可依赖的;如果这不符合防水安全方案,则整个系统很容易受到损害。X.509 证书很复杂,但它们需要满足其用途。
- 从卡片中读取某些内容可能需要内部知识。
我的期望:如果没有大量的专业知识,最有可能的结果是使用智能(?)卡的系统,但只能达到相当低的安全级别。
推荐阅读
- json - single-spa axios 调用重定向到 single-spa 端口
- java - Spring Boot 不断询问登录凭据
- php - 在vuejs上上传文件时获取“未定义的偏移量:1” - php
- python - 如何检查一个列表是否是另一个列表的子集(有容差)
- sql - PL/SQL 从 Oracle 包中读取定义的游标,返回 SYS_REFCURSOR,使用 cx_Oracle
- javascript - celery 任务总是在 Node 中返回 null
- javascript - $Emit 传递“未定义”属性而不是 int 属性?
- html - 在页面中心并排对齐 3 个图像?HTML
- javascript - 将 drawio HTML 嵌入到 React 中
- vhdl - VHDL 代码错误:接近文本 e_my.vhd(61)"my_7segdec";期待“;”,或“端口”,或“通用”