公钥算法

Tomcat配置https加密连接

自作多情 提交于 2019-12-05 05:22:49
配置https安全连接(ssl加密连接) https连接需要用到数字证书与数字签名(MD5算法),网站https连接首先需要申请数字证书,配置加密连接器,浏览器安装证书。 证书运用到RSA技术,RSA加密算法是一种非对称加密算法,服务器保留私钥,对外公开公钥(cer证书)。 Tomcat秘钥库类型为JKS(Java Key Storage),很容易知道这是 JAVA 的专属格式,利用 JAVA 的一个叫 keytool 的工具可以进行格式转换。一般用于 Tomcat 服务器。 生成服务端秘钥库 使用java的工具keytool产生数字证书,tomcat.keystore可以写在需要生成的路径。tomcat.keystore存储服务端证书私钥。 keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "tomcat.keystore" //生成秘钥库,并生成别名为tomcat的私钥(条目类型PrivateKeyEntry) 参数说明: -genkeypair:生成一对非对称密钥; -alias:指定密钥对的别名,该别名是公开的; -keyalg:指定加密算法,本例中的采用通用的RAS加密算法; -keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件

RSA加密与解密

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

区块链 - 非对称加密

自闭症网瘾萝莉.ら 提交于 2019-12-04 20:00:44
章节 区块链 – 介绍 区块链 – 发展历史 区块链 – 比特币 区块链 – 应用发展阶段 区块链 – 非对称加密 区块链 – 哈希(Hash) 区块链 – 挖矿 区块链 – 链接区块 区块链 – 工作量证明 区块链 – 交易流程与挖矿 区块链 – 矿工的激励 区块链 – 默克尔树(Merkle Tree) 区块链 – 付款确认 区块链 – 处理冲突 区块链 – 用户隐私 区块链 – 防范攻击 区块链 – 进一步深入了解 非对称加密技术也被称为公钥密码技术(简称PKI)。它使用2个成对的密钥: 公钥 对外公开 私钥 必须严格保密,保管好不能弄丢 密钥本质上是一个数值,使用数学算法产生。可以用公钥加密消息,然后使用私钥解密;反过来也可以使用私钥加密,用公钥解密,这也被称为签名,相当于用私章盖印,对方就可以使用你的公钥来验证签名真伪(能正常解密)。 非对称加密的优点是解决了密钥的传输问题,因为公钥不怕公开。 对于比特币, 如果你泄漏了比特币钱包的私钥,其他人就可以拿走你钱包中的比特币,你也不能追踪到他,因为比特币网络中,所有账号都是一串数字(实际上就是公钥),是匿名的。 非对称加密技术主要有2个作用: 身份验证 消息加密 下面将介绍。 身份验证 当双方通信时,在发送方和接收方之间建立信任是很重要的。特别是,接收者必须信任消息的来源。例如,Bob向Alice发送一些钱

python中的RSA加密与解密

北慕城南 提交于 2019-12-04 17:37:52
什么是RSA:   RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。   在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。   正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。   RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,截止2017年被普遍认为是最优秀的公钥方案之一。 SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥

面试-HTTPS-身份认证

筅森魡賤 提交于 2019-12-04 17:35:47
作者:浩哥的日常 链接:https://zhuanlan.zhihu.com/p/89905893 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 TLS 传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安全及数据完整性保障。 如图, TLS 在建立连接时是需要 客户端发送 ClientHello(包含支持的协议版本、加密算法和 随机数A (Client random) )到服务端 服务端返回 ServerHello、公钥、证书、 随机数B (Server random) 到客户端 客户端使用CA证书验证返回证书无误后。生成 随机数C (Premaster secret) ,用公钥对其加密,发送到服务端 服务端用 私钥 解密得到 随机数C (Premaster secret) ,随后根据已经得到的 随机数ABC生成对称密钥(hello的时候确定的加密算法) ,并对需要发送的数据进行对称加密发送 客户端使用对称密钥(客户端也用随机数ABC生成对称密钥)对数据进行解密。 双方手持对称密钥 使用对称加密算法通讯 而这一流程 服务端的证书 是至关重要的。 证书 证书用来证明公钥拥有者身份的凭证 首先我们需要知道

如何在NEO区块链上实现信息加密

时光总嘲笑我的痴心妄想 提交于 2019-12-04 16:58:58
你或许已经知道,区块链上的交易大多都是透明公开的,用户既可以直接通过RPC查询NEO节点,也可以使用NEOTracker或NEOScan等方便好用的区块链浏览器浏览交易记录、余额、智能合约或区块链上的其他数据。但是,开发某些应用时必须考虑到隐私性,通讯应用就是个典型的例子。如果你想给某人发送一条信息,你想必不希望其他人看到这条信息,因为其中可能包含一些敏感内容。本文笔者将分享一些NEO区块链信息加密的基本知识。 首先让我们再来研究一下NEO区块链交易的剖析图。 NEO交易 上图显示的是交易的基本内存结构。当用户在链上发送GAS或NEO时,钱包客户端就会创建这个数据包并向全网广播。如果你还想了解轻客户端创建或交易基本结构的详情,请参阅Andrei在Steemit上发布的《如何创建NEO轻客户端——区块链开发者的入门“毒品”》。 关于信息通讯,我们关注的只是紧随输入数据之后的元数据,但NEO交易还有一个鲜为人知的功能,即用户可以给任何交易附加交易属性。交易属性是一个广义的概念,基本上指额外的数据信息。所以用户在发送任意数量的NEO或GAS时都可以在交易属性域中附加信息。注:上述机制不适用于NEP-5代币资产。 例如我可以给我的朋友发送0.0000001个GAS并附上信息“你好”。尽管我举例说明的这则信息看似无关紧要,但它却能永久地存储在区块链上,且无法删除。但正如我之前所说的

