问题标签 [smartcard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5447 浏览

java - Java Card 中的 Applet ID 和 APDU

在我的项目中,我想在智能卡上写入生物特征数据(如指纹模板)。经过一番很好的学习后,我为我的项目选择了 Java 卡。但我是这个平台的新手,对此知之甚少:(

我也阅读了 Sun 的教程,但无法解决一些困惑:

1.) 我只是想从卡上读取和写入生物特征数据,那么有必要在java卡上为其设计小程序吗?我不能使用智能卡读卡器的简单读/写功能来读/写智能卡内存上的生物特征数据吗?

2.) 如果我为 java 卡创建一个小程序,那么我将如何为它提供小程序 ID?每个小程序的小程序 ID 都是唯一的。而且,我如何知道预先创建的小程序的小程序 ID?

3.) 什么是应用协议数据单元 (APDU)?而且,他们将如何帮助我在卡上读取/写入数据?

我知道所有这些都是基本问题,但我真的很困惑。所以请各位大侠帮忙!

提前致谢。

0 投票
1 回答
266 浏览

java - 为什么 Java Card 2.x(现在的经典版)没有 Map 实现?

当然,Java SE HashMap 有一个“昂贵”的散列函数,它的可变大小可能会导致内存不足错误,但是相对于其恒定大小具有简单散列的恒定大小 Map 呢?

0 投票
1 回答
415 浏览

java - 找不到 apduToolTask

我是 Java 卡平台的新手,目前我正在使用 Java 卡经典版 v 3.0.1,当我使用 Apache ANT 命令 - ant all来构建 build.xml 文件时,我收到以下错误:

c:\java\java_card_kit-2_2_2\samples\build.xml:17: taskdef 类 com.sun.javacard.ant.tasks.APDUToolTask​​ 找不到

我已经按照说明进行操作,要求我也设置 ANT 的系统路径。我正在使用 ANT 1.8.1。

有人可以帮忙吗?

问候,

0 投票
1 回答
4597 浏览

smartcard - 通过其 SFI 在智能卡上选择 EF

一些智能卡提供通过 SFI(短文件标识符)引用文件的选项,它是一个 5 位数字。相反,典型的文件标识符是 2 个字节长。

我需要一些帮助来弄清楚如何做到这一点,因为我未能在ISO 7816-4中找到答案。

首先,第 5.3.1.1 节状态(强调我的)

通过短 EF 标识符选择 — 短 EF 标识符可以引用任何 EF。它由五个不完全相等的位组成,即从 1 到 30 的任何数字。当用作短 EF 标识符时,数字零,即二进制 00000,引用当前 EF。在 MF 级别,保留数字 30,即二进制的 11110(见 8.2.1.1)。短 EF 标识符不能用于路径或作为 EF 标识符(例如,在 SELECT 命令中)。

我对这句话的解释是“你不能使用 SFI 来选择智能卡上的文件”——这不是我所期望的。

此外,第 7.1.1 节指定了如何使用 SELECT APDU 命令;表 39 规定了 P1 的内容。但是,没有一个示例说明如何通过 SFI 对其进行寻址(它们都是大约 2 字节的标识符)。

所以我的问题是:

  1. 添加 SFI 的原因是什么?每个标识符 2 个字节太多了?
  2. 如果文件的 SFI 已知,如何选择文件?
0 投票
2 回答
1579 浏览

security - CAC 卡和“通用”智能卡有什么区别?

我们正在尝试使我们的富客户端 C++ Windows 应用程序能够利用 DoD CAC 卡。

我们使用第三方库来保护使用 SSL 的客户端/服务器通信,它识别/处理通用智能卡,但前提是证书是由其自己的捆绑应用程序创建的。

为什么?证书不就是证书吗?它们有何不同?

具体来说,谁能给我指点简明的技术文档来解释相关标准的要求以及实现定义的内容?我试过查看实际规格,但它们太详细了,而且我发现了非常模糊的文章,无法回答我的问题。我正在寻找介于两者之间的东西。

0 投票
1 回答
3365 浏览

byte - 从智能卡读取数据(最好使用 Java)

我希望能够读取存储在智能卡中的几个字节的未加密数据。我有读者并且知道 Java 6 的 Sun 版本包括 javax.smartcardio,并且我已经阅读了一些关于这些 API 的信息。

在我想知道是否有一种简单的方法可以读取智能卡给定扇区中的日期字节之前,我从未使用过智能卡。我并不想做任何比这更复杂的事情,而是希望这个社区中的某个人有使用智能卡的经验。

卡中使用的具体芯片有:JTOP 10/18k

0 投票
1 回答
2697 浏览

java - CAC卡/读卡器的PKCS11驱动

