对称加密算法
下面哪些是对称加密算法
正确答案: C D 你的答案: B D (错误)
A.DSA
B.RSA
C.DES
D.AES
对称加密算法:DES,3DES,AES,RC5,Bloowfish,IDEA,TDEA
非对称加密算法:RSA,DSA 不可逆:MD5,SHA1,CRC
DES/AES
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
RSA
- 非对称加密算法:
- 甲方获取乙方的公钥,然后用它对信息加密。
- 乙方得到加密后的信息,用私钥解密。
- n = a*b(a,b质数) n->二进制位数为密钥长度(1024)
- 计算n的欧拉函数φ(n)
- 选择65537 or 其它小于φ(n)并与φ(n)互质的整数e
- 计算e对φ(n)的【模反元素】d
ex + φ(n)y = 1
求解数对x,y中的x
扩展欧几里得 - (n,e)为公钥(n,d)为私钥
- 当n被因式分解,d可以算出 被破解
安全
基于角色->属性的加密算法 外边缘计算的加密算法
java MD
MD家族长128,MD2,MD5 JDK有实现 MD4(电驴)Bouncy Castle
报文摘要:固定长度的摘要 类似消息验证码MAC
关键:找到两段内容不同而摘要相同的数据在计算上是不可能的
消息验证码MAC:计算过程用了密钥javax.crypto.Mac
- 数据用散列函数计算出消息验证码HMAC
- 消息验证码加载原始数据后
- 用密钥对整个数据加密后传输
数字签名security.Signature
用于验证身份
A要验证B的身份:
- B用私钥对消息加密发送给A
- A用公钥解密
SSL协议
- 身份验证(钓鱼网站)数字签名证书
- 数据窃取:数据传输加密
- 数据串改:数据+消息验证码,接收者完整性验证
流程 - 客户端向服务器确认SSL协议和加密算法。(可请求验证服务器身份)
- 服务器 发送数字签名给客户端 也可以向客户端验证身份
- 客户端用私钥对自己的数字证书加密发送给服务器。生成[数据传输]用的密钥,用服务器的公钥加密发送给服务器。(数据传输是对称加密,客服端和服务器使用相同密钥)
- 服务端验证完客户端身份,切换到数据传输直到关闭。
数字证书=身份信息+公钥。被信任机构的私钥加密,浏览器公钥验证证书合法。
HTTPS
安全漏洞
Network-Doc
- http请求
- Referer 防止CSRF漏洞
- http响应
- 302 跳转 Location:跳转地址
- Set-Cookie:颁发凭证
Application 查看Cookie
- BOM
- document.cookie 添加cookie document.cookie=”aaaa”
- window.location.href获取页面URL
- window.navigator.userAgent 获取浏览器信息
- window.open(“http://baidu.com") 打开页面
- XSS漏洞测试
prompt(,)提示弹窗
- WEB服务架构
)
- SQL
- union 连接两个select 不显示重复的;union all
- socket路径:show global variables like ‘socket’;
客户端:XSS(跨站脚本注入):CSRF(跨站请求伪造) 点击劫持,URL跳转
服务端:SQL注入 命令注入 文件类操作
XSS漏洞:Cross Site Script
存储型 反射型 DOM型
- 存储型
<img src="#" onerror="alert()">
写在评论框,发送给后台 图片加载失败触发onerror事件- XSS 脚本存储在数据库中
- 反射型 后端写入
url的参数中?name = <image src = @ onerror= alert()>
- DOM型
window.location.hash
url的hash中#
后面的值填到innerHTML
CSRF(XSRF)
用已登录身份以用户名义非法操作<body onload = "sbm()"
页面加载自动提交表单smt(){ .getbyID("id").submit()
调用表单提交
form表单提交有明显页面跳转,将恶意页面用iframe嵌入 width,height=0
防止触发查看源代码: view-source:url
点击劫持 UI覆盖攻击
用iframe设置height,width:100%,opaocity:0;z-index=2;
将iframe上的提交按钮隐藏在页面按钮之下
url页面跳转
META跳转 等待5秒后跳转
?url = 短链接1
<meta http-equiv = "Refresh" content = "5;url<?php echo $url?>"
SQL注入
mysql注释--
闭合、注释 where name = ‘admin'--
and passwd = ‘’
数据和代码未分离
- union
- 查看mysql版本 2. 用户名和密码
DOS命令
net user
用户名