TLS SSH OpenSSH OpenSSL
2016-01-30
我仔细阅读原文,然后按照理解对原文做了重新整理。
- SSL 是通讯链路的附加层。可以包含很多协议。HTTPS, FTPS, .....
SSL 是一种国际标准的加密及身份认证通信协议,您用的浏览器就支持此协议。
SSL(Secure Sockets Layer)最初是由美国 Netscape 公司研究出来的,后来成为了 Internet 网上安全通讯与交易的标准。
SSL 协议使用通讯双方的客户证书以及 CA 根证书,允许客户/服务器应用以一种不能被偷听的方式通讯,在通讯双方间建立起了一条安全的、可信任的通讯通道。
它具备以下基本特征:信息保密性、信息完整性、相互鉴定。 主要用于提高应用程序之间数据的安全系数。
SSL 协议的整个概念可以被总结为:一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有TC/IP应用程序。
- SSH 只是加密的 Shell,最初是用来替代 telnet 的。通过 port forward,也可以让其他协议通过 SSH 的隧道而起到加密的效果。
SSH 的英文全称是 Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止 DNS 和 IP 欺骗。
还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
SSH 有很多功能,它既可以代替 telnet,又可以为 ftp、pop、甚至 ppp 提供一个安全的“通道”。
SSH 是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x 和 2.x。用 SSH 2.x 的客户程序是不能连接到 SSH 1.x 的服务程序上去的。OpenSSH 2.x 同时支持 SSH 1.x 和 2.x。
SSH 的安全验证是如何工作的从客户端来看,SSH 提供两种级别的安全验证。
- 第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。
所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
- 第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。
如果你要连接到 SSH 服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。
服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。
如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。
客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。
与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。
但是整个登录的过程可能需要10秒。
-
OpenSSL 一个 C 语言函数库,是对 SSL 协议的实现。
OpenSSL 很优秀,所以很多涉及到数据加密、传输加密的地方都会使用 OpenSSL 的库来做。
-
OpenSSH 是对 SSH 协议的实现。
OpenSSH 利用 OpenSSL 提供的库。OpenSSL 中也有个叫做 openssl 的工具,是 OpenSSL 中的库的命令行接口。
从编译依赖上看,OpenSSH 依赖于 OpenSSL,没有 OpenSSL 的话 OpenSSH 就编译不过去,也运行不了。
- HTTPS 可以使用 TLS 或者 SSL 协议,而 OpenSSL 是 TLS、SSL 协议的开源实现,提供开发库和命令行程序。
可以理解成所有的 HTTPS 都使用了 OpenSSL。
脚本
# 查看使用了 libssl 库的程序
sudo grep -l "libssl" /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u
References
- http://en.wikipedia.org/wiki/Secure_Shell
- http://baike.baidu.com/view/16147.htm
- http://www.zhihu.com/question/23341334
Linux
2016-01-28
先说明一下 Linux 的运行级别,然后使用 runlevel、init、chkconfig 等几个命令实现开机启动任务的管理。
HTTP Cookie
2016-01-28
Cookie 的相关知识总结
SSH XShell 开发工具
2016-01-27
算是 SSH 端口转发(隧道技术)的一种利用。
武汉
2016-01-23
武汉住房公积金的提取办法。
Python 字符编码
2016-01-23
关于 sys.setdefaultencoding 的一些问题。
Python
2016-01-21
.gitignore 常见的 *.py[cod]。
参考 gitignore.io。
.py
.pyc 编译过后生成的字节码文件
.pyo 经过优化的字节码文件。Python2 时代常见,Python3 不再使用。现在是 .opt-1.pyc, opt-2.pyc
PS:关于这个优化到底是做什么以后再好好研究。
.pyd
.pyi Python Stub 文件,IDE 中为了提供更好的提示会带一些这样的文件,只是所有方法都是空的。
ps: 现在的 PyCharm 好像带的 stub 文件都是 py 后缀了。
.pyw Windows 专供,py 文件由 python.exe 解析,pyw 文件由 pythonw.exe 执行
他们不同之处就是,python.exe 会导致一个命令行窗口的出现,而,pythonw.exe 不会,所以常用在 GUI 程序上。
.pth 自定义路径导入规则的文件,参考:.pth 文件和 site 模块
Linux
2016-01-18
可能这是 Linux 命令行使用频率最高的一个计算器工具了。
其语法可以说比较复杂,可以定义变量,有各种逻辑控制语句,甚至可以定义函数,简直可以拿来做程序设计了。但是我们一般可能用不了这么多功能,就用来做一些简单计算就行。
PS:奇怪的是,有这么多复杂的功能,竟然没有包含位运算。
bc <<< "1 + 3 + 5 + 7 + 9"
26
bc <<< "scale=3; 1 / 3"
.333
bc <<< "obase=2; 14"
1110
bc <<< "ibase=16;obase=2; FF - 1A"
11100101
Linux ShellScripting
2016-01-16
long_string="line 1
line 2
line 3"
# bash ========
# readarray -t lines <<< "$long_string"
# IFS=$'\n' lines=($long_string)
# zsh =========
# lines=("${(@f)long_string}")
setopt sh_word_split
for line in "${lines[@]}"
do
echo "$line =="
done
影视
2016-01-15
托尔金
世界观
神
- 一神教的世界观,整个世界仿佛是上帝的一个沙盘游戏。
- 远古的历史是精灵族的视角记录下来的。甚至是一种口口相传的故事的感觉在描述,有存在冲突的地方。
这里的上帝叫做一如 Eru,或者伊露维塔 Ilúvitar。
一如在虚空中创建了时空(一亚),又在这个时空中创建了一个平面的世界阿尔达(天如穹庐,笼盖四野)。
帮助一如创世的是埃努,一如的意识,他们通过音乐(埃努的大乐章)来创造世界。
有一个是例外,一如独立创造了精灵和人类,给精灵的礼物是真善美,给人类的礼物是死亡。
理解:精灵死后灵魂进入曼督斯殿堂(可能重生),“被困在阿尔达里”,最后和阿尔达一同衰亡,人类“可以离开阿尔达”,获得自由(??)。
为了继续完善这个世界,照顾好神的孩子,部分埃努离开一如,进入了阿尔达,其中力量强大的叫做维拉 (女性维拉也被称为维丽 Valier),有 15 位,普通的叫迈雅,数量比较多(包括神犬胡安和巨鹰)。
部分埃努黑化,其中包括维拉米尔寇 Melkor(后来叫做魔苟斯 Morgoth(黑暗暴君)),迈雅索伦(魔苟斯的仆人)。
阿尔达
霍比特人,魔戒,精灵宝钻发生的时间都比较晚,主要发生在中土大陆。
第二纪元,阿门洲被剥离出来,剩下的阿尔达被卷曲成了一个球形。无法直接从中洲走到阿门洲。
远古
魔王一直给埃努捣乱,破坏了给整个世界带来光明的两盏巨灯。
埃努就囚禁了魔王,又在阿门洲创造了两棵巨树能照亮阿门洲的部分区域。
等精灵苏醒过来之后,带绝大部分精灵穿越大海,从中土来到阿门洲。
结果后来部分精灵被魔王蛊惑,对埃努心生不满,甚至产生内乱,离开阿门洲,返回中州。
埃努就开始不再干涉中洲的事情。
生物
中土世界的五个迈雅,有两位去了东方,在故事中没有出现,剩下三个:白袍巫师萨鲁曼,灰袍巫师甘道夫,褐袍巫师。
除了精灵和人类,其他的智慧生物:
- 矮人(Dwarves)由维拉奥力(大地之神)创造
- 霍比特人 Hobbits 是人类分支
- 半兽人 Goblin,又叫奥克 Orcs,是魔王用精灵和人类培育出来的黑暗生物。
- 安格玛巫王 Witch-King of Angmar,就是戒灵,也就是被索伦控制的人类持戒者(曾经是人类)。
在北面建立的安格玛王国,统治黑暗人类,半兽人,或其他黑暗生物。
- 恩特 Ents,树人,维拉雅凡娜创造,保护森林。
- 食人妖,魔王创造。
- 恶龙 Dragons,魔王创造。
- 恶狼 Wolves,黑暗生物。被当做坐骑的恶狼也叫座狼 Wargs。
- 巨型蜘蛛 Spiders,黑暗生物。远古恶灵乌苟立安特的后裔。乌苟立安特和魔王一起毁掉了圣树。
精灵宝钻 The Silmarillion
- 埃努的大乐章 The Ainulindale
- 维拉本纪 The Valaquenta
- 精灵宝钻争战史 The Quenta Silmarillion
- 努曼诺尔沦亡史 The Akallabeth
- 魔戒及第三纪元 Of the Rings of Power and the Third Age
霍比特人
- 意外之旅
- 史矛革之战
- 五军之战
魔戒、指环王
- 护戒同盟队
- 双塔奇兵
- 王者归来
地图
https://en.wikipedia.org/wiki/Middle-earth
维拉并没有彻底离开阿尔达,而是主动退出直接统治与军事干预,将世界治理权交还历史进程。
时间线
- 巨灯纪元,创世,神界一战,创造两盏巨灯,被毁,埃努移居阿门洲,创造巨树。
- 巨树纪元,精灵文明,发生在阿门洲的故事,精灵宝钻打造出来,神树被毁,精灵族内乱,部分精灵返回中洲,创造太阳月亮。
- 第一纪元,人类苏醒,最后埃努打败魔王。
-
第二纪元,索伦崛起,创造了 20 个力量之戒(包括至尊魔戒 The One Ring),最后被人类精灵联军打败,戒指被人王拿走(索伦肉身被毁,但因戒指未灭而保留复活能力)。
Notes: 在第二纪元发生了一个事件导致世界从平面被弯曲成球形:
由于第一纪元人类协助精灵对抗魔苟斯,战后,维拉在大海中升起一座岛屿努门诺尔(Númenor)。岛上的人寿命可以达到 300~400 岁,拥有各种高科技,可以说属于超级人类。
第二纪元,索伦被努门诺尔军队击败并俘虏。然后索伦成功腐化努门诺尔,导致努门诺尔国王阿尔-法拉宗组织庞大舰队进攻阿门洲,企图获得永生。
一如(Eru Ilúvatar)亲自干预,努门诺尔沉没,国王与军队被埋葬,世界被改造成“弯曲世界”,阿门洲被移出凡人可达空间。
说明:其中少数努门诺尔人忠诚于维拉,逃离了努门诺尔,在埃兰迪尔(Elendil)的领导下在中州建立亚尔诺与刚铎联合王国。
-
第三纪元,《霍比特人》与《魔戒》的故事,魔戒由 Bilbo Baggins 获得,后传给 Frodo Baggins,最后丢入末日火山,索伦和魔戒一同被彻底消灭。故事结束之后,精灵离去,魔法与神话色彩逐渐退场。
- 第四纪元,神话时代终结之后,人类重建大陆秩序。
参考资料与拓展阅读