<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />
                                     IPSEC ×××之安全基础篇
无止境系列文档将以网络安全为方向,以专题的形式每周天发布,希望大家支持。
第一期专题:IPSEC ×××,将分为三周完成,每周一篇,分别为安全基础篇,重要概念解析篇,配置详解篇。

【阅读说明】

为了方便大家阅读,特作如下说明:
1. 专业术语或者一些概念用红色标识。
2. 重要或者强调的语句用蓝色标识。
3. 总结的部分用绿色标识。

【主要内容】

1.机密性保护
2.完整性保护
3.身份认证

【例子说明】

本篇通过一个简单的例子来说明很多安全相关的概念。
例子:主机A和主机B要进行通信,要保证他们的通信是安全的。

【机密性保护】

       机密性保护的作用:防止信息泄漏给未经授权的个人。
A和B要进行安全通信,假设A要发送给B:“hello“这个信息,肯定不可能直接明文发送,所以要对发出去的信息进行加密处理,然后B收到后再进行解密处理,这样的过程就是保护数据机密性的过程。
图1-1:加密和解密的过程  

图1-1
几个概念:
算法:在加密和解密过程中采用的一组规则。
密钥:可以看作是密码算法的参数,用来控制加密,解密操作。分为加密密钥Ke和解密密钥Kd。
就上面的例子,比如A的消息“hello”就是明文,假设算法是这样的一组规则:加密的时候将字母往后移x个字母,解密的时候往前移位三个字母。密钥是x,这里假设密钥为3。根据这个算法,加密后的密文就成了:“khoor”,这样别人看到这串字母就不知道什么意思了。解密密钥也是x(这里也是3),接受方根据解密算法就可以将密文向前移位三个字母,就可以得到明文。
因此我们可以这样理解,加密是要由算法和密钥共同组成的。
目前,很多加密算法都是公开的,也就是大家可以知道这些算法是怎么算的,都是有标准的。但是密钥是要保护的,这样即时知道了算法,也不能解密。就上面的例子来说,你知道算法是加密后移k位,解密前移k位,但是你不知道密钥k是多少,所以也就不能解密了。
算法是公开的,密钥是私有的,如何管理和分配私钥成为重要问题。
现在来看下图中的Ke和Kd,Ke是加密时候用的密钥,Kd是解密时候用的密钥。
如果在算法中Ke和Kd是相同的,我们说这是个对称密钥算法。
如果在算法中Ke和Kd是不一样的,我们就说这是个非对称密钥算法。
在这里不对比这两种算法的优缺点,这里只需知道不管是对称还是非对称,都是加密算法,都可以用来作加密,只是密钥不同。
对称加密算法有:DES,3DES,AES,IDEA,RC4,A5,SNOW2.0
(记住常用的三个即可)
非对称加密算法有:RSA,Diffie-Hellman,Rabin,ELGmal
(记住常用的两个即可)
机密性总结:
1.在传输过程中对数据加密解密就是数据机密性的保护。
2.目前情况,算法是可以公开的,需要保护的是密钥。
3.常用的对称加密算法:DES,3DES,AES;常用的非对称加密算法:RSA,Diffie-Hellman(简称DH)

【完整性保护】

       通过对主机A的原始数据加密形成密文再传送保护了数据的机密性,但是在传输过程中,如果密文因为某些原因丢失了一部分,或者被别人篡改了,那么在主机B中就不能收到完整的A所发送的的信息了。因此我们需要一种方法来解决这个问题,即验证数据的完整性。
完整性,可以这样理解,我们要通过某种方法,来判断B收到的信息和A给的信息是一样的,是完整的。
我们通过hash算法实现这一功能。(这里需要注意的是完整性可以通过hash函数来实现,但是这些hash函数不仅仅只能用来做完整性保护,具体情况要看被hash的数据是什么而定,后续会提到。)
HASH算法是通过HASH函数来实现的。
hash函数的特点,必须记住的:
1.输入是变长的数据,输出是固定长度的值的值(MD5是128位),叫hash值。
2.hash函数是单向的,即正向计算容易,求逆极其困难,我们这里认为是不可能的。
这里有两点提醒:
1.注意hash算法跟以上提到的加密算法的区别。
2.不要纠结于为什么正向容易,求逆困难,这是有严格的数学基础的,你只要知道这个结论就行。
图1-2:完整性保护过程

图1-2
hash函数有:MD5,SHA-1
完整性总结:
1.理解需要保护完整性的目的。
2.记住hash函数的特点。
3.常用的hash函数:MD5,SHA-1

【身份认证】

身份认证:一种用来验证发送者的身份的真实性,通过身份认证可以发现那些假冒的顶替的***者。
从例子上看,A发给B消息,B要验证消息确实是A发出的,而不是别人发出的。
身份认证可用公钥密码体制来验证。
首先了解一下公钥的密钥体制的一些重要概念:
1.有一对密钥,分为公钥和私钥。
2.私钥加密,只有对应的公钥才能解密。  -----用于身份认证
3.公钥加密,只有对应的私钥才能解密。  -----用于数据加密
公钥密码体制不仅可以用在保护数据的机密性,而且可以用在身份认证中。将公钥公开,就是任何人都可以得到公钥,发送者用相应的私钥加密,由于只有发送者才有私钥,所以只要接受者能用公钥解开,就能证明一定是拥有私钥的人发送的。这样就验证了对方的身份。
总结一句话:
私钥加密,公钥解密,实现身份认证。

