安全知识汇总.docx
《安全知识汇总.docx》由会员分享,可在线阅读,更多相关《安全知识汇总.docx(16页珍藏版)》请在冰点文库上搜索。
安全知识汇总
TableofContents
安全有哪些问题?
2
1.WEB漏洞攻击方法2
2.WEB漏洞防范方法与安全审计2
3.代码开发与安全审计3
4.linux、apache、mysql、php等安全配置与安全检查3
5.TCP/IP协议栈的工作原理3
6.加解密算法及原理3
7.反汇编经验8
8.网络攻击方式有深入的理解8
9.安全攻击和漏洞8
10.网络安全防护9
11.Dump分析10
12.Structs210
13.JAVA11
安全有哪些问题?
●保密
●鉴别
●不可否认
●完整性控制
1.WEB漏洞攻击方法
●sqlinjection
●xss(crosssitescript)
●文件上传、
●文件包含
●命令执行等漏洞
2.WEB漏洞防范方法与安全审计
●网页防篡改
⏹文件比较
◆将主目录做个备份,定时扫描文件
◆不足:
性能开销较大
⏹指纹比较
◆生成主目录文件的指纹,定时比较
⏹写权限控制
◆开启看守进程,维护一切写操作
◆开启系统级守护进程(windows系统提供)
●主动防护技术
⏹安全网关
⏹IPS
⏹算法识别
⏹模式匹配
●web审计数据
⏹账户操作:
权限改变
⏹运营操作:
财与物的改变
⏹维护操作:
特殊权限的人的动作
3.代码开发与安全审计
4.linux、apache、mysql、php等安全配置与安全检查
5.TCP/IP协议栈的工作原理
6.加解密算法及原理
●几乎所有的安全防护都建立在密码学基础之上
●编码和密码
⏹密码(ciper)位变换,不涉及消息的语言结构
⏹编码(code)语义映射或代替
●明文(plaintext)和密文(ciphertext)
●密码学原理
⏹加密C=Ek(P)
⏹解密P=Dk(C)
●密码学模型
⏹Kerckhoff’sprinciple
◆算法公开,密钥保密
⏹工作因子(workfactor)
◆密钥越长,工作因子也越高(因为组合比较多)
●密码分析者的3个问题
⏹只有密文(cipertextonly)
⏹已知明文(knownplaintext)
⏹选择明文(chosenplaintext)
●密码分类
⏹置换密码(substitutioncipher)
◆用一个字母取代另一个字母
◆凯撒密码(Caesarcipher)
●移动K个位置
◆单字母表置换(monoalphabeticsubstitution)
●可通过语言的统计规律进行破解
⏹转置密码(transpositioncipher)
◆通过E,T,A,O,I,N出现的频率去确定是不是常规模式
⏹一次一密(one-timepad)
◆最安全的密码
◆明文XOR密码后,每个字符将都是等概率的
◆信息论:
消息中没有消息
◆缺点
●密码无法记忆,需要密码本
●密钥数量受其长度限制
⏹量子密码(quantumcryptography)
◆光子不可复制
◆一次一密
●密码学原则
⏹消息必须包含一定的冗余度
◆冗余会降低密码分析者的破解难度
◆经典算法CRC
⏹需要采取某种方法来对抗重放攻击
◆重发旧的有效信息
●加密算法分类
⏹对称密钥算法(symmetric-keyalgorithm)
●加密算法
⏹DES(DataEncryptionStandard)
◆56位密钥
◆IBM和NSA联合定制
⏹3重DES
◆只有2个密钥,是EDE模式
◆EDE模式可以保证和单DES模式进行通信(K1=K2即可)
⏹AES(AdvanceEncryptionStandard)
◆NIST公开招募,Rijndael提供
◆加密速度700mbps
⏹算法使用模式
◆块密码每次只能加密一定长度的明文块,所以需要对明文分块
◆电子代码薄模式(ECB–ElectronicCodeBankMode)
●分成连续的8字节(64位)小块
●存在替换整块密文的安全问题,虽然不知道密文内容,但可以改变明文而不一定被察觉
◆密码块链接模式(chipperblockchaining)
●随机选取IV(InitializationVector–初始向量)
●原理:
C0=E(P0XORIV);C1=E(P1XORC0)…;Cn=E(PnXORCn-1)
●同样的明文并不对应同样的密文;安全性更高
●缺点:
必须接收完整密文,方可解密
◆密码反馈模式(chipperfeedbackmode)
●需要IV
●明文字节P10与寄存器队列中密文字节C2做异或生成C10,然后寄存器左移出C2,右移入C10
●缺点:
每一个坏字节会波及移位寄存器长度个字节的解密
●适用于DES,DES(3重),AES
◆流密码模式(streamchippermode)
●密钥流
⏹通过IV和密钥生成第一个密钥流块,然后重复加密前一密钥流块生成新的密钥流块
⏹IV和K决定密钥流
⏹密钥流可预知,可计算,可无限长
⏹密钥流独立于明文,密文的传输错误,只影响对应那个字节
⏹原理:
K0=Ek(IV),K1=Ek(K0),…,Kn=Ek(Kn-1)
●原理:
C0=P0XORK0,C1=P1XORK1,….,Cn=PnXORKn
●缺点:
密钥流重用攻击(keystreamreuseattack)
⏹原理:
密文C1=P0XORK0;密文C2=Q0XORK0
C1XORC2=P0XORQ0;xor可以消掉key,而得到2个明文的异或,降低分析难度
●所以不要重用密钥流
◆计数器模式(countermode)
●密钥流
⏹原理:
K0=Ek(IV),K1=Ek(IV+1),…,Kn=Ek(IV+n)
⏹优点:
任何一块密钥流可独立计算,不依赖前一名密钥流块,性能更好
●优点:
可以随机访问加密后的数据,不需解密所有密文(电子代码薄模式也可以做到)
●缺点:
密钥流重用攻击
⏹其它对称加密算法
◆Blowfish
●密钥长度1-448;又老又慢
●BruceSchneier
◆DES
●密钥长度56,对于现在使用,太弱了
●IBM
◆IDEA
●密钥长度128,好,但是属专利算法
●MasseyandXuejia
◆RC4
●1-2048,小心一些弱密钥
●RonaldRivest
◆RC5
●128-256,好,但是属专利算法
●RonaldRivest
◆Rijndael
●128—256,最佳的选择
●DaemenandRijmen
◆Serpent
●128,第2最佳选择
●Anderson,Biham,Knudsen
◆三重DES
●168,第2最佳选择
●IBM
◆Twofish
●128-256,很强,且广泛使用
●BruceSchneier
⏹密钥分析
◆差分密码分析(differentcryptanalysis)
●适用块密码加密
●迭代加密,然后进行概率分析
◆线性密码分析(linearcryptanalysis)
●他需用243个已知明文,就可破解DES。
◆电子功耗分析
●原理:
计算机通常用3伏代表1,0伏代表0,因此处理1比0需更多功耗
●用慢时钟CPU,然后监控功耗
●挫败:
用汇编语言小心的编写算法,以确保功耗和密钥独立
◆时间分析
●公开密钥算法(public-keycryptography)
⏹3个要求
◆D(E(P))=P
◆从E推断出D极其困难
◆用选择明文不可能破解E
⏹公钥和私钥
⏹RSA
◆建立在分解大数的困难基础上
◆加密:
C=Pe(modn)
◆解密:
P=Cd(modn)
◆公钥(e,n),私钥(d,n)
◆主要用来密钥分发
◆n=pxq(p,q为大素数)
z=(p-1)x(q-1)
exd=1modz
z和d互素
●数字签名
⏹3个要求
◆接收方可以验证发送方的身份
◆发送方不能否认消息的内容(norepudiation不可否认)
◆接收方不能编出这样的内容
⏹对称密钥签名
◆代理人BB:
人人都信任
◆KA(B,RA,t,P);B:
bob,RA:
alice选择的随机数,t:
时间戳
◆缺点,每个人都必须相信BB
⏹公开密钥数字签名
◆原理:
Alice发C1=EB(DA(P))--》BOB:
C2=DA(P)=DB(C),P=EA(C2)
◆BOB可以出示P和DA(P)来证明是Alice发的信息
◆缺点:
1.私钥丢失或公开2.变换私钥
⏹DSS(数字签名标准,DigitalSignatureStandard)
◆基于ElGamal算法(NSA设计)
◆太神秘,太慢,太新,太不安全(512位密钥,后更改)
⏹认证和保密耦合在一起
●消息摘要(messagedigest)
⏹4个要求
◆给定P,很容易计算MD(P)
◆给定MD(P),找到P是不可能的
◆在给定P的情况下,没有人能找到P’使MD(P)=MD(P’)
◆P即使只有1位的变化,MD(P)也会不一样
⏹适用于完整性很重要,但内容不需要保密
⏹MD5
◆块大小512位
◆128位MD
⏹SHA-1(SecureHashAlgorithm1)
◆块大小512位
◆160位MD
●生日攻击
⏹23个学生有相同生日的概率就很大了
●公钥的管理
⏹如果Alice不认识Bob怎么办?
代理机构管理证书
⏹如果代理机构宕机怎么办?
⏹CA(证书权威机构,certificationauthority)
◆为了更安全的分发证书
◆主要是将安全个体的名字和公钥绑定在一起
⏹X.509
◆针对证书格式的标准
◆缺点:
重名,改进:
允许用DNS名字代替
●公开密钥的基础设施
⏹将证书的私钥托管给任一机构都不安全的
⏹使用同一个私钥更是不安全的
⏹PKI(PublicKeyInfrastructure,公开密钥基础设施)
◆原理:
层级认证,上一级认证下一级。
根级证书预埋
◆信任链(chainoftrust)/证书路径(certificationpath)
◆信任锚(trustanchor)
◆并不是只有一个根证书
7.反汇编经验
8.网络攻击方式有深入的理解
9.安全攻击和漏洞
●DNS欺骗(DNSspoofing)
⏹修改缓存(poisonedcache)
⏹需要解决问题
◆伪造应答包含顶级服务器的IP源地址
◆伪造应答包的序列号
●自建DNSserver请求alice的顶级服务器,alice的请求最终通过他的顶级服务器转向到Trudy这里,从而可以获取序列号
⏹解决:
DNSsec(DNSsecurity)
●SSL(SecureSocketLayer安全套接字)
⏹功能
◆客户和服务器间的参数协商
◆客户和服务器间的双向认证
◆保密的通信
◆数据完整性保护
⏹位于传输层和应用层之间的一个新层
⏹一旦建立安全连接,SSL的主要任务就是解压缩和加解密
⏹多算法支持
⏹原理:
◆Alice对bob发送请求(sslversion+加密算法+压缩算法+临时值RA)
◆Bob回应证书和应答+临时值RB
◆Alice验证Bob身份
◆Alice的生成384位预设主密钥(premasterkey)并通过EB(Bob的公钥)加密发给Bob
◆双方计算(由premasterkey,RA和RB计算得来)且更新会话密钥
⏹应用
◆3重DES+sha-1(高安全性,低性能;高安全级应用)
◆RC4+MD5(低安全性,高性能;一般电子商务)
●TLS(Transportsecuritylayer)传输安全层
10.网络安全防护
●Linkencryption(链路层加密),问题是每个route需要对其解密,存在route内部攻击
●Networklayer(网络层),主要技术有:
防火墙,IPSec
●Transferlayer(传输层),端到端的进程级安全防护,最高级别
●Applicationlayer(应用层),用户认证,不可否认等安全问题只能在这一层上解决
●IPSec
⏹多服务,多算法,多粒度
⏹面向连接的,建立密钥并保持一段时间
⏹空算法,加密功能是必选的
⏹SA(Securityassociation安全关联)
◆每个分组都需要加上安全关联标识
◆双工需要2个SA
⏹组成
◆描述2个新的头,这2个头用于携带安全标识,完整性数据和其他信息
◆ISAKM(InternetsecurityAssociationandKeyManagementProtocol,internet安全管理和密钥管理协议)
⏹使用模式
◆传输模式(transportmode)
●IPSec头(SA标识符+序列号+完整性信息)直接插在IP头后,tcp头前
◆隧道模式(tunnelmode)
●封装IP包为新的安全的IP包,有目的地网关负责拆封
●IPSec对网关后的机器透明
●流量被集中,入侵者仅知道有多少流量发往那
⏹优点:
不知道哪些数据是给那些人的
⏹缺点:
数据流向这一信息本生也是很有价值的(传输模式不会增加大量报头而无此隐患)
⏹IPSec头
◆认证头(AuthenticationHeader)
●完整性检测也覆盖了IP头中某些域如ipaddress…(除TTL)
●签名算法:
HMAC(HashedmessageAuthenticationcode,散列的消息认证码)
●不支持数据加密功能
◆封装的安全净荷(EncapsulatingsecurityPayload)
●组成(2个32位域,IV一般不算头)
⏹Securityparametersindex
⏹Sequencenumber
⏹IV(initializationVector)空算法时忽略
●ESP也提供HMAC完整性检测
⏹不包含头部
⏹跟在净荷之后(不需要缓冲,有网卡发送后直接加在分组组末尾,同CRC校验)
●认证协议
⏹基于共享秘密密钥的认证
◆重放攻击
⏹建立一个共享密钥
◆Diffie-Hellman密钥交换协议
●水桶对立攻击(Bucketbrigadeattack)
●中间人攻击(man-in-the-middleattack)
⏹密钥分发中心的认证协议
◆Needham-Schroeder认证协议
◆Kerberos认证协议
◆公开密钥密码学的认证协议
⏹PGP(prettygoodprivacy)
◆安全电子邮件软件包
◆使用算法:
MD5,RSA和IDEA
⏹PEM(PrivacyEnhancedMail)
11.Dump分析
12.Structs2
●框架
⏹FilterDispatcher根据请求决定调用合适的Action.
⏹基于webwork
⏹是structs1的升级,shale是structs1的完全更新
●Structs2VSStruct1
⏹Action
◆Structs1必须扩展自Action类,而structs2可以是一个POJO
◆线程模型方面:
●Structs1是单例模式,一个实例处理所有请求
●Structs2是一个请求对应一个实例
◆Servlet
●Structs1的action依赖于servletAPI
●Structs2的action不依赖,并且实现TDD
◆参数
●Structs1强制使用actionform
●Structs2可以使用POJO或action的属性直接封装
◆技术使用
●Structs2增加OGNL(ObjetGraphNavigationLanguage),ValueStack
13.JAVA