我正在读维基解密常见问题解答(存档于此处), 它说:
许多 CD 和 DVD 刻录机都会在刻录的 CD/DVD 上标明 DVD 或 CD 刻录机的序列号。如果邮件被拦截,理论上可以利用这些信息来追踪制造商,并在其合作下追踪分销商、销售代理等。如果您的对手能够拦截您写给我们的信件,并愿意进行这种昂贵的调查,请考虑是否有财务记录将您与 CD/DVD 刻录机销售联系起来。如果可以,请用现金购买 CD/DVD 刻录机。
此号码存储在哪里?刻录 CD 的设备可以通过软件访问它吗?
答案1
我找到了关于此内容的参考维基百科,从链接的部分开始,它描述了放置在磁盘上的两个项目:
记录器识别码 (RID)
由供应商代码、型号和记录器的唯一ID组成。
这似乎是在写入时刻录到磁盘上的,并标识了所使用的驱动器 -这是你的引文中提到的代码。
然而,我找不到任何具体的实施细节...
源识别码 (SID):
是每个 CD-ROM 上都带有的八个字符的代码。SID 不仅标识制造商、单个工厂,甚至还标识生产光盘的机器。
引用飞利浦的话:“源识别码 (SID 码) 为光盘生产设施提供了识别以下事物的方法:
- 在其工厂内制作和/或复制的所有光盘;
- 以及生产特定压模或光盘的单个激光束记录器 (LBR) 信号处理器或模具
具体来说,SID 代码似乎是在磁盘被最初制作, 和不是当你写入磁盘时。
我设法找到了PDF 文件来自 Phillips 的描述,描述了 CD 制造商应如何实现 SID 代码。从中我们可以看出SID 代码是印在 CD 内圈非数据区域的数字。
因此,SID 代码对于识别假冒或伪造产品很有用(但可能仅对当局而言),因为它们可能具有错误的 SID 代码(磁盘是在与真实产品不同的工厂生产的)。
这是我在网上找到的磁盘上的 SID 示例图像:
答案2
该编号在刻录过程中存储在 CD-R 或 CD-RW 的 Q 子通道中,或在刻录过程开始时存储在主通道中(写入 PMA,即非封闭光盘的 TOC)
ECMA-394 标准 PDF 中的更多信息(这是橙皮书摘录,可免费获取)
第 9 页:
消费者 CD 刻录机应在子代码 Q 通道模式 3 中写入其刻录机识别码 (RID)
在第5.2.3.1章:
RID代码在数据应用中的使用
(可选,另请参阅第 5.4.5 章)对于消费级 CD 刻录机,在音频录制中必须使用子代码 Q 通道模式 3 中的 RID 代码(刻录机识别码)(请参阅第 5.6.3.2 章)。专业 CD 刻录机可以在每次数据录制操作时将其 RID 代码存储在所有 Run-in 和 Run-out 块的用户数据字段中。包含 RID 代码的 Run-in 和 Run-out 块的用户数据字段的内容在图 5-3 中定义。
在第5.4.5章:
能够写入 CD-ROM 和/或 CD-i 格式的专业 CD 刻录机在每次刻录此类项目时,都应在 PMA 中的目录项目(子代码模式 1)的主通道中写入其 RID 代码(参见章节 5.2.3.1 和 5.6.3.2.1)。
解释:
- RID 应该位于 CD-R/RW 的 PMA 区域的主通道中(00:00:00 之前的区域,因此无法使用通用 READ 命令读取)
- Run-in 和 Run-out 块是刻录光盘时写入激光中断时写入的扇区。TAO 或 Track-at-Once 模式将生成这些 Run-in 和 Run-out 块...但大多数消费驱动器固件会阻止 READ 命令读取这些块(因为它们是垃圾)。
- 如果 CD-R/RW 已由消费级 CD 刻录机刻录,则应在模式 3 下将 RID 写入 Q 通道。但只有当有音轨时,这才是强制性的。
- 可以使用任何子通道提取软件读取 Q 通道,但 RID 似乎没有写在主区域中……(我尝试使用自制软件……)
你可以推断你的驱动器 RID(使用任何最终用户 CD 刻录软件日志中的“驱动器序列号”和 ECMA-394 第 5.6.3.2.1 章),但你不能使用写入 CD 的软件所使用的 MMC 标准 READ 命令读取写入 CD-R/RW 上的 RID。
编辑:仔细阅读 ECMA-394 标准后增加了一些见解
有两种 RID:
- 由专业 CD 刻录机写入的 RID 将位于 PMA 和 Run-in/Run-out 块的主通道中,并且将包含许多详细信息,请参阅 ECMA-394 的第 5.2.3.1 章了解详情。无法使用标准 MMC 命令读取此 RID。
- 由消费级 CD 刻录机写入的:RID将在主区域中处于 Q 子通道模式 3,细节较少。Q 子通道模式 3 通常用于 Track ISRC,可以通过名为 READ SUB-CHANNEL 的标准 MMC 命令读取。RID 变体应该该命令不会返回,因为 RID 的位模式与 ISRC 不同。需要使用通用 READ CD 命令并解析答案。
总而言之,专业 CD 刻录机写入的 RID 无法使用标准 MMC 命令读取。消费级 CD 刻录机写入的 RID 可以使用标准 MMC 命令读取!但您需要一个能够提取整个 CD 子通道(有很多)的不同软件,然后再使用另一个软件从提取的数据中解码 Q 子通道,搜索模式 3 Q 子通道帧,并希望 CD 刻录机在此处添加其 RID。
答案3
适用于 DVD-R 系列(但显然不是 +R)
用于刻录 DVD 的驱动器的标识在可刻录 DVD 介质的 ISO/IEC 23912 标准中定义。此唯一 ID 字段写入引导区之前的指定区域。唯一 ID 字段的大小为制造商 32 字节、序列号 16 字节和型号名称 16 字节。
这句话引用自“Ecma International:80 毫米(每面 1.46 GB)和 120 毫米(每面 4.70 GB)DVD 可录光盘 (DVD-R)。收录于:标准 (2004),S. 7374” 顺便说一句,+R 有一个不同的标准。从论文中根本无法看出后者的标准是否根本没有考虑到这些信息,或者是什么。
然而维基百科说
与 DVD-R/RW/R DL 相比,另一个区别是刻录机信息(光驱型号)不会由驱动器自动写入 DVD+ 光盘。Nero DiscSpeed 允许专有地添加此类信息以供以后检索。
(据推测后一种软件使用某种专有格式在某处添加信息。)
使用 Plextor 驱动器能使用 PxScan 软件 [在 Windows 上] 读取该内容(至少对于 DVD-R/DVD-RW 及其 DL 变体而言,但显然不适用于 '+' 变体,即不适用于 DVD+R 等)。
还这是一款古老的软件,由于 ASPI 要求,它可能很难在 XP 以外的其他系统上运行,尽管该软件的作者报告说,通过 frogASPI 在 Vista 上可以正常运行它。
使用芯片组特定命令(因此是非标准的)执行光盘/刻录质量检查的其他软件也可能能够读取该 RID 信息,因为它们依赖于读取原始数据,但我不记得现在有其他软件宣传过(RID 读取)功能。
Windows 版本的 QPxTool 也支持此功能,但显然在驱动器和磁盘方面有相同的限制。
我怀疑 QPxTool 的 Linux 版本具有相同的功能/限制,但我无法快速检查。从截屏在该网站上,使用该工具无法从 DVD+R 光盘读取写入驱动器序列号/mfg,至少在 Linux 上(即使在 Plextor 驱动器上)无法读取。
至于 CD……只有一个非常鲜为人知的软件 PLScsi 显然可以读取它(并且上述可以读取 DVD ID 的工具都无法读取 CD。)并且即使那个 PLScsi 也仅适用于 Plextor 驱动器,但显然该论文中测试的所有写入器都违反了 CD 标准并写入了虚假的序列号(到 CD),尽管驱动器类型有时是正确的(但它似乎更经常指示芯片组)。
PLScsi 找到了制造商代码、设备类型和序列号。序列号通常是 012345(十六进制)。因此,只有制造商和类型是可以明确确定的。
表2显示了测试结果。
此外,在本研究中,还测试了其他程序,例如 Subcode Analyzer、RID code、Nero Disk-Info、PxScan、CD/DVD Diagnostic、QPxTool、X-Ways、FTK 和 Encase,以识别所用的 CD 刻录硬件,但没有结果。
即使使用 PLScsi,LG 驱动器也无法读取任何信息。
一些独立的硬件录音机,如 TASCAM CD-RW402 也宣称他们可以显示 RID(仅适用于“驱动器 2” - 即可重写驱动器;“驱动器 1”是该机器中的 CD-ROM。)
如果存在,则可以显示在驱动器 2 上播放的光盘的 RID(刻录机识别数据)。播放时按 ERASE 键可显示此数据。
在实践中效果如何,谁也说不准。但该手册很有用地告诉我们这些信息在 CD 中是如何呈现/存储的(比 DVD 更简洁):
RID 的前三位数字为制造商代码,接下来的四位数字为类型代码,最后五位数字为记录器唯一编号。TEAC 的制造商代码为“TCJ”。
然而 DVD 刻录机的序列号通常比这个要长得多(正如刻录 DVD-R 时所报告的那样)。所以我猜这就是为什么他们 [通常] 在 CD 刻录模式下写入一个虚构的序列号。