- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚正在阅读 ISO/IEC 7816 第 4 部分标准。不幸的是,其中对我来说有一些模糊的地方,我希望我能在这里得到答案。
第一个模糊点是关于数据对象的。数据对象被定义为Simple-TLV或Ber-TLV类别,并对这些类别有一些描述。但是数据对象本身是什么?是我们存储在卡上的数据吗?如果是这样,据我所知,我们将数据存储在小程序的不同字段中,并且我们不考虑它们的任何 BER-TLV
或 Simple-TLV
类别!它们只是一系列十六进制数字。
第二个模糊点是关于结构选择部分。我们定义了以下五种不同的方式:
模糊的一点是,据我所知,我在卡上唯一可以选择的就是小程序,没有其他任何东西。对于小程序,我可以选择默认值(这可以是上述选项的第一种方式,即隐式选择),或者通过使用小程序 AID 向卡发送 SELECT APDU 命令来选择它(上面没有提到任何一种方式)。
那么这些结构选择方法是什么?
第三个模糊点是EF 结构。定义EF-s可以有以下五种结构:
问题又来了,这些结构是用来做什么的?这是数据在内存中存储的方式吗?如果是这样,为什么它们是在标准中定义的,而它们是关于卡的内部行为的?程序员需要了解它们吗?他/她可以检测/更改他/她的卡所使用的EF结构吗?
最后,所有符合 ISO 7816-4 标准的卡是否都支持上述所有项目(因为我在 ISO 7816-4 中找不到任何提及它们是可选的或其他内容)?
所有符合 ISO 7816-4 标准的卡都需要支持本部分标准中定义的 APDU 命令吗?
最佳答案
首先,ISO/IEC 7816-4 描述了基于文件的卡。基于文件的卡可以有不同的应用程序(使用“按名称选择”进行选择)。然而,最好将这些应用程序视为基于文件的操作系统中的不同数据结构和对象。这些应用程序不提供与 Java Card 小程序不同的功能。
7816-3 尤其是 4 还描述了通用半双工命令/响应 APDU 格式,这是卡兼容 7816-4 的最低要求。 Java Card 使用 APDU 格式,但它不包括模拟基于文件的卡的功能。您必须自己实现它(当然,或者从某个地方复制它)。
<小时/>数据对象是具有类型(由标签描述)、大小(或长度)和值:TLV 的对象。在 7816-4 中,卡中和传输中的对象都可以存在。最终你只对输入输出感兴趣;您如何解释、存储或生成它们并不重要。
<小时/>支持哪些文件选择和结构取决于卡的制造商。一般来说,基于文件的卡需要支持所有选择方法,但这对于 Java Card 实现来说还不是很清楚。许多 Java Card 小程序不支持 SELECT by PATH。一般来说,在 Java Card 上按 PATH 进行 SELECT 很麻烦,因为它不由操作系统处理,也不能由 Applet 处理(因为 Applet 实例不能只选择另一个 Applet 实例)。
是的,文件结构对外部用户是可见的。实现什么取决于。同样,基于文件的卡可能支持所有内容。例如。当您需要在卡上存储记录时,循环结构非常有用。不过,有限的内存可能会提示您删除最旧的记录。例如,您可以想象它用于数字行车记录仪卡。记录可以使用 7816 兼容的 SQL 类命令进行搜索。
<小时/>ISO/IEC 7816 是最糟糕的标准之一。它确实没有提及任何关于可选的内容,这可能会让您相信卡片确实应该实现一切。然而,一些声称合规的卡只保留在开始时定义的 APDU 结构。许多卡并没有实现所有功能,而那些实现了功能的卡常常会出错。
这就是我的想法。
基本上,该标准更多的是一组通用实践。您可以使用它作为创建自己的协议(protocol)或标准的起点,仅此而已。
关于smartcard - ISO/IEC 7816 数据对象和结构选择以及 EF 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35486764/
我想知道是否可以通过 ISO 8583 做一个完整的声明(在一个日期范围之间),我看到 ATM 可以做完整的声明并且想知道他们使用什么方法。我知道余额查询和迷你报表可以在超过 8583 的 POS 设
我一直在尝试通过 7zip 和 WinRar 提取 ISO 镜像。 这是我使用的命令行: 7z x -y "%Isocontents%\ISO.iso" -o%Newfolder% WinRar.ex
我正在将 ICU 集成到一些内部软件中。我希望能够获取诸如“en_US”之类的字符串并为其获取脚本名称“Latin”。 (虽然最终我实际上想要一个 ICU ScriptCode。) 我尝试使用 ICU
我的数据位于一个数据框中,其结构如下: df2 <- data.frame(Year = c("2007"), Week = c(1:12), Measurement = c(rnorm(12, me
我需要计算一周分配到的年份。例如,2003 年 12 月 29 日被指定为 2004 年的第一周(我认为这仅适用于欧洲)。您可以使用以下代码来查看: SELECT DATEPART(isowk, '2
我想做什么? 我想提取 ISO 文件并编辑其中的文件,然后将其重新打包回 ISO 文件。 (正如你已经读过的) 我为什么要这样做? 我想开始修改 PSP ISO,为此我必须使用游戏资源、 Assets
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我有一个文件。在 Python 中,我想占用它的创建时间,并将其转换为 ISO time (ISO 8601) string 同时保留它是在 Eastern Time Zone 中创建的事实。 (美国
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我在二维网格上有两个标量场。我想为第一个标量场绘制一条等值线,并根据第二个标量场设置其不透明度。 我从 this SO answer 开始尝试使用 mayavi但我无法从 3D 切换到 2D。 下面是
假设您声明两个同构 showing :: (Read a, Show a) => Iso' String a showing = iso read show reading :: (Read a, S
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines准则。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,
假设有一个两个字符的String,它应该代表ISO 639国家或语言名称。 你知道,Locale类有两个函数 getISOLanguages和 getISOCountries分别返回包含所有 ISO
实体中的值是否可以自由嵌入到 ISO 10303-21 格式的文件中? 在我看到的所有由 CAD 程序生成的示例中,length_measure 都嵌入在uncertainty_measure_wit
是否可以从原始 ISO 自动创建用于操作系统安装的 Vagrant .box 文件? 对我来说,Vagrant 提供的虚拟机上操作系统安装和配置的端到端自动化存在巨大差距。 当然,VagrantBox
有没有办法实现这样的格式: 2003-09-25T14:00:00.000+1000 or 2003-09-25T14:00:00.000+1100 要这样转换 2003-09-25T14:00:00
我正在使用: @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) @JsonFormat( pattern = "MM-dd-yyyy" ) private
我需要将 iso-3166-1/iso-3166-2 代码转换为经度/纬度 例子: 输入:“美国”,输出:(37.09024, -95.71289100000001)。 输入“VE-O”,输出:(10
我想转换 POSIX 语言环境名称,例如 en_US、de_DEISO-639-1 和 ISO-3166 代码到 Windows English_United States、German_German
我在 MS Access 上有一个数据库,我通过调用 PDO 和 odbc 驱动程序将其与 PHP 一起使用。我的数据库中有法语、丹麦语和波兰语单词。法语和丹麦语没问题,但波兰语字符没办法,我只得到“
我是一名优秀的程序员,十分优秀!