基础知识梳理(2)数字签名,很简单
2011-05-28 01:31
393 查看
网络通信过程,通常都存在一些安全隐患,而且这些隐患根除不掉,只能通过一系列的措施来防范。
以一次通信过程为例,我在郑州通过向北京的你发送了一条消息,消息内容很简单:你好!
从郑州发送到北京的消息是你好!结果却由于消息在网络上传输时被人抓包篡改了,到北京变成了“你坏!”,后果就很严重了,对吧,你懂的。
怎么防止这种情况的出现呢?(这时我突然想到日本偷袭珍珠港时的电报破解)
保证消息在传输过程中不被篡改从理论上来讲是不可能的,但是我们可以在北京接收到这条消息时判断出消息是不是经过修改了,不接收被修改过的消息。
方法是这样的:
1,在郑州发送“你好!”时,使用一种规则,为“你好!”这条消息做一个摘要,举个简单例子:比如“好!”这两个字符是最后两个字符,我们为这个摘要按照ASCII表生成一个数字码:1234
2,在郑州这边将1234这个数字码按照加密规则加密,并附加到“你好!”消息包上进行传输。
3,北京收到消息包后,按照约定规则解密1234这个摘要,看看是不是消息的结尾两个字符,若是,则传输过程没被篡改,若不是,则传输过程中有篡改。
在百度中搜到一张图可以很好的描述这个过程:
这个就是数字签名的雏形了,给消息包加摘要加密,传输的两端使用各自的密钥解密后即可比对消息是否正确传输,这个模式通常也用来对WCF的服务进行验证。
下一篇将会学习一下X509的验证过程。
以一次通信过程为例,我在郑州通过向北京的你发送了一条消息,消息内容很简单:你好!
从郑州发送到北京的消息是你好!结果却由于消息在网络上传输时被人抓包篡改了,到北京变成了“你坏!”,后果就很严重了,对吧,你懂的。
怎么防止这种情况的出现呢?(这时我突然想到日本偷袭珍珠港时的电报破解)
保证消息在传输过程中不被篡改从理论上来讲是不可能的,但是我们可以在北京接收到这条消息时判断出消息是不是经过修改了,不接收被修改过的消息。
方法是这样的:
1,在郑州发送“你好!”时,使用一种规则,为“你好!”这条消息做一个摘要,举个简单例子:比如“好!”这两个字符是最后两个字符,我们为这个摘要按照ASCII表生成一个数字码:1234
2,在郑州这边将1234这个数字码按照加密规则加密,并附加到“你好!”消息包上进行传输。
3,北京收到消息包后,按照约定规则解密1234这个摘要,看看是不是消息的结尾两个字符,若是,则传输过程没被篡改,若不是,则传输过程中有篡改。
在百度中搜到一张图可以很好的描述这个过程:
这个就是数字签名的雏形了,给消息包加摘要加密,传输的两端使用各自的密钥解密后即可比对消息是否正确传输,这个模式通常也用来对WCF的服务进行验证。
下一篇将会学习一下X509的验证过程。
相关文章推荐
- 基础知识梳理(2)数字签名,很简单
- (1)数字签名基础知识
- [转贴]软件数字签名原理——PKI 基础知识
- 菜鸟学卷积神经网络基础知识(一)手写数字数据库究竟是个啥?
- WPF - Command基础知识梳理
- shell基础知识梳理二
- Java软件开发基础知识梳理之(2)------动态创建PreparedStatement解决SQL中带的in条件
- 电商之梳理springmvc相关知识---开发基础框架
- linux第一天(基础知识梳理)
- JS基础知识(下)(字符串,数字,算数,正则表达式)
- java基础知识梳理
- Docker容器学习梳理--基础知识(2)
- 数字签名与密码基础
- Python基础知识梳理 - 第01部分
- Java基础知识强化69:基本类型包装类之Character案例(统计字符串中大写小写以及数字的次数)
- [SQL] SQL 基础知识梳理(五) - 复杂查询
- 【C#高级编程】忽略基础知识点梳理
- ceph 基础知识梳理
- 网络基础知识梳理