基于Linux平台密码管理器设计与实现
基于嵌入式Linux的密码管理软件
沈阳航空航天大学课程设计报告课程设计名称:嵌入式系统综合课程设计课程设计题目:基于嵌入式Linux的密码管理软件院(系):计算机学院专业:班级:学号:姓名:指导教师:完成日期:沈阳航空航天大学课程设计报告目录第1章系统分析 (1)1.1需求分析 (1)1.2硬件分析 (1)1.3软件分析 (2)1.3.1 操作系统简介 (3)1.3.2 开发技术简介 (3)第2章系统设计 (4)2.1操作系统移植 (4)2.2系统模块设计 (4)2.3函数设计 (5)2.4关键流程 (5)2.4.1 系统主流程 (5)2.4.2 用户登录流程图 (6)2.4.3 用户注册流程图 (7)第3章系统调试及运行 (8)3.1调试分析 (8)3.2结果分析 (11)参考文献 (12)附录 (13)第1章系统分析1.1 需求分析课程设计内容:利用嵌入式Linux和Qt设计完成一个简单的密码管理软件。
1)所有密码用文件管理,并可在界面上浏览。
2)多用户设置,每个用户只能看到自己的密码集合。
3)文件里面的密码可以添加,修改和删除。
4)利用嵌入式Linux和Qt,在ARM9上实现。
这是一个密码管理软件,由于需要实现多用户管理、且每一个拥护只能看到自己的密码集合,所以我将每一个用户都设计一个用户名和密码,通过一个注册按钮以用户的用户名作为文件的名字,密码作为文件的第一行进行文件的创建,每次登录用户都会检索,如果输入的密码符合文件的第一行,则可看到该用户的内容,所有用户的文件都创建和保存在指定的目录下,文件里面的密码利用一个EditText,可以随意编辑修改和删除。
1.2 硬件分析烧写开发板及程序的步骤大体如下:(一)烧写vivi1)把并口线插到pc机的并口,并把并口与JTAG相连,JTAG与开发板的14针JTAT口相连,打开S-2410。
2)把整个GIVEIO目录拷贝到C:/WINDOWS下,并把该目录下的giveio.sys 文件拷贝到c:/windows/system32/drivers下。
软件技术专业毕业论文参考选题
软件技术专业毕业论文选题1、多媒体远程教学课件系统中Flash 技术及其应用2、Internet 环境中远程教学系统的网络安全问题3、多媒体课件中交互性的实现4、网络教学系统的分析与设计5、计算机病毒的预防技术探讨6、一个网络调查统计系统7、实用课件制作方法的探讨8、CAI 课件的设计与实现9、电子银行防火墙研究10、浅谈SQL 和SQL Server 2000应用11、谈校园网安全访问控制体系12、C/S 与B/S 的特点比较13、图书馆信息管理系统的设计与实现14、中国电子商务如何与国际接轨分析15、电子商务与企业竞争力16、关于发展我国电子政务的思考17、电子商务与企业信息化18、关于加快发展中国网络银行的思考19、电子商务在证券业中的应用20、电子商务网站的建设及规划21、购物网站的设计22、网上订购平台的设计23、防火墙的应用研究24、操作系统的安全研究25、数据库系统的安全研究.26、计算机病毒防治新趋势27、入侵检测系统应用研究28、信息传输加密研究29、信息存储加密研究30、电子支付技术研究31、电子商务安全问题32、B to B 、B to C、C to C 模式探讨33、各大专院校教学管理数据库的设计与开发;34、企业生产、销售管理数据库的设计与开发;35、各事业单位管理数据库的设计与开发;36、大学校园网的设计与开发;37、网络软件的开发和研究;38、网络各种硬件的研制与开发;39、网络理论的研究;40、网络在商业中的应用;41、网络在自动检测、临控系统中的应用;42、网络在交通管理中的应用;43、网络在安全保卫系统中的应用;44、局域网、城域网的设计与开发;45、网络在银行管理系统中的应用;46、网络在新技术、新发明管理中的应用;47、网络在图书、资料管理系统中的应用;48、网络在各类保险系统中的应用。
49、实时性远程答疑系统50、图书馆管理系统51、基于WWW 的协同式CAI 软件的Java 实现52、数据加密技术53、项解加密技术概念、加密方法以及应用54、基于Client/Server 的课件系统的设计与实现55、SQL Server 2000 全文检索技术56、基于B/S 体系结构开发应用系统57、项目管理在软件中的应用58、ASP 制作学生档案管理系统59、ASP。
创建一个简单的密码管理器使用Python
创建一个简单的密码管理器使用Python在当今数字化时代,人们需要记住的密码越来越多,而且为了安全起见,每个账号的密码都应该是独一无二的。
然而,要记住这么多复杂的密码并不容易,这就导致了许多人使用简单易猜的密码或者将密码写在纸上,从而增加了账户被盗的风险。
为了解决这一问题,我们可以借助Python编程语言创建一个简单的密码管理器。
1. 密码管理器的功能这个简单的密码管理器将具有以下功能: - 添加新的账号和密码 - 查看已保存的账号和密码 - 更新已保存的账号和密码 - 删除已保存的账号和密码 - 自动生成强密码2. 开发环境准备在开始编写代码之前,我们需要确保已经安装了Python编程语言。
另外,我们还会使用到一个名为sqlite3的内置模块来帮助我们管理数据库。
3. 创建数据库首先,我们需要创建一个SQLite数据库来存储账号和密码信息。
我们可以使用以下代码来创建一个名为passwords.db的数据库,并创建一个名为accounts的表来存储账号和密码信息:示例代码star:编程语言:pythonimport sqlite3# 连接到数据库(如果不存在则会创建)conn = sqlite3.connect('passwords.db')# 创建一个游标对象cursor = conn.cursor()# 创建accounts表cursor.execute('''CREATE TABLE IF NOT EXISTS accounts ( id INTEGER PRIMARY KEY,website TEXT NOT NULL,username TEXT NOT NULL,password TEXT NOT NULL)''')# 提交更改mit()# 关闭连接conn.close()示例代码end4. 编写密码管理器代码接下来,我们可以编写一个Python脚本来实现密码管理器的功能。
一种远程管理Linux系统工具的设计与实现
一种远程管理Linux系统工具的设计与实现摘要现在,Linux已经是应用比较广泛的操作系统之一,在其系统中有很多的服务。
为了实现远程配置和管理Linux中的各种服务,需要有一种远程管理Linux 系统的工具软件,Webmin就是一种较好的B/S模式软件,而该课题以C/S模式实现。
该工具主要功能实现对Linux系统用户和组的添加、修改和删除;对系统应用服务(如:DNS、FTP、Apache、系统启动服务管理)进行管理和配置,这些服务的远程配置主要是通过修改服务配置文本文件来实现的。
该远程管理工具选用C/S模式设计,在客户端,采用GTK编程来实现操作界面;在服务器端,选用Linux系统的文件调用函数来读写配置文件中的数据;采用Sock TCP 编程来实现客户端和服务端之间的数据通信。
通过系统测试后,完成预期的目标,但是需要进一步完善程序和考虑安全性后,方可应用于实际的远程管理。
关键词:Linux;系统服务;C/C++;GTK;系统调用;SocketThe Design and Implementation of a Remote ManagementTool for LinuxAbstractThe operating system of Linux has become one of the most popular operating systems nowadays. It provides many kinds of service. In order to configure and manage the service remotely, the tool of remote management of the operating system of Linux is needed. Webmin is a good tool of software based on the model of B/S. This design is implemented based on the model of C/S. The main functions of the system include addition, modification, deletion of users and groups of Linux operating system and configuration and management of the service of application of the system, such as the DNS, FTP, Apache and the management of booting service. The remote management of service is implemented by modifying the files of configuration. The model of C/S is selected by this system. In the Client, the operating interface is made by the programming of GTK. In the Server, the functions of transferring of files of Linux operating system are used to write and read the data of the configuration files. The communication of Client and Server is implemented by the programming of Sock TCP. The testing demonstrates that the system has reached the prospective goal. But lots of improvements should be made and the problems of security should be considered more. After being modified and perfected, the system can be used to manage the system remotely.Key words: Linux;System Servers;C/C++;GTK;System Call;Socket目录论文总页数:33页1 引言 (1)1.1课题背景 (1)1.2国内外研究现状 (1)1.3本课题研究的意义 (1)1.4本课题的研究方法 (1)2 GTK编程 (1)2.1GTK简介 (1)2.2常用的GTK构件 (3)3 LINUX系统调用 (6)3.1L INUX系统文件 (6)3.2如何从文件中读取数据 (6)3.3进程和线程的使用 (7)4 基本的套接口编程 (7)4.1概述 (7)4.2简单的网络编程 (8)5 程序设计和流程图 (10)5.1设计思路 (10)5.2服务程序 (10)5.2.1流程设计 (10)5.2.2功能模块 (11)5.3客户程序 (20)5.3.1设计思路 (20)5.3.2程序设计 (20)6 系统测试 (30)结论 (32)参考文献 (33)致谢 (34)声明............................................................................................................错误!未定义书签。
基于linux环境下网络层密码技术的应用与实现
第28卷㊀第1期Vol.28㊀No.1北京印刷学院学报Journal of Beijing Institute of Graphic Communication 2020年1月Jan.2020基于Linux环境下网络层密码技术的应用与实现吴㊀宁(安徽三联学院,合肥230601)摘㊀要:本文基于Linux环境,对网络层密码技术的应用与实现进行了研究,通过用户选择秘密值生成数据签名对PKG签名能力进行限制,使用户私钥滥用问题得到解决;采用PKG签名因子解决用户毁谤问题,建立相关标识签名安全性能的保护机制,即T-HIBE机制,通过使用攻击博弈模型,从而使无密钥托管的层次式标识签名机制得到实现,在随机预言机模型下,证明该机制的安全性㊂从理论和实验两个方面共同对层次式标识签名机制进行相关性能分析和研究,并且针对于分析结果进行评价,研究结果显示,本文所提出的无密钥托管模型,可将标识签名机制密钥托管问题有效解决㊂关键词:密码技术;网络层;Linux环境;密钥;攻击博弈模型中图分类号:TP309文献标志码:A文章编号:1004-8626(2020)01-0136-03㊀㊀当前在大中型企业及微小型企业中,基于Linux开源系统应用已得到普及,更多企业在Linux 系统之上构筑应用服务等[1]㊂在网络层,若企业考虑将Linux作为网络设备部署,为企业提供内外网可控制的访问㊁内外网之间第一道防御㊁入侵检测服务等功能[2]㊂对于企业网络环境信息安全的技术管理,主要可以分为审查性能㊁使用性能㊁完整性能㊁保密性能㊁可控制性能等等,而其中涉及到对于企业方面的管理包含了应急处理㊁密码理论㊁数据信息的分析㊁网络环境安全的监管等等各方面[3]㊂这种技术在现实网络运行中,面临隐蔽㊁突发㊁蔓延㊁无边界各种威胁㊂基于此,本文基于Linux环境,对网络层密码技术的应用与实现进行了研究㊂一㊁对称密码技术的算法本文使用公开密钥算法来对于需要进行加密处理的用户签名和密钥等进行加密操作处理,明文可以使用对称密码算法来执行加密操作[4]㊂该算法流程为:步骤一是通过发送方加密AES密钥k AES及接收方ECC公钥Kpubb,从而形成C k;步骤二是通过自己ECC私钥k pria,发送方对签名信息M 进行加密,并形成C M;步骤三是在加上C k的基础上,通过发送方明文P㊁加密密文C M以及AES密钥k AES,从而得到密文C;步骤四则主要是从接收方自己的ECC私钥k pria解密C k,最终得到通过AES算法从而计算出来的密钥k AES,以及后续的明文P和签名CM;步骤五则是接收方通过接受发送方发送传输过来的ECC公钥k puba从而对签名CM 进行相关解密操作,等到用户签名M,接收方再通过对签名进行信息验证处理,最终可以得到最原始的信息数据P㊂二㊁混合密码技术在网络层安全传输模型中的设计(一)网络层安全传输模型体系结构将混合密码技术运用到网络层安全传输模型中,需要对网络层安全传输模型的组成体系和结构等进行充分了解,其中包含了服务器端口㊁客户端㊁网络安全连接端口和数据传输接口等等㊂服务器端作用包括混合密码算法管理㊁密钥管理㊁用户管理㊁文件管理;客户端作用包括更改用户密码㊁解密文件㊁传输公钥㊂图1为网络层安全传输模型体系结构图㊂(二)安全功能所在的模型网络层次TCP/IP是整个Internet所执行的相关实际标准,其所在的网络模型层次包含了应用层㊁信息传输层㊁网络层㊁网络接口层等等,每个层次之间存在着相互连接的关系,安全功能主要是在应用层中创㊀㊀收稿日期:2019-12-01基金项目:安徽三联学院校级项目 基于IVI技术的网络互通应用研究 ,编号:PTZD2019023㊂图1㊀模型的体系结构图㊀建,以TCP 为基础进行整个网络模型层次的传输,为其它的应用程序提供一个安全接口,加强混合密码层的安全性能,尽可能的避免由于使用TCP /IP 协议执行标准所带来的安全隐患㊂三㊁混合密码技术在网络安全传输模型设计中的应用(一)密钥托管问题解决方案密钥托管问题产生的根本原因是私钥生成机构PKG 对系统主密钥的独占㊂本文将系统主密钥分割为若干秘密值及一个PKG 主密钥,从而对PKG 产生用户私钥权力进行限制㊂同时将多个密钥隐私机构(KPA)引入,并分别对部分秘密值进行保管㊂用户私钥在系统中由多个KPA 和一个域PKG 共同计算生成,系统可确保用户私钥隐私性㊂图2为系统体系结构㊂图2㊀T -HIBE 系统结构图㊀本研究提出安全性证明双系统加密方法,该方法对于T -HIBE 机制攻击博弈模型较为合适㊂T -HIBE 系统将使用层次化分布式私钥产生机制进行工作,即通过各个私钥隐秘机构KPA 和层次化机制PKG 共同作用所得到的用户私钥,从而使HIBE 中PKG 密钥托管问题和实现密钥安全分发得到解决㊂T -HIBE 机制包括Key Gen (私钥生成)㊁Setup(系统初始化)㊁Decryption(解密)㊁Encr-yp -tion(加密)四个算法㊂(二)攻击博弈模型T -HIBE 机制的攻击博弈模型包括攻破T -HIBE 机制敌手κ,确保T -HIBE 安全的挑战者C㊂博弈具体步骤为:步骤一是进行阶段(Setup)的设置,挑战者C 运行KPA㊁PKG 初始化算法,向攻击者A 返回KPA 公开参数Param KPA 和系统参数Pa-ram PKG ,并保留KPA 秘密值SK 和PKG 主密钥MK㊂步骤二是第一查询阶段(Phase 1),即敌手κκ将私钥所产生的环节和密文解密的请求进行提交并且传输到挑战者C 处,与此同时使用密钥生产请求已提交;步骤三是敌手κ把使用用户标识以及所生产的盲因子机械提交并传输至挑战者C,挑战者C 在将所获得私钥进行输入从而得到算法Key Gen,将遮蔽的KPA 安全因子及原始私钥给A返回;步骤四是提出解密密文请求,C 运行密钥同时生成用户私钥和算法Key Gen,使用该私钥对密文进行解密处理;步骤五是挑战阶段(Challenge),敌手κ将两个已经完成解密处理的明文信息M 0㊁M 1传输提交给挑战者C;在第一步查询环境中,A 对于该用户所标识或所涉及到的私钥并无过多查询研究,当密文在解密操作处理中,并未产生任何关于明文信息M 0㊁M 1的数据信息;步骤六是挑战者C 对βɪ{0,1}进行随机选择,对明文M β使用挑战标识加密,并给敌手κ返回密文㊂四㊁层次式标识签名机制的实现与验证评估(一)系统实现本文对o2-HIBS 机制㊁ef -HIBS 机制㊁efo2-HIBS 机制的实现进行分析,其所在的实验环境为一台式机上完成,其所使用的主频道位3.30GHz,英特尔酷睿i5-3550处理器㊁内存8G,操作系统为Linux 系统㊂(二)性能分析选择长度为2048比特的整数域和阶为1536比特的双线性群,在相同安全级别下,分别使用RELIC 库㊁PBC 库实现SHER -IBS 机制,对两个密码库性能进行比较,图3为SHER -IBS 机制签名算法及验证算法的时间开销㊂由图3可知,在将PBC 库和RELIC 库实现SHER -IBS 机制效率对比的情况下,即当期安全级别均处于同一个级别时,RELIC 库和PBC 库实现的验证算法㊁签名算法计算开销达到秒级㊂充分的显示了计算效率难以满足当前的通信需求㊂通过对于PBC 库和RELIC 库的效率,我们发现RELIC 库其所达到的运算效率要高于PBC 库,PBC 库实现群元素幂运算要高于RELIC 库㊂在足够安全级731第1期吴㊀宁:基于Linux 环境下网络层密码技术的应用与实现图3㊀PBC库和RELIC库实现SHER-IBS机制效率对比㊀别,基于PBC库选择长度为1024比特整数域和阶为160比特双线性群,实现SHER-IBS机制及本文提出层次式标识签名机制㊂图4为四个机制验证算法时间开销对比,其中EFOO曲线和EF曲线,OO曲线和SHER曲线基本重叠㊂随身份标识的长度增长,不同签名机制验证算法计算开销均呈线性增长㊂应用无密钥托管模型,使用和上述相同安全参数,验证算法一次运行的计算时间将增加20.5ms㊂应用在线/离线签名,不会对验证算法时间开销造成影响㊂图4㊀四个机制验证算法时间开销对比㊀五㊁结语随着互联网的匿名性㊁开放性,安全隐患不可避免,因而,在网络传输上实现数据的完整性㊁机密性㊁身份可靠性㊁访问控制性等能确保数据安全㊂本文基于Linux环境,对网络层密码技术的应用与实现进行了研究,通过用户选择秘密值生成数据签名对PKG签名能力进行限制,使用户私钥滥用问题得到解决;采用PKG签名因子解决用户毁谤问题,建立相关标识签名安全性能的保护机制,即T-HIBE机制,通过使用攻击博弈模型,从而使无密钥托管的层次式标识签名机制得到实现㊂从理论和实验两个方面共同对层次式标识签名机制进行相关性能分析和研究,研究显示,本文所提出的无密要托管模型,可将标识签名机制密钥托管问题得到有效解决㊂参考文献:[1]㊀丁子康,黄锐,杨鸿靖宇.密码学技术的发展与网络安全研究[J].无线互联科技,2019(7):38-39.[2]㊀Blenk A,Basta A,Reisslein M,et al.Survey on network virtu-alization hypervisors for software defined networking[J].IEEE Communications Surveys&Tutorials,2017,18(1):655-685.[3]㊀唐国栋.基于密码标识的SDN网络安全控制转发技术研究[D].郑州:战略支援部队信息工程大学,2018.[4]㊀Lai C F,Hwang R H,Chao H C,et al.A buffer-aware HTTPlive streaming approach for SDN-enabled5Gwireless networks [J].IEEE Network,2015,29(1):49-55.(责任编辑:谢蓓)831北京印刷学院学报2020年。
linux用户管理课程设计
linux用户管理课程设计一、课程目标知识目标:1. 理解Linux操作系统中用户管理的概念与重要性。
2. 掌握Linux系统中添加、删除、修改用户的基本命令。
3. 学习用户组管理,理解用户与用户组之间的关系。
4. 掌握文件权限管理,了解用户对文件的访问控制。
技能目标:1. 能够独立完成Linux系统中用户的添加、删除和修改操作。
2. 能够设置和管理用户组,实现用户组权限分配。
3. 能够通过命令行修改文件权限,保证系统安全性。
4. 能够解决用户管理过程中遇到的基本问题。
情感态度价值观目标:1. 培养学生团队协作意识,学会在小组内共享资源。
2. 增强学生安全意识,养成定期检查系统安全的习惯。
3. 激发学生对计算机操作系统的好奇心与探索精神,提高学习兴趣。
本课程针对高年级学生,在学生已掌握Linux基本操作的基础上,进一步深入学习用户管理。
课程注重实践操作,使学生能够在实际操作中掌握用户管理的知识与技能。
通过课程学习,培养学生解决问题、团队协作和安全意识等方面的能力,为以后从事计算机相关工作奠定基础。
二、教学内容1. 用户管理基础- 用户与用户组的概念及关系- 用户管理的命令:useradd、userdel、usermod- 用户密码管理:passwd命令的使用2. 用户组管理- 用户组的概念与作用- 用户组的命令:groupadd、groupdel、groupmod- 用户与用户组的关联操作3. 文件权限管理- 文件权限的表示方法- 改变文件权限:chmod、chown、chgrp命令的使用- 特殊权限设置:setuid、setgid、sticky位4. 实践操作- 添加、删除、修改用户及用户组- 设置文件权限,实现用户间的文件共享- 用户管理综合案例分析与讨论本教学内容以Linux用户管理为核心,涵盖用户管理、用户组管理和文件权限管理三个方面的知识。
根据课程目标,教学内容安排注重系统性和实践性,结合教材相关章节,确保学生能够循序渐进地掌握Linux用户管理的知识点。
Linux用户管理系统课程设计
Linux用户管理系统课程设计一、课程目标知识目标:1. 理解Linux操作系统的基本用户管理原理,掌握用户与用户组的配置方法;2. 学会使用相关的命令行工具,如useradd、usermod、userdel、groupadd等,进行本地用户的创建、修改和删除;3. 掌握如何通过配置文件/etc/passwd、/etc/shadow等,进行用户信息的维护;4. 了解用户权限管理的重要性,掌握基本的文件权限设置。
技能目标:1. 能够独立完成在Linux系统中添加、管理和删除用户及用户组的过程;2. 能够通过命令行工具批量处理用户信息,提高管理效率;3. 能够解决常见的用户权限问题,保障系统安全;4. 能够编写简单的Shell脚本,实现用户管理的自动化。
情感态度价值观目标:1. 培养学生对操作系统管理的兴趣,激发学习Linux系统的热情;2. 增强学生的团队协作意识,通过分组讨论和实践,培养学生共同解决问题的能力;3. 培养学生的安全意识,让学生认识到合理管理用户权限的重要性,养成良好的系统管理习惯。
本课程针对高年级学生,考虑到学生已具备一定的计算机操作和编程基础,课程设计注重实践性和应用性。
课程目标旨在使学生在掌握基本理论知识的同时,提高实际操作技能,培养解决实际问题的能力,同时注重培养学生的情感态度价值观,为学生的全面发展奠定基础。
通过本课程的学习,学生将能够更好地理解和运用Linux用户管理系统,为未来从事相关工作或深入研究打下坚实基础。
二、教学内容1. Linux用户管理基本概念:介绍用户、用户组、密码文件、影子文件等基本概念,以及它们在Linux系统中的作用和关系。
- 教材章节:第3章 用户与用户组管理2. 用户与用户组管理命令:详细讲解useradd、usermod、userdel、groupadd等命令的用法和参数配置。
- 教材章节:第3章 用户与用户组管理,第4章 命令行工具3. 用户权限管理:阐述文件权限和所有权概念,教学如何使用chmod、chown、umask等命令进行权限设置。
基于计算机属性加密的Linux_安全模块访问控制实现及系统测试
文章编号:2095-6835(2023)21-0140-02基于计算机属性加密的Linux安全模块访问控制实现及系统测试邹易奇(西安铁路职业技术学院,陕西西安710026)摘要:首先介绍了LSM(Linux Security Module,Linux内核安全模块)的组成结构,并设计了基于属性加密的LSM 访问控制方案,在此基础上通过编写程序验证了打开文件队列和安全钩子函数的实现方式。
最后在Ubuntu15.03测试环境下,验证LSM访问控制功能。
结果表明,该系统能自动验证用户的访问权限,并向具备权限的用户提供对应的文件资源;同时,使用最优解密树可以提高解密效率,增强LSM访问控制的时效性。
关键词:属性加密;LSM安全模块;访问控制;安全钩子函数中图分类号:TP309.2文献标志码:A DOI:10.15913/ki.kjycx.2023.21.042属性加密(ABE)是一种基于用户身份的模糊加密方式,它将密钥与属性关联起来,避免了对称加密的密钥在传输过程中被泄露的问题,同时还能使数据拥有者具有对数据的绝对控制权,在加强访问控制和保护数据安全方面发挥了重要作用。
在Linux系统中,探究基于属性加密的LSM安全模块访问控制功能实现路径,对复杂网络环境下保障用户信息与文件资源安全有积极帮助。
1Linux系统下LSM安全模块的构成要素为了在Linux系统中实现访问控制和系统调用的功能,本文在设计LSM框架时,添加了不同功能的代码、函数,构成了LSM的核心架构。
例如在内核中插入了特定的调用函数hook,可调用LSM安全域;添加了register_security函数,用于注册LSM等。
内核安全域是LSM框架的核心组成,用户在Linux客户端执行用户进程后,使用hook函数调用内核安全域,激活LSM。
然后执行一项错误检查,判断文件权限能否正常执行;在DAC(Digital Audio Compress,数字模拟转换器)控制下,调用file_permission钩子函数,此时安全决策模块启动,可以实现对潜在风险的筛选和已知隐患的处理[1]。
基于嵌入式Linux系统的多通道密码资源分发系统软件设计
系统的多通道密码资源分发系统软件设计NIE L,LI J G.Software Design of Multi-Channel Cipher Resource Distribution System Based on Embedded Linux System[DOI:10. 16311/j. audioe. 2020. 08. 006系统的多通道密码资源分发系统软件设计聂 琳,李建国中国电子科技集团公司第三十研究所,四川为了满足不同接口类型的密码设备的密码资源快速加注需求,提出一种多通道密码资源分发系统的软件设计方法。
基采用多线程管理技术和多接口多协议集成处理技术,该软件设计满足要求,能有效提高加注效率,多线程技术Software Design of Multi-Channel Cipher Resource Distribution System Based on Embedded Linux SystemNIE Lin, LI JianguoInstitution of CETC, Chengdu 610041, China)In order to meet the needs of cipher resource fast injection for cryptographic devices with different interface types, this paper proposes a software design method of Multi-channel cipher resource distribution system., which is based on embedded Linux system, multi-thread management technology and multi-interface protocol integrated processing technology are adopted to realize automatic identification of 8-channel cryptographic devices and batch parallel distribution and annotation of cipher resource. The actual tests show that the software design meets the requirements, and it’s suitable for the batch filling of a large number of devices.Linux system; embedded software; multi-channel system; multi-threading technology现代战争已经由传统的地面战向信息战转快速地掌握敌我信息并建立高效的军队通信系统已经成为决定战争胜负的关 作、学习以及生活效率基于嵌入式软件高效低耗的优点,种基于嵌入式统的软件设计方案,动识别和密码资源的并行分发与加注。
Linux管理系统平台的设计与实现
Linux管理系统平台的设计与实现摘要】:Linux操作系统在现代嵌入式处理器上的应用越来越广泛,主要是因为Linux系统本身具有的实时性等优势,能够有效满足嵌入式系统开发需求。
本文则对Linux管理系统平台的设计及实现探讨。
【关键词】:Linux;管理系统;设计;实现Linux属于是一套免费试用及自由传播的操作系统,可以支持多用户、多线程以及多CPU系统,这一系统集成了Unix以网络核心的设计理念,目前属于是一个性能比较稳定的多用户网络操作系统,因此得到广泛应用。
本文则重点对Linux 操作系统上的管理系统凭条设计探讨,并进一步优化Linux常用功能及复杂操作,从而为管理员工作提供便利,促进学生掌握良好的Linux操作技能。
一、Linux系统目录其中在Linux系统中文件系统属于重要组成部分,系统中的事物均是文件。
通常可以将文件类型分成链接、目录、正规文件以及特殊文件等等,采用分层树结构将不同类型文件实现组合,则也就能够形成“root”目录的起始位置(“/”)。
将所有文件组合在一起则可以构建文件系统,其中的每个文件均有相应“I节点”,“I节点”则包括有GID(文件所在组)、文件大小、UID(文件拥有者)、文件类型以及模式(文件的权限)、mtime(文件上次系修改时间)、ctime(“I节点”上次修改时间)、nlink(链接数)、atime(文件上次访问时间),从其也就能够将文件的基本属性有明确认识,基于这些条件从而实现文件管理的安全性,并且能够通过文件权限设置以及用户及组标识设置,显著提高系统应用安全性。
二、Linux管理系统平台的功能设计其中在Linux管理系统平台设计中,需要满足以下几方面功能需求,分别是:第一,简化操作步骤,构建友好界面。
在这一平台设计过程中需要涉及到20多个功能模块,之中包括系统本身的常用功能,在各个模块设计过程中还需要将其复杂操作命令进行隐藏,只需要将简单明了的操作界面提供给用户即可;第二,深化内科,进一步实现更多功能,在这一平台中的内核模块能够引导用户对Linux 系统内涵有深入应用,从而应用到一般用户所用不到的高级功能;第三,在教学管理过程中,Linux管理系统平台则属于是辅助工具,那么在模块分析过程中,则可以应用这一系统促进学生对Linux基本操作的理解,提高学生的Linux系统操作技能。
Linux安全用户管理机制的设计与实现
Linux安全用户管理机制的设计与实现张文盛;候整风【摘要】Traditional Linux local user management have some security implemented by application layer, then password file/etc/shadow can need privileges to change password ,then set uid/set gid mechanism is problems, as user information management is only be accessed by root, but normal users designed, but set uid/set gid programs that have buffer overflows can seriously theat system security. We design a new security user management mechanism, which manages user information in kernel space, supplies user information access and identity switch services through system call, eliminates set uid/set gid mechanism, simplifies security design and improves system security.%传统Linux本地用户管理中存在一些安全问题,例如由于用户信息管理由应用层实现,导致密码文件/etc/shadow 只能由root访问和修改,为了让普通用户能修改自己的密码等需要特权的操作引入set uid/set gid机制,结果 set uid/set gid程序存在缓冲区溢出漏洞使系统遭受严重安全威胁.为此我们设计出一种新的安全用户管理机制,在内核中管理用户信息,通过系统调用提供用户信息访问和身份切换服务,消除set uid/set gid,简化安全设计,提高系统安全.【期刊名称】《吉林师范大学学报(自然科学版)》【年(卷),期】2012(033)003【总页数】4页(P94-97)【关键词】Linux;suid;缓冲区溢出;安全用户管理【作者】张文盛;候整风【作者单位】合肥工业大学计算机与信息学院,安徽合肥230009 安徽广播电视大学网络中心,安徽合肥230022;合肥工业大学计算机与信息学院,安徽合肥230009【正文语种】中文【中图分类】TP309.2Linux操作系统的本地用户数据一直是以文本形式保存在/etc目录下的若干文件中,系统管理员通过应用层程序和函数库直接读写这些文件,管理和使用用户信息.Linux采用超级用户对普通用户的二元用户模型,超级用户拥有全部权限,普通用户只能执行受限的操作.为了保护用户密码,密码文件只能有root用户访问和修改,普通用户不能打开查看,这样一来普通用户想要修改自己的密码还得通过root.为了解决这个问题,引入了set uid/set gid机制,给修改密码的程序设置set uid标志,当系统运行程序时,检查这个标志,如果设置,则以程序属主的身份运行,也就是root,而不是通常的以当前用户身份运行.推而广之,普通用户正常运行的其他程序需要特权操作时,必须设置这个标志.问题似乎解决了,但是这些set uid程序却因为被频繁发现存在缓冲区溢出漏洞,通过溢出一个shell提权,黑客就可轻松获取root权限,植入木马后完全控制整个系统,并将其当成跳板,攻击其他机器.文献[1]提出了一种最小化权能的方法,对应用程序按需赋予权能,即使程序有溢出漏洞,也未必就能提权,有效解决set uid机制的权限粗粒度过大带来的安全问题,但是不能解决修改密码文件问题(修改密码文件不需要权能).文献[2]提出一种基于C/S模型管理密码文件的方法,在系统中建立内核线程passwd_d作为口令服务器管理密码文件,应用程序使用套接字等进程间通讯方法与它建立连接,请求passwd_d提供修改密码等服务,这种方法很好,但是也有缺陷,例如很难提供身份切换服务,服务效率也是一个问题.在Windows操作系统则采用不一样的机制,用户数据保存在注册表中,由内核统一管理,用户管理和信息服务则由应用层服务进程lsass实现[3].仔细梳理一下,这个问题链条的源头正是Unix类操作系统使用的用户管理机制在设计上存在缺陷,本该是内核完成的一项重要功能,却一直由应用层完成几乎所有的管理工作.借鉴前面文献中的优点,我们设计出新的Linux安全用户管理机制,在内核中管理用户数据库,应用层通过系统调用才能访问,统一访问接口,简化控制逻辑,提高系统安全性.Linux是多用户分时操作系统,支持多个用户同时在系统中执行任务,系统用户信息主要存放在/ etc/passwd、/etc/shadow、/etc/group和/etc/gshadow四个文本文件中.Linux默认使用PAM完成验证和授权操作,用户执行登录等任务时,只需要提供用户名和密码,PAM根据配置选择使用/etc/shadow,或者LDAP,或者MYSQL验证.使用/etc/shadow保存和验证信息的方式称为本地(native)用户管理,前面四个文本文件组成本地用户数据库.Linux的本地用户管理是在用户空间完成,如图1.进程可以通过glibc、PAM等动态链接库提供的API访问用户数据库,或则直接访问./etc/passwd包含了系统用户清单,给出每个用户一些有用的信息例如用户ID、组ID、主目录、登录时shell等,通常还包括加密过的密码.它对所有用户可读,只对root可写./etc/shadow是/etc/passwd的影子文件.由于系统中任何用户都可以查看/ etc/passwd文件,读取每个用户的加密密码,进而破解其他用户甚至是root的密码,给系统安全带来威胁.现在的Linux都提供了/etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读写的./etc/group和/etc/gshadow保存组信息,/etc/ gshadow是/etc/group的影子文件,用于保存组密码.PAM(Pluggable Authentication Modules)是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段[4].Linux内核中描述用户信息的数据结构保存在每个进程的task_struct中[3]:系统启动时,创建的init进程的上述字段都是0,指代root.内核创建子进程时默认继承父进程的用户信息,只有切换用户时,才会指向新的用户.这一般发生在login或su时,通过执行系统调用setuid完成.上面的用户信息字段,加上文件系统的ugorwx权限设计,构成Linux内核的自主存取控制机制.Linux下用户执行程序,创建的进程默认继承登录用户的用户ID和组ID.进程访问文件时,系统使用进程的用户ID和组ID,以及文件的guorwx权限设置,进行访问检查.这就产生一个矛盾,当普通用户修改自己的密码时,需要修改/etc/shadow文件,而/etc/shadow却只能由root读写.Linux操作系统引入set uid进制,通过给修改密码的程序/usr/bin/ passwd设置set uid标志位,来解决这个问题.系统创建/usr/bin/passwd进程时,发现该可执行文件设置了set uid位,设置进程的euid属性为/usr/bin/ passwd的属主,即root.随后/usr/bin/passwd进程修改/etc/shadow文件,系统使用euid检查是否允许访问,显然可以.set gid标志位的用途类似,使用文件的属组检查访问权限.set uid程序能够以root身份运行,如果set uid程序存在缓冲区溢出漏洞,普通用户就能够利用这个漏洞提权,成为root用户,给系统带来致命威胁.set uid程序成为黑客攻击首选目标,是Linux操作系统的安全重灾区.综上,当前Linux用户管理存在的根本问题是,作为操作系统安全重要一环的用户管理,一直没有纳入内核,主要由用户空间的程序和动态连接库管理用户数据库,形成多头管理,易造成混乱和数据丢失;另外普通用户可以枚举用户,造成信息泄露.安全用户管理机制是将用户信息管理从用户空间移到内核空间,由内核完成用户数据库的日常管理和维护,对进程提供管理服务接口,从而保证用户信息管理的安全、高效、简洁和一致性.安全用户管理模型如图2.内核中用户数据库包括两个部分,用户表和组表.用户表包括如下字段.传统用户管理中有组ID设置,并且用户可以加入其他组,可通过newgrp切换当前组ID,结合文件的ugorwx进行权限检查,这在一定程度上弱化组ID列表功能的发挥.这里我们去除组ID设置,替换成加入组ID列表.相应地需要修改权限检查,不再使用ugorwx机制,替换成ACL机制,方便权限设置.组表如表2所示.内核提供的用户服务有:创建用户int CreateUser(struct UserInfo*ui);UserInfo数据结构描述一个完整用户所需的所有信息.返回0代表成功,其他负值代表失败,下同.用户信息中有许多字段的值不定长,例如用户名、加入的组等,为了节省内存,我们将不定长的值集中放在该结构尾部,使用指针指向它.修改用户int ModifyUser(struct UserInfo*ui,u32 mask);修改后的信息保存在UserInfo中,mask是位掩码,指出UserInfo哪些字段有修改.修改密码int ModifyUserPasswdByID(u32 uid,char*old,char*new);修改用户密码,old指向旧密码,new指向新密码.修改密码int ModifyUserPasswdByName(char* name,char*old,char*new);修改用户密码.删除用户int DeleteUserByID(u32 uid);通过uid删除用户.int DeleteUserByName(char*name);通过用户名删除用户.查询用户int QueryUserByID(u32 uid,struct UserInfo*ui);通过uid查询用户信息,保存到ui中.int QueryUserByName(char*name,struct UserInfo*ui);通过用户名查询用户信息,保存到ui中.枚举全部用户int EnumUser(struct UserInfo**ui,int*len);ui指向用户分配的足够大内存块,len指出其大小,该内存块的前面是指向UserInfo*的数组,后面存放具体的UserInfo内容,这样设计的理由是UserInfo 不定长.无论成功或失败,len都将返回需要的内存大小.返回正值为用户数.创建组int CreateGroup(struct GroupInfo*gi);GroupInfo数据结构描述一个完整组所需的所有信息.修改组int ModifyGroup(struct GroupInfo*gi,u32 mask);删除组int DeleteGroupByID(u32 gid);int DeleteGroupByName(char*name);查询组int QueryGroupByID(u32 gid,struct GroupInfo*gi);Int QueryGroupByName(char*name,struct GroupInfo*gi);枚举全部组int EnumGroup(struct GroupInfo**gi,int*len);上述的操作除了ModifyUserPasswd用于用户修改密码外,其他只有管理员才可以执行.切换身份服务int su(char*name,char* pwd);切换省份服务在执行系统登录或su命令时都要用到.用户或进程使用用户名和密码调用该服务,内核检查用户表,验证用户信息是否有效,验证通过后,修改当前进程的所属用户为请求的用户.su任何合法用户都可以运行,为了对抗DOS攻击,对su的执行频度需要限制.通过内核管理用户数据库,可以取消set uid/set gid机制,但需要保留权能,并实现最小化权能机制.因此task_struct中的用户信息可简化成如下:struct kUserInfo*ui;只需要一个指向表示用户信息的kUserInfo内核数据结构的指针.注意kUserInfo 和前面的UserInfo结构不一样,kUserInfo是内核使用的,UserInfo是用户层使用的,kUserInfo中需要增加一些诸如链表、计数和锁等帮助管理的数据成员,这些用户层不需要.本机制的实现还需要考虑如下几个方面的问题:用户数据库的文件表示(例如fUserInfo)和内存表示(还要进一步区分成UserInfo和kUserInfo等);系统启动时从文件数据库初始化内存数据库的过程;内核服务的实现;内存数据库到文件数据库的同步策略.在磁盘上所有的用户信息和组信息都存放在一个单独的文件中,文件名为sud(secure user database).sud使用二进制格式保存用户信息,sud的前面是文件头,后面存放若干信息块,信息块的类型可以是用户信息fUserInfo、组信息fGroupInfo和因为删除而出现的空闲块fFreeInfo.这三个结构有共同的首部:信息块类型(用户,组,空闲),所属块大小,更新日期和检验完整性的散列值.对于变长的值按顺序集中存放在结构后面,在结构的对应属性中存放的是值长度.当删除信息时,将对应的块设置成空闲,当空闲块总大小达到一个阀值时,启动收缩操作,回收这些块.在内核内存中,使用散列数组存储用户和组信息,方便快速查找.系统初始化时,在安装根设备后,加载用户数据库,将sud中所有有效信息块转换成对应的内核结构,插入散列数组,完成用户数据库初始化.在内核中申请一个新的系统调用号,用于用户信息服务.使用不同的子服务代码区分不同的子服务.当使用CreateUser或UpdateUser等服务时,内核先更新对应的内核数据结构,然后立即同步到sud文件中.CreateUser在sud尾部新增信息块,UpdateUser在原位置尝试更新信息块,不行的话则也在尾巴新增,并删除原信息块.为了做到这一点,kUserInfo中需要保存对应信息块在sud中的偏移.通过内核管理用户,访问接口单一,只能使用系统调用,任何访问都会经过严格检查,通过后才允许.传统的多头管理下,同时访问用户信息时,由于没有有效的互斥机制,很容易造成数据丢失,破坏用户信息,而内核使用锁机制实现访问互斥,保证数据的一致性.set uid程序比较分散,风险不好控制,而内核中的用户管理模块代码有限和集中,经过谨慎编码,很难出现漏洞,比应用层更安全可靠和风险可控.传统Linux将用户数据保存在文本文件中,使用应用程序管理用户信息,用户身份的验证和授权是在应用层实现等,这种实现有其独到的一面,体现unix简单就是美的原则,但与生俱来的一些缺点阻止Linux进一步发展和完善.我们借鉴其他现代操作系统的设计思想,在Linux中引入安全用户管理机制,由内核管理用户信息,对应用层提供服务接口,这同样简化用户管理,系统安全性能得到大幅提高,不足之处是破坏系统的兼容性,有些应用程序和库需要重写.【相关文献】[1]陆卫东,宋金玉,张毓森.基于Linux的s位程序最小授权的研究与实现[J].计算机应用,2002,7(22):94~96.[2]毛德操.胡希明.LINUX内核源代码情景分析[M].浙江:浙江大学出版社,2001.[3]冯登国.安全操作系统原理与技术[M].北京:科学出版社,2004.[4]郑东生.利用PAM增强Linux登录认证安全性[J].漳州职业技术学院学报,2005,2(7):52~55.[5]Linux version 2.4.0(内核源代码)[Z].http://www.kernel.org.。
面向Linux用户的网络文件管理系统的设计与实现
面向Linux用户的网络文件管理系统的设计与实现1 绪论1.1 氧化铝基陶瓷材料1.1.1 氧化铝陶瓷的晶型结构陶瓷材料是一种无机非金属材料,主要有Al2O3、SiC、ZrB2、BN等。
作为复合陶瓷的增韧基体,Al2O3是当下研究中使用频率较高的。
Al2O3有多种同质易晶体,主要的晶型有α-Al2O3、β- Al2O3、γ- Al2O3三种,其转换关系如图1.1所示。
图1.1 氧化铝的晶型转变γ- Al2O3的结构为尖晶石型,高温下不稳定,一般不单独使用[1]。
β- Al2O3实质上是一种碱性铝酸盐,a=0.56nm,c=2.25nm,密度3.30-3.63g/cm3,在1600℃的高温下会转变成α-Al2O3。
α-Al2O3在高温下较为温度,密度一般为3.96-4.01 g/cm3。
1.1.2 氧化铝陶瓷的性能氧化铝陶瓷中Al2O3的质量分数一般为75.0%-99.0%。
商品氧化铝习惯以质量分数来命名,质量分数大于85%的Al2O3的叫高铝瓷,Al2O3质量分数为95%的叫95瓷,质量分数为99%的Al2O3的叫99瓷,而质量分数大于99%的Al2O3的叫刚玉瓷。
氧化铝陶瓷物理性能优异,维氏硬度高达19.3,致密度高,同时还拥有杰出的耐高温、耐腐蚀、切削性、不导电等性能。
Al2O3陶瓷属于高温结构陶瓷,其物理性能与Al2O3的百分含量有着紧密的关系。
表1.1、和表1.2分别列出了高密度氧化铝和低密度氧化铝的一些力学性能。
表1.1 高密度氧化铝的力学性能Al2O3/% >99.9 >99.7①>99.7②99-99.7密度/(g/cm3)3.97-3.99 3.6-3.85 3.65-3.85 3.89-3.96硬度/HV 19.3 16.3 15-16 15-16KIC/(MPa·m1/2) 2.8-4.5 - - 5.6-6弹性模量/GPa 366-410 300-380 300-380 330-400室温弯曲强度/MPa 550-600 160-300 245-412 550膨胀系数/×10-6K-1(200-1200℃) 6.4-8.9 5.4-8.4 5.4-8.4 6.4-8.2室温热导率/[W·(m·K)-1] 38.9 28-33 30 30.4烧成温度/℃1600-2000 1750-1900 1750-1900 1700-1750注:①不含MgO二次再结晶;②含MgO表1.2 低密度氧化铝的力学性能Al2O3/% 99-96.5 94.5-96.5 86-94.5 80-86密度/(g/cm3)3.73-3.8 3.7-3.9 3.4-3.7 3.3-3.4硬度/HV 12.8-15 12-15.6 9.7-12 -弹性模量/GPa 300-380 300 250-330 200-240弯曲强度/MPa 230-350 310-330 250-330 200-300膨胀系数/×10-6K-1(200-1200℃) 8-8.1 7.6-8 7-7.6 -室温热导率/[W·(m·K)-1] 24-26 20-24 15-20 -烧成温度/℃- 1520-1600 1440-1600 -1.2 氧化铝陶瓷增韧目前,铁、铜、铝等常用金属的KIC范围大约为10-50MPa·m1/2,而大部分单质陶瓷和玻璃的KIC仅有0.5-6MPa·m1/2,远远低于铁、铜、铝等常用金属的KIC。
毕业论文-远程管理Linux系统的设计与实现
远程管理Linux系统的设计与实现摘要将效仿Linux下的Terminal,也就是说,本文要完成的是一个伪终端的设计。
为了实现远程管理Linux系统,就需要有一种远程管理Linux的系统工具软件,Webmin就是一种比较好的B/S模式软件,而本课题以C/S模式实现,该工具仿照Linux下终端的工作方式,使用命令行对Linux系统进行管理,能够完成一定数量的管理功能。
该工具使用C/S模式设计,在客户端,使用GTK+编程编写用户界面,在服务器端,使用Linux下特殊函数完成对系统的管理操作,而服务器与客户机之间的通信则是通过socket网络编程实现的。
本文所设计的远程管理工具是在网络上由一台计算机(主控端/客户长久以来,Linux一直是应用比较广泛的操作系统之一,基于命令行的系统管理是管理Linux系统的一种重要手段。
本设计要完成的是一个基于Linux命令行的系统管理工具,它的外观和使用方法端)远距离的控制另一台计算机(被控端/服务器端),这里的远程不是字面意思的远距离,而是指通过网络控制远端计算机,大多数时候远程管理往往所指的是在局域网中的远程控制,当使用者坐在主控端计算机前面时,就如同坐在被控端计算机面前一样,可以关机、重启,可以查看并阅读某一路径下的文件等功能。
关键词系统管理;服务器;客户端The Design and Realization of RemoteManagement Linux SystemAbstractIn a pretty long time, Linux is always one of the most popular operating system. and people use command-line to perform management in this system.The aim of the design is a management tools based on the Linux command line system, it will follow the appearance and way of using the Linux Terminal. that is a pseudo Terminal design.We need a remote-system-managing tool in hand in order to manage the Linux system without standing in front of the Server. The Webmin has already been there as an example of the B/S model, but in this subject we will design a software according to the C/S model. This tool is modeled on the terminal-managing-tool of the Linux, and uses the command line on Linux system administration, to complete a certain number of management functions. The tool is designed in C/S model, so in the client side, we write the programming interface with GTK+, and in the server side, we use some special functions under the Linux system to complete management operations. Between server and client, socket network communication is through Programmatic.In this paper, the remote management tool is designed by a computer in the network (master server/client) remote control another computer (charged with client/server), the remote is not literally over a long distance, but to control the remote computer through the network, most of the time the remote management is often referred to in the local area network (LAN) remote control, when the user sitting in front of the main control computer, like sitting in front of accusedof client machines, you can shutdown, restart, can view and read a directory of files, and other functions.Keywords system management; server; client目录摘要 (I)Abstract (II)第1章绪论..................................................................................................... - 6 -1.1 课题背景.............................................................................................. - 6 -1.2 国内外发展现状.................................................................................. - 7 -第2章GTK编程............................................................................................. - 9 -2.1 GTK简介............................................................................................... - 9 -2.2 开发环境的搭建................................................................................ - 10 -2.3 常用的GTK构件................................................................................ - 12 -2.3.1 窗口构件..................................................................................... - 12 -2.3.2 组装盒控件和按钮控件............................................................. - 12 -2.3.3 编辑控件..................................................................................... - 13 -2.3.4 滚动条控件................................................................................. - 14 -第3章套接字编程....................................................................................... - 15 -3.1 套接字概述........................................................................................ - 15 -3.2 面向无连接的套接字通讯................................................................ - 15 -第4章多线程编程....................................................................................... - 17 -4.1 线程简介............................................................................................ - 17 -4.2 多线程优点........................................................................................ - 17 -第5章客户端程序设计............................................................................... - 20 -5.1 设计思路............................................................................................ - 20 -5.2 主界面各功能模块的实现................................................................ - 21 -5.3 客户端程序各功能函数介绍............................................................ - 27 -5.3.1 建立socket ................................................................................... - 27 -5.3.2 用于发送信息的函数................................................................. - 27 -5.3.3 用于接受信息的函数................................................................. - 27 -5.3.4 客户端图形界面初始化函数..................................................... - 27 -5.3.5 用于获得输入文本并发送的函数............................................. - 27 -5.3.6 用于显示接收信息的函数......................................................... - 28 -第6章服务器端程序设计........................................................................... - 29 -6.1 设计思路............................................................................................ - 29 -6.2 服务器程序各项功能实现................................................................ - 30 -6.2.1 通信实现..................................................................................... - 30 -6.2.2 字符操作..................................................................................... - 31 -6.2.3 文件读写..................................................................................... - 32 -6.2.4 数据传送..................................................................................... - 33 -结论............................................................................................................... - 35 -致谢............................................................................................................... - 36 -参考文献....................................................................................................... - 37 -附录A 客户端建立socket代码.................................................................... - 38 -附录B 向服务器发送信息函数代码 .......................................................... - 40 -附录C 客户端接收信息函数代码 .............................................................. - 41 -附录D 客户端图形界面初始化函数代码.................................................. - 42 -附录E 客户端获得输入文本并发送的函数代码 ...................................... - 46 -附录F 外文文献翻译................................................................................... - 48 -第1章绪论1.1课题背景Linux是目前应用最广泛前景最好的操作系统之一,它具有极其强大的网络功能和源代码开放的特点。
Linux管理系统平台的设计与实现
Linux管理系统平台的设计与实现胡冠宇;胡静;陈满林【摘要】针对目前Linux服务器的配置使用复杂,命令繁多以及学习掌握困难的问题,设计并实现了一套完整的系统,简化了配置和调试过程.该系统主要采用Shell脚本语言编写,搭配C语言实现.具有友好的界面和简单有效的功能,既可作为管理员管理服务器的助手,也可作为学习Linux的实用工具.另外,本文还介绍了软件具体模块的实现过程,Linux下各种服务配置的基本原理以及在Linux环境下编写Shell的技巧和C开发的相关内容,探讨了Shell的缺陷,并说明了如何利用和C语言的整合以弥补不足.【期刊名称】《哈尔滨理工大学学报》【年(卷),期】2010(015)006【总页数】5页(P54-58)【关键词】Linux;Shell;简化配置;管理服务器【作者】胡冠宇;胡静;陈满林【作者单位】长春工业大学软件职业技术学院,吉林长春130012;长春工业大学软件职业技术学院,吉林长春130012;长春工业大学软件职业技术学院,吉林长春130012【正文语种】中文【中图分类】TP3160 引言Linux操作系统以其丰富的功能和开源的特点,占据了很大一部分服务器市场[1].但其复杂的命令行操作一直以来都是阻碍普通用户熟练掌握并使用的一大障碍,也是在教学过程中学生学习的难点.无论是对主机的日常管理还是搭建服务器,都需要记住庞大的命令以及很繁琐的配置过程.本文旨在利用Shell脚本和C语言开发一个具有友好界面的平台,将Linux的常用功能和复杂操作囊括进来并进行简化,通过简单的选项实现复杂的功能,为管理员提供方便,也为学习并掌握Linux的应用提供良好的环境与平台.1 Linux管理系统平台主要功能1)简化操作,提供友好界面.本系统的主要功能模块有20余个,基本上包括了Linux系统的常用功能.每个模块都将复杂的操作细节和命令隐藏,只提供给用户简单明了的使用界面;2)深入内核,提供更多功能.本系统的内核模块将会带领使用者深入探索Linux的内核,实现许多普通用户接触不到的高级的功能;3)作为教学辅助工具.通过对每个模块的剖析,教师可以利用该系统帮助学生更好地理解Linux的基本操作,网络服务器的配置、shell脚本的作用,以及Linux内核的基本结构.2 Linux管理平台软件的功能模块数据库存放使用者用户名和密码,并实现针对每个用户的具体权限:个别模块只有管理员可以使用.注册模块register()通过语句:以一定格式在数据库里存入新的用户名,在主界面display1()中可以用注册的用户名和密码进行登录[2].权限的具体操作是在上图的每一个模块内部实现的,比如在删除文件的模块中(deletefile),加入如下代码:图1 Linux管理平台软件的功能模块表示如果登陆用户名为admin则可执行下面的删除操作,否则用户的请求会被拒绝.通过主界面可以访问上图的所有功能模块,现简要介绍功能如下:1)createfile模块:在Linux下创建文件和目录;2)deletefile模块:在Linux下删除文件和目录;3)createlink模块:在Linux下创建i节点链接;4)findfile模块:在Linux下查找文件和修改操作权限;5)user-add模块:创建用户和组;6)user-del模块:删除用户和组;7)ip模块:配置网络参数;8)router模块:添加路由信息;9)info模块:查看操作系统基本信息;10)editfile模块:编辑文件;11)config apache模块:配置Apache服务器的参数;12)config ftp模块:配置ftp服务器的参数;13)config dns模块:配置dns服务器的参数;14)config samba模块:配置 samba服务器的参数;15)config dhcp模块:配置dhcp服务器的参数;16)config firewall:配置防火墙策略;17)config ssh:配置ssh服务器的参数;18)内核管理:实现内核管理功能,比如socket抓包、数据加密等;图2 功能模块界面3 重点功能模块的具体实现下面就以几个重要的模块为例,叙述具体实现的过程以及代码.3.1 Config Apache模块模块主要完成对Linux中Apach服务器的控制,开启和关闭、参数配置、修改访问控制、实现高级功能等.实现思路是通过主界面的菜单选项调用脚本命令修改原有配置文件,并保存运行.Apache的配置命令很复杂,用户往往弄不懂具体的含义,并且要在上千行代码中寻找相应的字段,费时又费力,但是在该模块中却可以轻松修改配置.比如代码:表示让用户输入新的timeout值;然后sed命令会找到配置文件/etc/httpd/conf/httpd.conf的第77行(这个值在某些版本中可能会不同,但本文以redhat9为例)的Timeout字段,并将后面的值替换成用户刚刚输入的值.这样就完成了Apache一个参数的控制,Timeout字段的作用是设置服务器响应的超时时间.再比如代码:表示让用户输入服务器的IP和端口号,并用sed命令去修改原配置文件的157行代码中Listen字段后的值.完整的config apache模块功能如图3所示:图3 config apache模块功能一些高级的功能也可以采用类似的方法实现,比如访问控制,见如下代码:表示Apache的访问控制子模块,完成对服务器的安全控制[4].通过选择a或b,用户可以决定是否阻止某个主机访问服务器.阻止(deny)时用户首先输入主机IP [5],这个四字节的值会被传递到访问控制段的$denyhost位置,如下所示:然后通过输出重定向写到配置文件/etc/httpd/conf/httpd.conf中.允许(allow)时用户输入 allowhost,利用 while read line循环不断检查访问控制Directory段,直到找到“Deny from$denyhost”这句话,然后用sed命令替换成Allow from$ allowhost,这样就做到了允许某个主机访问的目的[6].该模块还实现了很多实用的功能.3.2 内核管理模块管理Linux内核有很多方法和作用,比如某个软件对网络协议的支持,操作系统对防火墙的支持,杀毒等,这些功能都是需要内核支持的.管理内核可以使操作系统更加安全有效,也能设计出更多扩展的功能.该模块实现了很多功能[7]:过滤USB接口数据,加密网卡数据流、记录键盘、捕获网络数据并分析等.比如下面的代码:这是一个在Linux下捕获网络数据包的代码,将它嵌入到了本系统中,然后通过简单的界面让用户调用并执行 zhuabao-udp 和 zhuabao-tcp[7]这两个用C语言编写的程序(具体的实现过程在用C语言编写的这两个程序中),从而用户可以选择捕获包的两种常见类型(传输层):UDP和TCP数据包,并进行具体分析,将数据字段的含义和内容展示给使用者.运行后结果如下图4所示[3].图4 通过内核模块分析网络数据4 Linux管理平台的编程技巧与开发该系统主要采用Shell和C语言两种语言编写,Shell在语法结构等方面和C语言基本相似,但是Shell也存在一些弊端,比如不能进行浮点运算,缺少必要的函数库等[8],所以Shell并不是成熟的编写软件的计算机语言.但是,Shell在Linux 系统中也有不可忽视的作用,因为Shell可以和Linux中的命令紧密结合,直接控制操作系统.对于Shell的缺陷可以用 C 语言弥补[9].4.1 Shell脚本的设计在本系统中,Shell主要用于编写操作界面、和Linux操作系统的互动、基本框架等方面的内容.利用Shell脚本时开发本系统的基本过程如下:1)界面与框架的设计:用Shell脚本对想要实现的功能设计界面和模块.2)具体模块的实现.在实现基本操作类的模块时,按照需要设计步骤,将Linux的几类命令(文件操作、用户管理、网络管理及系统管理命令)嵌入到模块中,和Shell结合;在实现网络服务配置模块时,将服务的所有细节在配置文档中的位置和手工填写的段一一嵌入到Shell中.总之,在设计过程中,尽量做到屏蔽复杂性,为用户提供方便.4.2 本系统C语言部分的设计对于复杂的功能,本系统采用C语言实现,比如内核管理模块、底层数据操作:包括加密、过滤网络数据等功能的实现.对于主要的功能:过滤网络数据,本系统有如下的特点:1)实现修改发包功能;2)实现打包安装winpcap;3)在交换环境下采用ARP欺骗方法.5 结语该系统完成并简化了Linux一些常用的配置,可以将该系统看做一个用户视图,通过使用该系统,用户可以方便地配置参数,而不用记忆复杂的命令,起到了屏蔽复杂性的作用.每一个具体的模块实现一种服务或一类命令的功能.用户还可以将它作为教学工具,让学生在编写扩展模块的同时,体会开源的真正意义.另外,该系统还探讨了Linux管理平台的编程技巧与开发以及Shell的缺陷,并在一些复杂功能上采用C语言去实现.参考文献:【相关文献】[1]王波.Linux网络技术[M].北京:机械工业出版社,2007.[2]IT同路人.Linux标准学习教程[M].北京:人民邮电出版社,2008.[3]宋劲杉.Linux C编程一站式学习[M].北京:电子工业出版社,2009.[4]ARON Hsiao.Linux系统安全基础[M].北京:人民邮电出版社,2002.[5]MICHAEL Rash.Linux防火墙[M].陈健,译.北京:人民邮电出版社,2009.[6]何海宾.基于Linux包过滤的防火墙技术及应用[J].电子科技大学学报,2004,33(1):75 -78.[7]陈莉君.Linux操作系统分析[M].北京:人民邮电出版社,2000.[8]PhilCornes.Linux从入门到精通[M].北京:电子工业出版社,1998.[9]邱仲潘.Linux网络文件系统管理指南[M].北京:电子工业出版社,2000.。
基于安卓平台的密码管理系统的设计与实现
目录摘要 (I)Abstract (II)第一章引言 (1)1.1国内外手机系统现状 (1)1.2国内外手机应用现状 (2)1.3移动设备和应用发展趋势 (3)1.4主要研究内容 (4)第二章安卓的相关介绍及分析 (5)2.1安卓系统特性 (5)2.2安卓系统架构 (5)2.3安卓优势介绍 (8)第三章安卓开发环境的搭建 (9)3.1各个组件的含义和功能的简单介绍 (9)3.2安装与配置 (10)第四章基于安卓平台的密码管理系统的设计与实现 (14)4.1研究目标 (14)4.2需求分析 (14)4.3程序功能设计 (14)4.3 UI界面设计 (15)4.4功能模块设计 (17)4.5程序数据库设计和数据加密 (17)4.6程序处理流程 (17)4.7文件结构与用途 (18)4.8程序主要代码 (20)第五章总结与展望 (28)参考文献 (29)致谢 (30)附录 (31)基于安卓平台的密码管理系统的设计与实现摘要:随着云计算的发展,越来越多的网络服务需要登录账户用以用户识别、大数据应用等,而用户对于各类用户名与密码的记忆与使用,却是一大不便。
随着移动设备使用时长的不断提高,智能手机必将成为用户获取信息和服务的主要途径。
因此,基于安卓平台的密码管理软件必将有很大的发展空间。
本文对目前的用户应用平台进行分析与比较,包括windows、Mac OSX、Symbian、windows phone、IOS、Android等常见操作平台。
重点研究了Android的系统架构及组件模型,接着解析了Android中的重要API和应用构成,以及Android的界面布局和数据存储。
在对Android进行详细解析之后,基于安卓平台开发一款密码管理软件。
软件主要包括四个方面的功能,第一个功能就是对进入程序时密码的设置与校验,第二个方面是用户密码信息的存储与查询,第三个方面就是针对用户信息的修改及导出,第四个方面就是诸如修改密码等菜单键功能。