公钥加密

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.远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录. 这个过程本身是安全的,但是实施的时候存在一个风险,如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪

图解公钥与私钥

a 夏天 提交于 2019-12-03 23:05:08
在学习ssh时,一定有不少人对公钥和私钥产生过不解。在搜索公钥跟私钥的理解时,发现了这篇有趣的图解小文章,与大家共享。 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4. 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5. 鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7. 鲍勃将这个签名,附在信件下面,一起发给苏珊。 8. 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9. 苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10. 复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11. 后来

网络协议-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, 那不是很尴尬。

Travis-CI自动化测试并部署至自己的CentOS服务器

白昼怎懂夜的黑 提交于 2019-12-03 13:23:54
一直都想自己部署一下自动化测试部署,在了解了 Travis-CI 之后终于准备在这次和小伙伴一起做的一个博客类网站实验下了。 因为这是一个前后端分离的项目,所以我这里只管前端工程的自动化部署,前端主要用Vue脚手架搭建的单页应用。 环境准备 Github公开项目(Travis对 开源项目 是免费,对 私有项目 是收费的) Linux服务器(我这里用的腾讯云的学生机,系统是 CentOS 7.0 ) 终端连接器(我用的 SecureCRT ,自行下载安装,当然XShell等也可以,主要用于连接服务器操作) 自动化部署流程 本地修改代码,提交到指定分支 Travis监听仓库改变 Travis执行 install 和 script 任务(这里可以做一些安装测试构建任务的依赖和测试构建命令) 任务执行成功后,在Travis的 after_success 钩子里面用 ssh免密登陆 服务器 自动在服务器上执行配置的脚本 完成自动部署 Travis项目配置 一、创建Github仓库,初始化工程 在Github创建一个公有(public)仓库。在本地(我的Windows机器)上把仓库拉到本地来,在本地用 vue-cli 初始化vue单页应用(其实初始化单页应用对于这次操作不是必要的,因为我是vue工程,所以先新建一个,后面测试部署的时候方便一点。当然你也可以初始化一些其他的东西

揭开HTTPS的神秘面纱

走远了吗. 提交于 2019-12-03 11:19:51
摘自: https://www.cnblogs.com/hujingnb/p/11789728.html 揭开HTTPS的神秘面纱 在说HTTP前,一定要先介绍一下HTTP,这家伙应该不用过多说明了,大家每天都在用,每一次HTTP请求,都是一次TCP连接。遗憾的是,请求的内容在TCP报文中是明文传输的,任何人截取到请求都可以读取其中的内容,很尴尬。 数据加密 为了防止请求内容被人窃取,在网络传输的路上我们做不了手脚,那就只能对传输的数据报文上做手脚了。对报文内容进行加密就是其中的一种方法。 有一种加密算法叫做对称加密算法,即加密和解密使用同一个秘钥,使用这种算法对请求数据进行加密,中间人因为没有秘钥,无法读取其中的内容。但是,使用这种算法进行加密,肯定要同意秘钥,那秘钥在网络中传输同样存在被窃取的风险啊。 这时,出现了新的加密算法:非对称加密算法,它有两把钥匙,一把叫私钥,是只有自己知道的,另一个叫公钥,可以发到互联网山,随便谁都可以看到,也就是说,传输过程中即使被别人看到也无所谓。这时,A向B发消息时,可以先用B的公钥对数据进行加密,B收到消息后再使用自己的私钥进行解密,中间即使被窃取了,因为没有对应的秘钥,也无法对了数据进行解密。 但是,非对称加密算法要比对称加密算法慢上许多。一个折中的办法,先使用非对称加密算法来传输对称加密的秘钥,以确保秘钥安全送达

Hadoop集群_Hadoop安装配置

会有一股神秘感。 提交于 2019-12-03 10:42:34
1、集群部署介绍 1.1 Hadoop简介   Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为 核心 的Hadoop为用户提供了系统底层细节透明的分布式基础架构。   对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个 HDFS 集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。 MapReduce 框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。   从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。 HDFS 在集群上实现

加密和安全

易管家 提交于 2019-12-03 10:18:04
墨菲定律 墨菲定律:一种心理学效应,是由爱德华·墨菲(Edward A. Murphy)提出的, 原话:如果有两种或两种以上的方式去做某件事情,而其中一种选择方式将导 致灾难,则必定有人会做出这种选择 主要内容: 任何事都没有表面看起来那么简单 所有的事都会比你预计的时间长 会出错的事总会出错 如果你担心某种情况发生,那么它就更有可能发生 安全机制 信息安全防护的目标 保密性 Confidentiality 完整性 Integrity:数据确定完好,不能被篡改 可用性 Usability:read5(高可用性)系统的总体运行时间占全部时间的百分比,百分比越 高,可用性越高,百分比按年计算,%99.9 当机10小时 可控制性Controlability 不可否认性 Non-repudiation 安全防护环节 物理安全:各种设备/主机、机房环境 系统安全:主机或设备的操作系统 应用安全:各种网络服务、应用程序 (文件共享) 网络安全:对网络访问的控制、防火墙规则(iptables -vnL iptables -F) 数据安全:信息的备份与恢复、加密解密 管理安全:各种保障性的规范、流程、方法 安全攻击: STRIDE 1 Spoofing 假冒 (钓鱼网站,可以通过看域名辨别) 2 Tampering 篡改 (发邮件给tom mail -s test tom .或者ctrl

Linux 实现ssh基于key认证

走远了吗. 提交于 2019-12-03 07:38:45
  众所周知ssh是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,它默认工作在tcp的22号端口,具体实现的软件有:openssh(centos默认安装的),dropbear。ssh协议目前有两个版本v1和v2,v1基于CRC-32做MAC,不安全。v2基于DH算法做密钥交换,基于RSA或DSA实现身份认证。所以目前大多流行的Linux都是使用的V2版本。   简单了解了下ssh,我们再来说说他的两种用户登录认证,第一种基于用户名口令的方式,这个方式大家都应该知道,就是我们要想登录Linux,必须要输入相应的用户名口令才可以登录到远程Linux系统,这种方式是交互式方式登录。第二种就是我们今天要说的基于key的方式认知登录。   首先我们来了解下ssh加密通讯的过程   从上图可以看到,客户端上必须存在一对密钥对,我们都知道密钥是成对出现,况且用A的公钥加密只有A的私钥才可以解密。正是因为非对称加密的这个特性,我们不难理解ssh通信也是利用这个特性来确定数据安全的。在服务端也有一对公钥和私钥,它存在的目的也是为了加密和解密数据。ssh加密通讯的流程大致上这样的,客户端要和服务端加密通信,首先客户端需要拿到服务端的公钥,拿到服务端的公钥后,就可以用服务端的公钥对要发送到数据加密,然后发送到服务端,服务端收到这个密文的数据,它会用自己的私钥去解密