设为首页 收藏本站
查看: 597|回复: 0

[经验分享] Linux学习笔记:Linux服务以及服务的安全

[复制链接]

尚未签到

发表于 2018-5-17 11:01:38 | 显示全部楼层 |阅读模式
  一、数据加密和解密
  

  进程间通信:
  同一主机内的进程间通信:
  发送信号(signal),
  共享内存(shm),
  semaphore
  message queue, MQ, RabbitMQ
  

  不同主机之间的进程间通信:
  Socket-pair,套接字对儿;
  

  三种类型的套接字:
  流套接字(Socket_Stream):基于TCP协议通信的套接字;
  数据报套接字(Socket_Dgram):基于UDP协议通信的套接字;
  裸套接字,原始套接字(Socket_Raw):基于底层协议通信的套接字
  

  套接字Socket:IP:PORT
  进程的地址标识;
  一个套接字就是指某个特定主机上的特定应用程序;
  

  大多数情况下,网络通信都是从客户端到服务器的通信;对于服务器来说,必须要有套接字的监听机制,即进程的监听模式,而通常来讲,把具有这种监听模式的进程,称为守护进程,或者叫服务进程;
  

  服务进程所监听的套接字资源,是在其启动之前向内核申请注册得到的;而且,套接字资源是所有的服务进程独占的资源,具有排他性;
  

  端口号:
  0:默认没有被使用;
  1~1023:众所周知的端口,固定的端口;
  1024~49151: 注册端口
  MySQL:3306
  Memcached:11211
  Tomcat:8091
  49152~65535:动态端口,为客户端进程提供的随机选择端口
  

  安全实现的目标:
  机密性:confidentiality,保证信息不泄露
  完整性:integrity,保证信息不被篡改
  可用性:availability,保证信息内在价值
  

  威胁
  威胁机密性的攻击行为:
  窃听
  嗅探
  扫描
  通信量分析
  

  威胁完整性的攻击行为:
  更改
  伪装
  重放
  否认
  

  威胁可用性的攻击行为:
  拒绝服务 (DoS)
  

  安全解决方案:
  技术:加密和解密:
  传统的加密方法:
  替代加密算法;
  置换加密算法;
  现代的加密方法:
  块加密算法:
  

  

  服务:安全服务:
  身份认证;
  访问控制机制;
  

  加密方案:
  

  加密算法和密钥;
  

  加密算法:
  对称加密算法
  公钥加密算法
  单向加密算法
  密钥交换算法
  

  对称加密算法:
  加密和解密使用同一密钥;
  特性:
  1.每对通信主机都需要保有一个相同密钥,用于加密和解密;
  2.将原始的数据分割成固定大小的块逐个加密;
  3.加密解密速度较快
  

  缺陷:
  1.加密解密所需要保有的密钥数量过多;
  2.密钥分发过于困难
  

  主流加密算法:
  DES:Data Encryption Standard,数据加密标准;采用56bit密钥分成64bit块
  NSA:美国国家安全局
  3DES:
  AES:Advanced Encryption Standard,高级加密标准;
  AES128bit,AES192bit,AES256bit
  当前NSA主流选择
  Blowfish
  Twofish
  IDEA
  RC4,RC6
  

  公钥加密算法:
  采用密钥对加密
  密钥分为私钥和由私钥抽取生成的公钥组成;
  私钥:512bit,1024bit,2048bit,4096bit,8192bit,16384bit;
  

  特点:
  1.使用密钥对进行加密和解密;使用私钥加密的数据,必须从中抽取出来的公钥解密;使用公钥加密,必须使用与之相对的私钥才能解密;
  私钥:通过特定的工具创建生成,由使用者自己留存,务必保证其私钥性;secret key或private key
  公钥:从私钥中提取生成,公钥可以公开给所有人使用,public key
  2.密钥长度都比较长,加密之后的数据的安全等级较高;
  

  缺陷:
  加密数据的时候,消耗的系统资源和时间都较多,很少用来加密大批量数据;
  

  

  主要工作目的 用途:
  数字签名;主要用于让接收方确认发送方的身份;使用发送方的私钥加密数据,到了接收方之后,使用发送方的公钥解密数据;
  

  密钥交换:发送数据方使用接收方的公钥加密对称密钥,然后将加密后的对称密钥发给对方;
  

  数据加密:通常用于加密小数据;
  

  常用的公钥加密算法:
  RSA:数据加密,数字签名;
  DSA:数字签名算法,只能实现数字签名,有时该算法也被称为DSS(数字签名标准)
  ELgamal:收费的算法
  

  

  单向加密算法:
  只能进行加密不能解密;从已知数据中提取密码指纹;
  

  特性:
  1.定长输出:
  2.雪崩效应:
  

  功能:
  保证数据的完整性;
  

  常用的算法:
  md5:信息摘要算法的第五版
  128bit定长输出;
  sha系列算法:
  sha-1:安全的哈希算法,160bit定长输出
  sha224
  sha256
  sha384
  sha512
  

  密钥交换算法:IKE
  公钥加密算法来实现;
  DH算法:Deffie-Hellman
  加密算法的联合应用:
  1.通信双方互相交换证书,并到信任的CA进行证书认证;
  2.发送方使用某种对称加密算法对数据进行加密;加密后的数据使用单向加密计算其特征值,发送方再用自己的私钥加密此特征值,以证明数据来源的可靠;发送方使用接收方的证书加密对称密钥;
  3.接收方在收到数据之后,先使用自己的私钥解密对称密钥,然后使用发送方的公钥解密特征值,再利用相同的单向加密算法,重新结算加密数据的特征值;比较两个特征值;如果特征值一致,则表明数据完整;再用解密出来的对称密钥解密出原始数据;
  

  证书里面主要包括:
  拥有者名称;
  拥有者所提交的公钥;
  有效期;
  证书的版本号;
  证书的序列号;
  签发算法ID;
  签发CA的名称;
  主体名称;
  发证者的唯一标识;
  发证者的数字签名;
  扩展信息
  

  PKI:公钥基础设施;
  证书的签证机构:CA
  注册机构:RA
  证书吊销列表:CRL
  证书存取库:CAB
  

  CA如何发挥其作用的:
  1.通信双方互相交换证书;
  2.双方协商加密算法;
  3.双方验证证书的真伪
  4.用CA的公钥去解密证书中CA的签名,能解密说明证书来源可靠;
  5.用同样的加密算法加密证书,取得特征值,与解密出来的特征值比较,如果想同,说明证书完整性可靠;
  6.检查证书的有效期是否在合法时间范围,如果过期则证书不被认可;
  7.检查证书的主体名称和此次通信的目标是否能够对应;
  

  SSL:安全的套接字层
  1994年,网景公司最先声明并实施;
  

  TLS:传输层安全协议;
  IETF:互联网工程项目小组 1999年提出
  

  TLS V1.0
  2006年,TLS V1.1
  2008年,提出TLS V1.2草案,将椭圆曲线加密算法引入TLS;至今未应用
  

  分层设计:
  1.最底层:基础算法的原语的实现;AES,md5,sha...
  2.向上一层:各种算法的基本实现;
  3.再向上一层:各种算法组合实现的半成品;
  4.最高层,用各种组件拼装而成的各种成品密码学协议软件;
  

  SSL/TLS的握手的四个阶段:
  1.客户端向服务器索要证书并验证证书;
  Client Hello发送的信息内容
  支持的协议的版本,如:TLS V1.2
  客户端生成一个随机数,稍后用户生成会话密钥;
  支持的加密算法,如:AES,DES,RSA等
  支持的压缩算法
  

  2.双方协商生成会话密钥;
  Server Hello发送的信息内容:
  确认使用的加密协议的版本号,如:TLS V1.2
  服务器生成一个随机数,稍后用于生成会话密钥
  确认加密算法及压缩算法;
  

  3.双方采用已经生成的会话密钥进行安全加密的通信;
  客户端验证服务器证书,在确认无误后,取出其公钥;
  

  验证服务器证书需要验证下述内容:
  验证发证机构(CA);
  验证证书的完整性
  验证证书的持有者信息;
  验证证书有效期
  验证证书的吊销列表
  

  客户端发送信息给服务器端:
  一个随机数,用于服务器上的公钥加密;
  编码格式变更通知,表示随后的信息都将用双方已经协商好的加密算法和密钥进行加密发送;
  

  客户端握手结束:
  

  

  4.双方互相通告握手结束的信息;
  服务器收到客户端发送来的此次握手阶段的第三个随机数;Pre_Master_key;计算生成本次会话所用到的会话密钥,向客户端发送相关信息;
  编码变更通知,表示随后的信息都将用双方已经协商好的加密算法和密钥进行加密发送;
  

  服务器端握手结束;
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461276-1-1.html 上篇帖子: linux常识总结 下篇帖子: linux nmap 使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表