Skip to content

L-Sun/misaka-danmaku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Misaka Danmaku

初衷

由于xx因素,许多番剧需要通过自行下载观看,此时想要开启弹幕只有一种方法,到弹幕视频网站下载对应视频的弹幕到本地,并在播放器中加载弹幕。又是因为xx元素,并没又上架的番剧自然就没有对应的弹幕。

基于此原因,Misaka Danmaku旨在利用P2P原理实现一个去中心化的弹幕网络,根据视频资源搜索出相关的弹幕channel,并加入到此channel的弹幕网络中,以实现弹幕功能。

名字由来?

取自Misaka Network,碰瓷Bilxxxx(逃,又因为去中心化,这个名字在合适不过了

实现原理

安全相关

本网络采取 “先加入先独占” 的策略,即网络信任先加入的节点,此节点会广播其公钥,之后若有节点想以已存在的id加入本网络则会加入失败。其原理为 消息签名

  1. 有一个节点id1加入本网络,并公布其公钥pu_1,其消息均以私钥pr_1进行加密。
  2. 若此人想以id=1,并且自己生成一对公钥私钥pu_x,pr_x,网络上的某节点发现此人的公钥与路由表上存储的公钥不符,则拒绝其加入网络。
  3. 若此人想以id=1加入网络,并利用已存在于网络的公钥pu_1进行伪造,发送FIND_NODE消息给本网络,网络某节点会取得公钥pu_1,同时对FIND_NODE消息进行解密。由于此人并没有私钥pr_1FIND_NODE消息加密。因此合法节点一定会解密失败,从而拒绝此人加入网络。

但是此策略有些问题:

  1. 女巫攻击 由于节点可以随意创建(只要id始终保存唯一即可),此时就能占据大部分的id空间。此时就会破坏此网络的正常运行,例如破外网络的拓扑结构、错误路由、虚假资源发布等。

存储信息的防窃取策略:

  1. 假设A想要对B发送STORE消息,此时A利用B的公钥进行加密和自己的私钥进行签名,此时消息为encode = pr_A(pu_B(message)),此时B的解密步骤为decode = pr_B(pu_A(encode))
  2. 若此时C得到了encode这条加密后的消息,它只能完成第一步pu_A(encode),而无法得到实际内容。

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published