期末选题3已做-app安全性分析实验

合集下载

app安全测试

app安全测试

app安全测试App安全测试。

App安全测试是指对移动应用程序进行安全性评估和漏洞检测的过程,旨在发现并修复潜在的安全风险,保护用户的隐私和数据安全。

在移动应用快速发展的今天,App安全测试显得尤为重要,下面我们将介绍App安全测试的相关内容。

首先,App安全测试的重要性不言而喻。

随着移动应用的普及和使用,用户的隐私和个人信息面临着越来越多的安全威胁。

黑客可能利用应用程序中的漏洞或弱点来窃取用户的个人信息,这对用户的财产和隐私构成了严重的威胁。

因此,App 安全测试是保障用户权益和应用程序可靠性的重要手段。

其次,App安全测试的内容主要包括数据传输安全、身份认证安全、数据存储安全、代码安全等方面。

在数据传输安全方面,我们需要检测应用程序在数据传输过程中是否采用了加密机制,以及是否存在中间人攻击的风险。

身份认证安全则需要检查应用程序的用户登录、注册等功能是否存在漏洞,以及密码是否存储在安全的方式。

数据存储安全方面需要检测应用程序在本地存储和云端存储中是否采用了加密措施,以及是否存在数据泄露的风险。

代码安全则需要对应用程序的代码进行静态分析和动态测试,以发现潜在的安全漏洞和风险。

再者,App安全测试的方法主要包括静态分析、动态测试、黑盒测试、白盒测试等。

静态分析主要是通过审查源代码或字节码来发现潜在的安全问题,如不安全的函数调用、敏感信息硬编码等。

动态测试则是通过模拟实际运行环境,对应用程序进行安全性测试,以发现运行时的安全问题。

黑盒测试是在不了解应用程序内部结构的情况下进行测试,以模拟攻击者的行为,发现应用程序的安全漏洞。

白盒测试则是在了解应用程序内部结构的情况下进行测试,以发现代码层面的安全问题。

最后,App安全测试的目的是为了保障用户的隐私和数据安全,提升应用程序的可信度和稳定性。

通过对应用程序进行全面的安全测试,可以及时发现并修复潜在的安全漏洞和风险,保护用户的权益和数据安全。

同时,也可以提升应用程序的品牌形象和市场竞争力,赢得用户的信任和支持。

app安全评估报告

app安全评估报告

app安全评估报告
报告标题: APP安全评估报告
报告编写日期: [填写日期]
报告编写人: [填写评估人员姓名]
1. 评估背景
- 评估目的: [填写评估的具体目的,例如评估APP的安全性能,发现可能存在的漏洞和风险等]
- 评估范围: [填写评估的APP名称或版本号,以及相关技术
或功能的涵盖范围]
2. 评估过程
- 评估方法: [填写评估所采用的方法和工具,例如静态分析、动态测试、代码审查等]
- 评估环境: [填写评估所使用的测试环境,例如操作系统、
硬件设备等]
- 评估步骤: [按照实际评估过程,给出评估的主要步骤和流程]
3. 评估结果
- 漏洞和风险发现: [列举评估过程中发现的主要漏洞和风险,包括但不限于:代码注入、信息泄露、权限控制不足、不安全的数据存储等]
- 安全性能分析: [对APP的安全性能进行分析,评估其防护
机制和反欺诈能力]
- 建议和改进措施: [根据评估结果,提出改进和加固措施的建议,以提高APP的安全性能]
4. 评估结论
- 安全性评级: [根据漏洞和风险的严重程度,对APP的整体安全性进行评级,例如:高风险、中风险、低风险]
- 总结: [对评估的整体结果进行总结,包括APP的安全优势和不足]
5. 附件
- 技术资料: [提供评估过程中使用的工具、脚本、代码等相关技术资料的附件]
- 报告附件: [将评估过程中生成的报告和报告数据的附件提供]
请注意,该报告会根据实际评估情况进行适当调整和修改,以符合您的具体需求和实际情况。

app安全测试

app安全测试

app安全测试App安全测试。

App安全测试是指对移动应用程序进行全面的安全性评估和测试,以确保其在使用过程中不会出现安全漏洞和风险。

