文档库 最新最全的文档下载
当前位置:文档库 › SSL交互过程

SSL交互过程

SSL交互过程
SSL交互过程

SSL消息按如下顺序发送:

1.Client Hello

客户发送服务器信息,包括它所支持的密码组。密码组中有密码算法和钥匙大小;

2.Server Hello

服务器选择客户和服务器都支持的密码组到客户。

3.Certificate

服务器发送一个证书或一个证书链到客户端,一个证书链开始于服务器公共钥匙证书并结束于证明权威的根证书。这个消息是可选的,但服务器证书需要时,必须使用它。

4.Certificate request

当服务器需要鉴别客户时,它发送一个证书请求到客户端。在网络程序中,这个消息很少发送。

5.Server key exchange

服务器当发送来的公共钥匙对钥匙交换不是很充分时,发送一个服务器钥匙交换消息。6.Server hello done

服务器告诉客户完成它的初始化流通消息。

7.Certificate

假如服务器需要一个客户证书时,客户端发送一个证书链。(只有在服务器需要客户证书时) 8.Client key exchange

客户产生用于对称算法的一个钥匙。对RSA客户用服务器公共钥匙加密这个钥匙信息并把它送到服务器。

9.Certificate verify

在网络程序中,这个消息很少发送,它主要是用来允许服务器结束对客户的鉴别处理。当用这个消息时,客户发送用密码函数的数字签名的信息到服务端,当服务端用公共钥匙解密这个消息时,服务器能够鉴别客户。

10.Change cipher spec

客户发送一个消息告诉服务器改变加密模式。

11.Finished

客户告诉服务器它已准备安全数据通信。

12.Change cipher spec

服务器发送一个消息到客户端并告诉客户修改加密模式。

13.Finished

服务器告诉客户端它已准备好安全数据通信。这是client-server握手协议最后一步。

14.Encrypted data

客户同服务器用对称加密算法和密码函数,并用客户发送到服务器的秘密钥匙加密通信。

摘录自《SSL与TLS》

目的:

1. 客户端与服务器需要就一组用于保护数据的算法达成一致;

2. 它们需要确立一组由那些算法所使用的加密密钥;

3. 握手还可以选择对客户端进行认证。

过程:

1. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;

2. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;

3. 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器;

4. 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法)。

5. 客户端将所有握手消息的MAC值发送给服务器;

6. 服务器将所有握手消息的MAC值发送给客户端。

第5与第6步用以防止握手本身遭受篡改。设想一个攻击者想要控制客户端与服务器所使用的算法。客户端提供多种算法的情况相当常见,某些强度弱而某些强度强,以便能够与仅支持弱强度算法的服务器进行通信。攻击者可以删除客户端在第1步所提供的所有高强度算法,于是就迫使服务器选择一种弱强度的算法。第5步与第6步的MAC交换就能阻止这种攻击,因为客户端的MAC是根据原始消息计算得出的,而服务器的MAC是根据攻击者修改过的消息计算得出的,这样经过检查就会发现不匹配。由于客户端与服务器所提供的随机数为密钥产生过程的输入,所以握手不会受到重放攻击的影响。这些消息是首个在新的加密算法与密钥下加密的消息。

刚才所描述的每一步都需要通过一条或多条握手消息来实现。在此先简要地描述哪些消息与哪几步相对应,然后详细描述每条消息的内容。下图描述了各条消息:

第1步对应一条单一的握手消息,ClientHello.

第2步对应一系列SSL握手消息,服务器发送的第一条消息为ServerHello,其中包含了它所选择的算法,接着再在Certificate消息中发送其证书。最后,服务器发送ServerHelloDone 消息以表示这一握手阶段的完成。需要ServerHelloDone的原因是一些更为复杂的握手变种还要在Certifacate之后发送其他一些消息。当客户端接收到ServerHelloDone消息时,它就知道不会再有其他类似的消息过来了,于是就可以继续它这一方的握手。

第3步对应ClientKeyExchange消息。

第5与第6步对应Finished消息。该消息是第一条使用刚刚磋商过的算法加以保护的消息。为了防止握手过程遭到篡改,该消息的内容是前一阶段所有握手消息的MAC值。然而,由于Finished消息是以磋商好的算法加以保护的,所以也要与新磋商的MAC密钥—起计算消息本身的MAc值。

注意,上图中省略了两条ChangeCipherSpec消息。

SSL记录协议:

在SSL中,实际的数据传输是使用SSL记录协议来实现的。SSL记录协议是通过将数据流分割成一系列的片段并加以传输来工作的,其中对每个片段单独进行保护和传输。在接收方,对每条记录单独进行解密和验证。这种方案使得数据一经准备好就可以从连接的一端传送到另一端,并在接收到的即刻加以处理。

在传输片段之前,必须防止其遭到攻击。可以通过计算数据的MAC来提供完整性保护。MAC与片段一起进行传输,并由接收实现加以验证。将MAC附加到片段的尾部,并对数

据与MAC整合在一起的内容进行加密,以形成经过加密的负载(Payload)。最后给负载装上头信息。头信息与经过加密的负载的连结称作记录(record),记录就是实际传输的内容。下图描述了传输过程:

1. 记录头消息:

记录头信息的工作就是为接收实现(receiving implementation)提供对记录进行解释所必需的信息。在实际应用中,它是指三种信息:内容类型、长度和SSL版本。长度字段可以让接收方知道他要从线路上这取多少字节才能对消息进行处理,版本号只是一项确保每一方使用所磋商的版本的冗余性检查。内容类型字段表示消息类型。

2. SSL记录类型:

SSL支持四种内容类型:application_data、alert、handshake和change_cipher_spec。使用SSL的软件发送和接收的所有数据都是以application_data类型来发送的,其他三种内容类型用于对通信进行管理,如完成握手和报告错误等。

内容类型alert主要用于报告各种类型的错误。大多数alert(警示)用于报告握手中出现的问题,但也有一些指示在对记录试图进行解密或认证时发生的错误,alert消息的其他用途是指示连接将要关闭。

内容类型handshake用于承载握手消息。即便是最初形成连接的握手消息也是通过记录层以handshake类型的记录来承载的。由于加密密钥还未确立,这些初始的消息并未经过加密或认证,但是其他处理过程是一样的。有可能在现有的连接上初始化一次新的握手,在这种情况下,新的握手记录就像其他的数据一样,要经过加密和认证。

change_cipher_spec消息表示记录加密及认证的改变。一旦握手商定了一组新的密钥,就发送change_cipher_spec来指示此刻将启用新的密钥。

各种消息协同工作:

正如我们所看到的,SSL是一种分层协议,它以一个记录层以及记录层上承裁的个同消息类型组成。而该记录层又会由某种可靠的传输协议如TCP来承载。下图描述了该协以的结构:

例如:当我们进行网上购物时(比如淘宝),在浏览淘宝网页的时候是不使用SSL的,但是当我们进入登陆界面输入用户名和密码的时候就需要使用SSL.其中我们(客户)与淘宝网站(服务器)一次ssl 连接的完整过程如下图所示:

一文读懂对话式交互技术原理及流程设计

一文读懂对话式交互技术原理及流程设计 一、对话式交互技术 以智能音箱、智能电视为代表的对话式交互,是时下非常火热的、且能够走近我们生活的人工智能子领域。 什么是对话式交互呢?我们首先从一个例子开始。贾维斯,电影《钢铁侠》中那位钢铁侠的AI 管家,他能独立思考、可以实时帮钢铁侠处理各种事情,包括计算海量数据。其中最让观众印象深刻的就是,贾维斯可以随时随地像人一样进行口语交流,来解决钢铁侠的问题。 贾维斯能听、会说,能实时理解主人的对话意图并根据实际场景进行下一步的对话,如果在对话过程中碰到有歧义的情况,他还会追问钢铁侠,让他提供更多的信息来消除歧义。贾维斯的这些能力就是对话式交互要提供的,其中的核心是VUI (V oice User Interface,语音用户界面)的设计。相对于GUI(Graphical User Interface,图形用户界面),VUI 解放了人的双手,某些场景下,简单的一句语音命令就能代替GUI 下鼠标/ 遥控器的多次点击,这带来的不只是方便,还节省了时间。一个好的VUI 系统,能够让用户尽可能通过最少轮次的对话实现既定意图的执行。贾维斯总能在危机时刻帮到钢铁侠,他是一个具有完美VUI 的语音助手。 嗯,我们不要入戏过深,贾维斯是一部电影里的虚拟系统。那么,现实生活中,我们能创造出来一个接近贾维斯的对话式交互系统吗?我们该怎么做呢?呃,很遗憾,以当前的科技发展水平,我们还做不到电影里那么智能,更不用说让机器有意识。但人机交互并不是昨天才发明出来的,人类在这个领域已经探索了几十年,我们可以实现钢铁侠与贾维斯的交互方式,并用这种方式来帮我们处理一些数据或控制我们身边的一些硬件设备(比如让语音助手根据天气提供穿衣建议或者控制厨房和卧室的各个家电),这就是我们要聊的对话式交互技术。 对话式交互技术包括了语音识别/ 合成、语义理解和对话管理三个部分。当下的对话式交互产品主要分两类:以微软小冰为代表的开放域(Open Domain)对话系统和以亚马逊