【本期总结】

主要介绍了三个重要的基本概念,一个安全通信的机密性保护,完整性保护和身份认证。
这是理解IPSEC ×××最基础也最重要的部分,之后的很多东西都是在这些概念的基础上延伸的。
完成于<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2009年10月4日星期日
下周主要内容预告:IPSEC ×××之重要概念解析篇(MAC消息认证码,数字签名,数字证书,DH等)   敬请期待!

转载于:https://blog.51cto.com/wzhj132/209564

【安全系列】IPSEC ×××之安全基础篇相关推荐

  1. QCC304x系列开发教程(基础篇)之2.4-QCC3040之如何修改MDE的主题

    查看全部教程开发请点击:高通蓝牙耳机QCC304x开发详解汇总(持续更新中) 查看本文全部文章请点击:QCC304x系列开发教程(基础篇)之2.3-QCC3040之如何修改MDE的主题 ======= ...

  2. c语言 字符串转运算符,快速上手系列-C语言之基础篇(二)数据类型与运算符...

    在上一篇文章<快速上手系列-C语言之基础篇(一)>中写了关于C语言的程序结构,关键字及控制语句.本篇主要写写C语言中数据类型,以及运算符相关方面的知识. 一.变量与常量 1.常量:在程序运 ...

  3. Java菜鸟教程系列 学习笔记总结 基础篇(1)

    基础语法 本博客通过学习菜鸟教程Java专栏,并整理得出的Java基础知识. 命名规范 1.项目名全部小写 2.包名全部小写 3.类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写.如: ...

  4. Spring系列一:Spring基础篇

    有人说,"Java程序员都是Spring程序员",小叶秋不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的作用.今天叶秋学长带领小伙伴们一起进入Spring学 ...

  5. [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性--委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

  6. WPF入门教程系列(2)---基础篇

    接下来在工具箱中双击ListView,一个小框会出现在界面上. 修改ListView的属性,可以自己尝试修改,可以观察到图形会随着实时变化. 接下来,在<GridView>和<Gri ...

  7. QCC304x系列开发教程(基础篇)之2.1-QCC3040之开发环境搭建

    目录 一.安装MDE 二.安装ADK_Toolkit 三.安装qact_base.win.7.2_installer_00025.2压缩包 四.下载SDK 五,打开QCC3040工程

  8. RK3568平台开发系列讲解(驱动基础篇)RK 看门狗的使用

  9. qj71c24n通讯实例_Q系列串行口通信模块用户参考手册QJ71C24N(基础篇).pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp电子工程/通信技术&nbsp>&nbsp数据通信与网络 Q系列串行口通信模块用户参考手册QJ ...

  10. Java基础篇--设计模式

    目录 前言 设计模式 创建型模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 亨元模式 代理模式 行为型模式: 访问者模 ...

最新文章

  1. [ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器
  2. 管能做暖气管道吗_这样的暖气管道施工,标准吗
  3. C语言学习之用指针处理,输入a和 b两个整数,按先大后小的顺序输出a和 b
  4. jvm gc停顿_在JVM中记录世界停顿
  5. php post 400,post数据时报错:远程服务器返回错误: (400) 错误的请求。
  6. oracle v$context,30.Oracle杂记——Oracle常用动态视图v$session
  7. 19【推荐系统17】MMoE: 多任务学习
  8. atitit.hbnt orm db 新新增更新最佳实践o7
  9. SQL Server BI Step by step 1 AdventureWorks数据库的安装
  10. 单片机实验报告实验七:定时器实验
  11. ZipFile 解压多个.zip压缩文件
  12. linux 进程的vss rss uss,内存VSS,RSS,PSS,USS解读
  13. 菜鸟的数学建模之路(二):线性与非线性回归
  14. 随身WIFI刷真Linux(Debian)系统搭配拓展坞做超低功耗服务器
  15. 出行者信息服务器,出行者信息服务系统解析.ppt
  16. android 金额输入弹窗,金额输入框_小罗的安卓学习记录的技术博客_51CTO博客
  17. Hdu 2430 Beans (数据结构_单调队列)
  18. Latex 公式中空格添加
  19. php中mb_str_split分割字符串为数组的函数介绍与使用以及低版本php函数实现
  20. 二冲港交所,嘀嗒出行“顺风车领头羊”的故事真的动听吗?

热门文章

  1. 转载:浅谈程序员的数学修养
  2. 面试第二弹-重点描述
  3. Leetcode 76.最小覆盖子串
  4. HashMap 的深入学习
  5. 对数组名取地址a和 数组首地址a
  6. 【C语言】指向一维数组元素的指针
  7. Repeater绑定数组
  8. Python urllib2 设置超时时间并处理超时异常
  9. Hadoop1.1.2开发笔记(一)
  10. ListBox横向绑定数据