HTTPS怎么保证安全?(详解)
本篇文章带大家了解一下HTTP存在的问题,介绍HTTPS是怎么保证安全的。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
HTTP存在的问题
1、窃听风险:通信使用明文(不加密),内容可能会被窃听(第三方可能获知通信内容)
2、冒充风险:不验证通信方的身份,因此有可能遭遇伪装
3、篡改风险:无法证明报文的完整性,所以有可能已遭篡改
HTTPS
可以看到 HTTPS的网站,在浏览器的地址栏内会出现一个带锁的标记。
HTTPS并非是应用层一个新的协议,通常 HTTP 直接和 TCP 通信,HTTPS则先和安全层(SSL/TLS)通信,然后安全层再和 TCP 层通信。
SSL/TLS协议就是为了解决上面提到的HTTP存在的问题而生的,下面我们来看一下它是怎么解决的:
1、所有的信息都是加密传输的,第三方无法窃听
2、配备身份验证,防止身份被冒充
3、具有校验机制,一旦被篡改,通信双方会立刻发现
加密
对称加密
加密和解密同用一个秘钥的方式称为 共享秘钥加密,也被叫做对称秘钥加密。
浏览器发送给服务端
client_random
和一系列加密方法服务端发送给浏览器
server_random
和加密方法
现有浏览器和服务器有了三个相同的凭证:client_random
、server_random
和加密方法
用加密方法把 client_random
、server_random
两个随机数混合起来,生成秘钥,这个密钥就是浏览器和服务端通信的暗号。
存在的问题:第三方可以在中间获取到client_random
、server_random
和加密方法,由于这个加密方法同时可以解密,所以中间人可以成功对暗号进行解密,拿到数据,很容易就将这种加密方式破解了。
非对称加密
浏览器发送给服务端 一系列加密方法
服务端发送给浏览器 加密方法以及公钥
之后浏览器通过公钥将数据加密传输给服务端,服务端收到数据使用私钥进行解密。服务端给浏览器发送数据,则使用私钥进行加密,浏览器收到服务端发送过来的数据,使用公钥进行解密。
存在的问题:
非对称加密效率太低, 这会严重影响加解密的速度,进而影响到用户打开页面的速度。
无法保证服务器发送给浏览器的数据安全, 服务器的数据只能用私钥进行加密(因为如果它用公钥那么浏览器也没法解密啦),中间人一旦拿到公钥,那么就可以对服务端传来的数据进行解密了,就这样又被破解了。
HTTPS使用对称加密和非对称加密结合
传输数据阶段依然使用对称加密,但是对称加密的秘钥我们采用非对称加密传输。
浏览器向服务器发送client_random和加密方法列表。
服务器接收到,返回server_random、加密方法以及公钥。
浏览器接收,接着生成另一个随机数pre_master, 并且用公钥加密,传给服务器。(重点操作!)
服务器用私钥解密这个被加密后的pre_master。
到此为止,服务器和浏览器就有了相同的 client_random
、server_random
和 pre_master
, 然后服务器和浏览器会使用这三组随机数生成对称秘钥。有了对称秘钥之后,双方就可以使用对称加密的方式来传输数据了。
CA (数字证书)
使用对称和非对称混合的方式,实现了数据的加密传输。但是这种仍然存在一个问题,服务器可能是被黑客冒充的。这样,浏览器访问的就是黑客的服务器,黑客可以在自己的服务器上实现公钥和私钥,而对浏览器来说,它并不完全知道现在访问的是这个是黑客的站点。
服务器需要证明自己的身份,需要使用权威机构颁发的证书,这个权威机构就是 CA(Certificate Authority), 颁发的证书就称为数字证书 (Digital Certificate)。
对于浏览器来说,数字证书有两个作用:
通过数字证书向浏览器证明服务器的身份
数字证书里面包含了服务器公钥
下面我们来看一下含有数字证书的HTTPS的请求流程
相对于不含数字证书的HTTPS请求流程,主要以下两点改动
服务器没有直接返回公钥给浏览器,而是返回了数字证书,而公钥正是包含数字证书中的;
在浏览器端多了一个证书验证的操作,验证了证书之后,才继续后序流程。
参考
推荐教程:web服务器安全
Atas ialah kandungan terperinci HTTPS怎么保证安全?(详解). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan NginxProxyManager untuk melaksanakan proksi terbalik di bawah protokol HTTPS Dalam beberapa tahun kebelakangan ini, dengan populariti Internet dan kepelbagaian senario aplikasi, kaedah capaian laman web dan aplikasi menjadi semakin kompleks. Untuk meningkatkan kecekapan dan keselamatan akses laman web, banyak tapak web telah mula menggunakan proksi terbalik untuk mengendalikan permintaan pengguna. Proksi terbalik untuk protokol HTTPS memainkan peranan penting dalam melindungi privasi pengguna dan memastikan keselamatan komunikasi. Artikel ini akan memperkenalkan cara menggunakan NginxProxy

