马哥Linux学习笔记之三——加密

1.明文传输

  ftp,http,smtp,telnet

2.机密性:plaintext-->转换规则-->ciphertext

     ciphertext-->转换规则-->plaintext

完整性:单项加密算法,提取数据特征码。输入一样,输出必然一样;雪崩效应,输入的微小改变,将会引起结果的巨大改变;无论原始数据是多少,结果大小都是相同的;不可逆,无法根据特征码还原原来的数据。

3.密钥

4.对称加密:有加密算法,有密钥

5.密钥交换算法

IKE(Internet Key Exchange,Internet密钥交换协议)

经典的有Diffie-Hellman协议

6.非对称加密算法,公钥加密算法。

这部分来自:www.cnblogs.com/darksir/p/3704198.html

我们先假定一个数据的发送方和一个数据的接收方(就叫小红和小明好了!)

发送方小红拥有一对密钥:一个公钥和一个私钥。

接收方小明也同样拥有一对密钥:一个公钥和私钥。

注意:这四把钥匙(密码)各不相同!

公钥的概念:公钥是可以在网络上传输的,也就是说接收发送双方都可以知道彼此的公钥,当然,如果你用网络嗅探等技术,也可以在网络上嗅探的公钥的内容,但你仅有公钥是无法解密文件的。

私钥的概念:私钥是用户各自私有的,不会在网络中传输(也就是说不需要接收发送双方彼此交换此密钥),这就保证了此密码的安全性,黑客无法在网络中嗅探到该密钥,而是被严格的储存在用户自己的主机中。

公钥和私钥的关系:公钥加密的数据只有私钥可以解锁,私钥加密的数据只有公钥能解锁,而两者都无法自己解锁自己!这一点是保证数据无法被窃取的关键!而公钥和私钥的唯一区别也接就是公钥会互相交换在网络上传输,而私钥自己保留不在网络上传输。

想象以下场景:

发送方小红要向接收方小明发送一封情书(好吧,为了配合下面的图我只能编个女追男的故事,让广大吊丝意淫下!),但是小红呢,女孩子嘛,比较害羞,怕某些别有用心的人偷看到他写给心上人的悄悄话,就利用了加密技术,让网络上无聊的人们无法偷窥到它的情书。

第一步:小红用自己的私钥给情书上了第一道锁,这个私钥只有她自己知道。

第二步:其实两人之前相互了解过(通信过),这个时候已经都拥有的对方的公钥,所以小红又在第一步的基础上用小明的公钥给情书加了第二把锁。

第三步:这个时候小红这边就已经把情书加密好 了,她很满意,因为已经万无一失了!她把加了两把锁的情书发到网络上传送给小明,这个时候网络上的黑客们也许已经在小红和小明初次幽会并交换公钥的时候窃 取到了两人的公钥。但请想想小红的加锁过程,最外面一道锁(第二道锁)是用小明的公钥加密的,也就是说要用小明的私钥来解密才可以打开,但黑客最多只能拥 有两人的公钥,而无法获得小明的私钥,这就有效的避免的数据被窃取,即使黑客截获了情书,也只能看到一堆杂乱无章的乱码,而无法真正得知情书的内容。

第四步:小明顺利的接收到了小红的情书,利用自己的私钥,成功解开的外层的锁。(外层的锁是小红用小明的公钥锁的!)

第五步:小明又拿出了小红的公钥,解开了情书内层的锁。这时候就可确定情书确实是小红发的,而不是其他人伪造来忽悠自己的。(内层的锁是小红用自己的私钥锁的!)

注:整个过程中利用两把锁将数据的传输过程严格加密,数据在传输过程中无法被解密,除非 黑客入侵了接收方(小明)的电脑,窃取了他的私钥。所以,此种方法可以保证在传输过程中是严格保密的,即使收发双方交换的公钥被嗅探到也无法揭秘。当然, 没有绝对的安全,如前面所说,直接被入侵了电脑那就无存在什么秘密了~

Q:假如说小红只用小明的公钥加密,那黑客拿到数据也解不开,为什么要加两道锁呢?

A:小红拿私钥上第一道锁叫做“签名”(保证不会是其他人恶作剧),是为了保证数据来源的真是性。也就是说,如果数据只拿接受放的公钥上锁,黑客虽然解不开,但却可以伪装成发送方向小明 (接收方)发送数据,而接收方小明因数据没有发送方的私钥上锁,无法确定发送方的身份,所以如果一道锁的话,黑客还是有机可乘!

7.非对称加密 & 对称加密

来自:www.cnblogs.com/darksir/p/3705554.html网间数据加密传输全流程(SSL加密原理)

非对称加密:公钥和私钥的加密形式叫做非对称加密,是两把不同的秘钥不想加锁和开锁,自己不能开自己。

对称加密:对称加密就是只有一个秘钥,用它来枷锁也用它来解锁。对称加密存在安全隐含,因为你必须 让发送方和接收方都知道这个秘钥,这就必然要把这个秘钥在网络上传输,这就存在风险。但对称加密也有优点,就是算法是时间复杂度底,加密过程快,而非对称 加密的时间复杂度很高,如果对一段很长的全文都进行非对称加密显然是不现实的。