交互设计概述·全

交互设计概述 1. 探索思想 如果我们问,交互设计是什么??家从 IxDC 的定义中能很快知道答案。 交互设计,又称互动设计(Interaction Design, 缩写 IxD 或者 IaD),是定义、设计?造系统的?为的设计领域。在于定义?造物的?为?式(the “Interaction”,即??制品在特定场景下的反应?式)相关的界?。[]1 很显然,如果根据定义去看,我们应该是云?雾?,根本看不懂它的定义,也?法理解交互设计是什么,又为何如此去定义的。?然,这种?法就不可取。?当?法理解?个东西是什么的时候,不妨问问??,为什么这个东西不是其他什么。 所以与其从正?去理解交互设计是什么,不如进?对它进?质疑与攻讦。当然,我们进?质疑与攻讦的?的,不是为了搞个?新闻,去否定交互设计的价值,?是通过这种质疑,去理解交互设计的合理性,存在的意义,从?加深对于交互设计的理解,在宏观层?去触及交互设计为什么是这样的。毕竟,?个合理的东西,从任何?度进?攻击都不应该会有破绽。 所以,第?件事,我们应该问问,交互设计是不是应该必须存在在世界上的?它的存在是有什么必然性吗?世界上没有交互设计,还能不能正常运作? 交互设计是如何诞?的?交互设计有什么??我们为什么需要去研究交互设计? 只有我们肯定了交互设计存在的合理性,我们才能更好地去理解,什么是交互设计。 2.交互设计存在的合理理性 2.1.界定交互设计的标准是什什么? 既然我们质疑交互设计存在的合理性,我们?先要做的,应该是界定,什么能够称得上是交互设计?能被称为交互设计的界定标准是什么?因为如果没有这个标准,?切皆可以被称为「交互设计」,那么我们所有讨论的案例、理论、设计都将会是没有意义的。我们出?个问题?问?下: ??瓶?的包装设计能不能被称为交互设计? ??个栏杆的指?设计设计能不能被称为交互设计? ?飞机的控制系统仪表盘设计能不能被称为交互设计?

跟我学人机交互界面设计理论与技术及应用——Web前端开发工程师

1.1跟我学人机交互界面理论与技术及应用——Web前端开发工程师 1、Web前端开发相关技术简介 (1)Web前端开发工程师是一个很新的职业 在国内乃至国际上真正开始受到重视的时间不超过5年,Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。 在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。 网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。 (2)RIA技术不断地深入和普及 随着Web 2.0概念的普及和W3C组织的推广,网站重构的影响力正以惊人的速度增长。XHTML+CSS布局、DHTML和Ajax像一阵旋风,铺天盖地席卷而来,包括新浪、搜狐、网易、腾讯、淘宝网等在内的各种规模的IT企业都对自己的网站进行了重构。 为什么它们会对自己的网站进行重构呢?有两个方面的原因: 第一,根据W3C标准进行重构后,可以让前端的代码组织更有序,显著改善网站的性能,还能提高可维护性,对搜索引擎也更友好; 第二,重构后的网站能带来更好的用户体验,用XHTML+CSS重新布局后的页面,文件更小,下载速度更快。 2、了解网站重构的基本目的 网站重构的目的仅仅是为了让网页更符合Web标准吗?不是!重构的本质是构建一个前端灵活的MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript 负责调度数据和实现某种展现逻辑(Controller)。同时,代码需要具有很好的复用性和可维护性。这是高效率、高质量开发以及协作开发的基础。 3、Web前端开发工程师 DHTML可以让用户的操作更炫、更吸引眼球;Ajax可以实现无刷新的数据交换,让用户的操作更流畅。对于普通用户来说,一个网站是否专业、功能是否强大,服务器端是用J2EE+Oracle的强大组合,还是用ASP+Access的简单组合,并没有太明显的区别。 但是,前端的用户体验却给了用户直观的印象。随着人们对用户体验的要求越来越高,

“交互设计”教学设计

课堂教学设计表 学科机械类授课班级 17工业设计 第 1 页

