课程设计第二周进展

Lua语言进一步学习

调试技巧

1.debug库:
    Lua自带了一个debug库,它提供了一些用于调试的函数。其中一些常用的函数包括:

1.debug.debug(): 进入一个交互式的调试器,让你能够逐行执行代码。
2.debug.getinfo(): 获取函数或栈的信息,包括文件名、行号等。
3.debug.traceback(): 获取当前调用堆栈的跟踪信息。
4.debug.sethook(): 设置一个回调函数,在每次指令执行时调用,可以用于自定义调试逻辑。
2.print语句
    跟C语言和python语言一样,print语句同样也是一种有效的调试手段。通过在关键位置插入print语句,你可以输出变量的值或标识程序执行到哪个位置。

wireshark插件编写

1.元信息:
在用lua编写wireshark插件时,首先要定义元信息,包括版本号、作者和描述。如:

local plugin_info = {
    version = "1.0",
    author = "Your Name",
    description = "SSL VPN Protocol Analyzer",
}

2.注册插件和字段:
然后需要创建协议对象,定义字符串字段

local ssl_vpn_proto = Proto("SSL_VPN", "SSL VPN Protocol")
local ssl_vpn_field = ProtoField.string("ssl_vpn.data", "SSL VPN Data")

ssl_vpn_proto.fields = { ssl_vpn_field }

3.解析器函数
接着需要编写解析器函数用于解析相关数据,如dissector函数用于解析SSL VPN协议的数据包,创建一个新的协议树节点,并将协议数据添加到该节点。

function ssl_vpn_proto.dissector(buffer, pinfo, tree)
    local ssl_vpn_tree = tree:add(ssl_vpn_proto, buffer())
    local data = buffer():string()

    ssl_vpn_tree:add(ssl_vpn_field, data)
end

4.注册协议:
这里将TCP端口443注册给SSL VPN协议,以便Wireshark能够在捕获文件中正确解析SSL VPN流量。

local tcp_port_table = DissectorTable.get("tcp.port")
tcp_port_table:add(443, ssl_vpn_proto)

理解SSL_vpn协议和TLS协议

这里需要分析SSL_VPN协议

SSL_VPN实际上是一种利用TLS协议来建立安全连接的远程访问解决方案。

  • TLS是一种加密通信协议,用于在计算机网络上提供安全的数据传输。它是SSL协议(Secure Sockets Layer)的继任者,目前的版本有TLS 1.0、TLS 1.1、TLS 1.2等。TLS协议用于在通信双方之间建立安全的、加密的通信通道,以确保数据在传输过程中的机密性和完整性。
  • SSL_VPN是一种基于SSL/TLS协议的远程访问解决方案,允许用户通过安全的连接远程访问企业网络或其他受限制的资源。SSL_VPN的工作原理是使用TLS协议来加密和保护用户与VPN网关之间的通信。通常,SSL_VPN客户端会在用户设备上安装一个SSL_VPN客户端软件,该软件与SSLVPN服务器通信,建立安全通道,使用户可以通过互联网安全地访问企业内部资源。
  • SSL_VPN和TLS协议的关系在于SSL_VPN使用TLS协议作为其安全通信的基础。SSL_VPN解决方案通过利用TLS协议的加密和身份验证功能,提供了一种安全的远程访问方式。在SSL_VPN的上下文中,TLS用于加密用户与VPN网关之间的通信,确保敏感数据的机密性,并防止中间人攻击等威胁。

此外SSL_VPN还有许多子协议:
1.SSL/TLS Handshake Protocol:

  • 握手协议负责在客户端和服务器之间建立安全连接。它包括密钥交换、身份验证和协商加密算法等步骤。SSL/TLS握手协议确保通信双方能够协商出一致的加密参数,建立安全通信通道。
    2.SSL/TLS Record Protocol:
  • 记录协议负责将应用层的数据划分成适当的记录,进行加密、认证和压缩,并在传输过程中保持数据的完整性。SSL/TLS记录协议使用握手协议协商的密钥对数据进行加密,提供了安全的通信通道。
    3.SSL/TLS Change Cipher Spec Protocol:
  • 变更密码规范协议用于通知对方,后续的通信将使用新的加密规范。在握手完成后,通信双方通过变更密码规范协议告知对方开始使用协商好的密钥进行加密。
    4.SSL/TLS Alert Protocol:
  • 警告协议用于传递与SSL/TLS连接相关的警告信息。这些信息可以包括握手失败、证书问题等。通过警告协议,通信双方可以及时了解到连接状态的问题,并采取适当的措施。

尝试插件的使用



这里能成功分析出是握手协议和记录层协议。

posted @ 2023-11-26 22:12  LLLZTTT  阅读(6)  评论(0编辑  收藏  举报
$