随着移动应用的普及和使用量的增加,App 安全测试显得尤为重要。

本文将介绍App安全测试的重要性、常见的测试方法以及测试过程中需要注意的事项。

首先,App安全测试的重要性不言而喻。

随着移动应用的不断发展,用户越来越依赖移动应用来进行日常生活和工作。

然而,如果这些移动应用存在安全漏洞,将会给用户带来严重的隐私泄露、数据丢失甚至财产损失。

因此,对移动应用进行全面的安全测试,可以有效地保护用户的隐私和财产安全,增强用户对移动应用的信任感。

其次,常见的App安全测试方法包括静态分析、动态分析和黑盒测试。

静态分析是通过对应用程序的源代码进行分析,发现潜在的安全漏洞和风险。

动态分析是在应用程序运行时对其进行测试,模拟攻击者的行为,发现可能存在的安全问题。

黑盒测试是在不了解应用程序内部结构的情况下进行测试,以模拟用户的真实使用场景,发现潜在的安全隐患。

这些测试方法可以相互结合,全面地评估移动应用的安全性。

在进行App安全测试时,需要注意以下事项。

首先,要充分了解移动应用的功能和业务逻辑,以便有针对性地进行测试。

其次,要关注移动应用的数据传输和存储安全,防止用户数据被窃取或篡改。

同时,还需要测试应用程序的权限管理和认证机制,确保用户身份和权限的安全。

此外,还需要关注移动应用的代码安全性,避免因为代码漏洞导致的安全问题。

总之,App安全测试是保障移动应用安全的重要手段,通过全面的安全测试可以发现潜在的安全隐患,保护用户的隐私和财产安全。

常见的测试方法包括静态分析、动态分析和黑盒测试,这些方法可以相互结合,全面地评估移动应用的安全性。

在进行测试时,需要充分了解应用程序的功能和业务逻辑,关注数据传输和存储安全,测试权限管理和认证机制,以及关注代码安全性。

只有通过全面的测试,才能确保移动应用的安全性,增强用户对移动应用的信任感。

移动应用安全测试报告

移动应用安全测试报告

移动应用安全测试报告1. 测试背景本次移动应用安全测试旨在评估正在开发的移动应用程序的安全性。

通过测试,我们希望发现并修复潜在的安全漏洞,以确保移动应用的数据和用户隐私的安全。

2. 测试方法和范围2.1 测试方法我们采用了以下测试方法来评估移动应用的安全性:- 安全代码审查:我们对应用的源代码进行了全面的审查,以发现可能存在的安全漏洞。

- 渗透测试:我们利用各种渗透测试技术和工具来模拟攻击者的攻击,以验证应用对不同类型的攻击的抵御能力。

- 静态分析:我们使用静态分析工具对应用进行扫描,以发现潜在的漏洞和安全问题。

2.2 测试范围本次测试主要针对移动应用的后端服务和前端用户界面进行评估。

测试中包括但不限于以下方面:- 用户身份验证:测试应用的用户身份验证机制的安全性,包括密码强度、会话管理等。

- 数据传输安全:测试应用的数据传输过程中是否采用了安全的协议和加密算法。

- 基本安全控制:测试应用是否实施了基本的安全控制,如访问控制、鉴权管理等。

- 安全配置:测试应用的安全配置是否符合最佳实践,如避免使用默认密码、敏感信息的存储等。

- 异常处理:测试应用在异常情况下的处理机制,是否能够防止信息泄露或应用崩溃等安全问题。

3. 测试结果根据我们的测试,以下是我们所发现的一些安全问题和建议的修复措施:1. 用户身份验证:- 问题1:应用采用了弱密码策略,允许使用简单的密码进行注册。

- 建议1:应该强制要求用户使用复杂的密码,并在注册过程中提供密码强度指导。

2. 数据传输安全:- 问题2:应用在数据传输过程中未使用加密协议,导致数据可能被窃听或篡改。

- 建议2:应在应用的数据传输过程中采用SSL/TLS等安全协议,确保数据的机密性和完整性。

