IDEA激活码 (2020-12-03)

基础概念:http/https/ssh/ssl/tls——这些基础概念都不理解,还做什么web开发

web开发ssh/ssl/tls/https这些都是基础概念,如果对这些基础概念理解不清或者理解错误,将会导致你某些问题无法理解更无法找到正确解决问题的方向和方案。

什么是SSH

SSH的安全验证机制

1. 基于口令的安全验证

使用账号和口令登录远程主机。所有传输的数据都会被加密,但是不能保证正在连接的服务器就是想要连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到"中间人"这种方式的攻击。

2. 基于密匙的安全验证

创建一对密钥,并把公有密钥放在需要访问的服务器上。客户端软件会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密钥,然后把它和你发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有密钥加密,并把它发送给客户端软件。从而避免被中间人攻击。

SSH登录linux主机的过程

大体过程为linux主机安装ssh server,本地机器安装ssh client。比如linux 上可能会安装open ssh server作为服务器,而本地机器上很多软件都实现了ssh client的功能,比如git,secureCRT,final shell,macterminal。client和server通过上文中的机制进行安全验证。

ssh登录远程主机的命令为:ssh username@host

服务器安装open ssh server的命令为sudo apt-get install openssh-server

大体思路,使用ssh client生成公钥和私钥,然后将公钥copy到服务器的.ssh/authorized_keys中。这样即可实现免密码登录。

SSLTLS

SSLSecure Sockets Layer ,安全套接层;TLSTransport Layer Security,传输层安全。他们都是传输层的网络加密协议。SSH则为应用层协议,也就是说SSH在他们之上,是基于他们的应用层实现。

TLSSSL的替代品TLS协议的优势在于它是与应用层协议独立无关。应用层协议能透明的创建于TLS协议之上。TLS协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

HTTPHTTPS

https是基于ssl的应用层协议。和ssh一样

资源

- sshssl的区别:http://blog.sina.com.cn/s/blog_54829c230102wa98.html

- opensshhttps://w.hancel.net/wiki/OpenSSH

- ssh客户端比较:https://w.hancel.net/wiki/SSH%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%AF%94%E8%BE%83