我和一些同学正在校园里做一些“独立安全研究”,试图破解校园收费停车系统,以更好地理解它的工作原理。该系统的工作方式如下:
因此,我们使用了一个阅读器来查看卡片上的数据。以下是未支付票的第二轨道上的数据(第一和第三轨道为空):
0140308303000 160227 1720 000000 0000 037
前8位数是指从那台入口机上取出了多少张票。(我们已经看到,在门票拉出之间,大量的数字只是在增加)。接下来的2位数字(在本例中是03)似乎是某种车库代码。校园里有几个不同的车库,每个车库都有相同的车位。接下来的数据是时间戳。1602271720是2016年2月27日17:20。这是罚单被取消的时候。然后有更多的零,然后是一个“看似”无意义的数字在结尾。
现在在这里支付:
0140308303003 160227 1720 160227 1740 264
大部分数据保持不变,但在第一个数字之后出现了一个新的时间戳。这个时间戳(1602271740)是买票的时间.此外,第一张时间戳前的数字从0更改为3。在从未付票到付费票的过程中,这一变化在所有门票中都是一致的。最后,最后三个数字已经改变了。
现在的问题是最后三位数。我们试着用一个有效的时间戳来书写,并添加任意的"3",但是机器并没有被愚弄。据报道,这张票被“损坏”了(我知道这不是因为一张粗劣的马格-条纹纸)。我确信这些机器没有在某些网络上连接,所以它们不会检查某些数据库的一致性。
理论:最后三个数字是从条纹上的其余数据中计算出来的某种哈希,这样退出机器就可以检查该哈希,以确保不发生恶意操作。
问题:我对散列并不了解,也不知道如何破解它们.
问题:你们都认为我的理论是正确的吗?你能马上辨认出来吗?如果不是,有什么好的资源可以让我了解更多关于破解这个问题的知识?
这是一些更多的数据。机票数据成对的未支付和支付:
0140308303000 160227 1720 0000000000 037 -- 0140308303003 160227 1720 160227 1740 264
0140309903000 160227 1749 0000000000 047 -- 0140309903003 160227 1749 160227 1829 284
0140310003000 160227 1749 0000000000 038 -- 0140310003003 160227 1749 160227 1829 275
0224593708000 160226 1332 0000000000 029 -- 0224593708003 160226 1332 160226 1449 261
0224608708000 160227 1633 0000000000 040 -- 0224608708003 160227 1633 160227 1659 275
0145023608000 160227 1633 0000000000 031 -- 0145023608003 160227 1633 160227 1658 265
我希望有人可能会发现,这要么很容易回答,要么是一个有趣的问题解决!提前感谢您的帮助!
发布于 2016-02-28 13:54:54
警告:侵入涉及真实资产的实时系统是一种灾难,可能会给相关人员带来巨大的后果。情况可能会比这个答案的第二颗子弹更糟糕。我在我的工程学校见过这种情况,这是因为我对学生违反规则更宽容,在智能卡行业也是如此。回想起来,我很高兴在一个(只是-)安全-足够的距离。
如果你不顾警告而尝试,不要以为你不会被抓住,至少要定义一条你不会越过的线。在该行业,人们可能会在调查一开始就制定一项政策,包括调查的目的、手段、调查结果的报告方式(也许:十年来,只对那些制造被攻击的东西的人,让他们去做些什么)。
从字面上看你的问题(这是在转储中找到结构的有用工具,熵在哪里),它看起来不像有很强的密码学。如果有的话,你的做法将是无望的。如果没有,这是一个离题的话题,在学术上毫无意义。无论如何,我不会用10英尺高的杆子碰它。
https://crypto.stackexchange.com/questions/33185
复制相似问题