关于数据传输安全(SSH协议)
来源:互联网 发布:软件测试教程学习 编辑:程序博客网 时间:2024/06/03 09:25
前言
这里说的不是java的SSH框架,是1995年,芬兰学者Tatu Ylonen设计的SSH协议。
有计算机网络基础的同学都知道,在网上传输的数据是可以被截取的。那么怎样才能获得安全?
一、春点行话
电影《智取威虎山》里,那些我们听不懂的“汉语”,就是春点行话,也可以叫“暗语”,像这样:
土匪:蘑菇,你哪路?什么价?(什么人?到哪里去?)
杨子荣:哈!想啥来啥,想吃奶来了妈妈,想娘家的人,孩子他舅舅来了。(找同行)
杨子荣:拜见三爷!
土匪:天王盖地虎!(你好打的胆!敢来气你的祖宗?)
杨子荣:宝塔镇河妖!(要是那样,叫我从山上摔死,掉河里淹死)
为什么要用暗语呢?毕竟土匪这个职业比较特殊,在自家山寨里还好,要是去赶集,突然发现业务了手痒痒怎么办,总不能在人群中就商量怎么谋财害命吧,这时候,土匪中的语言学家就发明了暗语,也就是把一些“敏感词汇”用一些“家常话”代替掉。上面对话里括号里面就是那些暗语的意思。久而久之,就形成了很多暗语,这些暗语口口相传,对土匪事业的发展起了很大的推动作用。但是每年纳新的时候,发现靠口口相传暗语很难被新手掌握。那些学霸土匪们纷纷表示,让语言学家出本书,他们一定会买正版且仔细学习的。于是语言学家励精图治,耗时好几天终于完成了《嘿嘿山暗语通则v1.0》(以下简称《通则》)。由于当时土匪老大担心如果拿到正规出版社出版会被平民学会,就失去了暗语本身的意义,于是最终没有正式发布,只是作为集团内部的文档,代代相传。但是那个语言学家“开源”的思想很重,几经周旋,老大终于同意他这本文档可以在土匪业内流传。
时代在发展,社会在进步。开源思想被普遍接受,各山头土匪纷纷表示,“开源大法好!”《通则》经历了几个世纪的更新迭代,最终成为了一种业内开源的数据加密系统(因为不仅说话可以用,写信的时候也可以用,这样,土匪之间的信件即使被官方截取,也不明白其中的意思),并且有了些很好听的名字——“江湖春点”、“春点行话”……
我们来总结一下这种古老的数据加密方式。一定程度上解决了数据传输的安全性问题。但是缺点也很明显,破译很简单。
于是有一天,这本只在业内流传的《通则》被一个叛徒交给了官府。
本来官府是有很多各个山头的资料的,但是都是用暗语写的,都看不懂。但是现在有了《通则》,那些数据一夜之间全成了白话。
这个事件对土匪业的打击很大,土匪们深恶痛疾,都表示开源害死人!
但是后辈的土匪也有语言学家,他们为自己的山头编写了不外传的内部暗语通则。土匪业有了新的发展。
但是这也出现了新的问题。虽然说同行是冤家,但是有时候集团之间的合作才能有更大的利益,但是每个山头都有自己的《通则》。为了实现交流,只能把自己的《通则》给友方山头copy一份。这样,合作伙伴多了之后,要冒着“合作伙伴”把自己山头的《通则》泄露的风险。土匪业的发展又遇到了瓶颈。
直到1995年,芬兰学者Tatu Ylonen设计出了SSH协议。这个问题终于被解决。
二、SSH协议
不同于之前的暗语,暗语对数据的加密和解密是用的同一种规则(对称性规则),那么我只要知道这个规则,我就能破译所有数据。而ssh协议是一种非对称性加密协议,ssh协议有两套规则,而且加密和解密过程不可逆(理解这点很重要,当然这里的理解不是让你去弄懂“如何实现”,而是要时刻记住)。我知道很多同学看到这里可能一头雾水了,别想太多,先往下看。假设我们有A规则和B规则。
我们用A规则来加密的数据只有B规则能解密。而用B规则加密的数据只有A规则能解密。
这就是非对称性规则。那么怎么使用呢?
每个山头都自己搞这样的两套规则。A规则自己内部严格保密,B规则公诸世界。这样,我们假设有两座山头,甲山头和乙山头,他们都有自己的AB规则和对方的B规则。
- 当甲方要给乙方发数据的时候,用乙方的B规则加密数据,然后发送;
- 乙方收到数据后,用自己的A规则解密,阅读;
- 乙方回复的数据用甲方的B规则加密;
- 甲方收到后用自己的A规则解密,阅读。
- ……
- ……
这样即使数据在传输的过程中,即使被别人截取,也会因为没有A规则,而只能有一堆看不懂的东西。
这就是我所理解的SSH协议。
其实SSH协议不仅可以用于数据加密,还可以用于“身份验证”。但是原理是一样的,就留给各位一个想象的空间。
关于 在虹口 姐姐家
20171217
- 关于数据传输安全(SSH协议)
- ssh(安全外壳协议)
- ssh (安全外壳协议)
- ssh (安全外壳协议)
- SSH:安全外壳协议
- SSH:安全外壳协议
- 安全外壳协议 SSH
- 安全外壳协议 ssh
- https数据传输协议(安全套接字层超文本传输协议)
- 关于ssh的安全
- 安全外壳协议SSH详解
- 安全协议IPSec、SSL、SSH
- Telnet协议,SSH协议(安全外壳协议),SSL协议(安全套接层协议),HTTPS(Hypertext Transfer Protocol Secure)安全超文本传输协议
- TCP数据传输协议(二)
- 安全外壳协议(SSH)--网络大典
- SSH协议(2)-安全威胁及解决办法
- 通过SSH安全协议传输文件(SecureCRT, SSH Secure File Transfer Client)
- 关于TI CC2540 BLE协议栈中数据传输的几个函数实现(草稿)
- 遗传学自出题答案
- 解决 vs 出现Error MC3000 给定编码中的字符无效
- 详解CMS垃圾回收机制
- 蓝桥杯:大臣的旅费(一般方法)
- linux命令深度使用 – ls
- 关于数据传输安全(SSH协议)
- zoj2112 Dynamic Rankings(整体二分+树状数组)
- gcc 编译流程
- Ubuntu安装Flink-1.4.0
- hbase基本操作---修改表的列簇
- NYOJ-32-组合数
- 20170707
- PageRank算法
- 封装一个提取url参数的小方法