数据安全
文章平均质量分 63
LVXIANGAN
这个作者很懒,什么都没留下…
展开
-
Android安全之intent隐式意图攻击
该漏洞涉及到app所使用的intent和intent filter。 intent是一个可用于从一个app组件请求动作或处理事件的“消息对象”。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。 intent主要包括隐式意图和显式意...转载 2019-11-10 11:37:11 · 2107 阅读 · 0 评论 -
OTP原理及实现
公司项目需求:为局域网以外的网站后台用户开发动态密保的功能。在当前的现有设备下,最方便实现的就两种:1、通过短信获取动态密码登录;2、通过手机令牌来实现。OTP 原理: 相关的博文:http://blog.csdn.net/goldboar/article/details/7065948 百度百科: http://baike.baidu.com/view/1505735.h转载 2017-06-27 11:20:40 · 23898 阅读 · 1 评论 -
Android代码完整性校验
Android签名机制 为了说明APK签名比对对软件安全的有效性,我们有必要了解一下Android APK的签名机制。为了更易于大家理解,我们从Auto-Sign工具的一条批处理命令说起。 我们了解到,要签名一个没有签名过的APK,可以使用一个叫作Auto-sign的工具。Auto-sign工具实际运行的是一个叫做Sign.bat的批处理命令。用文本编辑器打开这个批处理文件,我原创 2013-10-29 17:51:59 · 9297 阅读 · 0 评论 -
Http之报文压缩
首先认识一下GZIP压缩GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的转载 2017-08-25 11:27:21 · 3319 阅读 · 1 评论 -
3DES对称算法之双倍长密钥算法和三倍长密钥算法
一般我们用的3Des算法,大部分都是指双倍长密钥算法,最近在阅读某知名公司技术文档时发现,3DES算法还有一种三倍长密钥算法。算法工具也侧面印证了这个说法:那么这两个算法有什么区别呢?3DES,分为2种,一个是双倍长3DES,一个是三倍长3DES。如果是双倍长3DES,密钥为16字节长,按左右,分别LK(密钥的左边8字节),RK(密钥的右边8字节)。原创 2017-05-19 16:18:37 · 13406 阅读 · 7 评论 -
App之OAuth授权登录、access token、refresh token
OAuth授权是什么? 先说一下常见的应用场景来理解吧,情景1:我们访问一个购物应用/网站,把商品加入购物车进行结算时,会被要求先注册才能使用。但我不想在注册页面填那么多东西又想购买怎么办?那就涉及到授权登录了。我在WX里面允许这个App读取我的基本信息,让它为我自动创建一个账号,这样就可以继续购物流程了。在这授权过程中,实际是WX向App提供了一个令牌(AccessToken),Ap...原创 2017-09-18 16:29:17 · 8280 阅读 · 0 评论 -
移动开发之安全学习
对于安卓开发有一段时间的人来说,知道安卓4.4以前谷歌的webview存在安全漏洞,网站可以通过js注入就可以随便拿到客户端的重要信息,甚至轻而易举的调用本地代码进行流氓行为,谷歌后来发现有此漏洞后,增加了防御措施,如果要是js调用本地代码,开发者必须在代码申明JavascriptInterface, 在4.0之前我们要使得webView加载js只需如下代码: mWebView.转载 2017-10-16 16:55:38 · 832 阅读 · 0 评论 -
iOS之热更新/热修复JSPatch 补丁更新管理
总结:1、在传输过程中对JS文件进行了RSA签名加密;2、下载完脚本保存到本地时,应进行简单的对称加密,每次读取时解密;3、建议js脚本的增、删、改、查的内容在同一个js文件处理,只下载一个文件就OK。继上一篇了解工作原理后,这篇谈谈一下自行搭建管理后台实现补丁更新的基本思路。先假设遇到以下问题:App发行了两个版本,V1.0和V2.0,上线投产后...原创 2017-11-03 17:58:15 · 662 阅读 · 0 评论 -
Android之第三方库封装
需求情景: 项目A需要引入第三方jar包,这个jar包由自己开发项目B并封装,其中项目B由一个Activity及相关类组成,既带有硬件厂商提供相关库(.jar及.so文件),又有如zxing、gson等第三方开源jar包。这里面涉及到3个问题:1、Activity中Res资源封装,使用R.id.xxx或R.layout.xxx会报错,提示找不到资源;2、第三方j原创 2016-01-06 00:41:44 · 2556 阅读 · 0 评论 -
一个生成伪随机数的超级算法【转】
什么叫伪随机数?真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。我们可以这样认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。最近浏览“程序员论坛”时发现不少好帖,增长了不少知识转载 2017-06-15 15:32:06 · 7598 阅读 · 1 评论 -
Http、Https 和 Socket 的区别与联系
要弄明白 http 和 socket 首先要熟悉网络七层:物 数 网 传 会 表 应,如图1如图1HTTP 协议:超文本传输协议,对应于应用层,用于如何封装数据.TCP/UDP 协议:传输控制协议,对应于传输层,主要解决数据在网络中的传输。IP 协议:对应于网络层,同样解决数据在网络中的传输。传输数据的时候只使用 TCP/IP 协议(传输层),如转载 2017-06-13 16:16:23 · 9042 阅读 · 3 评论 -
DNS劫持是什么意思?DNS劫持是干什么用的?
DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。DNS劫持原理我们以用户访问淘宝网:www.taobao.com为例进行解释,正常情况下:用户在浏览器中输入www.taobao.com的域名,然后计算机向DNS服务器发出请求,询问转载 2017-07-05 11:10:29 · 3058 阅读 · 0 评论 -
Https和网络抓包工具的一些疑问
对于wireshak、charles等主流网络抓包工具软件,有人会有这样的疑问:尽管使用https访问网站,但是我在电脑安装了charles的证书并设置手机以后,就可以使用charles抓包同一局域网的iOS设备,也可以抓到手机上post请求,甚至抓包报文可以看到用户名密码明文。不是说https是安全的吗???1、Https(SSL)加密是发生在应用层与传输层之间,所以在传输层看到的数原创 2017-07-05 10:46:50 · 1769 阅读 · 0 评论 -
网络抓包工具Charles使用详解
简介Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的转载 2017-04-24 16:40:45 · 6168 阅读 · 2 评论 -
各种加密算法总结
上图为后续更新 一、基础知识: 1、互联网上中间人攻击通常用的三种方式:1)窃听 2)数据篡改 3)会话劫持 2、数据加密的常用的三种方式有:对称加密、非对称加密、单向加密。 3、ssl:secure socket layer,安全的套接字层。 4、TLS:Transport Layer Security,功能...原创 2014-02-17 10:10:17 · 3756 阅读 · 0 评论 -
MD5 SHA1 HMAC HMAC_SHA1区别
什么是MD5,什么是SHA-1,让我们先来了解一些基本知识,了解hash。 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。 简单的转载 2014-12-27 18:26:05 · 14302 阅读 · 0 评论 -
加盐hash保存密码的正确方式(上)
0x00 背景大多数的web开发者都会遇到设计用户账号系统的需求。账号系统最重要的一个方面就是如何保护用户的密码。一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害。保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很转载 2015-10-17 09:34:20 · 6221 阅读 · 1 评论 -
iOS之RSA解密
iOS关于RSA加密方法很多,但解密相关的方法却很少。折腾了好久,终于找到两个比较好的例子。1、使用openssl生成Publickey.pem及Privatekey.pem实现加密和解密。源码下载缺点:此项目加密时长度超过100多就不能加密,但对一般密码加解密足矣!适用环境:1、ios应用程序自动生成公钥,私钥,并保存下来。以后都是沙盒提取2、服务器公钥通过der格式原创 2015-04-28 16:34:16 · 1549 阅读 · 0 评论 -
Android之Activity界面劫持反劫持
总结:Activity劫持原理1、注册一个receiver,响应android.intent.action.BOOT_COMPLETED,使得开机启动一个service;这个service,会启动一个计时器,不停循环查询所有当前运行的进程(因为app可以枚举系统当前运行进程而无需声明其他权限)2、一旦发现当前某一进程的Activity正是我们想要劫持的,并运行在前台,我们立马使用FLAG_A...转载 2018-02-09 15:50:16 · 20659 阅读 · 3 评论 -
Android之密码漂移
问题:很多时候,客户端App的密码明文在运行内存里以明文形式保存的话,是可以使用memspector等工具读取出来的。所以我们需要对运行内存中的密码等敏感信息加以保护。解决方案:对密码进行漂移处理。所谓密码漂移,就是以一定的规则,去改变密码原来的值。一般情况下,客户端漂移,服务端要反漂移。...原创 2018-02-09 17:35:47 · 710 阅读 · 0 评论 -
iOS之本地数据存储安全
iOS本地数据存储安全移动APP通常会在设备本地存储一些数据,这可以为程序执行、更良好地性能或离线访问提供支持。由于移动设备使用地越来越广泛,设备失窃的风险也越来越大,因此不安全的本地数据存储已成为移动APP安全的主要威胁之一。攻击者可以通过一些方式获取到存储在iOS设备上的敏感信息,主要有以下方法:恶意程序 借助iOS系统的安全弱点,攻击者可以设计出一种远程偷转载 2018-02-11 09:58:48 · 898 阅读 · 0 评论 -
APP之防重放攻击
什么是重放攻击?我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击。重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果这个正常逻辑是插入数据库操作,那么一旦插入数据库的语句写的不好,就有可能出现多条重复的数据。一旦是比较慢的查询操作,就可能导致数据库堵住等情况,如果是付款接口,或者购买接口就会造成损失,因此需要采用防重放...原创 2019-07-17 17:27:50 · 5089 阅读 · 0 评论 -
全面了解HTTP和HTTPS
Http和Https属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们。在学习Http和Https的过程中,主要是参考了阮一峰老师的博客,讲的很全面,并且通俗易懂,有兴趣的同学可以去学习学习。这篇文章主要是按照自己的思路来讲解对Http和Https的理解。文章将会从以下几个方面介绍。一、网络层结构 二、Http协议 三、Tcp三次握手 四、Https协...转载 2019-01-30 11:40:20 · 735 阅读 · 0 评论 -
磁盘格式之exFat和NTFS怎么选?
exFat,可以理解为fat64,特点如下:为解决fat32格式磁盘不能保存单个超4G 文件而生。 支持Mac和windows跨系统存储,不需要额外插件支持。 如果不正确卸载“可移动磁盘”,经常热插拔,再次读盘容易出错,在Mac系统无法识别。 NTFS特点如下:安全性高,但由于频繁读写日志,对硬件寿命有影响。 稳定性好,经常热插拔影响不大。 在Mac系统使用需要插件支持,常见...原创 2019-01-22 14:38:44 · 31631 阅读 · 0 评论 -
Android之android exported="false"作用
android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。主要作用是:是否支持其它应用调用。 在漏洞检测中,我们可能会遇到以下提示: 程序A如果不想被其他的程序调用自己的activity,service,或者是receiver的时候,只要在AndroidManifest....原创 2018-12-29 17:30:04 · 18016 阅读 · 0 评论 -
浅谈CSRF攻击方式
一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么? 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚...转载 2018-12-09 21:29:14 · 211 阅读 · 0 评论 -
Android之获取手机UDID
最近做的一个项目中需要用到Android设备唯一码(UUID)来标识一台设备,Android中设备唯一码有很多,如:MAC地址、IMEI号(DeviceId)、IMSI号、ANDROID_ID、序列号(SerialNumber)等,但并不是所有设备上都能稳定获取到这些值。最后项目中采用的是MAC地址。先总结一些搜索得知的各种值的缺点,再说说最后采用MAC地址的解决方案吧。 1.MAC...转载 2018-11-21 17:53:22 · 17258 阅读 · 0 评论 -
AndroidStudio之NDK常见编译错误
1、执行ndk-build 提示error: request for member 'FindClass' in something not a structure or union/Users/lvxiangan/Workspace/Android_Studio/NDK/app/src/main/jni/test.c:33:30: error: member reference base ty...原创 2018-11-04 21:25:35 · 7029 阅读 · 0 评论 -
Mac之Android Studio开发NDK入门
NDK(Native Development Kit),是用于在 Android 应用中嵌套本地代码的工具集,现在 Android 开发最常用的工具就是 Android Studio 了,笔者也是刚刚接触 NDK 开发,用了一天的时间,踩了很多坑,最终跑通了自己的第一个 NDK 程序,话不多说,现在开始。第一步:给 Android Studio 配置 NDK: 选择 SDK Manag...转载 2018-11-03 16:35:00 · 1978 阅读 · 1 评论 -
Android之安全防护allowBackup
一、前言今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但是没想到这个属性会直接导致隐私数据的丢失。下面就来看一下这个属性的影响到底有多大。他的作用是什么?二、Android中的allowBackup属性1、allowBackup安全风险描述An...转载 2018-07-30 00:46:52 · 475 阅读 · 0 评论 -
XXE攻防——XML外部实体注入
转自腾讯安全应急响应中心一、XML基础知识XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。 DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明,也可以外部引用。内部声明DTD<!DOCTYPE...转载 2018-07-04 14:56:06 · 3225 阅读 · 0 评论 -
动态密码算法介绍与实现
动态密码,亦称一次性密码(One Time Password, 简称 OTP),是一种高效简单又比较安全的密码生成算法,在我们的生活以及工作中随处可见,身为开发者,也或多或少在自己的业务系统中集成了二步验证机制,那么,技术运用,既要知其然,更要知其所以然,动态密码算法是怎样的?读前指引通过这篇文章,你可以了解以下知识:动态密码的背景知识动态密码的分类不同动态密码的生成算法,HOTP 以及 TOTP...转载 2018-04-13 11:21:50 · 11069 阅读 · 0 评论 -
数据安全之数据脱敏
一、什么是数据脱敏? 数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。 百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏转载 2018-02-07 10:07:38 · 4055 阅读 · 0 评论 -
常见的MAC算法(PBOC_3DES_MAC、ANSI X9.9MAC算法、ANSI x9.19算法)
个人总结的常用mac算法,附上源码,完全使用java原生写法,效率极高 public final class Pboc3DesMACUtils { public static final byte[] ZERO_IVC = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }; /** * 计算MAC(hex) PBOC_3DES_MAC(符合ISO979转载 2017-06-01 22:49:26 · 7953 阅读 · 2 评论 -
Mac关闭支付宝AlipayDispatcherService进程
最近发现Mac OSX 后台有一个进程,频密访问访问支付宝的服务器,url为http://secclientgw.alipay.com/config/pcas_mac.json,使用抓包工具查看结果如下:原来,这是支付宝常驻在Mac上的AlipayDispatcherService进程,用于检测客户端浏览器版本,提供黑名单列表等。在支付宝页面安装密码控件时引入的:原创 2017-04-25 10:06:58 · 3982 阅读 · 0 评论 -
Android 之Https自签名证书
在Andorid接口请求中,遇到以下报错:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 这个问题一般是使用了自签名证书导致的。总结:对于自制的CA证书,对于客户端/服务端,都可以重写X509TrustManager类里面的方法实现忽略校验操作...转载 2017-05-03 15:33:35 · 2245 阅读 · 1 评论 -
SSL/TLS协议的三次握手过程
互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、SSL 证书SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。说白了就是:CA 中心主要作用是企业的公钥做认证。C...转载 2014-12-25 14:18:14 · 5101 阅读 · 0 评论 -
Android安全之Log日志要求
在开发过程中,如果我们要调试某段代码或解决某个bug,往往会对控制台的日志输出进行分析。对于开发人员来说,日志输出虽然方便友好,一旦落入不怀好意的人手中,通过对日志输出内容进行分析,了解应用的内部逻辑结构进而有针对性攻击、获取账户信息等,因此,我们在App对外发布时,应当加强对日志的管理。具体措施:1、关闭一切的日志输出。 对策:关闭如:System.out.println(xxx...原创 2014-12-25 14:33:30 · 1715 阅读 · 0 评论 -
mac下配置NDK开发环境
一、启动终端Terminal二、输入 pico .bash_profile 回车。三、输入以下内容【路径依实情而定】:export ANDROID_SDK_ROOT=/Users/apple/Desktop/adt-bundle/sdk export ANDROID_NDK_ROOT=/Users/apple/Documents/Android/android-ndk转载 2014-12-26 15:34:37 · 5910 阅读 · 0 评论 -
深入理解按位异或运算符
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0按位异或的3个特点:(1) 0^0=0,0^1=1 0异或任何数=任何数(2) 1^0=1,1^1=0 1异或任何数-任何数取反(3) 任何数异或自己=把自己置0按位异或的几转载 2014-12-27 14:12:42 · 4203 阅读 · 1 评论