对称密钥

关于密钥和数字证书

故事扮演 提交于 2019-11-27 14:04:44
  前些天逛技术网,偶尔看到一篇国外关于密钥的通俗易懂的详解文章,当时对具体的细节还是有点模糊搞不清楚,so昨天恶补了一下,今天简单整理一下自己的收获,以备以后回顾。 1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2.鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。 3.苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果。 4.鲍勃收信后,用私钥解密,看到信件内容。 5.鲍勃给苏珊回信,写完后用Hash函数,生成信件的摘要(digest)。 6.然后,鲍勃使用私钥,对这个摘要加密,生成”数字签名”(signature)。 7.鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。因此,他就可以冒充鲍勃,写信给苏珊。 11.苏珊发现,自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找”证书中心”(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成”数字证书”(Digital

浅谈https\\ssl\\数字证书

只愿长相守 提交于 2019-11-27 14:04:10
全球可信的 SSL数字证书 申请: http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。 名词解释 首先解释一下上面的几个名词: https: 在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议。http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层。从发送端看,这一层负责把http的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成http的内容。 SSL(Secure Socket Layer): 是Netscape公司设计的主要用于WEB的安全传输协议。从名字就可以看出它在https协议栈中负责实现上面提到的加密层。因此,一个https协议栈大致是这样的: 数字证书: 一种文件的名称,好比一个机构或人的签名,能够证明这个机构或人的真实性。其中包含的信息,用于实现上述功能。 加密和认证: 加密是指通信双方为了防止铭感信息在信道上被第三方窃听而泄漏,将明文通过加密变成密文,如果第三方无法解密的话,就算他获得密文也无能为力;认证是指通信双方为了确认对方是值得信任的消息发送或接受方,而不是使用假身份的骗子,采取的确认身份的方式

了解一下密钥交换算法ECDH

一世执手 提交于 2019-11-27 13:35:41
搬一下别人的解释: 下面我们以Alice和Bob为例叙述Diffie-Hellman密钥交换的原理。 1,Diffie-Hellman交换过程中涉及到的所有参与者定义一个组,在这个组中定义一个大质数p,底数g。 2,Diffie-Hellman密钥交换是一个两部分的过程,Alice和Bob都需要一个私有的数字a,b。 下面是DH交换的过程图: 本图片来自wiki 下面我们进行一个实例 1.爱丽丝与鲍伯协定使用p=23以及g=5. 2.爱丽丝选择一个秘密整数a=6, 计算A = g^a mod p并发送给鲍伯。 A = 5^6 mod 23 = 8. 3.鲍伯选择一个秘密整数b=15, 计算B = g^b mod p并发送给爱丽丝。 B = 5^15 mod 23 = 19. 4.爱丽丝计算s = B a mod p 19^6 mod 23 = 2. 5.鲍伯计算s = A b mod p 8^15 mod 23 = 2. ECDH密钥交换: ECDH: ECC算法和DH结合使用,用于密钥磋商,这个密钥交换算法称为ECDH。交换双方可以在不共享任何秘密的情况下 协商出一个密钥 。ECC是建立在基于椭圆曲线的离散对数问题上的密码体制,给定椭圆曲线上的一个点P,一个整数k,求解Q=kP很容易;给定一个点P、Q,知道Q=kP,求整数k确是一个难题。ECDH即建立在此数学难题之上

AWS 身份及验证服务(四)

怎甘沉沦 提交于 2019-11-27 13:16:45
IAM 概述 集中管理访问AWS资源的访问权限和用户身份认证 支持联合访问管理,支持LADP第三方服务 (Identity Provider) 是非区域相关的服务,全局有效 创建用户、组和角色以应用策略 安全凭证类型包括: 电子邮件和密码、IAM用户名和密码、访问密匙、多重验证(MFA)、密匙对 密码策略管理和KMS加密解密管理 建议始终使用创建和管理IAM账户来进行操作 IAM遵循最低特权原则,即所有权限被隐式拒绝,而显式拒绝拥有最高优先级 IAM是权限与实体进行匹配的正式语句 策略可以应用于任何实体,包括用户、组和角色 策略可以一对多也可以多对一 委托人 委托人是允许与AWS资源交互的IAM实体,可以是人或应用程序,也可以是临时或永久的。 有三种委托人身份:根用户、IAM用户(组)和角色 根用户 第一次创建AWS时的登录主体,可以完全访问所有账户中的AWS资源与服务 强烈建议不要将根账户用于任何的日常任务或是管理员 必须安全的锁定根用户的用户凭证 根用户也是Billing Account 等同于Owner ,创建AWS账户的实体和Email地址 IAM用户 可以通过IAM服务创建持久性身份,可以是个人或应用程序 IAM用户可以随时由IAM管理权限的主体创建 需要提供与AWS交互的方法, 支持AWS控制台用户名密码、CLI或者SDK等方式管理IAM用户

区块链扫盲:区块链技术初探(一)

妖精的绣舞 提交于 2019-11-27 12:40:43
一、区块链技术 1. 什么是区块链? 去中心化的、分布式的、区块化存储的数据库 存储全部账户余额及交易流水的总账本 每个节点有完整的账本数据 账本数据记录了全部的历史交易数据 交易数据存储在区块上 每个区块包含前一区块ID及HASH,形成链 2. 区块链基本原理 如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。 交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录 区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识 链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。 3. 区块链要解决的问题 如何去中心化地共享数据? 如何确保账户不被冒用? 如何确保账户余额足够? 如何确保交易记录不被篡改? 谁负责记账? 怎么保障记账者的可信? 怎么保障记账者的积极性? 4. 区块链特性 去中心化 开放性(没有限制,开源,数据公开) 去信任(仅信任机器) 自治性,集体维护 可靠的数据库(不可更改,永远可访问) 匿名性,隐私保护 5. 核心技术 P2P网络、数字签名、区块化数据库,竞争记账权、共识算法、交易回溯。 二、P2P网络及通讯技术(分布式技术网络 ) 1. 自动发现 通过种子文件,获取初始节点(地址及端口)

基于MbedTLS的AES加密实现,含V7,V6和V5的配套测试例程

隐身守侯 提交于 2019-11-27 09:36:36
说明: 1、mbedTLS的前身是PolarSSL,开源免费。 主要提供了的SSL/TLS支持(在传输层对网络进行加密),各种加密算法,各种哈希算法,随机数生成以及X.509(密码学里公钥证书的格式标准)的支持。 2、mbedTLS支持的加密算法含对称加密和非对称加密 (1)mbedTLS支持的对称加密算法有:AES,ARCFOUR,Blowfish/BF,Camellia,DES/3DES,GCM,XTEA 加密和解密用到的密钥是相同的,加密速度快,适合数据收发通信,缺点是密钥的传输略麻烦。 (2)mbedTLS支持的非对称加密算法有:Diffie-Hellman-Merkle,RSA,Elliptic Curves over GF(p),Elliptic Curve Digital Signature Algorithm (ECDSA)和Elliptic Curve Diffie Hellman (ECDH) 加密和解密用的密钥是不同的,加密的速度慢,适合密钥的传输。 3、关于AES加密,简单的说就是下面图示,由密钥和要解码的数据,通过算法生成密文,然后发给接受者,接受者使用相应的密钥解密数据。 4、现在研究下这个,主要是方便后面新版RL-TCPnet V7.X教程和对应的物联网教程做好铺垫。 例子说明: 1、使用的256bit AES加密。 2

加密接口如何测试?

半城伤御伤魂 提交于 2019-11-27 09:32:23
随着互联网技术的发展,服务安全性和数据安全性变的越来越重要,提供接口服务的系统往往会应用各种加密技术,保证接口的安全调用,如何应用工具来实现加密接口测试成为一项必要技能。在讲解如何用Jmeter实现接口安全性测试之前,先来了解一下常见的加密算法,测试同学可根据不同的加密算法类型和程序猿&程序猿沟通,获取所需的信息,实现加密接口的处理。 摘要算法 对明文编码生成信息摘要,以防止被篡改。比如MD5使用的是Hash算法,无论多长的输入,MD5都会输出长度为128bits的一个串。 摘要算法不要秘钥,客户端和服务端采用相同的摘要算法即可针对同一段明文获取一致的密文 对称加密 对称加密算法是共享密钥加密算法,在加密解密过程中,使用的密钥只有一个。发送和接收双方事先都知道加密的密钥,均使用这个密钥对数据进行加密和解密。 数据加密:在对称加密算法中,数据发送方将明文 (原始数据) 和 加密密钥一起经过加密处理,生成复杂的密文进行发送。 数据解密:数据接收方收到密文后,使用加密的密钥及相同算法的逆算法对加密的密文进行解密,将使其恢复成可读明文。 非对称加密 非对称加密算法,有两个密钥,一个称为公开密钥 (publickey),另一个称为 私有密钥 (private key),加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。 如果使用公钥对数据进行加密,只有用对应的私钥才能进行解密

网络安全 与 加密算法

大兔子大兔子 提交于 2019-11-27 07:12:33
计算机中的网络安全 在本篇中介绍了以下几个方面: 机密性 密码学 对称加密算法(DES, 3DES, AES) 公开秘钥算法 RSA大素数的获取 完整性 散列函数(MD5, SHA-1, 并没有提及算法实现) 报文鉴别(MAC) 数字签名 端点鉴别 应用 SSL(TCP网络安全) 运行时安全 防火墙的基本知识 主要体现在以下几个方面: 机密性, 即发送的信息只有双方彼此能够解读,其他人以任何方式皆无法解读。 报文完整性, 即接收方需要能够验证,当前接收到的数据是完整的,没有被经过篡改的。机密性与完整性是相互独立的两个属性。 端点鉴别, 需要知道我收到的消息, 确确实实是来自于对方, 而不是恶意方伪装的。 运行性安全, 需要能够识别并阻拦恶意攻击。如 Dos攻击等, 其目的并非为了窃取信息,而是使得系统瘫痪, 无法运行。 机密性 首先来看机密性问题, 小明和小红之间发送的有效信息 不希望被第三方解读。 而实现这点的方式自然是, 加密, 加密,就需要相关的密码。 密码学 加密所要实现的根本目的是,将数据加密,除非拥有相关的秘钥,算法,才能够 也 必须能够 将数据恢复到 原始数据。 这里的原始数据被称作 明文 , 小明使用了 加密算法 加密其明文, 生成的文本为 密文 , 加密算法是公知的,而 秘钥 是私有的. 对称秘钥体系 凯撒密码 是一种简单的加密算法。 对于字母而言, 约定 用

https的加密解密过程

≯℡__Kan透↙ 提交于 2019-11-27 07:03:35
前置知识 SSL是90年代Netscape弄出来的一套东西,为的是解决HTTP协议明文传输数据的问题。后来SSL慢慢成了事实上的标准,于是IETF就把SSL标准化了,名字叫做TLS,TLS 1.0其实就是SSL 3.1。所以SSL和TLS经常被放在一起写成SSL/TLS,因为这两个名词在现在其实就是同一个东西。HTTPS是使用TLS的HTTP协议。 证书以及信任链 我们知道,HTTPS的网站都有一个自己的证书,用于表明自己的身份。证书本质上是为了让公钥能可信的传输。公钥是放在证书里面的,如果证书可信,那么公钥就也是可信的。那为什么一个公钥是可信的呢?这就要说到信任链和CA。CA指的是Certificate Authority,CA都是权威机构,他们的证书叫做根证书,这些根证书被操作系统信任,根证书信任的证书也是可信的。因此权威机构颁发的证书都能被操作系统信任,这就组成了信任链。 这里以RSA密钥交换算法为例为例,CloudFlare提供Keyless服务,把网站放到它们的CDN上,不用提供自己的私钥,也能使用SSL加密链接。 https加密解密过程 : 客户端 发起https请求 到服务端(服务器端要一套数字证书,可以自己制作,也可以向组织申请),向服务器端索要公钥。 发送的信息一般带上: 客户端生成的一个随机值 支持的SSL/TSL协议的版本号 所支持的加密算法 Session

网络安全知识点

我只是一个虾纸丫 提交于 2019-11-27 06:09:56
第一章 网络安全概述 1.2.1 网络安全概念 P4 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 1.2.3 网络安全的种类 P5 ( 1 )物理安全 ( 2 )系统安全 ( 3 )电子商务 ( 4 )协议安全 ( 5 )应用系统安全 1.3.5 网络攻击分类 P11 ( 1 )主动攻击:包含攻击者访问他所需信息的故意行为。 ( 2 )被动攻击:主要是收集信息而不是进行访问,数据的合法用户对这种一点也不会察觉到。被动攻击包括嗅探、收集信息等攻击方法。 1.3.6 常见网络攻击形式 P11 ( 1 )逻辑炸弹( 2 )系统 Bug ( 3 )社会工程学( 4 )后门和隐蔽通道( 5 )拒绝服务攻击( 6 )病毒、蠕虫和特洛伊木马( 7 )网络监听( 8 ) SQL 注入攻击( 9 ) ARP 欺骗 1.6 常用网络安全技术 P22 (1) 网络监控技术( 2 )认证签名技术( 3 )安全扫描技术 (4) 密码技术( 5 )防病毒技术( 6 )防火墙技术( 7 ) VPN 技术 1.7 常用网络密码安全保护技巧 P23 ( 1 )使用复杂的密码( 2 )使用软键盘( 3 )使用动态密码(一次性密码)( 4 )网络钓鱼的防范( 5 )使用 SSL 防范 Sniffer ( 6