要理解SSL就必须理解密码系统、消息摘要函数(单向或散列函数)和数字签名,这些技术是许多文献所讨论的主题(比如[AC96),提供了保密性、完整性和认证的基础。

密码系统

假设Alice想给她的银行发一个消息以划转资金,并希望这个消息是保密的,因为其中含有她的帐号和划转金额等信息。一种方案是使用密码系统,将要 传输的信息转变为加密形式,从而只能为希望他读懂的人读懂。一旦加密为这种形式,这条消息也许只能用一个密钥来破译,如果没有,那么这条信息毫无用处,因 为好的密码系统可以使破译难度高到入侵者认为原文不值得他们花费那么大的努力。

常规密码:又称为对称密码,需要发送者和接收者共同持有一个密钥:一小段用来加密和解密的秘密信息。如果这个密 钥是保密的,那么这条消息除了发送者和接受者以外可能没有人可以阅读。如果Alice和银行共同持有一个密钥,则可以互相发送保密信息。但是,私有通讯密 钥的选择行为本身,却可能不是无懈可击的。

公共密钥密码:又称为不对称密码,定义了一种使用两个密钥的算法以解决密钥交换问题,一个密钥用于加密,另一个用于解密,从而使简单公布一个密钥(公共的密钥,简称:公钥)而保留其他的(私有的密钥,简称:私钥)以接收保密消息成为可能。

任何人都可以用公钥加密一条消息,而仅允许私钥的持有者阅读。如此,Alice就可能使用公钥加密其保密消息,发送给私钥的持有者(银行),只有银行能够对它解密。

消息摘要

虽然Alice可能加密其消息使它称为私有的,但仍应注意到某些人可能会篡改或替换其原始消息,以划转资金到他们自己的帐户。一种保证Alice消息完整性的方法是同时发一个其消息的简单摘要给银行,供银行与消息本身比对,如果相符则消息正确。

这样的方法被称为消息摘要、单向函数或散列函数。消息摘要用于对较大而且变长的消息建立较短而且等长的一种表述,其设计使将摘要还原成消息极其困难,而且对两个不同的消息几乎不可能生成相同的摘要,从而排除了替换一个消息为另一个而维持相同摘要的可能性。

Alice面临的另一个挑战是要保证摘要发送到银行的安全,如此,才能确保消息的完整性。

一种解决方法是在摘要中包含数字签名。

数字签名

当Alice发送消息到银行,银行需要确认此消息的确是她发送的,而不是入侵者盗用其帐号。为此,可以在消息中包含一个由Alice建立的数字签名。

数字签名是以加密的消息摘要和其他信息(比如一个流水号)以及发送者的私有密钥建立的。虽然任何人都可能用公共密钥解密签名,但是只有签发者知道其私有密钥,也就是,只有密钥的持有者才能签发。包含在签名中的摘要只对该消息有效,以确保没有人可以改变摘要而保持签名不变。

为了避免签名日后被入侵者破译和再利用,签名包含有一个流水号。如此,万一(只是假设)Alice并没有发送此消息,虽然她可能真的签发过,银行可以免遭其欺诈性指控。

了解SSL必须要懂得密码技术的更多相关文章

  1. 密码技术之密钥、随机数、PGP、SSL/TLS

    第三部分:密码技术之密钥.随机数.PGP.SSL/TLS 密码的本质就是将较长的消息变成较短的秘密消息——密钥. 一.密钥 什么是密钥? (1)密钥就是一个巨大的数字,然而密钥数字本身的大小不重要,重 ...

  2. Pycrypto与RSA密码技术笔记

    密码与通信 密码技术是一门历史悠久的技术.信息传播离不开加密与解密.密码技术的用途主要源于两个方面,加密/解密和签名/验签 在信息传播中,通常有发送者,接受者和窃听者三个角色.假设发送者Master想 ...

  3. Pycrypto与RSA密码技术

    密码与通信      密码技术是一门历史悠久的技术.信息传播离不开加密与解密.密码技术的用途主要源于两个方面,加密/解密和签名/验签.   pip install pycrypto RSA 密码算法与 ...

  4. 【密码技术】Part 4 SSL/TLS

    01 SSL/TLS基本概念 02 TLS协议流程图

  5. tls/ssl工作原理及相关技术

    https://www.wosign dot com/faq/faq2016-0309-03.htm TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash.对称加密和非对称加密,其利用非 ...

  6. 《图解密码技术》-chaper1-概述

    密码和信息安全常识:  (1)不要使用保密的密码算法.  (2)不要使用低强度密码算法.  (3)密码一定会被破解.  (4)密码只是信息安全的一部分.

  7. 基于HOOK和MMF的Windows密码渗透技术

    随着计算机与网络的普及,信息安全越来越成为人们所普遍关心的大事.密码的渗透与反渗透在此领域表现的愈演愈烈.本文深入分析了各个版本Windows密码的特点,尤其是针对windws2K/XP安全性提高的情 ...

  8. 技术的极限(6): 密码朋克精神(Cypherpunk Spirit)

    上一篇:技术的极限(5): 识别计算与技术背后的心智 下一篇:技术的极限(7): 处理复杂与分层 目录: ** 0x01 数据和App分离 ** 0x02 蒸汽朋克/赛博朋克/密码朋克 ** 0x03 ...

  9. (转)IHS配置安全漏洞: 支持不推荐使用的 SSL 版本、在降级的旧加密上填充 Oracle、检测到 RC4 密码套件、支持弱 SSL 密码套件、 重构 RSA 导出键(又称为 FREAK)

    原文:https://blog.csdn.net/lyd135364/article/details/52179426 都是由于ihs配置中支持不推荐使用的ssl版本和弱密码套件引起的. 只要在配置文 ...

随机推荐

  1. centos6.6 下安装mysql5.7

    背景 没啥好说的,就是需要搭建自己的测试数据库跟研发的数据隔离开来,需要怼mysql 这个方法只适合mysql5.7 # mysql5.6的有差异 步骤 1. 确认线上mysql的版本 SELECT ...

  2. VUE 学习笔记 三 模板语法

    1.插值 a.文本 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值 <span>Message: {{ msg }}</span> v-once ...

  3. window下使用MyCat实现简单的读写分离

    参考文档 MyCat权威指南 MyCat项目主页 学会数据库读写分离.分表分库--用Mycat,这一篇就够了! MyCat安装 Java SDK下载(必须JDK7或更高版本) MYSQL下载 (MyC ...

  4. 任意模数NTT和FFT的玄学优化学习笔记

    本来一直都是写\(7\)次的\(MTT\)的--然后被\(shadowice\)巨巨调教了一通之后只好去学一下\(4\)次的了-- 简单来说就是我们现在需要处理一类模数不为\(NTT\)模数的情况 这 ...

  5. ROS初次实践(小海龟)

    启动ROS Master 启动小海龟仿真器 启动海龟控制节点(方向键控制海龟运动) rqt_graph可视化工具 /rosout节点必须存在,订阅所有节点的日志信息. 当前系统当中存在的节点. 了解当 ...

  6. java使用Redis3--完整模板类

    Redis全部指令请参考:http://www.runoob.com/redis/redis-tutorial.html 对应的java模板类 package com.d.work.redis; im ...

  7. [转] FFmpeg常用基本命令

    [FFmpeg]FFmpeg常用基本命令 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpe ...

  8. nginx的几种负载均衡策略

    转自https://www.cnblogs.com/1214804270hacker/p/9325150.html 一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即 ...

  9. iOS学习笔记(6)——翻译苹果文档About Windows and Views

    About Windows and Views 关于窗口和视图 In iOS, you use windows and views to present your application’s cont ...

  10. Xcode升级到9.3之后pod问题

    最近新建了一个项目,然后在终端pod init的时候出现了问题,复制粘贴部分错误信息 MacBook-Pro:testDemo xywy$ pod init [in /Users/xywy/Deskt ...