聪明的人们相出了用非对称加密算法加密对称加密秘钥的方法,就可以做到两者兼得。SSL加密

细细体味,会发现这里有很多巧妙的地方。

  1、利用非对称加密确保了数据的绝对安全性。

  2、利用对称加密加密原文,简化了时间复杂度,同时有用非对称加密加密对称秘 钥,让对称秘钥的传输绝对安全。也许你会想,原文最终还是只用对称加密算法加的密,我们只需要暴力破解这个对称密码就可以了。这里要说明的是,这个对称秘 钥是随机生成的,对用户透明,一般应该也会很长,要破解这个基本上也是不现实的。

  3、利用Hash函数的不可逆性、结果唯一性对数据进行校验,有效的保证了数据的完整性。

马哥Linux学习笔记之三——加密

时间: 2024-10-29 19:12:00

马哥Linux学习笔记之三——加密的相关文章

马哥linux学习笔记:加密,解密基础

在计算机网络建设的初期,由于能使用到计算机的人少之又少,并没有考虑到有数据加密需求,随着社会的发展,互联网已俨然成为我们生活中不可或缺的一部分,人们不管是交流,购物,还是工作都已经离不开互联网.在电脑,手机,各种电子设备构建的互联网中,数据的安全问题已经成为人们很是关注一个重要环节. 现在,我们就来了解一下linux下是如何实现数据加密及解密的. 对于确保数据的安全性,我们要达成的目标有三个: 保密性,完整性,可用性. 现今蛇龙混杂的互联网,总是有很多拥有强烈好奇心的不安分的人想尽办法要获知其他

马哥Linux学习笔记之四——DNS

1.BIND:Berkeley Internet Name Domain DNS:Domian Name Service 域名解析 2. Http 3.PAM 插入式认证模块 4.SMTP/POP3/IMAP4:Mail Server 5.域名 www.baidu.com这是一个主机名(FQDN,Full Qualified Domain Name,完全限定域名),com是一个域名,baidu.com也是一个域名,域名是好多主机的集合. 域名解析起后面有一个数据库,解析就是一个查询的过程.域名解

马哥Linux学习笔记之五——邮件服务

1.SMTP只负责将邮件发送到服务器,其他的,像身份认证检测邮件,都不能完成.(25/tcp) ESMTP:Extended SMTP POP3:Post Office Protocol IMAP4:Internet Mail Access Protocol 2.Open Relay:开放式中继 就是人家的邮件从这个邮件服务器过,你都帮忙转发,这样就会成为产生垃圾邮件的根源.所以都要关闭Open Relay 3.SASL,Simple Authintication Secure Layer,简单

马哥Linux学习笔记之二——网络

1.MAC(Media Access Control,介质访问控制) 是解决底层数据通信冲突的解决方案.因此,给每一个接入这样网络的主机一个id标示符,这个id标示符就叫做MAC地址. 2.CSMA/CD(Carrier Sense Multipath Access Collision Detection,载波侦听多路访问冲突检测),线型网络 以太网Ethernet最核心的标志. 3.Token-Ring(IBM)技术 环形网络解决冲突的方案.但是由于IBM的专利限制没能推广开来. 4.星形网络

马哥Linux学习笔记之一

1.在执行脚本的时候可以用./或者. ./(点空格点斜杠)来执行脚本 ./ 表示启动了另一个Shell去执行脚本(另一个进程),所以点斜杠执行脚本时,设置的环境变量会随着进程的退出而结束,其中的环境变量设置对当前Shell不起作用. . ./相当于source ./执行脚本,source是执行脚本当中的命令,也就是说在当前进程中执行命令,所以其中的环境变量的设置会对当前Shell其作用. 2. 读取硬盘上的文件 读取硬盘上的文件先要将文件读取到内存上,再将其在内存上地址交给进程,这样进程就可以读

马哥linux学习笔记

1,date 时间管理   查看系统时间    date [MMDDhhmm[[CC]YY][.ss] 修改时间 or date -s     +%d 显示几号    +%D 显示 月/日/年  同 +%m/%d/%Y    +%F same as %Y-%m-%d    +%m month    +%H hour    +%M Minute    +%S second    +%T time :same as %H:%M:%S    +%Y year    %n new line    事例1

马哥linux学习笔记:源码编译安装

由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法. 为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2: 首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了. 这里我运行yum gro

马哥linux学习笔记:htop命令使用详解

htop工具在centos官方yum源仓库中是不提供的,但在epel的yum源仓库中是有的,所以我们可以通过源码编译安装htop,也可以设置epel的yum源来用yum命令安装htop,设置epel的yum源方法为: 首先,下载epel官方网站提供的rpm包,然后安装,就可以设置epel的yum源直接使用了: centos6: wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm centos7:

马哥linux学习笔记(bash变量配置)

bash:解释器,编译器 配置文件,生效范围划分,存在两类: 全局配置: /etc/profile,/etc/profile.d/*.sh /etc/bashrc 个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 /etc/profile,/etc/profile.d/*.sh ~/.bash_profile 功用: (1) 定义环境变量,例如PATH.PS1 (2) 运行命令或脚本 bashrc类:为非交