教学媒体的选择 知识点 编号 学习 目标 媒体 类型 媒体内容要点 教学 作用 使用 方式 所得结论 占用 时间 媒体 来源15.1-1 知识 理解 模型 课件 理解交互设计 概念 C举例验 证,建立 概念 B设疑— 播放—讨 论 模型分析的预期结果是学 生认识到:交互设计是“人 类交流和交互空间的设 计”,交互设计成为信息化 社会重点研究方向。 3分钟自制15.1-2 技能 方法 照片 投影 课件 1.交互设计使用情 境 B创设情 境,引发 动机 F播放— 讨论—总 结 案例展示的预期结果是学 生归纳出:交互设计方法 1.目标分析 2.任务分析 3. 界面设计4.技术架构 6分钟 自制 网络 下载 2.交互设计方法实 际应用 G设难置 疑,引起 思辨 B设疑— 播放—讨 论 分组讨论的预期结果是学 生运用设计方法提出新设 计方案,提高学生思维能 力。 4分钟 网络 下载15.1-3 情感图片学科前景展望 J归纳总 结,复习 巩固 F播放— 讨论—总 结 图片分析的预期结果是学 生了解学科发展趋势,培 养学生学习兴趣,激发学 生学习动机。 2分钟自制 ①媒体在教学中的作用分为:A.提供事实,建立经验;B.创设情境,引发动机;C.举例验证,建立概念;D.提供示范,正确操作;E.呈现过程,形成表象;F.演绎原理,启发思维;G.设难置疑,引起思辨;H.展示事例,开阔视野;I.欣赏审美,陶冶情操;J.归纳总结,复习巩固;K.其它。 ②媒体的使用方式包括:A.设疑—播放—讲解;B.设疑—播放—讨论;C.讲解—播放—概括;D.讲解—播放—举例;E.播放—提问—讲解;F.播放—讨论—总结;G.边播放、边讲解;H.其它. 板 书 设 计 第 2 页

解析手机用户的使用习惯与交互设计原则

解析手机用户的使用习惯与交互设计原则 在讨论手机的交互设计方法之前,需要先对手机的用户使用习惯有一些基本的了解,需要对手机的用户体验信息做一些收集整理。收集用户体验信息首先需要确定两个问题:一是确定目标用户群体;二是确定信息收集的方法和途径。 一、用户体验信息收集 在讨论手机的交互设计方法之前,需要先对手机的用户使用习惯有一些基本的了解,需要对手机的用户体验信息做一些收集整理。收集用户体验信息首先需要确定两个问题:一是确定目标用户群体;二是确定信息收集的方法和途径。 在确定目标用户群体的时候,很显然的是,已有产品有过使用和交互经验,具备该产品或系统的交互体验的用户,相比较于那些没有体验的用户,可以为设计提供更多更有效的信息。因此在收集用户体验信息时,应该首先考虑所需设计的产品的用户或是有过类似产品使用经验的用户。在理想的情况下,当用户体验产品的交互时,设计师可以通过某种技术或是研究方法获得用户的全部感官印象,掌握他们的情感体验。然而这些主观的体验信息很难用实验室的方法收集或是客观的科学描述表达出来。因此我们只能寻求贴近实际的近距离接触用户体验的方法,就是深入访谈和现场观察。 我们需要调研的信息有: 1.硬件部分: 手机的持机模式(右手操作、左手操作、双手操作); 手机的操作模式(手指触控、笔触、按键、滚轮、长按); 两种操作模式下的输入方式(全键盘、九键、触屏键盘、手写); 信息反馈形式(屏幕信息输出、声音、振动、灯光)对用户的影响; 2.软件部分: 用户对屏幕信息结构的认识(空间位置、信息排列顺序、信息的分类)

用户对信息导航的使用(菜单、文件夹管理、搜寻特定文件) 用户对信息传达的理解(图形信息、文字信息) 用户对交互反馈的获知(每个操作是否有明确的反馈) 3.积极的用户体验: 特殊交互模式带来的新奇感受——有趣 简洁的操作步骤和有效的信息提醒方式——信任感 软件运行速度,信息处理过程——操纵感和成就感 允许误操作,有效引导——安全感 交互过程中的完美感官体验(视觉、听觉) 类似于电脑操作过程的交互(有电脑使用经验的用户)——熟悉感和成就感品牌元素在交互上的延续性——熟悉感和优越感 4.消极的用户体验: 系统出错、没有提示信息——压力、紧张和茫然 缺少误操作的补救机制——挫败感、压力 交互步骤的繁复难记——挫败感 提示信息的不明确(不符合用户模型)——茫然 过程处理时间过长——焦虑 二、用户分类

相关文档
相关文档 最新文档