对称密钥

TLS/SSL概述

孤街浪徒 提交于 2019-12-06 06:55:06
目录 TLS/SSL协议 设计目的 握手协议 TLS安全密码套件解读 对称加密和非对称加密 对称加密 非对称加密 混合加密 摘要算法 数字签名 数字证书和CA TLS/SSL协议 TLS/SSL位于TCP层和应用层之间,具体如下图所示 设计目的 身份验证 保密性 完整性 握手协议 验证通讯双方的身份 交换加解密的安全套件 协商加密参数 TLS安全密码套件解读 SSL/TLS协议在协商时,会选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件” 密码套件的命名如上所示,格式很固定,基本的形式是:“密钥交换算法+签名算法+对称加密算法+摘要算法” 以上密码套件的意思如下:“握手时使用ECDHE算法进行密钥交换,用RSA签名和身份认证,握手后的通信使用AES对称算法,密钥长度128位,分组模式是GCM,摘要算法SHA256用于消息认证和产生随机数。” 对称加密和非对称加密 对称加密 使用同一把密钥对数据进行加解密 TLS 里有非常多的对称加密算法可供选择,比如 RC4、DES、3DES、AES、ChaCha20 等,但前三种算法都被认为是不安全的,通常都禁止使用,目前常用的只有 AES 和 ChaCha20。 ChaCha20 是 Google 设计的另一种加密算法,密钥长度固定为 256 位 AES加密算法详解 AES:高级加密标准,密钥长度可以是128、192 或

支付相关-证书知识学习4

↘锁芯ラ 提交于 2019-12-06 03:02:50
参考资料:公钥加密 百度百科 资料地址:https://baike.baidu.com/item/%E5%85%AC%E9%92%A5%E5%8A%A0%E5%AF%86 公钥加密 公钥加密,也叫非对称(密钥)加密(public key encryption),属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即 公开密钥 和私有密钥)组成的加密方法。它解决了密钥的发布和管理问题,是目前商业密码的核心。在 公钥加密体制 中,没有公开的是私钥,公开的是 公钥 。 常见算法 RSA 、 ElGamal 、背包算法、Rabin(Rabin的 加密法 可以说是RSA方法的特例)、 Diffie-Hellman (D-H) 密钥交换协议中的 公钥 加密算法、Elliptic Curve Cryptography( ECC ,椭圆曲线加密算法)。使用最广泛的是 RSA算法 (由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是著名的公开金钥加密算法,ElGamal是另一种常用的 非对称加密算法 。 [1] 缘起 该思想最早由雷夫·莫寇(Ralph C. Merkle)在1974年提出,之后在1976年。狄菲(Whitfield Diffie)与赫尔曼(Martin Hellman)两位学者以 单向函数 与单向暗门函数为基础,为发讯与收讯的两方创建金钥。 [2]

支付相关-证书知识学习2

。_饼干妹妹 提交于 2019-12-06 02:55:18
参考资料:关于pfx证书和cer证书 资料地址:https://blog.csdn.net/a1510841693/article/details/84110107 cer证书只包含公钥信息,一般只能用于解密使用(解密该公钥对应的私钥加密的数据)。 pfx证书既可以导出为pfx证书,也可以导出为cer证书。 pfx证书导出时,会提示是否导出私钥,导出私钥即pfx证书,不到出则是cer证书。 如果选择导出私钥,出于安全性考虑,浏览器会提示你指定一个密码用于保护该私钥,日后再次导入该pfx证书时,浏览器会要求你提供该私钥保护密码。 导入pfx证书时,需要指定私钥保护密码,另外还有一个选项“标志此密钥为可导出密钥。这将允许您稍后备份或传输密钥”,出于安全性考虑,该选项默认是不勾选的,如果不勾选,下次从浏览器导出该证书时,则无法导出pfx格式了,只能导出不包含私钥的cer格式了。 -------------------------------------------------------------------------------- 参考资料:pfx 百度百科 资料地址:https://baike.baidu.com/item/pfx/7168664?fr=aladdin 公钥加密技术12号标准。 公钥 加密技术12号标准(Public Key Cryptography

远程登录——SSH