OpenSSH 服务配置与管理

做~自己de王妃 提交于 2019-12-04 01:52:39
SSH 为 Secure Shell 的缩写,是一种以安全的方式提供远程登陆的协议,也是目前远程管理Linux系统的首选方式,SSH由 IETF 的网络小组(Network Working Group)所制定,SSH为建立在应用层基础上的安全协议,SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题. SSH是一种网络协议,用于计算机之间的加密登录,如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露.最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑.1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置. SSH之所以能保证安全,在于它采用了公钥加密,SSH登陆验证的流程如下: 1.远程主机收到用户的登录请求,并把自己的公钥发给用户. 2.用户接受并使用这个公钥,将登录密码加密后,发送给远程主机. 3.远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录. 这个过程本身是安全的,但是实施的时候存在一个风险,如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪

网络协议-HTTPS协议

…衆ロ難τιáo~ 提交于 2019-12-03 20:57:31
HTTPS 协议 HTTPS协议用于更严肃的场景,例如金钱交易。如果你在网上购物还用的是HTTP协议就有风险了,黑客很可能截获你的HTTP报文,然后伪造成商家骗取你的财富。解决这个问题的思路是加密。加密分为两种,一种是对称加密,一种是非对称加密。 对称加密中,加密和解密的密钥是相同的。非对称加密中,加密和解密使用的密钥是不同的,一把作为公开的公钥,另一把是谁也不能给的私钥。 对称加密 非对称加密 私钥留给自己,公钥留给别人,我发的消息,有公钥的人都能看见,有公钥的人发的消息只有我能看见。但我只想给你看怎么办? 1、我用私钥加密信息,将消息和公钥发出去,你接到后,用我的公钥加密你要发的消息,消息中包含你的公钥。 2、我接到消息,且这个消息只能我接到,我将你的公钥拿出来,加密我想要给你发的消息。 3、我将这个消息发送出去,这个消息只有你的私钥才能解密。这样咱俩就能私密通信了。 但这里有个问题,就是如果有人冒充你,我是不知道的。 数字证书 谁都可以生成私钥和公钥,将公钥发出去,来冒充商家骗取钱财。这时候如果有个像政府部门的机构来发个身份证就好了。数字证书就是互联网上的权威机构发行的身份证。 数字证书里有:公钥、证书所有者、发布机构、有效期。 这个数字证书的颁发机构我们称为 CA(Certificate Authority)。具体操作是用命令发起一个证书请求

计算机网络学习笔记:第七章.网络安全与攻防

丶灬走出姿态 提交于 2019-12-03 20:46:25
本文是《计算机网络》的自学课程,视频地址为: https://www.bilibili.com/video/av47486689。仅做个人学习使用,如有侵权,请联系删除 第七章:网络安全 安全分类 安全有: 数据安全(对文件的访问、储存) 应用程序安全(要确保应用程序是安全的) 操作系统安全(操作系统漏洞,要定时升级、设置用户权限) 网络安全:网络传输信息时的安全 物理安全 用户安全教育 本课程主要关注网络安全 网络安全问题概述 CAIN软件截获信息、篡改信息 CAIN只能对本网段起作用。 使用的原理依然是ARP欺骗 DNS劫持(修改DNS解析的结果) 如果交换机支持监视端口的功能的话,将该设备设置为内网的监视端口设备也能做的这样的效果 CAIN必须结合抓包工具来实现 CAIN只保留账号密码信息 DNS欺骗: DNS常常被用来做钓鱼网站 伪造 伪造身份,从而得以访问有访问控制的资源 例如设置网站只有特定ip才能访问: 直接访问就是这样的: 一般冒充设备要等到原设备关机等时候,防止出现冲突、露出马脚 这个不需要其他软件,直接改ip等就可以 中断 来源: https://baike.baidu.com/item/DoS%E6%94%BB%E5%87%BB DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击

PHP非对称加密

[亡魂溺海] 提交于 2019-12-03 16:56:05
加密的类型: 在日常设计及开发中,为确保数据传输和数据存储的安全,可通过特定的算法,将数据明文加密成复杂的密文。目前主流加密手段大致可分为单向加密和双向加密。 单向加密:通过对数据进行摘要计算生成密文,密文不可逆推还原。算法代表:Base64,MD5,SHA; 双向加密:与单向加密相反,可以把密文逆推还原成明文,双向加密又分为对称加密和非对称加密。 对称加密:指数据使用者必须拥有相同的密钥才可以进行加密解密,就像彼此约定的一串暗号。算法代表:DES,3DES,AES,IDEA,RC4,RC5; 非对称加密:相对对称加密而言,无需拥有同一组密钥,非对称加密是一种“信息公开的密钥交换协议”。非对称加密需要公开密钥和私有密钥两组密钥,公开密钥和私有密钥是配对起来的,也就是说使用公开密钥进行数据加密,只有对应的私有密钥才能解密。这两个密钥是数学相关,用某用户密钥加密后的密文,只能使用该用户的加密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个密钥性质。这里把公开的密钥为公钥,不公开的密钥为私钥。算法代表:RSA,DSA。   以前一直对客户端传给服务器的信息加密这一块一脸懵,如果app里面的用户登录信息被抓包拿到了,大写着 username:root,password:123456, 那不是很尴尬。