Cara menggunakan NginxProxyManager untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Dengan perkembangan Internet, semakin banyak laman web mula menggunakan protokol HTTPS untuk menyulitkan penghantaran data untuk meningkatkan keselamatan data dan perlindungan privasi pengguna. Memandangkan protokol HTTPS memerlukan sokongan sijil SSL, sokongan teknikal tertentu diperlukan semasa menggunakan protokol HTTPS. Nginx ialah pelayan HTTP yang berkuasa dan biasa digunakan dan pelayan proksi terbalik, dan NginxProxy

Nginx ialah perisian pelayan web berprestasi tinggi dan pelayan proksi terbalik yang berkuasa dan pengimbang beban. Dengan perkembangan pesat Internet, semakin banyak laman web mula menggunakan protokol SSL untuk melindungi data pengguna yang sensitif, dan Nginx juga menyediakan sokongan SSL yang kuat, menjadikan prestasi keselamatan pelayan web lebih jauh. Artikel ini akan memperkenalkan cara mengkonfigurasi Nginx untuk menyokong protokol SSL dan melindungi prestasi keselamatan pelayan web. Apakah protokol SSL? SSL (SecureSocket

Aliran kerja https termasuk langkah-langkah seperti permintaan yang dimulakan oleh klien, respons pelayan, jabat tangan SSL/TLS, penghantaran data dan pemaparan sisi klien Melalui langkah ini, keselamatan dan integriti data semasa penghantaran dapat dipastikan.

Langkah-langkah konfigurasi: 1. Dapatkan sijil SSL; 2. Konfigurasikan sijil SSL 3. Edit fail konfigurasi Tomcat; Pengenalan terperinci: 1. Anda perlu mendapatkan sijil SSL, sama ada sijil yang ditandatangani sendiri atau sijil SSL yang sah daripada agensi pensijilan (seperti Let's Encrypt); 2. Letakkan sijil SSL yang diperolehi dan fail kunci peribadi pada pelayan dan memastikan bahawa fail ini Terletak di lokasi yang selamat, hanya pengguna yang mempunyai kebenaran yang mencukupi boleh mengakses; 3. Edit fail konfigurasi Tomcat, dsb.

Sebab ralat ialah ralat ProxySchemeUnknown(proxy.scheme) urllib3 biasanya disebabkan oleh penggunaan protokol proksi yang tidak disokong. Dalam kes ini, urllib3 tidak mengenali jenis protokol pelayan proksi dan oleh itu tidak boleh menggunakan proksi untuk sambungan rangkaian. Untuk menyelesaikan isu ini, anda perlu memastikan bahawa anda menggunakan protokol proksi yang disokong, seperti HTTP atau https Cara menyelesaikan Untuk menyelesaikan isu ini, anda perlu memastikan bahawa anda menggunakan protokol proksi yang disokong, seperti HTTP atau HTTPS . Anda boleh menyelesaikan masalah ini dengan menetapkan parameter proksi urllib3. Jika anda menggunakan proksi http, contoh kod adalah seperti berikut: importurllib3http

Perbezaan antara pengesahan sehala dan pengesahan dua hala: Pengesahan sehala: merujuk kepada pelanggan yang mengesahkan sijil sisi pelayan dan pelayan tidak perlu mengesahkan sijil pelanggan. Pengesahan dua hala: merujuk kepada pelanggan yang mengesahkan sijil sisi pelayan, dan pelayan juga perlu mengesahkan sijil pelanggan melalui sijil kunci awam CA. Proses jabat tangan terperinci: Pengesahan sehala Penyemak imbas menghantar permintaan sambungan kepada pelayan keselamatan. 1. Pelayan menghantar sijil sendiri dan maklumat berkaitan sijil kepada pelayar klien. 2. Pelayar klien menyemak sama ada sijil yang dihantar oleh pelayan dikeluarkan oleh pusat CA yang dipercayainya. Jika ya, teruskan melaksanakan perjanjian jika tidak, penyemak imbas pelanggan akan memberi pelanggan mesej amaran: memberi amaran kepada pelanggan bahawa sijil ini tidak boleh dipercayai dan bertanya kepada pelanggan jika ia perlu diteruskan. 3. Ambil pelanggan

Dalam era Internet hari ini, komunikasi yang selamat telah menjadi bahagian yang sangat diperlukan. Terutamanya dalam komunikasi HTTPS, cara memastikan keselamatannya amat penting. Sebagai pelayan web popular dan pelayan proksi terbalik, tembok api Nginx juga boleh memainkan peranan penting dalam memastikan komunikasi selamat HTTPS. Artikel ini akan membincangkan tembok api Nginx dari aspek berikut. Penyulitan TLS/SSL Keselamatan komunikasi HTTPS terutamanya berdasarkan teknologi penyulitan TLS/SSL, yang boleh menghalang data daripada dihantar semasa penghantaran.