跟風遠走 提交于 2019-12-05 20:46:55
基本知识了解 一、什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录,是一种比较流行的登录应用程序——安全外壳(Secure Shell,SSH),与TELNET一样。SSH利用TCP作为底层传输协议,不过它比TELNET更安全,提供更多的服务。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。 最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。 需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。 二、组成 SSH是应用层协议,由四部分组成 1 SSH运输层协议(SSH-TRANS) 因为TCP不是安全的运输层协议,所以SSH首先使用在TCP之上能够构建安全通道的协议。这个新的层是一个独立的协议,称为SSH-TRANS。当这个协议的软件实现被调用后,它的客户程序和服务器程序先利用TCP协议建立起一条不安全的准连接。然后它们相互交换几个安全参数,并在TCP纸上建立一条安全的信道。它提供的服务有 保密或加密报文的交换 数据的完整性

TCP/IP基础总结性学习(7)

旧时模样 提交于 2019-12-05 17:44:35
确保 Web 安全的 HTTPS 在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效地防止这些问题。 一. HTTP 的缺点 HTTP 主要有这些不足,例举如下: 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文的完整性,所以有可能已遭篡改 HTTP 的缺点: 通信使用明文可能会被窃听由于 HTTP 本身不具备加密的功能,所以也无法做到对通信整体(使用 HTTP 协议通信的请求和响应的内容)进行加密。即,HTTP 报文使用明文(指未经过加密的报文)方式发送。 TCP/IP 是可能被窃听的网络 如果要问为什么通信时不加密是一个缺点,这是因为,按 TCP/IP 协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。所谓互联网,是由能连通到全世界的网络组成的。无论世界哪个角落的服务器在和客户端通信时,在此通信线路上的某些网络设备、光缆、计算机等都不可能是个人的私有物,所以不排除某个环节中会遭到恶意窥视行为。即使已经过加密处理的通信,也会被窥视到通信内容,这点和未加密的通信是相同的。只是说如果通信经过加密,就有可能让人无法破解报文信息的含义,但加密处理后的报文信息本身还是会被看到的。 图:互联网上的任何角落都存在通信内容被窃听的风险 窃听相同段上的通信并非难事。只需要收集在互联网上流动的数据包

6.5最详细的 HTTPS 科普扫盲帖

时间秒杀一切 提交于 2019-12-05 13:49:02
为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常见的例子,用户登陆。用户输入账号,密码,采用HTTP的话,只要在代理服务器上做点手脚就可以拿到你的密码了。 用户登陆 –> 代理服务器(做手脚)–> 实际授权服务器 在发送端对密码进行加密?没用的,虽然别人不知道你原始密码是多少,但能够拿到加密后的账号密码,照样能登陆。 HTTPS是如何保障安全的 HTTPS其实就是 secure http 的意思啦,也就是HTTP的安全升级版。稍微了解网络基础的同学都知道,HTTP是应用层协议,位于HTTP协议之下是传输协议TCP。TCP负责传输,HTTP则定义了数据如何进行包装。 HTTP –> TCP (明文传输) HTTPS相对于HTTP有哪些不同呢?其实就是在HTTP跟TCP中间加多了一层加密层 TLS/SSL 。 神马是TLS/SSL? 通俗的讲,TLS、SSL其实是类似的东西,SSL是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在提到HTTPS,加密套件基本指的是TLS。 传输加密的流程 原先是应用层将数据直接给到TCP进行传输,现在改成应用层将数据给到TLS/SSL,将数据加密后,再给到TCP进行传输。 大致如图所示。 就是这么回事。将数据加密后再传输

.net中加密与解密

主宰稳场 提交于 2019-12-05 06:54:23
.Net中的加密解密 引言 在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全。本文将简单地介绍了加密解密的一些概念,以及相关的数字签名、证书,最后介绍了如何在.NET中对数据进行对称加密和解密。 加密和解密 说到加密,可能大家最熟悉的就是MD5了,记得几年前我刚开始接触Web编程的时候,研究的一个ASP论坛程序,它的用户密码就是采用的MD5进行加密。MD5实际上只是一种散列运算,或者可以称为单向的加密,即是说无法根据密文(加密后的数据),推导出明文(原数据)。而我们下面要说明的,是在加密后可以进行解密、还原数据的。对于欲进行加密的对象,有的人称为消息,有的人称为数据,有的人称为信息,为了避免混淆,在本文后面部分,我统一将其称为 消息 。那么加密是什么呢?加密是通过对消息进行编码,建立一种安全的交流方式,使得只有你和你所期望的接收者能够理解。 那么怎么样才能叫安全呢?消息在接收方和发送方进行安全传递,一般要满足下面三个要点: 消息的发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密)。 消息的接收方可以确定消息是由谁发送的(消息的接收方可以确定消息的发送方)。 消息的接收方可以确定消息在途中没有被篡改过(必须确认消息的完整性)。 加密通常分为两种方式:对称加密和非对称加密,接下来我们先看看对称加密。 对称加密

