【2016美团】浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了如下哪些技术

A.非对称加密技术
B.对称加密技术
C.散列(哈希)算法
D.数字证书

答案:ABCD

HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议是一套加密传输的协议,使用了非对称加密,对称加密以及HASH算法。握手过程的简单描述如下: 1.浏览器将自己支持的一套加密规则发送给网站。 2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。 3.获得网站证书之后浏览器要做以下工作: a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。 b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。 c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。 4.网站接收浏览器发来的数据之后要做以下的操作: a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。 b) 使用密码加密一段握手消息,发送给浏览器。 5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。 这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下: 非对称加密算法:RSA,DSA/DSS 对称加密算法:AES,RC4,3DES 

HASH算法:MD5,SHA1,SHA256

时间: 2024-10-27 18:13:09

【2016美团】浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了如下哪些技术的相关文章

浏览器与服务器的消息通信

最近工作中遇到一个场景,商家在商家后台需要实时的获取到有没有新订单,有的话是几个:这个需求类似与日常中使用QQ或者微信时的新信息提醒一样,只要有新信息就需要提醒:商家基本在PC上使用,各式浏览器都有:如 IE系列(7.0,8.0,9.0及以上),chrome内核,firefox等:功能所属的部署在Tomcat 6.0上,如果技术需要可以部署到 Tomcat 7.0上; 我们先做做技术调研,这种浏览器与服务器实时通信的方式有哪些方式. AJAX轮询 这是我们最自然想到的. 采用常规AJAX轮询的方

如何实现浏览器向服务器伪造refer?

Request URL:https://www.getwnmp.org/ Request Method:GET Status Code:304 Remote Address:45.55.134.251:443 Response Headers date:Mon, 15 Aug 2016 16:08:20 GMT etag:"5786713f-ef5" last-modified:Wed, 13 Jul 2016 16:50:07 GMT server:nginx status:304

Linux运维之加密/解密原理、自建CA及搭建基于https的Apache

上几次博文我们具体讨论了Apache(httpd)的基础知识: HTTP协议基础(参见博文:http://sweetpotato.blog.51cto.com/533893/1656137) Apache2.2的基本配置(参见博文:http://sweetpotato.blog.51cto.com/533893/1657668) Apache2.2的虚拟主机(参见博文:http://sweetpotato.blog.51cto.com/533893/1660229) 本次博文我们具体讨论下加密/

通过WebSocket实现浏览器与服务器的通信

现如今有个需求,基于websocket实现浏览器与服务器的通信.由于之前没有使用过websocket,在网上大致搜索了一圈,寻找websocket的集成方案.网上寻找的方案大致如下:1.基于spring的方式实现,加入spring-websocket依赖,加注解,配置相应的拦截器和路径;2.基于springBoot的方式,本质上还是基于spring;3.基于J2EE应用服务器,好像从tomcat7开始有提供websocket支持,直接用@WebsocketEnd 可实现,该注解由servlet包

基于https搭建加密访问站点

一.基础知识 httpd: ssl ssl模块 单独成包 ssl会话基于IP地址创建,所以,每一个IP仅创建一个SSL会话: ssl握手要完成的工作: 交换协议版本号 选择双方都支持的加密方式 客户端对服务器端实现身份验正 密钥交换 https协议: 基于SSL二进制编码, 443/tcp openssl s_client 客户端验正服务器端证书: 有效性检测:证书是否仍然在有效期内 CA的可信度检测: 证书的完整性检测: 持有者的身份检测 二.Openssl知识的回顾 Cd /etc/pki/

建立基于https的web服务

先安装openssl [[email protected] ~]# yum install openssl 搭建私有CA服务器 修改openssl.cnf配置文件 [[email protected] ~]# vim /etc/pki/tls/openssl.cnf dir=/etc/pki/CA 创建相关的文件 [[email protected] ~]# cd /etc/pki/CA [[email protected] ~]# makdir certs newcerts crl [[ema

在 Django/Flask 开发服务器上使用 HTTPS

使用 Django 或 Flask 这种框架开发 web app 的时候一般都会用内建服务器开发和调试程序,等程序完成后再移交到生产环境部署.问题是这些内建服务器通常都不支持 HTTPS,我们想在开发的时候就能够使用和测试 HTTPS,不想还没测试就部署到生产环境,所以我们需要内建服务器能支持 HTTPS. 这个问题可以通过一个外部程序 stunnel 来解决,stunnel 的作用是通过 OpenSSL 库对 TCP 会话进行加密,建立起一个安全通道,保护没有加密功能或未加密的程序.其主要功能

浏览器和服务器交互解析

目前来说,网站页面主要分为静态页面和动态页面,纯静态页面组成的网站现在相对比较少见,大型网站一般使用的是动态网站建站技术,还有一部分网站是静态网页与动态网页共存,本文以Apache服务器.php语言为例,详解动态网站的访问过程,下面直接切入本文主题. (1)用户端访问服务器端的html文件 S1:通过本机配置好的DNS域名服务器地址寻找DNS服务器,将网站URL中的Web主机域名解析为Web服务器所在的Linux操作系统(Apache通常与Linux操作系统组合使用)中对应的IP地址. S2:通

windows server 2003搭建CA服务器并启用https(SSL)

本文简单讲解在Windows server 2003上如何搭建CA服务,并启用SSL.废话不多说,直接开始搭建环境.想要知道证书服务器CA是怎么一回事,或想要知道SSL原理的朋友,请自行百度,说的非常清楚一. 搭建证书服务器1. 在系统的控制面板中找到"添加或删除程序",点击打开2. 点击左侧"添加/删除windows组件",选中网络服务和证书服务,点击下一步这里为什么还要选择网络服务和应用程序服务呢,因为"证书服务web注册支持"依赖于IIS3