Android应会的网络基本知识
网络安全问题
被动攻击
被动攻击通过截获报文来破解报文内容。
通过密钥和加密算法来避免这个问题。
主动攻击
- 计算机病毒 :具有传染性,具备可以将自己值入多个程序的能力,修改程序,将自己作为变种插入程序内部运行。
- 篡改 :中途截获报文,修改报文内容,再发送到服务端。
- 特洛伊木马 :将自己藏在正常的程序当中,如果一个编译程序除了编译程序之外,还另外复制用户的源码,它就叫做特洛伊木马。
- 蠕虫 :通过网络的通信功能,将自己发送到另一个节点并主动运行的程序。
- 逻辑炸弹 :平时是一个正常的程序,一旦满足一定的条件之后就会开始搞破坏的程序。
- 后门入侵:利用系统实现中的漏洞干坏事的程序。
- 流氓软件:未经用户同意,就主动安装的软件,其特点包括:强制安装,难以卸载,广告弹出,浏览器劫持,恶意收集用户信息。
- DOS:拒绝服务,一次性被大量连接入侵,导致服务器没办法正常提供服务。
安全的计算机网络应具备的特点
- 机密性:内容无法被破解,加密算法和密钥
- 完整性:内容有没有被篡改过
- 端点验证:是否真的是你希望的那个人发过来的信息,数字签名
- 运行的安全性:Dos,访问控制
两种密码体制
对称加密
对称加密指的是,加密和解密都使用相同的密钥。加密算法都是公开的,所以主要保密的就是密钥。
一般对称加密算法有DES,3DES,AES(Advances encrpytion standard)。AES比3DES复杂,但运算速度也快的多。DES已经被破解了。
对称密钥的分配,一般是通过KDC(Key Districbution Center)。
非对称加密
非对称加密指的是,加密和解密使用的密钥不同。非对称加密,产生的原因主要是,对称密钥的分配问题要通过KDC,这导致网络延迟增加。另外还有数字签名的诞生。数字签名主要用来识别通信对方的身份。
数字签名过程:
数据签名只用来验证对方身份,但是这还是不安全的,因为所有人都有A的公钥,即只要有人在A->B的链路中,拦下这个报文,就可用A的公钥对报文解密,获取到发给B的内容。所以,还需要这个内容只有B才能看懂才行,即对内容加密。
即A端在用SK(A)(A的私钥)加密后,再用B的PK(B)进行加密,这样就可以保证这个报文只有B可以解密。在B解密之后,再对A的身份进行验证。
非对称加密算法主要有:
RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
散列函数
散列函数应具备的特点:
- 输入长度不限,输出结果较短,且固定
- 输入和输出是多对一的关系,必然会产生哈希碰撞
- 无法根据输出找到输入,即运算是不可逆的
- 输入即使改变一点,输出也应该要有极大的差别。
散列函数一般有:
MD5,SHA-1,SHA-2,SHA3,其中前两种已经被证实不安全了。
不安全是指,有人能根据相同输出,找到输入了。
散列函数一般被用在报文鉴别:即报文完整性。
报文鉴别码MAC
假设A发送X给B,为了让B可以判断X是否完整,因此用散列函数对X进行运算,得到H(X),最终发送给B (X, H(X))。
这样当B收到(X,H(X))时,只需要用相同的散列函数,对X进行运算,查看H(X)是否等于发送过来的H(X)。
因为只要X不一致,根据上面散列函数的特点,只要输入发生变化,散列值就会发生较大变化。
但这个是有缺陷的,只要有人在A->B过程中,把X改成了M,并且把H(X)改成H(M),这样B端一样可以检查到M未被篡改。
所以要保证,传送的东西,有中间商无法获取到的东西,他才没办法作假。
比如当传送的是(X, H(X+K)),其中K是A, B所使用的对称密钥。这样只要在B端,对传过来的X和B端保存的密钥,进行散列,再跟H(X+K)比较,即可确认报文完整性。
其中H(X+K)称为报文鉴别码(MAC, Message Authentication Code)。
这样的报文鉴别码也被称为数字签名,或是数字指纹。
MAC还有一种叫法为HMAC,即将K拼在X后面,共同进行散列运算。而MAC则不一定。MAC中,有可能K只作为一个参数。
重放攻击
重放攻击,指的是,假设A向B发送身份认证的报文K,C只要知道这个报文是用来身份认证的,那么C不需要破解K,它只需要留下K,并且后续将K再发送给B,如果B不具备抵御重放攻击的能力,它就会将C认为是A,从而允许C去做A能做的事情。
即重放攻击一般是盗窃身份用的。
阻止重放攻击的方法一般有:在A的请求中加入NONCE(不重数),这可以让C区分出是否为重复的请求。
数字证书
可靠的第三方给有公钥的实体A发一个具有数字签名的数字证书,也可简称为证书。签发证书的机构称为认证中心CA(Certificate Center)。
数字证书一般包括:
- A的公钥
- A的标识信息:人名,地址,email,或IP
- CA对以上信息进行散列运算,并对运算后的散列值,用自己的私钥进行加密的数字签名
1,2称为A的未签名的证书,1,2+3,称为A的已签名的证书。
数字证书的格式
为了使证书的格式标准化,指定了X509协议标准。后来IETF又更新的协议标准,命名为X509 V3。X509又称为公钥基础结构:PKI(public key infrastration)。
X509规定证书必须具有以下内容:
- X509的版本
- 数字证书名称及序列号
- 本数字证书使用的签名算法(计算散列值的散列算法)
- 数字证书签发者的唯一标识符
- 数字证书有效期
- 主体名(公钥和数字证书拥有者的唯一标识符)
- 公钥
X509规定了一个树状的认证系统。
根CA认为是可无条件信任的。
TLS阶段
Android应会的网络基本知识相关推荐
- android 判断对象,Android网络判断知识小结
Android中判断当前网络是否可用 应用场景:实现判断当前网络是否可用 当前有可用网络,如下图: 当前没有可用网络,如下图: 实现步骤: 1.获取ConnectivityManager对象 Cont ...
- 吊炸天之Android 如何实现无网络传输文件
热文导读 | 点击标题阅读 欢迎加入Java和Android架构知识星球 Android大厂面试题锦集附答案(BAT TMD JD 小米) 程序员如何进阶成为大神? 作者:叶应是叶 原文:http:/ ...
- Android开发之APN网络切换
原文:http://www.cnblogs.com/hanyonglu/archive/2012/03/29/2423298.html 本文介绍Android平台中关于APN网络切换的相关知识以及如何 ...
- 华为HCNE专题一:网络基础知识
华为HCNE专题一:网络基础知识 对应章节:第一章 重点:理解网络结构,掌握OSI参考模型的基本结构 难点:OSI各层次名字及其概念的理解 亮点/应用/重要性:网络入门的基础,重中之重. 主要内容:针 ...
- 学习Android 应注意的十个问题
转自:http://www.cn-java.com/www1/bbs/viewthread.php?tid=85662&extra=page%3D1&frombbs=1 学习Andro ...
- 网络基础知识汇总学习
一.网线(双绞线)连接线的制作 双绞线制作有 568A 和 568B 两个标准,日常以 568B 标准较常用. 568B 标准按颜色排序为: 1- 橙白. 2- 橙.3- 绿白.4- 蓝. 5- 蓝白 ...
- Android实战——jsoup实现网络爬虫,糗事百科项目的起步
Android实战--jsoup实现网络爬虫,爬糗事百科主界面 本篇文章包括以下内容: 前言 jsoup的简介 jsoup的配置 jsoup的使用 结语 前言 对于Android初学者想要做项目时,最 ...
- 网络基础知识学习笔记
网络基础知识学习笔记 参考菜鸟教程.个人学习整理,仅供参考.三年前学过,三年没用忘了,重新学习整理一下. 文章目录 网络基础知识学习笔记 OSI七层网络模型 IP地址 子网掩码及网络划分 网络协议 A ...
- JAVA网络编程知识学习
JAVA网络编程知识学习 学习目标 第一章 网络编程入门 1.1软件结构 1.2 网络通信协议 1.3 协议分类 1.4 网络编程三要素 协议 IP地址 IP地址分类 常用命令 端口号 InetAdd ...
最新文章
- bootcmd 和bootargs
- 智能家居 (3) ——智能家居工厂模式介绍实现继电器控制灯
- 光伏领跑者火热前行 可靠性护航“长跑”
- 地址解析协议 (ARP) 是什么
- 让div垂直以及水平居中浏览器窗口
- C语言浮点数的输出方法和示例
- NSCalendar日历
- [工具向]__申请,下载,使用百度地图api
- phpstorm 2017.1.3 最新版激活方法
- 学习自动驾驶技术 学习之路_一天学习驾驶
- Deep Cosine Metric Learning for Person Re-Identification
- openlayers中比例尺的计算原理
- 微信公众号消息text换行问题
- 盘点招招毙命的29种USB攻击方式
- 50个直击灵魂的问题_直击心灵的48个问题
- UITT私有化自动跟单系统
- 【老九学堂】【C++】编码命名规范
- Qt文档阅读笔记-DTLS client解析
- Brave浏览器的数据
- 只需1个操作,100M宽带变身500M,迅雷下载满速狂飙
热门文章
- 案例3-1 基于控制台的购书系统
- 计算机信息系统集成一级和二级资质认证通过企业名单
- 硬盘克隆工具Linux,硬盘克隆(FarStone DriveClone)下载_硬盘克隆(FarStone DriveClone)官方下载-太平洋下载中心...
- Drill 学习笔记之 入门体验
- JAVA生成二维码链接
- ACL 2020 MART: Memory-Augmented Recurrent Transformer for Coherent Video Paragraph Captioning
- 河海大学计算机网络毕业设计,河海大学文件河海大学毕业设计.doc
- 我是如何把大象装进冰箱里的……
- 怎么设置能在IIS6内设置显示错误信息?
- MagikEye将在CES上展示Invertible Light™图像传感器技术