3. 基本安全控制:- 问题3:应用在访问控制方面存在漏洞,未对敏感功能和数据进行适当的权限控制。

- 建议3:应实施强化的访问控制机制,根据用户角色和权限对敏感功能和数据进行限制访问。

智能手机应用程序安全性分析和检测

智能手机应用程序安全性分析和检测

智能手机应用程序安全性分析和检测第一章:引言随着智能手机的普及和应用程序的不断更新,人们更加倾向于在移动设备上存储和访问各种类型的数据,从而使得智能手机应用程序对个人和企业等方面的生产生活越来越重要。

然而,应用程序也面临着许多安全威胁。

未授权的应用程序访问用户数据、恶意应用程序窃取隐私信息、应用程序中的漏洞导致的信息泄露等都成为了挑战。

本文将从智能手机应用程序的安全性入手,分析应用程序的安全性所承担的风险,提出如何从计算机安全和网络安全角度提高应用程序的安全性,并给出一些针对应用程序安全性检测的案例分析。

第二章:智能手机应用程序安全性2.1 常见的安全威胁提高应用程序的安全性,首先要了解常见的安全威胁。

智能手机应用程序的安全威胁包括未授权的应用程序访问、恶意应用程序窃取隐私信息、应用程序中的漏洞、网络安全骗局等等。

这些威胁既能对用户的隐私造成损害,也能泄露敏感信息并给企业带来损失。

2.2 安全措施基于以上威胁,智能手机应用程序的安全性除了用户自身的安全意识外还需要采取一些安全措施。

安全措施包括:(1)下载可靠的应用程序用户在下载应用程序时,需要选择正规、可靠的应用商店,下载正版应用程序,不要从第三方或盗版软件下载网站上下载应用程序。

(2)更新应用程序应用程序更新有助于修复错误和漏洞,提高应用程序的安全性。

因此,用户需要及时更新应用程序。

应用程序开发者也应该及时修复已知漏洞。

(3)安装安全软件安全软件可以检测并删除恶意软件,并在用户点击有风险的链接或下载有风险的文件时提供警告信息。

(4)加强密码保护在使用智能手机上的应用程序时,用户需要设置设备密码并定期更换密码。

此外,密码还需要保证足够的复杂程度,以免被猜测或破解。

2.3 应用程序的开发安全性为了保障应用程序的开发安全性,需要从以下几个方面入手:(1)采用可靠的编程语言、开发环境和开发框架安全的编程语言和开发环境及框架可以降低应用程序开发中引入的漏洞数量,从而提高应用程序的安全性。

app安全测试3篇

app安全测试3篇

app安全测试第一篇:什么是app安全测试?随着移动互联网的蓬勃发展,手机app已经成为人们生活中不可或缺的一部分。

不管是社交、购物、游戏、学习还是支付,我们都可以通过app轻松完成。

然而,正是由于手机app的使用频繁和便捷,导致了用户的隐私安全问题和信息泄露问题的日益严重。

为保障用户的安全,同时提高app开发商的信誉度,app安全测试变得越来越重要。

app安全测试是一种通过模拟黑客攻击的方式检测app安全漏洞的测试方式。

通过该测试,可以发现并修复app中存在的漏洞,提升app的安全性。

在进行app安全测试时,需要关注以下几个方面:1. 用户隐私用户的隐私是要特别保护的。

在测试过程中,务必要确保用户信息得到了完全保护。

2. 系统架构系统架构也是需要测试的重点之一。

测试人员应当确保开发人员已经充分考虑了系统架构的安全性,以免后期出现不必要的麻烦。

3. 数据安全数据安全也是一个重要的测试方面。

测试人员需对app所用的存储数据和传输数据进行检测,确保其完整性和安全性。

4. 稳定性稳定性也是测试考虑的重点之一。

在测试过程中,需要检测app是否存在崩溃等问题,以保证app可以正常运行。

总之,app安全测试是保障用户信息安全的必要措施。

在测试过程中,测试人员需要细致地考虑每一个方面,确保app 的安全性和可靠性,让用户可以放心地使用app。

第二篇:如何进行app安全测试?app安全测试是一项复杂的过程,需要细致的测试方案和专业的测试人员。

