首页 > 其他分享 >个人报告20211303

个人报告20211303

时间:2023-12-17 10:44:18浏览次数:40  
标签:TLS 协议 插件 个人 报告 -- 代码 20211303 Wireshark

个人报告(20211303李天赐):

a)列出自己的贡献

小组整体工作的推进和程序设计思路的确立,完成了前期代码结构搭建和初步撰写。

b)列出设计中遇到的问题及解决方法

(1)思路问题:

--问题描述:在我们最开始设计程序的时候,先打算拿TLS协议中的三次握手协议的过程来练手,通过显示handshake这个信息来进行解析。当时的想法是,在握手协议中,SYN这个信息是会从0开始的,因此只要找到SYN为0的字段,就可以识别到这个数据包,然后更改其名称。但是编写代码并运行后,发现并不能准确地抓到这样的包,而且还会把所有TLS数据包过滤掉。

--解决方法:出现这个问题的原因是我们没有找到正确的条件。在代码中,我们是读取到SYN这个字段,如果它等于0,那么就改名。但事实上,TLS握手协议中只有极少数情况SYN是等于0的,而且这个代码编写的也不正确,反而将所有TLS包全部识别到,然后一口气全部不显示了。因此我们通过查阅资料、又结合课程设计要求,和别的小组同学讨论后,决定采用使用的偏移量和长度来提取协议字段并与TLS协议规范相匹配,以准确识别内容类型的方法。根据国密标准和wireshark视窗可以得知不同字段在记录层的偏移量。

(2)协议字段读取问题:

--问题描述:解析TLS协议中不同字段时,遇到版本字段提取错误,导致无法正确识别TLS的子协议。

--解决方法:出现这个问题的原因是因为我们用来读取字段的方式错误。我们使用了 

local protocol_field = get_protocol_field()

这样一个方式来读取字段,但是它所索引的字段其实是一个空值,它没能定位到正确的初始值与偏移量。我们之后修改了代码,通过逐次使用正确的偏移量和长度来提取协议字段来确保提取的字段与TLS协议相匹配,以识别协议的类型。

(3)国密算法解析问题:

--问题描述:插件最开始并没有能够进行解析国密算法的功能,当时我们对于国密算法在TLS协议中的运用的理解不够深入。

--解决方法:通过学习TLS协议、国密算法和对wireshark所读取的数据包的分析,发现在很多TLS通信包中均可以找到国密算法的加密信息。通过查找其在数据包中的位置,然后修改代码,添加了显示加密算法的功能。

(4)Wireshark插件接入问题:

--问题描述:在编写插件时,遇到了不知道该怎么接入wireshak的问题

--解决方法:通过对于教程《Wireshark网络分析从入门到实践》中撰写wireshark插件的章节的学习,掌握了基础知识,进行了foo插件设计。

c)列出调试过程中遇到的主要问题,并说明解决方法 

(1)字段提取错误:

--问题描述:Lua: Error during loading:

C:\Program Files\Wireshark\plugins\4.0\Couredesign.lua:56: attempt to index a nil value

stack traceback:

C:\Program Files\Wireshark\plugins\4.0\Couredesign.lua:56: in function 'tls_protocol_identification'

C:\Program Files\Wireshark\plugins\4.0\Couredesign.lua:60: in main chunk

 

Lua: Error during execution of initialization:

C:\Program Files\Wireshark\plugins\4.0\Couredesign.lua:51: invalid field

 

Lua: Error during execution of initialization:

C:\Program Files\Wireshark\plugins\4.0\Couredesign.lua:51: Field__call: Fields cannot be used outside dissectors or taps

遇到了无法正确提取字段的错误。

--解决方法:没有使用正确的字段,导致读取到了错误的内容,没能进行正确匹配。在对照国密算法和TLS协议进行修改后解决。

(2)错误处理机制问题:

--问题描述:当插件出现问题的时候,没有相应的报错提示

--解决方法:加入适当的错误处理机制,以捕获并记录潜在的解析错误。

(3)加密套件检查问题

--问题描述:最开始对于加密套件没有进行合理的分类,导致只会粗略显示,不能有效解析

--解决方法:对于 client_hello 等于不同字段的情况,检查多个加密套件并进行匹配和相应的显示

d)设计体会及收获

(1)一步步来的重要性

在最开始学习的时候,真的感觉到不能急于求成。我们一上来想的就是先做个代码试试,于是就用一种不合理的思路编写了一个有问题的代码出来,不仅无法实现想要的功能,还在调试和修改上花了很多时间,是很不值得的。归根结底就是想要一步登天,还没有学习国密算法和wireshark数据包、TLS通信数据包的特征就开始用自己的思路来解释这个程序,导致出现了插件与软件完全不匹配的情况。

在设计程序之前,应该进行充分的学习与了解,对于自己要使用的技术、要完成的功能、完成该功能的思路和方法有一个合理正确的设计以后再动手,可以减少不必要的时间精力损耗。

(2)理解协议结构

