公钥加密的应用

因为我是信息安全专业的,面试的时候就经常被问到这个,很神奇……

实际上光RSA的应用就太多了,说2个最最常见的吧

1. TLS/SSL

TLS加密首先用公钥加密协商一个私钥出来。

之后用这个协商出来的私钥进行对称加密传输。

(以下摘自维基百科:)

为了生成会话密钥用于安全连接,客户端使用服务器的公钥加密随机生成的密钥,并将其发送到服务器,只有服务器才能使用自己的私钥解密。

利用随机数,双方生成用于加密和解密的对称密钥。这就是TLS协议的握手,握手完毕后的连接是安全的,直到连接(被)关闭。如果上述任何一个步骤失败,TLS握手过程就会失败,并且断开所有的连接。

这样做的好处:

1. 因为公钥加密效率太低,实际传输时必须用对称加密。

2. 对称加密的密钥每次都会更换,由于公钥加密的特点,可以通过加密传递私钥。

 

2. SSH的RSA签名登录

这个在git中有非常广泛的应用,下面介绍一下原理:

假设你有一台自己的PC,叫做A;一台服务器,叫做B。

(*事实上,在我们使用github的时候,我们自己的电脑就是A,github就是B)

你尝试在A上通过SSH登录B。但是每次都要输入SSH密钥,很麻烦,起的太简单又总有弱智破你的弱密钥来DDos,怎么办?

简单,你可以在A上生成一对RSA公钥和密钥,分别存在两个文件里。

然后,把公钥文件拷贝到B上,设置B成为能提供这个公钥的对应私钥的人就可以登录。

(这个过程在github上也是手动的,github的settings中SSH选项里一般都有你之前设置的RSA,只不过你可能已经忘了)

注意这里不是使用RSA加密信息,而是使用RSA签名来认证。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章