iOS开发如何避免安全隐患

独自空忆成欢 提交于 2019-12-05 05:51:14
现在很多iOS的APP没有做任何的安全防范措施,导致存在很多安全隐患和事故,今天我们来聊聊iOS开发人员平时怎么做才更安全。 一、网络方面 用抓包工具可以抓取手机通信接口的数据。以Charles为例,用Charles可以获取http的所有明文数据,配置好它的证书后就可以模拟中间人攻击,获取https加密前的明文数据。 1.1 中间人攻击 先简要地说下什么是中间人攻击: ①客户端:“我是客户端,给我你的公钥” -> 服务端(被中间人截获)。 所以现在是: 客户端->中间人 ②然后中间人把消息转给服务端,也就是: 中间人->服务端 ③服务端把带有公钥的信息发送给客户端,但是被中间截获。所以是: 服务端-[服务端的公钥] ->中间人 ④中间人把服务端的公钥替换成自己的公钥,发送给客户端,声称是服务端的公钥: 中间人-[中间人的公钥] ->客户端 ⑤客户端用得到的公钥加密,实际是用中间人的公钥进行加密,所以中间人可以用自己的私钥解密,获取原始数据,然后再用服务端的公钥对原始数据(或者修改原始数据内容)加密后发送给服务端。 这样中间人就可以获取到双方的通信数据,并可以制造虚假数据。 1.2 如何防范中间人攻击? 下面开始说如何防范: 1.2.1 SSL Pinning SSL Pinning的原理就是把服务端的公钥存到客户端中,客户端会校验服务端返回的证书是否和客户端保存的一致

详解公钥、私钥、数字证书的概念

谁都会走 提交于 2019-12-05 04:51:11
加密和认证   首先我们需要区分加密和认证这两个基本概念。    加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。 公钥和私钥 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。 在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。   公钥私钥的原则: 一个公钥对应一个私钥。 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。 用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和私钥。 公钥

RSA加密与解密

拜拜、爱过 提交于 2019-12-05 02:18:21
数据信息安全对我们每个人都有很重要的意义,特别是一些敏感信息,可能一些类似于收货地址、手机号还没引起大家的注意。但是最直白的,银行卡、姓名、手机号、身份证号,如果这些信息被黑客拦截到,他就可以伪装成你,把你的钱都取走。那我们该怎么防止这样的事情发生?报文加密解密,加签验签。 我害怕什么 我害怕卡里的钱被别人取走 我害怕转账的时候,报文被黑客拦截到,篡改信息转到别人的账户。 我害怕我的敏感信息被有心人获取 做一笔游戏充值,半个小时就收到各种游戏广告,我并不能抵挡诱惑 我要做什么 交易报文不被篡改 防止报文被篡改,需要对报文进行验签操作。 敏感信息不被读取 防止报文被读取,则需要将敏感信息加密。 公钥和私钥 公钥和私钥,加密解密和加签验签。加解密用来保证数据安全,加签验签用来证明身份。 商户生成一对公私钥(商公,商私),商户会把公钥给银行;银行也会生成一对公私钥(银公,银私),银行会把公钥给商户。也就是说:商户有银行的公钥,自己的公钥和私钥。银行有商户的公钥,自己的公钥和私钥 加密解密保证数据安全: 商户使用自己公钥加密,银行没有商户私钥解不开报文,排除 商户使用自己的私钥加密,银行使用商户公钥解密。理论上可行,然而会出现这种情况,商户和银行1,2,3都使用相同的公私钥,那么自己私钥加密后发送给银行1的报文,被银行2截取到也可以被解密开,违背了我们加密的目的--保证数据安全,排除。