下面是一些可供参考的测试步骤:1. 需求分析在进行app安全测试之前,需要对app的需求进行充分分析,包括测试环境和测试工具的选择、测试人员的分配、测试用例的编写等等。

只有对需求进行充分分析,才能保证测试的高效、准确和全面。

2. 软件配置和设置在测试之前,应当确保测试人员已经配置好了所需软件和测试环境,并进行相应的设置。

这包括系统环境,测试工具和应用程序的配置,无线网络等。

app安全检测

app安全检测App安全检测。

随着智能手机的普及和移动应用的快速发展,人们对App安全性的关注度也越来越高。

App安全检测成为了保障用户隐私和数据安全的重要手段。

本文将介绍App安全检测的重要性、常见的安全隐患以及如何进行有效的安全检测。

首先,App安全检测的重要性不言而喻。

随着移动应用的功能越来越丰富,用户的个人隐私和敏感数据也在App中得到了存储和使用。

一旦App存在安全漏洞,用户的隐私数据可能会被泄露,甚至导致财产损失。

因此,对App进行全面的安全检测,发现并修复潜在的安全隐患,对保障用户的隐私和数据安全至关重要。

其次,常见的App安全隐患包括但不限于,数据泄露、恶意代码注入、权限滥用、不安全的网络传输、不安全的数据存储等。

数据泄露是最常见的安全问题之一,一些App可能会在未经用户同意的情况下收集用户的个人信息,并将这些信息传输到远程服务器。

恶意代码注入则可能导致App被黑客攻击,用户的个人信息和设备数据遭到窃取。

权限滥用是指App获取了过多的权限,可能会导致用户信息泄露或设备受到攻击。

不安全的网络传输和数据存储会使用户的数据容易被窃取或篡改。

因此,针对这些安全隐患进行全面的安全检测至关重要。

最后,如何进行有效的App安全检测呢?首先,开发人员应该在App开发的早期阶段就考虑安全性,采用安全的编码规范和最佳实践。

其次,利用专业的安全测试工具对App进行全面的安全测试,包括静态分析和动态分析。

静态分析可以发现源代码中的潜在安全问题,而动态分析可以模拟App在真实环境中的运行情况,发现潜在的漏洞和风险。

此外,进行权限审查、数据加密、安全传输等措施也是保障App安全的重要手段。

综上所述,App安全检测对于保障用户隐私和数据安全至关重要。

开发人员和安全测试人员应该充分重视App安全,采取有效的安全措施,确保App的安全性。

只有在保障了App的安全性之后,用户才能放心地使用移动应用,享受便利的同时也不必担心隐私泄露和数据安全问题。

移动应用安全测试报告

移动应用安全测试报告1. 概述移动应用安全测试是一项关于移动应用程序安全性的评估,旨在识别和解决应用程序中存在的潜在安全漏洞。

本报告旨在总结对某移动应用进行的安全测试,并提供相关的测试结果和建议。

2. 应用概况被测试的移动应用为XXX应用,它是一款用于XXX目的的移动应用程序。

该应用提供了XXX功能,并且在XXX平台上可用。

3. 测试方法为了评估XXX应用的安全性,我们采用了系统化的测试方法。

测试过程基于以下几个方面:3.1 安全漏洞识别:通过对应用进行静态和动态分析,我们识别出了可能存在的安全漏洞风险。

3.2 网络通信安全:对应用的网络通信加密机制进行了测试,以确保用户数据在传输过程中的安全性。

3.3 权限管理:评估应用程序在请求用户权限方面的行为,以验证权限管理的合理性和安全性。

3.4 存储安全:通过对应用的数据存储机制进行测试,以确保用户的敏感数据得到适当的保护。

3.5 输入验证与过滤:测试应用程序对用户输入的验证和过滤机制,以防止针对应用的各种输入攻击。

4. 测试结果在对XXX应用进行全面测试后,我们发现了如下安全问题:4.1 不安全的数据传输:应用使用了不安全的通信协议,导致传输的用户数据容易被窃取或篡改。

