从https和ssh看网络安全 2022-03-01

网络安全三属性:
真实性:通信双方身份要确认——首先要建立信任,信任是一切的基础
机密性:要加密,不要明文
完整性:通信数据没有被第三方篡改过,即被修改、删除、添加

ssh和https对比

https

HTTP is the protocol used by your browser(or some other web clients) and web servers to communicate and exchange information
HTTPS is just the HTTP protocol but with data encryption using SSL/TLS. When that exchange of data is encrypted with SSL/TLS, then we call it HTTPS. The 'S' stands for Secure
Notice: SSL was renamed to TLS: Transport Layer Security, after 1999. Creating confusion and chaos still to this day

https的关键就在SSL/TLS
通过 TCP 握手打开 TCP 连接后,将发生 TLS 握手

SSL/TLS简要交互过程如下,这里只涉及设计思想而非具体细节,具体细节可以查看RFC文档

  • client -> random1 + available_ciphers -> server. (这里是明文的,所有数据有被中间人攻击的风险,怎么办?
    In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure
  • server -> random2 + certificate(包含公钥、有效期、颁发者信息、签名等)+ chosen_cipher -> client. (这里同样是明文的,证书可以CA验证不怕篡改,random2还是裸奔的,怎么办?就算给random2加上server的私钥签名,中间人一样可以拿server的公钥解开,只是可以看但不可以改,无加密性而只有完整性和真实性
  • client -> server_public_key(random3(aka "pre-master key")) -> server. (random3终于有公私钥机制的保护真实性、机密性和完整性
    可以看到,从random1到random3,数据安全性可以认为是逐强的

now that client and server both have random1, random2 and random3, which are used to generate a symmetrical
session key to encrypt data to be transported
SSL/TLS握手协议结束后会产生只有client和server知道的对称加密秘钥,而该秘钥也用后续所有传输数据的加密。至此,整个握手阶段全部结束。接下来,客户端与服务器进入加密通信,就完全是使用普通的HTTP协议,只不过用"会话密钥"加密内容

问题1:
为什么要用三个随机数来生成"会话密钥"?只用random3不是更好吗?毕竟random3的网络安全是可靠的
原因在于SSL协议不信任每个主机都能产生完全随机的随机数,如果随机数不随机,那么client的pre master key就有可能被猜出来,只用random3计算密钥就不合适了,因此必须引入新的随机因素。客户端和服务器加上pre master secret三个随机数一同生成的密钥就不容易被猜出了,一个伪随机可能完全不随机,可是是三个伪随机就十分接近随机了

问题2:
random1和random2实际上是裸奔的,被改了怎么办?
假设被篡改,那么client和server端的数据不一致,那么算出来的session key也不会一致。那么只要验证一下双方的session key是否一致就可以了
SSL/TLS通信双方把此前所有本地发出的、以及从对方收到的所有字节,按照时间的先后次序,放在一起。比如客户端一共发出5000个字节、服务器发出8000字节,那么双方只要将这13000个字节生成一个Hash,然后用Session Key加密发给对方。
对方用Session Key解密,得到的明文,其实就是对方计算的Hash值。如果与本地计算的Hash值相同,那么说明两件事:

  • 双方的Session Key是一样的,间接说明双方的Master Key是一样的,因为Session Key是由Master Key推导出来的。
  • 此前双方的所有交互报文,没有被篡改、删除、添加,否则双方计算的Hash值不可能相等。
    双方Hash值相同,那么一次成功的TLS安全协商就宣告结束了

ssh

ssh协议的交互过程和https或者说和SSL/TLS是类似的

  • client通过tcp连接server
  • server -> server_public_key -> client
    (首次连接的话会产生
The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?

client自主选择是否信任或者通过比对~/.ssh/known_hosts信任

  • c/s协商对称会话密钥session key

---这里为止都和SSL/TLS基本一致----

  • 之后就到了server校验client用户身份的步骤了。如果使用账号密码登录,那么账号密码会通过session key加密;如果使用ssh public/private key登录,那么client将本次登录会话使用的public key在session key加密后传输到server,server到对应用户目录下~/.ssh/authorized_keys查找该public key,如找到则用该public key加密一个随机数返回给client,client使用私钥解密后还原该随机数并回传server(在ssh整个会话生命周期中,这是私钥的唯一用途),server验证一致则登录成功

两者相同点

  • 公私钥是用来做身份认证的,对称密钥是用来加密会话数据的。其实这个原则是普遍适用的

两者不同点

  • 验证【对端公钥】的机制不同。https下client采用CA证书信任机制验证server端公钥;ssh下由client自主信任server端公钥或者通过比对~/.ssh/known_hosts信任,server端通过比对~/.ssh/authorized_keys信任client端公钥。直白的说,就是通过第三方机构信任公钥和通过自己的公钥簿信任公钥的区别
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容