我对如何获取用于与 CAC 卡交互的 pkcs11 驱动程序有疑问。据我了解,读卡器应该提供驱动程序。我刚刚检查了 SCR331 读卡器 abd 他们似乎没有 pkcs11 驱动程序。然而,美国 DoD 签约的 ActivClient 似乎有一个与 SCR331 配合使用的产品。我还知道 OpenSC 有一个 windows pkcs11 驱动程序 opensc-pkcs11.dll。这是否适用于 SCR331 读卡器。我还从 Putty-CAC 项目中发现 Litronics NetSign 读卡器提供自己的 pkcs11 驱动程序?"C:\WINNT\system32\core32。好像有点乱,有的读卡器不提供,有的好像提供。

我们之前使用过 Sun SCA6000 加密加速卡,并使用它提供的库文件与之交互;

那么理想情况下,pkcs11 驱动程序不应该随读卡器一起提供吗?OpenSC 的 pkcs11 驱动程序如何与专有读卡器一起使用?它可以与不同的读卡器一起使用吗?

感谢您的澄清

0 投票
1 回答
859 浏览

smartcard - 使用 3rd 方 CSP 从 cryptoApi 或 CAPICOM 访问特定的 ADPU 函数

我已经尝试了过去 2 个月没有成功,我想是时候在这里问了。

我有一张智能卡,并从我的客户那里得到了一个CSP。我有描述我可以(并且知道如何)运行的APDU 命令的文档。

我需要将小文件(数据)保存到卡中,例如姓名、地址、照片等。然后保存证书。

在我读到的文档中,您必须进行外部身份验证才能稍后使用安全消息传递来访问卡上的文件。我在相互身份验证算法的某个地方有错误(需要计算 MAC、DES、TRIPPLE DES 等,我已经尝试了几周才能让它工作......)我知道如何在卡上做所有事情,除了需要相互验证的功能验证。

我查看了 CSP 提供的功能,并没有看到任何外部身份验证。我看到非 APDU 级别外部身份验证的唯一地方是在“Windows 智能卡微型驱动程序规范”中,我看到的功能如下:CardAuthenticateEx。但我不知道如何调用它们(它们在哪个 dll 中)。这些功能是否应该在 CSP 中?

当我拥有 CSP 时,使用 APDU 命令进入低级别是错误的方法吗?我应该改用 CryptoAPI 还是 CAPICOM?如果是这样,那么如果没有(或我找不到)可以写入文件的函数,我如何进行外部身份验证和使用文件。(同样,所有这些功能都在“Windows 智能卡微型驱动程序规范”中。

0 投票
3 回答
13913 浏览

java - 如何在 Java 中与智能卡交互?

Java 中是否有可以与智能卡交互的库 (API)?类似于 WinSCard 库。

我需要能够连接智能卡并从中读取数据。我需要用 Java 实现它,以便我可以在任何操作系统(Linux、Mac、Windows)下使用它。因为,WinSCard 库只能在 Windows 下工作,因为它使用 DLL ( WinSCard.dll )。

Java中有没有像WinSCard一样好的东西?

0 投票
1 回答
4752 浏览

asp.net-mvc - ASP.NET MVC 2 和请求客户端证书(智能卡身份验证)

我需要从他们的卡中捕获用户的 X.509 证书并映射到用户表以在 ASP.NET MVC 中进行表单身份验证。我在 VS 2008 中创建了一个 MVC(版本 2)项目,配置为使用默认模板在 Vista 上的本地 IIS 中的默认网站下作为虚拟目录运行,但将 RequireHttpsAttribute 添加到 Account/LogOn ActionResult。没有其他变化。使用本地 IIS 管理器,我创建了一个自签名证书并应用它,然后将 Account/Logon.aspx 页面设置为需要 SSL 和需要客户端证书。

在调试中运行时,当我从欢迎页面(主页/索引视图)单击“登录”链接时,它使用 https 正确路由到 Account/Logon.aspx,但没有提示输入证书。使用 Dynatrace(真棒,http: //ajax.dynatrace.com ),我可以看到响应状态设置为 403,但同样没有证书提示。

作为健全性检查,我设置了一个默认的 asp.net Web 应用程序项目以在 Vista 中默认网站(与上面的 MVC 项目相同)的虚拟目录中运行,并将 default.aspx 页面配置为需要 SSL 和需要客户端证书,就像在上面的 MVC 项目中所做的那样。运行它,工作正常,我得到证书提示,可以选择证书并输入卡的 PIN,并从后面代码中的 request.clientcertificate 对象读取我的 X.509。

两个虚拟目录的应用程序池在集成管道模式下设置为 Classic .NET AppPool。

帮助?!

更新: 超级笨拙的解决方法正在进行中。我向其中添加了一个文件夹“Auth”和一个“GetCert.aspx”文件,该文件标记为 MVC 项目的 SSL/需要客户端证书,然后将“routes.IgnoreRoute("Auth/{*pathInfo}")”添加到全局.asax。GetCert.aspx response.writes 的代码隐藏了我想要的 X.509 数据。然后我在 LogOn.aspx 中添加了一个 jquery.get 调用,它调用 GetCert.aspx 并将证书主题结果作为字符串返回到 LogOn.aspx 中的一个 div。我现在得到证书提示并在我的 MVC 视图中得到结果,但这不是这样做的方法!