加密协议和OPENSSL基本应用

在互联网诞生初期,接入互联网的主机数量不多,应用也很少,因此早起设计的网络协议都没有考虑到网络安全的概念,数据在网络中传输都是以明文传输的。随着互联网的迅猛发展,网络通信已经成为信息传递的主要途径,而数据在明文传输的的环境下是非常不安全的,如果没有一套数据加密机制,就使得数据在网络传输过程中存在被窃听,篡改等安全问题,会给用户带来不可估量的损失



一、信息安全定义:

1、NIST定义了计算机安全三元组:CIA

 保密性(Confidentiality):只有授权用户可以获取信息;

  数据保密性;

  隐私性;

 完整性(Integrality):信息在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性;

  数据完整性;

  系统完整性;

 可用性(Availability):保证合法用户对信息和资源的使用不会被不正当地拒绝;


  真实性:一个实例是真实的是可被验证的,数据发送者不会被冒名顶替;

  可追溯性:发生入侵事件之后,可找到攻击者的源数据;

 

2、OSI定义了x.800

 安全攻击:

  被动攻击:窃听

  主动攻击:伪装、重播、消息修改、拒绝服务

 安全机制:

  加密、数字签名、反问控制、数据完整性、认证交换流量填充、路由控制、公正(第三方机制);

 安全服务:

  认证

  访问控制

  数据保密性:

   连接保密性

   无连接保密性

   选择域保密性

   流量保密性

  数据完整性
  不可否认性


二、加密算法和协议:

1、认证协议:

 IKEInternetKey Exchange,密钥交换协议):常用来确保虚拟专用网络VPN与远端网络或者宿主机进行交流时的安全;

  SSLecure Sockets Layer安全套接字层): 网络通信提供安全及数据完整性的一种安全协议。

  TLSTransport Layer Security传输层安全协议): 是仿照SSL制定,用于在两个通信应用程序之间提供保密性和数据完整性。


2、加密和解密:

 加密:通过算法将明文数据转换为密文数据;

 解密:通过算法将密文数据转换为明文数据;

 密钥:加密和解密过程中所需要的参数;


3、对称加密:

 密钥:加密和解密使用同一个密匙;


 常用对称加密算法:DES(56)3DESAES(128192256384512)BlowfishTwofishIDEARC6CAST5


 特性:

  加密、解密使用同一口令;

  将明文分隔成固定大小的块,逐个进行加密;

 缺陷:

  维护密钥过多;

  密钥传输不安全;


 应用场景:数据隐秘性;


4、非对称加密(公钥加密):

 密钥:

  成对出现,公钥(public key)隐含在私钥(secret key)中;用公钥加密的数据必须与之匹配的私钥解密,用私钥加密的数据必须用与之匹配的公钥解密;

   公钥:可以公开;

   私钥:必须自己留存;


 常用公钥加密算法:RSA, DSA,EIGamal


 缺陷:加密、解密时间过长,通常不用于简单通信;


 应用场景:身份认证,密钥交换;


 密钥交换:IKEInternet KeyExchange

  DH算法:Diffie Hellman


4、单向加密:

 发送方和接收方可根据算法生成数据的特征码,即数据指纹;进行比较,用来进行数据完整性校验;


 常用单向加密算法:MD5SHA1SHA256SHA384SHA512


 特性:

  定长输出:不管输入的数据有多大,输出的特征码的长度都输固定的;

  蝴蝶效应:输入数据的微小改变会引起输出的特征码的巨大变化;


  应用场景:数据完整性校验;

 

三、openssl的基本用法:

 openssl:即开源的安全套接层,是一个强大的安全套接字层密码库,多用途命令行工具;

  libcrypto: 公共加密库

  libssl: ssl协议的实现


 安装openssl软件包:

# yuminstall openssl


 查看openssl版本号:

# openssl version


openssl命令选项:

-e:指定为加密,可以不写默认为加密;
-des3:指定算法算法;
-salt:默认设置,生成一段字符串放在密码最前面进行加密,提高解密难度;
-a:基于base64处理数据,加密结果进行base64编码处理;
-in:读取那个文件进行加密;
-out:输出到那里;
-d:指定为解密;


1、对称加密:

 工具:gpgopenssl enc

 算法:DES3DESAESBlowfishTwofishRC6ideaCAST5


 加密:

# opensslenc -des3 -a -salt -in /path/from/somefile -out /path/to/somecipherfile


 解密:

# opensslenc -d -des3 -a -salt -in /path/from/somecipherfile -out /path/to/somefile


2、单向加密:

 工具:md5sumsha1sumopenssl dgstchsum

 算法:Md5128bit),sha1160bit),sha256sha384sha512


# openssldgst [-md5|-sha1] [-out /path/to/filename] /path/from/somefile


 MAC:消息摘要码,单向加密的一种延伸类应用

  应用:用于实现在网络通信中保证所传输的数据的完整性

  机制:

   CBC MAC

   HMAC:使用md5sha1的算法;


 用户密码:

# opensslpasswd -1 -salt SALT


 生成随机数:

# opensslrand -base64| -hex num


3、公钥加密:

 工具:gpgopensslrsautl

 算法:RSAEIGamal


 数字签名:

  算法:RSAEIGamalDSA

   DSADigitalSignature Algorithm

   DSSDigitalSignature Standard

 

 密钥交换:IKE

  算法:公钥加密、DH

   DHDiffie Hellman


 生成密钥:

# (umask077; openssl genrsa  -out/path/to/keyfile NUMBEROFBITS )


 提出公钥:

# opensslrsa -in /path/from/private_key_file �pubout


五、openssl基本应用实例:

1、复制/etc/rc.d/init.d/functions文件至/root目录,对/root /functions文件进行对称加密保存至/tmp/functions.cipher

2、对/tmp/functions.cipher文件解密保存至/tmp/functions

3、用单向加密生成原文件/root/functions和解密后文件/tmp/functions的特征码作比较。

 

对称加密操作:

wKioL1W3Ua3SoLD_AAJRTivuHmY333.jpg


functions.cipher文件解密:

wKiom1W3T9awTx3NAADHLvPQbm4168.jpg


生成原文件/root/functions和解密后文件/tmp/functions的特征码作比较:

wKiom1W3T-nT1cVCAAEv0epD1_0073.jpg

本文出自 “小马的学习记录” 博客,请务必保留此出处http://masachencer.blog.51cto.com/8683770/1679317

转载于:https://my.oschina.net/masachencer/blog/540880

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值