4.2 弱密码策略:应用在用户注册和登录过程中未提供足够强度的密码验证机制,易受到密码破解攻击。

4.3 不当的权限请求:应用在请求用户权限时存在过度请求或者未给予充分解释的情况,可能对用户的隐私构成威胁。

4.4 未验证的用户输入:应用未对用户输入进行充分验证和过滤处理,存在被恶意输入利用的风险。

5. 建议和改进建议基于发现的安全问题,我们向开发团队提出以下改进建议:5.1 采用安全的通信协议:建议应用使用具有加密功能的安全通信协议,如HTTPS,以保护用户数据的传输安全。

5.2 强化密码策略:建议应用在用户注册和登录过程中实施密码强度策略,并采用哈希算法存储用户密码以增加破解难度。

5.3 明确权限请求:建议应用在向用户请求权限时提供明确解释,并避免过度请求用户权限,以保护用户隐私。

移动APP安全测试要点

移动APP安全测试要点1.权限管理:测试应用程序是否正确管理和使用权限。

包括敏感权限的请求、权限请求的授权方式、权限是否真正需要以及权限滥用的防范等。

2.数据存储安全:测试应用程序是否正确地处理和保护用户数据。

包括加密存储、数据清除、文件权限、数据库访问等。

3. 用户认证和授权:测试应用程序的用户认证和授权机制是否安全可靠。

包括密码和PIN码的安全性、双因素认证、OAuth等。

4.网络通信安全:测试应用程序在网络通信过程中是否采取了足够的安全措施。

包括数据传输的加密、服务器认证、安全协议的使用等。

5.安全配置管理:测试应用程序的安全配置是否正确且安全。

包括是否启用调试模式、是否禁用不安全的配置选项等。

6.恶意代码和漏洞检测:测试应用程序是否容易受到恶意代码和漏洞的攻击。

包括对应用程序的静态和动态分析,以及漏洞扫描、代码审计等。

7.应用程序容器安全:测试应用程序在容器环境中的安全性。

包括与其他应用程序的隔离、容器本身的安全控制等。

8.反调试和反逆向工程保护:测试应用程序是否具备反调试和反逆向工程的保护机制,以防止被黑客逆向分析或调试。

9.安全更新和版本管理:测试应用程序的安全更新和版本管理机制是否可靠。

包括漏洞修复的及时性、版本管理的安全性等。

10.安全日志和监控:测试应用程序是否能够有效地记录安全事件和异常,并进行监控和报警。

11.社交工程和钓鱼攻击:测试应用程序是否容易受到社交工程和钓鱼攻击。

包括对用户信息的保护、恶意链接的防范等。

12.加密和解密算法:测试应用程序是否正确使用加密和解密算法,以保护敏感数据的安全性。

13.安全认证和控制:测试应用程序是否具备可靠的安全认证和控制机制,以防止非授权访问和恶意行为。

14.安全漏洞修复和漏洞管理:测试应用程序的漏洞修复机制是否高效可靠,包括漏洞的修复过程、漏洞管理系统的使用等。

15.安全培训和意识:测试应用程序开发人员和用户的安全培训和安全意识是否到位。

移动APP安全测试方法与工具

移动APP安全测试方法与工具移动应用程序(APP)的广泛应用已经成为我们日常生活的一部分。

随着移动设备的普及,APP的安全性逐渐受到重视。

由于APP中可能存在各种潜在的安全漏洞,因此进行APP安全测试是至关重要的。

本文将介绍一些常用的移动APP安全测试方法与工具,以帮助开发者和测试人员确保APP的安全性。

一、静态分析静态分析是一种通过检查APP的源代码或二进制文件来发现潜在安全问题的方法。

这种方法可以帮助测试人员在开发过程中就发现问题,并及时进行修复。

常用的静态分析工具包括但不限于:1. PMD:PMD是一种静态代码分析工具,支持多种编程语言。

它能够帮助开发人员发现代码中的常见问题,如空指针异常、未使用的变量等。

2. FindBugs:FindBugs是一款针对Java代码的静态分析工具,它可以发现各种常见的编程错误,如内存泄漏、空指针引用等。

