1.一种面向区块链中以太坊节点日蚀攻击的检测方法,其特征在于,所述方法包括:
确定作为目标节点的以太坊诚实节点的IP地址、端口信息以及ID信息,并根据目标节点计算出可能的伪造节点;
采用代理IP通过椭圆曲线算法随机生成节点私钥和节点公钥,并将所述节点公钥直接作为传入连接通信过程中的伪造节点的ID信息;或者将所述节点公钥与目标节点的ID信息进行异或运算,得到目标节点与节点公钥之间的距离,将满足距离阈值的节点公钥作为传出连接通信过程中的伪造节点的ID信息,并为每个可能的伪造节点构造出所支持的协议、节点名称和端口信息;
根据目标节点的IP地址和端口信息,构建出JSON‑RPC接口请求,并根据该接口请求检测出目标节点是否有新增连接数;
根据目标节点的IP地址和端口信息,解析出目标节点的广播信息和ping‑pong通信消息;
判断解析出的广播信息中是否存在空值或者重复值,从而检测出目标节点是否接收到伪造节点的传入连接;
根据解析出的ping‑pong信息,对伪造节点进行探活检测,统计出伪造节点接收到目标节点的传输连接的数量,根据其数据库中可能的伪造节点的ID信息,从而检测出目标节点是否向伪造节点发送传出连接;
若目标节点有新增连接数,且对于伪造节点进行了传入连接通信和传出通信连接,则检测出目标节点正在遭受日蚀攻击。
2.根据权利要求1所述的一种面向区块链中以太坊节点日蚀攻击的检测方法,其特征在于,所述检测出伪造节点是否对目标节点进行传入连接通信包括目标节点对广播信息进行解析,若广播信息中存在空值或者重复值,则表明该广播信息中与目标节点通信的节点是可能的伪造节点,并确定出对应ID信息的伪造节点对目标节点进行了传入连接通信。
3.一种面向区块链中以太坊节点日蚀攻击的检测系统,包括可视化模块和日蚀攻击检测模块;其特征在于,所述可视化模块包括输入单元以及显示单元,所述日蚀攻击检测模块包括计算单元、接口检测单元、信息解析单元、传入检测单元、传出检测单元以及输出检测单元;
所述输入单元用于输入目标节点的IP地址、端口信息和ID信息;
所述显示单元用于显示所述日蚀攻击检测模块的实时检测结果;
所述计算单元用于根据目标节点计算出可能的伪造节点;所述接口检测单元用于根据目标节点的IP地址和端口信息,构建出JSON‑RPC接口请求,并根据该接口请求检测出目标节点是否有新增连接数;
所述计算单元具体用于采用代理IP通过椭圆曲线算法随机生成节点私钥和节点公钥,并将所述节点公钥直接作为传入连接通信过程中的伪造节点的ID信息;并为每个可能的伪造节点构造出所支持的协议、节点名称和端口信息;
或者还用于将所述节点公钥与目标节点的ID信息进行异或运算,得到目标节点与节点公钥之间的距离,将满足距离阈值的节点公钥作为传出连接通信过程中的伪造节点的ID信息,并为每个可能的伪造节点构造出所支持的协议、节点名称和端口信息;
所述解析单元用于根据目标节点的IP地址和端口信息,解析出目标节点的广播信息和ping‑pong通信消息;
所述传入检测单元用于判断解析出的广播信息中是否存在空值或者重复值,从而检测出目标节点是否接收到伪造节点的传入连接;
所述传出检测单元用于根据解析出的ping‑pong信息,对伪造节点进行探活检测,统计出伪造节点接收到目标节点的传输连接的数量,从而检测出目标节点是否向伪造节点发送传出连接;所述传出检测单元具体用于目标节点根据其数据库中可能的伪造节点的ID信息,确定出目标节点对对应ID信息的伪造节点进行了传出连接通信;
所述输出检测单元用于在目标节点有新增连接数时,且对于伪造节点进行了传入连接通信和传出通信连接时,检测出目标节点正在遭受日蚀攻击。
4.根据权利要求3所述的一种面向区块链中以太坊节点日蚀攻击的检测系统,其特征在于,所述传入检测单元具体用于若广播信息中存在空值或者重复值,则表明该广播信息中与目标节点通信的节点是可能的伪造节点,并确定出该对应ID信息的伪造节点对目标节点进行了传入连接通信。