网络安全问题

被动攻击

被动攻击通过截获报文来破解报文内容。

通过密钥和加密算法来避免这个问题。

主动攻击

  1. 计算机病毒 :具有传染性,具备可以将自己值入多个程序的能力,修改程序,将自己作为变种插入程序内部运行。
  2. 篡改 :中途截获报文,修改报文内容,再发送到服务端。
  3. 特洛伊木马 :将自己藏在正常的程序当中,如果一个编译程序除了编译程序之外,还另外复制用户的源码,它就叫做特洛伊木马。
  4. 蠕虫 :通过网络的通信功能,将自己发送到另一个节点并主动运行的程序。
  5. 逻辑炸弹 :平时是一个正常的程序,一旦满足一定的条件之后就会开始搞破坏的程序。
  6. 后门入侵:利用系统实现中的漏洞干坏事的程序。
  7. 流氓软件:未经用户同意,就主动安装的软件,其特点包括:强制安装,难以卸载,广告弹出,浏览器劫持,恶意收集用户信息。
  8. DOS:拒绝服务,一次性被大量连接入侵,导致服务器没办法正常提供服务。

安全的计算机网络应具备的特点

  1. 机密性:内容无法被破解,加密算法和密钥
  2. 完整性:内容有没有被篡改过
  3. 端点验证:是否真的是你希望的那个人发过来的信息,数字签名
  4. 运行的安全性: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(椭圆曲线加密算法)。

散列函数

散列函数应具备的特点:

  1. 输入长度不限,输出结果较短,且固定
  2. 输入和输出是多对一的关系,必然会产生哈希碰撞
  3. 无法根据输出找到输入,即运算是不可逆的
  4. 输入即使改变一点,输出也应该要有极大的差别。

散列函数一般有:

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)。

数字证书一般包括:

  1. A的公钥
  2. A的标识信息:人名,地址,email,或IP
  3. CA对以上信息进行散列运算,并对运算后的散列值,用自己的私钥进行加密的数字签名

1,2称为A的未签名的证书,1,2+3,称为A的已签名的证书。

数字证书的格式

为了使证书的格式标准化,指定了X509协议标准。后来IETF又更新的协议标准,命名为X509 V3。X509又称为公钥基础结构:PKI(public key infrastration)。

X509规定证书必须具有以下内容:

  1. X509的版本
  2. 数字证书名称及序列号
  3. 本数字证书使用的签名算法(计算散列值的散列算法)
  4. 数字证书签发者的唯一标识符
  5. 数字证书有效期
  6. 主体名(公钥和数字证书拥有者的唯一标识符)
  7. 公钥

X509规定了一个树状的认证系统。

根CA认为是可无条件信任的。

TLS阶段

Android应会的网络基本知识相关推荐

  1. android 判断对象,Android网络判断知识小结

    Android中判断当前网络是否可用 应用场景:实现判断当前网络是否可用 当前有可用网络,如下图: 当前没有可用网络,如下图: 实现步骤: 1.获取ConnectivityManager对象 Cont ...

  2. 吊炸天之Android 如何实现无网络传输文件

    热文导读 | 点击标题阅读 欢迎加入Java和Android架构知识星球 Android大厂面试题锦集附答案(BAT TMD JD 小米) 程序员如何进阶成为大神? 作者:叶应是叶 原文:http:/ ...

  3. Android开发之APN网络切换

    原文:http://www.cnblogs.com/hanyonglu/archive/2012/03/29/2423298.html 本文介绍Android平台中关于APN网络切换的相关知识以及如何 ...

  4. 华为HCNE专题一:网络基础知识

    华为HCNE专题一:网络基础知识 对应章节:第一章 重点:理解网络结构,掌握OSI参考模型的基本结构 难点:OSI各层次名字及其概念的理解 亮点/应用/重要性:网络入门的基础,重中之重. 主要内容:针 ...

  5. 学习Android 应注意的十个问题

    转自:http://www.cn-java.com/www1/bbs/viewthread.php?tid=85662&extra=page%3D1&frombbs=1 学习Andro ...

  6. 网络基础知识汇总学习

    一.网线(双绞线)连接线的制作 双绞线制作有 568A 和 568B 两个标准,日常以 568B 标准较常用. 568B 标准按颜色排序为: 1- 橙白. 2- 橙.3- 绿白.4- 蓝. 5- 蓝白 ...

  7. Android实战——jsoup实现网络爬虫,糗事百科项目的起步

    Android实战--jsoup实现网络爬虫,爬糗事百科主界面 本篇文章包括以下内容: 前言 jsoup的简介 jsoup的配置 jsoup的使用 结语 前言 对于Android初学者想要做项目时,最 ...

  8. 网络基础知识学习笔记

    网络基础知识学习笔记 参考菜鸟教程.个人学习整理,仅供参考.三年前学过,三年没用忘了,重新学习整理一下. 文章目录 网络基础知识学习笔记 OSI七层网络模型 IP地址 子网掩码及网络划分 网络协议 A ...

  9. JAVA网络编程知识学习

    JAVA网络编程知识学习 学习目标 第一章 网络编程入门 1.1软件结构 1.2 网络通信协议 1.3 协议分类 1.4 网络编程三要素 协议 IP地址 IP地址分类 常用命令 端口号 InetAdd ...

最新文章

  1. bootcmd 和bootargs
  2. 智能家居 (3) ——智能家居工厂模式介绍实现继电器控制灯
  3. 光伏领跑者火热前行 可靠性护航“长跑”
  4. 地址解析协议 (ARP) 是什么
  5. 让div垂直以及水平居中浏览器窗口
  6. C语言浮点数的输出方法和示例
  7. NSCalendar日历
  8. [工具向]__申请,下载,使用百度地图api
  9. phpstorm 2017.1.3 最新版激活方法
  10. 学习自动驾驶技术 学习之路_一天学习驾驶
  11. Deep Cosine Metric Learning for Person Re-Identification
  12. openlayers中比例尺的计算原理
  13. 微信公众号消息text换行问题
  14. 盘点招招毙命的29种USB攻击方式
  15. 50个直击灵魂的问题_直击心灵的48个问题
  16. UITT私有化自动跟单系统
  17. 【老九学堂】【C++】编码命名规范
  18. Qt文档阅读笔记-DTLS client解析
  19. Brave浏览器的数据
  20. 只需1个操作,100M宽带变身500M,迅雷下载满速狂飙

热门文章

  1. 案例3-1 基于控制台的购书系统
  2. 计算机信息系统集成一级和二级资质认证通过企业名单
  3. 硬盘克隆工具Linux,硬盘克隆(FarStone DriveClone)下载_硬盘克隆(FarStone DriveClone)官方下载-太平洋下载中心...
  4. Drill 学习笔记之 入门体验
  5. JAVA生成二维码链接
  6. ACL 2020 MART: Memory-Augmented Recurrent Transformer for Coherent Video Paragraph Captioning
  7. 河海大学计算机网络毕业设计,河海大学文件河海大学毕业设计.doc
  8. 我是如何把大象装进冰箱里的……
  9. 怎么设置能在IIS6内设置显示错误信息?
  10. MagikEye将在CES上展示Invertible Light™图像传感器技术