SSH 远程登录
SSH 已经可以说是一个计算机工程师的计算机所必备的配置了。它主要的用途是登陆到远程电脑中执行命令。在今天这个云开发的时代,它几乎是每个程序员每天都要用到的工具。
介绍
SSH 叫安全外壳协议(Secure Shell),是一种加密的网络传输协议,可以在不安全的网络环境下提供安全的传输环境。早期计算机网络都是明文通信,这导致任何人都可以截获消息,甚至伪造消息。1995年,芬兰学者 Tatu Ylonen 设计了 SSH 协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为所有操作系统的标准配置。
SSH 基本原理
SSH 是一种加密协议,因此在介绍其基本原理之前,我们需要先学习一些密码学的基本概念:
- 明文 plaintext:信息原先的样子,发送方想要让接收方收到的实际信息。
- 密文 ciphertext:明文被加密之后的样子,接收者在没有额外线索的情况下,很难从中还原出明文。
- 密钥 key:可以理解成密文中的“额外线索”,发送者要用密钥把明文加密成密文,而接收者要用密钥把密文还原为明文。
- 私钥 private key:私有的密钥,除了使用者自己之外不能被任何人得知。
- 公钥 public key:公共的密钥,任何人都可以获取。
对称加密
对称加密指的是加密和解密使用的是同一个密钥。比较常用的对称加密算法有 AES,DES 等,但本篇文章不对它们的具体原理进行介绍,感兴趣的同学可以自行查阅。
对称加密的示意图如下:
发送者 sender 提供明文 plaintext 和密钥 key。首先使用 key 按照某种算法加密 plaintext 为密文 ciphertext,随后发送者通过网络 network 发送 ciphertext。接收者与发送者提前约定好了算法的形式,并且统一了密钥 key,因此接收者 reciver 可以提供 key 对从网络中接收到的 ciphertext 进行解密,还原回 plaintext,就可以得到发送者实际上想发送的明文内容。
如果出现窃听者或中间人,因为他们并没有密钥 key,因此就算在 network 中截获了 ciphertext,也很难还原为 plaintext。
对称加密的主要优势是效率高、开销小。但是双方需要交换 key 并确认算法的行为并不是很灵活,也并没有那么安全。特别是在多用户情景下,服务器需要保存每个可能会登陆的用户的 key,还要避免这些 key 泄漏。
非对称加密
相比于对称加密,非对称加密在网络通信中更常用。
正在加载评论...