在设计 Wireshark 插件之前,深入了解要解析的协议结构是至关重要的。对于 TLS 协议而言,了解记录层、握手协议等组成部分的结构有助于编写有效的解析代码。而在代码中对协议字段的处理需要灵活和准确。

(3)代码的模块化设计

 通过将不同功能拆分为独立的函数,可以实现更模块化的设计。在我们的代码中,设计时就划分了几个大块的功能,分别编写了处理记录层和处理记录层 content_type 的两个函数,提高了代码的可读性和可维护性。当然,良好的注释和命名规范也是编写代码时重要的一环。对函数和变量进行清晰的命名,有助于记录代码的功能和设计思路。

(4)版本处理与兼容性考虑

 对于协议版本的处理需要谨慎,确保代码适用于多个版本。在代码中,对不同版本的 TLS 协议给出了相应的处理逻辑,并考虑了未知版本的情况。

e)参考资料(图书、网址…)

《Wireshark网络分析从入门到实践》

https://mp.weixin.qq.com/s/lPrgqnFGfqSDFwFN5cjSQQ

https://zhuanlan.zhihu.com/p/362748246

https://zhuanlan.zhihu.com/p/114669991

https://zhuanlan.zhihu.com/p/659794500

标签:TLS,协议,插件,个人,报告,--,代码,20211303,Wireshark
From: https://www.cnblogs.com/liTCabcAbc/p/17908832.html

相关文章

  • 个人贡献
    一、个人工作简述1.实验前期选择开发工具,并完成需求分析;#电子公文系统二--需求分析2.编写初版需求规格说明书需求规格说明书;3.进行团队分工团队分工博客4.在实验过程中完成后端模块化功能的实现;后端开发,也称为“服务器端”开发,主要涉及构建软件系统的“后端......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献任务详情1简述你完成的工作2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?3你们小组总共的文档数?你贡献的文档数?相关链接?主要完成的工作个人主要完成的工作是扮演了项目经理和产品经理的角色,具体工作如下:项目经理:根据项目......
  • 实验三-电子公文传输系统-个人贡献
    (一)简述你完成的工作我的工作主要是项目整体结构的搭建设计,和公文系统功能的实现一mvc模式和服务实现逻辑链设计在设计初期,我们确定好了分工和系统编写的基调。我认为电子公文系统中,可以采用MVC模式进行设计,得到了其他组员的支持,我们的分工也基本根据这个方式而来。其中我主要......
  • 课设报告
    北京电子科技学院《信息安全工程技术应用》课程设计报告基于lua的wireshark插件开发小组成员姓名:20211410周意凯20211417黄琪凯20211421文鑫河指导教师:娄嘉鹏提交时间:2023年12月10日一、设计方案及可行性分析该代码是一个用于解析TLS(TransportLayerSecurity)协议......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献1简述你完成的工作与组内成员相互配合协作,高效率完成任务参与组内文档的撰写工作负责了前端设计与数据库的建立2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?总共代码行数为55352行,其中大部分是gitee上的代码,我们组总共贡献......
  • 电子公文传输系统个人贡献
    实验三-电子公文传输系统1-个人贡献1简述你完成的工作参与组内文档的撰写工作。参与后端设计的代码编写,数据库处理JDBC2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?总共代码行数为55352行,其中大部分是gitee上的代码,我们组总共贡献了13139行代码,其中我负责的代......
  • 个人贡献
    个人贡献设置包括网络接口、程序之间的接口的代码代码链接:https://github.com/qiyulin2003/506ilou/tree/main/moehu-backend/moehu-backend/src/main/java/com/moehu/back/confighttps://github.com/qiyulin2003/506ilou/blob/main/html/dzgw/mygw.html贡献代码863行总代码......
  • 阿贝云免费云服务器个人评价
    阿贝云是一家提供免费云服务器的云服务提供商,下面是对其性能的评价。首先,阿贝云的免费云服务器性能表现良好。它提供了稳定可靠的服务器运行环境,可以满足简单的网站部署、数据存储和应用开发等基本需求。免费云服务器配置合理,RAM和CPU资源分配足够,可以支持一般的应用程序运行。......
  • IS课程设计-个人报告
    个人报告1.小组贡献排序及依据(每个人的工作量):张顺扬(37%):针对GMT0024以及相关网站提供的五个协议相关数据资料编写lua代码并进行不断调试。肖权城(33%):前期进行相关资料检索,提供了大量包括协议逻辑分析功能的网站和数据资料对后期代码编写带来了有力支撑。徐元琦(30%):对代码进行修......
  • 2023年秋季个人阅读计划8
    人月神话》是一本关于计算机软件的经典著作,内容源于作者Brooks在IBM公司任System计算机系列以及其庞大的软件系统OS项目经理时的实践经验。这本书的主题是软件工程和项目管理,探讨了软件开发中的各种问题和挑战。这本书的内容源于作者布鲁克斯在IBM公司任System/360计算机系列以及......