加密技术及常见加密算法


有了互联网的同时给我们的日常生活带来了不少的便利,与此同时也给我们带来了不少的安全隐患,可能你在和别人通信的同时,通信数据就被别人截获了,所以就必须要有一种相应的加密技术,来保护我们的通信隐私。那么今天就大家来简单的了解一下加密技术及一些常见的加密算法。
1、为什么需要加密
1、不加密流量的易受***性2、不加密密码/数据容易被嗅探3、不加密数据容易被操作4、不加密无法验证操作5、不加密相当于邮寄明信片
2、不安全的传统协议telnet、FTP、POP3等等;不安全密码http、smtp、NFS等等;不安全信息Ldap、NIS、rsh等等;不安全验证
3、NIST(美国国家标准与技术研究院)定义的安全属性保密性:数据保密性隐私性完整性:不可篡改数据完整性系统完整性可用性
4、安全***: STRIDESpoofing(假冒)Tampering(篡改)Repudiation(否认)Information Disclosure(信息泄漏)Denial of Service(拒绝服务)Elevation of Privilege(提升权限)
5、安全机制:加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证
6、安全服务认证访问控制数据保密性连接保密性无连接保密性选择域保密性流量保密性数据完整性不可否认性
7、安全设计基本原则使用成熟的安全系统以小人之心度输入数据外部系统是不安全的最小授权减少外部接口缺省使用安全模式安全不是似是而非从STRIDE思考在入口处检查从管理上保护好你的系统
8、常用安全技术认证授权安全通信审计
9、密码算法和协议对称加密公钥加密单向加密认证协议Linux系统:OpenSSL, gpg(pgp协议的实现)
10、对称加密:加密和解密使用同一个密钥DES:Data Encryptio免费云主机域名n Standard,56bits3DES:使用DES加密三次AES:Advanced (128, 192, 256bits)Blowfish,TwofishIDEA,RC6,CAST5 特性:1、加密、解密使用同一个密钥,效率高2、将原始数据分割成固定大小的块,逐个进行加密 缺点:1、密钥过多2、密钥分发3、数据来源无法确认
11、非对称加密: 公钥加密:密钥是成对出现公钥:公开给所有人;public key私钥:自己留存,必须保证其私密性;secret key 特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:数字签名:主要在于让接收方确认发送方身份对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方数据加密:适合加密较小数据 缺点:密钥长,加密解密效率低下
算法:RSA(加密,数字签名),DSA(数字签名),ELGamal
生成一对钥匙:公钥/密钥,用密钥对中的一个加密,另一个解密实现加密:生成公钥/密钥对:P和S公开公钥P,保密密钥S发送者使用接收者的公钥来加密消息M将P(M)发送给接收者接收者使用密钥S来解密:M=S(P(M))
实现数字签名:发送者生成公钥/密钥对:P和S公开公钥P,保密密钥S使用密钥S来加密消息M发送给接收者S(M)接收者使用发送者的公钥来解密M=P(S(M))
结合签名和加密:key(data+SA(hash(data)))+PB(key)分离签名
12、单向散列 将任意数据缩小成固定大小的“指纹”任意长度输入固定长度输出若修改数据,指纹也会改变(“不会产生冲突”)无法从指纹中重新生成数据(“单向”)功能:数据完整性
常见算法md5: 128bits、sha1: 160bits、sha224、sha256、sha384、sha512常用工具md5sum | sha1sum [ –check ] fileopenssl、gpgrpm -V13、密钥交换:IKE( Internet Key Exchange )公钥加密:DH (Deffie-Hellman): DH:1、A: a,p 协商生成公开的整数a, 大素数p B: a,p2、A:生成隐私数据 :x (x
B:生成隐私数据 :y,计算得出 a^y%p,发送给A3、A:计算得出 (a^y%p)^x = a^xy%p,生成为密钥 B:计算得出 (a^x%p)^y = a^xy%p, 生成为密钥
14、CA和证书PKI: Public Key Infrastructure签证机构:CA(Certificate Authority)注册机构:RA证书吊销列表:CRL证书存取库:X.509:定义了证书的结构以及认证协议标准版本号序列号签名算法颁发者有效期限主体名称主体公钥CRL分发点扩展信息发行者签名
15、证书获取证书类型:证书授权机构的证书服务器用户证书获取证书两种方法:使用证书授权机构生成签名请求(csr)将csr发送给CA从CA处接收签名自签名的证书自已签发自己的公钥
16、安全协议SSL: Secure Socket LayerTLS: Transport Layer Security1995:SSL 2.0 Netscape1996: SSL 3.01999: TLS 1.02006: TLS 1.1 RFC( Request For Comments ) 43462008:TLS 1.2 当前使用2015: TLS 1.3
功能:机密性,认证,完整性,重放保护两阶段协议,分为握手阶段和应用阶段握手阶段(协商阶段):客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套件以及主密钥,后续通信使用的所有密钥都是通过MasterSecret生成应用阶段:在握手阶段完成后进入,在应用阶段通信双方使用握手阶段协商好的密钥进行安全通信
SSL/TLSHandshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换ChangeCipherSpec 协议:一条消息表明握手协议已经完成Alert 协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别,fatal类型错误会直接中断SSL链接warning级别的错误SSL链接仍可继续,只是会给出错误警告Record 协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等HTTPS 协议:就是“HTTP 协议”和“SSL/TLS 协议”的组合。HTTP over SSL”或“HTTP over TLS”,对http协议的文本数据进行加密处理后,成为二进制形式传输
17、OpenSSL:开源项目三个组件:openssl: 多用途的命令行工具libcrypto: 加密算法库libssl:加密模块应用库,实现了ssl及tlsopenssl命令:两种运行模式:交互模式和批处理模式openssl version:程序版本号标准命令、消息摘要命令、加密命令标准命令:enc, ca, req, …对称加密:工具:openssl enc, gpg算法:3des, aes, blowfish, twofish
enc命令:man enc加密:openssl enc -e -des3 -a -salt -in testfile-out testfile.cipher解密:openssl enc -d -des3 -a -salt –in testfile.cipher-out testfileopenssl ?
单向加密:工具:md5sum, sha1sum, sha224sum,sha256sum…openssl dgstdgst命令:man dgstopenssl dgst -md5 [-hex默认] /PATH/SOMEFILEopenssl dgst -md5 testfilemd5sum /PATH/TO/SOMEFILEMAC: Message Authentication Code,单向加密的一种延伸应用,用于实现网络通信中保证所传输数据的完整性机制CBC-MACHMAC:使用md5或sha1算法
生成用户密码:passwd命令:man sslpasswdopenssl passwd -1 -salt SALT(最多8位)openssl passwd -1 –salt centos生成随机数:man sslrandopenssl rand -base64|-hex NUMNUM: 表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2
公钥加密:算法:RSA, ELGamal工具:gpg, openssl rsautl(man rsautl)数字签名:算法:RSA, DSA, ELGamal密钥交换:算法:dhDSA: Digital Signature AlgorithmDSS:Digital Signature StandardRSA:
生成密钥对儿:man genrsa生成私钥:openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS(umask 077; openssl genrsa -out key.pri –des 2048)从私钥中提取出公钥:openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE
随机数生成器:伪随机数字键盘和鼠标块设备中断/dev/random:仅从熵池返回随机数;随机数用尽,阻塞/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞
18、PKI:Public Key InfrastructureCARACRL证书存取库建立私有CA:OpenCAopenssl证书申请及签署步骤: 1、生成申请请求 2、RA核验 3、CA签署4、获取证书
19、文件完整性的两种实施方式被安装的文件MD5单向散列 rpm –verify package_name (or -V)发行的软件包文件GPG公钥签名 rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat* rpm –checksig pakage_file_name (or -K)
20、使用gpg实现对称加密对称加密file文件 gpg -c file ls file.gpg在另一台主机上解密file gpg -o file -d file.gpg
用gpg工具实现公钥加密在hostB主机上用公钥加密,在hostA主机上解密在hostA主机上生成公钥/私钥对 gpg –gen-key在hostA主机上查看公钥 gpg –list-keys在hostA主机上导出公钥到wang.pubkey gpg -a –export -o wang.pubkey从hostA主机上复制公钥文件到需加密的B主机上 scp wang.pubkey hostB:
在需加密数据的hostB主机上生成公钥/私钥对 gpg –list-keys gpg –gen-key在hostB主机上导入公钥 gpg –import wang.pubkey gpg –list-keys用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg gpg -e -r lovefirewall file file file.gpg
复制加密文件到hostA主机 scp fstab.gpg hostA:在hostA主机解密文件 gpg -d file.gpg gpg -o file -d file.gpg删除公钥和私钥 gpg –delete-keyslovefirewall gpg –delete-secret-keyslovefirewall

相关推荐: https网页打不开

很多人现在都遇到公司是https类网页无法打开,是由于微软KB2661254这个补丁把网页加密等级最低要求是:1024位。而之前很多网页服务器加密是512位,大部人处理此方法是把KB2661354这个补丁卸载。但是由于现在很多用户使用360安全卫士或QQ管家,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/28 16:03
下一篇 01/28 16:03