猫头鹰
信安舆情早知道

通过二维码传输IP数据

作者序

有些人问我流量是多少,它只是大约100字节每秒,但希望我可以改善它。

即使删除自定义序列/ ACK报头后仍然有效,速度提升快10倍左右, 大约是1-2kBps(现在仅生成新的QR数据码),但延迟仍是问题的关键……

言归正传,我曾经有通过音频/麦克风插孔发送数据包的想法并简单的实现了,由于实现得太糟糕,只能发短信(并且非常不稳定)。http://seiferteric.com/?p=319  很久之前捣鼓的了。

这一次我想使用显示器和网络摄像头发送数据,但如何可靠且简单地发送数据? 二维码!当前想法是使用tun设备,它读取数据包,转换为QR码,并在屏幕上显示。 然后另一面将看到它与捕获和解码(二维码)并将数据输入tun设备中运行。

我在尝试过程中遇到几个问题。 首先,你需要一种方法来确认另一方是否成功读取消息,我使用了一个简单的方法,即SEQ / ACK模式。为每一个二维码都添加一个序号,当成功读取到数据后,返回响应码(ACK),接受到响应码后即传输成功,发送下一个二维码,否则继续发送未成功读取的二维码。 其次,我需要一种编码方式对数据进行编码。 QR码支持二进制模式,但二进制模式是最低效的,并决定改用使用字母数字和base32编码数据包数据。 因为当前模式下的QR码只支持大写字母,Base64编码无效。接下来是一个问题便是编码库qrtools,它可以生成一个二维码 ,但是解码后与原数据不同! 所以我需要解决这个问题,首先添加一些填充数据,并再次尝试直到解码数据与原数据一致即可,然后填充的数据剥离即可还原要传输的数据。

在测试期间一个明智的做法,便是在docker容器中运行代码模拟执行,而不是使用webcam。因为它只需在卷安装中传递qr代码镜像文件, 这当然更快,几乎是可用的连接(ssh已经足够了,ping时间是50-60毫秒)。 不过我们的最终目的是通过相机识别二维码!

通过SSH成功登陆!

有待改进的地方

  • 速度
  • 只有当新可用数据时才重写qrcode
  • 尽可能将多的数据包封装到arcode中(可能有多个数据包)
  • 清理代码,修复syn / ack以避免数据包dups
  • 更好的检测库? 为笔记本电脑获得更好的相机?
  • YouTube视频

转载请注明来自MottoIN,未经允许不得转载!MottoIN » 通过二维码传输IP数据

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

MottoIN 换一个角度看安全

寻求报道联系我们