3. SpotBugs:SpotBugs是FindBugs的一种继任者,它修复了一些FindBugs中存在的问题,并具有更好的性能和可靠性。

二、动态分析动态分析是一种通过运行APP并对其进行监控来发现潜在的安全问题的方法。

这种方法可以模拟真实的运行环境,从而更好地发现APP中的漏洞。

常用的动态分析工具包括但不限于:1. Owasp ZAP:Owasp ZAP是一款用于Web应用程序的渗透测试工具,可以检测各种Web应用程序中的安全漏洞。

它可以扫描APP的请求和响应,并发现潜在的安全问题。

2. Burp Suite:Burp Suite是一款功能强大的Web渗透测试工具,它可以帮助测试人员发现APP中的各种漏洞,如注入攻击、跨站脚本等。

三、数据加密和身份验证随着移动设备的普及,APP中包含的用户敏感信息越来越多。

因此,数据加密和身份验证成为了保护用户隐私的重要手段。

以下是一些常用的数据加密和身份验证方法:1. SSL/TLS:通过应用SSL/TLS协议对数据进行加密,可以防止敏感信息在传输过程中被拦截或篡改。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.实验报告如有雷同,雷同各方当次实验成绩均以0分计。

当次小组成员成绩只计学号、姓名登录在下表中的。

警示3.在规定时间内未上交实验报告的,不得以其他方式补交,当次成绩按0分计。

4.实验报告文件以PDF格式提交。

院系班级组长学号学生实验分工秦睿哲实验原理理解,实验App编写,实验报告写作。

期末选题3 app安全性分析实验【实验题目】自行编写一个app,该app具有用户/口令登录功能,并可供使用者注册。

注册时口令只作长度限制(如8位长度),但强度暂不作要求。

用户名/口令保存在手机上,口令保存时作加密处理(自行选择加密算法)。

为简单起见,该app功能比较简单,界面上有一链接,链接到“本科教务系统”上,可点击退出。

通过在手机上运行此app,注册若干个账号,口令设置时有强口令,也有弱口令,然后分析其安全性。

【问题分析】实验需要解决的问题有:1. 用户隐私•检查是否在本地保存用户密码,无论加密与否•检查敏感的隐私信息,如聊天记录、关系链、银行账号等是否进行加密•检查是否将系统文件、配置文件明文保存在外部设备上•部分需要存储到外部设备的信息,需要每次使用前都判断信息是否被篡改2. 文件权限•检查App所在的目录,其权限必须为不允许其他组成员读写3. 网络通讯•检查敏感信息在网络传输中是否做了加密处理,重要数据要采用TLS或者SSL4. 运行时解释保护•对于嵌有解释器的软件,检查是否存在XSS、SQL注入漏洞•使用webiew的App,检查是否存在URL欺骗漏洞5. Android组件权限保护•禁止App内部组件被任意第三方程序调用。

•若需要供外部调用的组件,应检查对调用者是否做了签名限制【实验内容】1)腾讯有一个自动化测试app的工具WeTest,上传app就可以直接对app进行安全测试,可以扫描出一部分安全问题。

将设计调试好的app到该平台进行测试。

2)分析测试结果,重新将源代码加固,如强、弱口令安全性上的区别。

3)重新到WeTest平台上测试app。

4)将app安装到手机上使用,测试“问题分析”中所列的问题。

【实验要求】(1)运用综合知识完成实验(抓包、截图、协议分析、命令等等),注意叙述的条理性。

编写思路:本次实验要求自行编写app,可以有注册功能并且对注册的信息进行加密处理。

由于本次需要处理的信息较为简单(账号和密码),因此可以使用比较简单的键值对(SharedPerference)来存储账号和密码信息。

本次app设计思路为首先让用户自行设计密码,在用户确认的密码和首次输入的密码相匹配之后,使用加密算法对密码进行加密处理,并且同时对用户账号(根据注册先后进行编号)进行加密存储入SharedPerference中。

之后用户输入的密码将会在加密处理后和数据库中加密后密码进行匹配,当匹配成功后,界面成功跳转至中山大学本科教务系统官方网页。

