关键词:中国剩余定理,密钥分发技术,隐私保护。
引言
在2018年11月份的时候,段老师在密码学课上讲到了密钥分发协议,我当时就觉得这个协议很有意思也很有应用前景。后来老师还很主动地分享了一下它的idea,其中一部分就是有关物流单上的信息安全问题的。这个我深有感触,其实每次处理快递的时候,我都会把快递单撕得粉碎,然后倒进垃圾桶。但是物流过程中的信息泄露的确更让人担心。
老师向我们提出了她的愿景:通过洋葱路由或者密钥分发技术加密快递单上的消息,使得快递在配送的过程中只知道它的上一站和下一站。于是我搭档了两位学习很认真的女同学,打算对基于CRT的物流信息安全处理方案一探究竟。
实现过程
基于CRT的理论知识,我们采用二维码技术以及密钥分发技术,提出了一种物流过程信息安全处理方法。这种方法的实施过程如下(设寄件人为p,收件人为q,先后经过快递驿站或快递员A,B,C,D):
寄件人p通过app填上寄件驿站代号(A),收件人q的地址、姓名以及app号。
app终端立即自动生成快递单号以及最短路径,并分割形成相应密文。
App根据寄件驿站与目的地,用迪杰斯特拉算法生成最短路径(p-A-B-C-D-q),并告知q寄件人的相关信息。然后把路径中除了初始驿站的每一个结点分割出来(B/C/D/收件人姓名和地址),并一次对每一个文件随机产生一次性密钥(Ks1, Ks2, Ks3, Ks4),并用AES算法进行加密(生成密文c1,c2,c3,c4)
同时,生成通过中转站私钥生成随机数R,使该站只能解密其下一个站点的信息。
若中转站的私钥为(Ka,Kb,Kc,Kd): (1)A知道下一个地址是B,那么我们可以构造R1使得下列方程组成立: R1=Ks1(mod Ka) R1=0(mod Kb) R1=0(mod Kc) R1=0(mod Kd) (2)B知道下一个地址是C,那么我们可以构造R2使得下列方程组成立: R2=0(mod Ka) R2=Ks2(mod Kb) R2=0(mod Kc) R2=0(mod Kd) (3)C知道下一个地址是D,那么我们可以构造R3使得下列方程组成立: R3=0(mod Ka) R3=0(mod Kb) R3=Ks3(mod Kc) R3=0(mod Kd) (4)D知道下一个地址最终是用户q,那么我们可以构造R4下列方程组成立: R4=0(mod Ka) R4=0(mod Kb) R4=0 (mod Kc) R4= Ks4(mod Kd)
用二维码对所有密文(c1,c2,c3,c4)与随机数(R1,R2,R3,R4)以及快递单号进行封装。
寄件。
p到A驿站寄件时出示快递单号,系统就会自动把二维码打印出来,由工作人员贴在快递上。同时终端删除路径信息,只留下快递单号和收件人的app号。A驿站派件时,只需要扫描一下二维码查看下一个站点,此时终端自动通过快递号给收件人q发送一条“快递已经在A寄出,下一站是B” 的消息。
中转。
到达中转站时,分发人员只需要扫描一下二维码,就可以得到该包裹下一站的信息,但是却得不到其他任何信息。同时通过终端给收件人q发送一条“快递已经到达中转站xx(B/C),下一站是xx(C/D)”的信息
到达。
到达最后一个中转站D时,由于扫出的信息带有用户姓名,app自动给用户发送一条“请到D驿站取快递,取件码xxx(随机生成)”的消息。
接收。
用户取快递时,只需要通过取件码和姓名取快递即可。若为贵重物品,则只需要拿出app通过快递号验证即可。
优点分析
1.AES算法极大的简化了加密解密的时间,而且安全性也相对较好,资源消耗也较少。
2.基于CRT的密钥分发协议,简单易实现,而且计算代价为常数阶。
3.通过加密和密钥分发能充分达到保护用户隐私的要求。
由于通过二维码只可以得知快递单号,其余均是密文,不法分子无法从中得到任何有用的信息,所以用户大可抛弃快递单。
不仅如此,对各中转站而言,他们也无法从中得到任何有用的信息,因为他们只知道快递的下一个中转站。而对于最后一站,他们尽管可以知道用户在app中的ID和姓名,但是没有电话号码,所以作用也不大。
4.用户能够了解物流寄出与派送情况
用户可以通过app发出的消息,先后知道寄件人的信息,快递已经到达的中转站及其下一站,最后知道取件码等信息。所以出现问题也可以问责相关的物流站点。
讨论与质疑
我们小组在项目实施过程中,对项目的应用前景提出了如下质疑:
1.流程中存在的漏洞:
在设计流程中,我们先让寄件人选择好寄件地址和收件地址,并由算法确定接下来邮件的路径,但这样可能会存在一些非预期问题。如果寄件人说好在A驿站寄件却去了其他驿站,是拒绝派送还是新生成一张存储A驿站信息的二维码,方法有待商榷。另外如果由于工作或者其他原因邮件被寄到了某个不在路径之内的中转站,又应该怎么处理?
2.密钥更新有关问题:
分析对中转站密钥穷举攻击的可能性,以及中转站是否需要更换密钥,多久更换密钥。
3.成本与性价比问题:
需要分析二维码加密和识别工具的制作成本以及攻击者的攻击成本和可能导致的信息泄露后果,以及加密对快递拣发效率的影响。以确定该方案的性价比是否足够的好。
总结与感想
电子商务的快速发展使得个人信息的泄露问题已经成为公众生活的威胁之一,针对不法快递人员将快递信息用以市场交易,甚至直接威胁收件人、寄件人的生命财产安全,文章提出利用二维码技术与计算机技术相结合,基于二维码技术,采用分层加密技术,对物流信息进行分层加密后转储到二维码进行二次封装,并且不同等级授权机制解密相关信息,保护信息安全。
但是流程中存在某些漏洞,实际应用中可能带来比较大的麻烦,性价比方面还需要调查研究。所以这个项目有待优化。
- 文章链接: https://life-extension.github.io/2020/04/15/基于CRT的物流信息安全处理方案/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
-
ACTF2020密码学部分writeup
六月 5日, 2020
编写的项目文件请参考项目链接。同时欢迎大家访问ACTF2020的所有赛题。喜欢的话请多多资瓷一下,给我们实验室的项目加个Star或者Fork,谢谢。 为了保护服务器的同时不给选手带来更多困难,密码学部分的交互题开了pow算力检测,我也...
-
通过python脚本自动插入汇编反调试代码
五月 20日, 2020
研究背景在之前OLLVM项目的研究过程中,我们发现反调试技术对反混淆脚本有一定的干扰作用,如果可以在OLLVM的中间代码中自动化插入反调试代码,那么就可以给OLLVM的代码混淆增加一层保障。 方案分析探讨多种方案以后,我认为最适合在汇...
-
基于门限方案的条形码保密及容错技术
四月 30日, 2020
关键词:门限方案,条形码保密,条形码容错,条形码认证与防伪造。 经历过初期两个小项目的探索,我们项目团队积累了一定的项目研究经验,在老师和16级学长的帮助下,我们把研究方向转到了门限方案的实际应用上。结合市面上用9张合并的条形码提高条...
-
2020新年原创脚本-其中的小把戏你清楚吗
四月 26日, 2020
关键词:随机数素数生成,新年祝福小程序。 脚本创作这是我在大年三十写的一个程序,当时我正准备去伯克利交流,但由于疫情的缘故,出国变数增大,所以我就打算通过随机数“未卜先知”。以下就是我的脚本: 12345678910111213141...
-
基于CRT的新型群文件共享系统
四月 13日, 2020
关键词:隐私保护,权限管理,身份认证,中国剩余定理,密钥分发,密钥更新。 这个项目的是在2019年寒假期间进行的,4月份在中南大学信息安全作品赛答辩,但是由于功能只实现了主体部分,加之我在台上比较胆怯紧张,所以只获得团队三等奖,但是当...
-
安卓反混淆软件探索-deobf
三月 19日, 2020
关键词:代码混淆,代码反混淆及其原理,代码反混淆软件测试与性能对比。 前言我们的大创项目其实是分两方面进行的,一方面,我们从代码混淆的角度比较各种软件对安卓程序的加固能力;另一方面,我们着重针对OLLVM进行反混淆测试。OLLVM集成...
-
记一次安卓代码加固软件的测试过程
三月 13日, 2020
关键词:代码加固,软件测试,原理分析,过程分析。 在大创项目的实践中,我们对市面上的一些安卓代码加固软件进行了采集,经过搜集,发现了几类代码加固方法并分组进行研究。我发现很多代码加固软件都是对java字节码进行混淆与加固,另外一些则选...
-
OLLVM代码加固机制分析
二月 24日, 2020
我们通过自己编写测试代码,再用OLLVM的不同指令进行加固,并逆向查看加固效果,加深对代码加固机理的了解。OLLVM目前提供的功能包括控制流平坦化(fla指令),指令替代(sub指令),代码虚拟化(bcf指令)以及虚假控制流(obf指...
-
对音频缓存加密的探讨
二月 17日, 2020
关键词:缓存解密,批量自动执行脚本,版权保护相关建议。 前段时间,某音乐被爆其缓存文件只使用了简单的异或加密,且容易得到加密密钥为0xa3。原文链接点击这里。以下是我的延伸探讨。 1.对音频缓存的批量解密攻击抱着好奇的心理,我把手机...