App设计基本流程框架使用软件:Android Studio (API:27 SDK Platform:26.0.0)测试移动端:小米mix2s为了达成app的安全性和保密性,SharedPerference属性设定为PRIVATE模式,初始界面设定为两种(如果是第一次使用app,将会进入注册界面。

当已经注册之后,便会进入登陆界面,无需再进行注册)。

针对界面中的按钮进行设置说明:OK按钮表示将信息进行输入匹配,而CLEAR按钮表示将输入的信息全部删除,在Android Studio中编写如下:关于OK按钮的编写关于CLEAR按钮的编写若用户第二次输入的密码和第一次输入的密码匹配成功,则密码被记为有效,对密码进行加密处理,加密算法使用MD5加密方法:知识原理:MD5的全称是Message-Digest Algorithm5 为信息摘要算法的一种,通过将大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式,使用的基础是获得一个随机长度的信息并产生一个128位的信息摘要。

虽然这些算法的结构或多或少有些相似,但MD5的设计与前代完全不同,因为MD5面向的是32bit或64bit的电脑。

建立在更高强度的运算能力上,编码也会因此变得更为复杂。

MD5的原理为首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数,填充方法是附一个1在消息之后,后接所要求的多个0,然后在其后附上64位的消息长度。

这两步的作用是使消息长度恰好是512的倍数,同时确保不同的消息在填充后不相同。

在初始化连接变量后进行算法的主循环,循环次数是消息中512位消息分组的数目,主循环进行四轮,分别对四个连接变量进行操作,最后将结果相加并向右环移一个不定的位数,作为加密后结果。

MD5加密算法数学推导首先编写MD5加密函数:之后将匹配成功密码进行以上函数加密,并存入SharedPerference。

由于作为工程作业,设计了一个有效即时观察SharedPerferences中存储的加密密码端口,在密码匹配成功后将作为Toast提示信息输出加密信息。

当用户登陆成功后,界面跳转向中山大学本科教务系统,网站的容载通过AndroidStudio中包含的webview方法来达成:定义webview并设置其基本性质对Leave_Button进行设置,设计为当点击按钮将退出整个程序:至此主要代码编写部分叙述完毕。

软件检测:在和同学分析讨论后,我们使用了百度提供的自动化app测试工具,并对安全问题进行了深度扫描,初始扫描结果如下:根据上述要求在代码中重新加入release中的签名部分,app初始设定中不可修改部分并将webview 中多余端口删除,进行了之后的多次测试。

最终得出结果:对代码进行的修改部分问题分析:根据Android Studio自带的ADB模拟器和Android Device Monitor,我通过使用Power Shell中对模拟器进行adb shell,相当于对手机进行root处理成功解除权限,可以看到手机中的信息,在data/data/com.Roger.application2/shar_pref中:通过以上在外部设备找到的信息可以看出:1)信息的确在本地被保存了。

2)信息经过了加密。

3)系统文件和配置文件都被明文的保存在了外部文件上,包括授权签名。

4)在多次打开app即登陆后再次进入后台数据库,发现数据没有被改动,较为安全。

根据检验报告已经得出此问题,首先通过在Android Studio中Manifest中对只读性进行了修正:并且对于核心数据库SharedPerference的性质描述也使用了PRIVATE模式:之前在未进行adb shell操作时,Android Device Monitor 给出的关于data权限如图:可以看出对于执行者本身拥有着读写权限,但是对于其他用户只有执行权限(x),没有读写权限(rw)符合要求,其他组成员没有读写权力。

通过以上SharedPerference数据内容可以看出:对于重要的密码Encrypt已经进行了加密处理,由于本app使用建立在密码加密在本地执行,没有使用到网络层和传输层,因此以web作为主要平台进行工作的TLS和SSL不适合作为本次加密工具,我们通过解释并使用上述的MD5加密方式对用户输入的密码进行了加密处理,效果良好。

强弱口令安全性分析:在本次实验中,对于密码的设置,采取了复杂程度渐进的方式进行设置,由单一成分,到单一成分复杂,到多成分,到多成分复杂。

并对加密结果进行了分析,得出结论如下:在难度逐渐提升中,加密结果的位数会逐渐提升,可以看出在最简单的密码时,加密位数最少,变化最低易于破解,在逐渐提升密码复杂度后加密结果位数也变得越来越长。

通过对加密结果的分析,我们组给出的结论是:加密的优先级是根据密码位数、数字、字母、符号的顺序进行加密。

密码位数多的不论复杂与否加密长度一定最长,同长度密码中数字比例最大的加密长度较长,字母其次,符号最短。

MD5根据以上推理出的优先级的关系进行加密运算,保护了个人隐私信息的安全。

在本次实验中,我们在自动检测软件中发现了对应的问题,并在Manifest中给了解决方法,即添加android:allowBackup=”false”和a ndroid:debuggable=”false”两句性质说明,让程序不可修改且只读,防止了注入漏洞,最后一次安全性检验也得以通过。

在我们使用webview时,也出现了对应URL 欺骗漏洞的报警,我们根据提示把webview中多余的端口全部删除,并去除了默认的URL更改授权,让恶意URL不能通过URL欺骗用户更改基本信息,消除了漏洞。

在本次实验中,在webview中进行了对浏览器授权的解除,即使用webview时进行点击不会跳转到浏览器中。

并且本次实验使用release模式进行APK的生成,对本程序自身进行了签名限制,并在对应端口中设定为所有需要调用者都必须进行签名的查看才能使用的限制:至此实验内容部分全部说明完毕。

本次实验在于通过以创建app为基础探索用户账号安全性及改善。

核心在于匹配密码后进行加密处置并存入数据库。

由于本次仅仅对帐号密码进行处理,数据处理量级比较小,我使用了SharedPerference 进行数据的保存。

关于显示本科教务系统网页,通过一段时间的自学webview也可以满足实验的要求。

在本次实验的过程中,我们对当前许多的加密算法历史和推演过程进行了了解,对比较热门新式的加密算法进行了自学。

在大概理解其数学含义或逻辑编译原理后进行代码的编写。

能够满足实验的需求。

在本次实验中使用到了之前没有使用过的,通过腾讯或百度自动化进行app安全性的考量,这次进行了尝试,按照测试结果进行多次迭代改正最后达到了一个比较好的结果,过程非常的有趣,体会了当前科技的先进。

并在本次实验中,出现了许多之前通过Android Studio编写程序时没有考虑或忽略的问题,比如签名授权,防止其他人对文件进行篡改,私人化数据结构等,这次这些问题才是重中之重,因此在针对性的进行了编写后,之前苦恼许久的华为手机未授权软件不许安装的窘况竟也消失了。

这也让我们感受到了作为一个程序,一个app,安全性永远在功能性之上,只有满足安全性的考虑。

我们才有基础,才有空间进行功能性的考虑。

本次实验按照要求进行讨论学习,针对所给出的实验内同和实验分析进行了逐条的理解实现,算是一次比较充实的实验精力,学习到了许多知识。

了解了安全性的绝对重要性,并在之后的学习中加大对程序安全性的考虑,这或许也是这门课给我最大的,恒久的教导。

(3)参考文献。

[1]利用adb修改设备中SharedPerference配置文件:https:///tobacco5648/article/details/7555743---liuwons[2]关于Fragment设置与aboutOn Error falsehttps:///wangshihui512/article/details/51198268---王世晖[3]android 如何创建配置文件和读配置文件https:///louyxlovess/article/details/50581216---louyxlovess[4] Android WebView的一些使用总结和遇到过的坑https:///u013700502/article/details/69388727---小马快跑[5] 快速集成Android最常用加密算法https:///u013718120/article/details/56486408---Songlcy[6] SharedPreferences存储和读取数据https:///ancywawa/article/details/48267909---Ancy贝贝[7] 关于跨程序读取程序的SharedPreferenceshttps:///tianshi4851/article/details/15814105---tianshi4851[8] Android WebView 的基本使用https:///lowprofile_coding/article/details/77928614---安辉就是我【交实验报告】上传实验报告:ftp://222.200.180.109/截止日期(不迟于):第18周之前完成上传小组实验报告。

相关文档
最新文档