# 加密认证

# Flag

# HTTP授权认证

Basic Auth:这种认证直接顺应HTTP协议的无状态性,每次执行业务的时候,将username与password参数发送给服务器进行验证

Session:是指在客户端Cookie中存储一个Session Id。请求时携带Session Id,服务器从Session数据存储中找到对应的Session。 Native App一般是不直接支持Cookie机制

WebAuthn (Web Authentication)是Web标准的一部分,用于提供更安全的身份认证方法,可以使用生物识别数据、PIN码或移动设备来进行身份验证, 而不需要密码。其目的是减少密码相关的攻击,提高安全性。

CTAP (Client to Authenticator Protocol)协议, 主要用于在客户端设备(如计算机或移动设备)和身份验证器(例如生物识别设备、USB密钥等)之间建立通信, 并确保两者之间的通信安全,执行WebAuthn身份验证操作。

UAF (Universal Authentication Framework)规范,旨在提供更安全的身份验证方法,减少对传统密码的依赖。 允许使用生物识别信息、PIN码等进行身份验证。其目的是创建一个标准化的身份验证框架,适配不同的Web服务和应用。

U2F (Universal 2nd Factor)安全标准,旨在提供双重身份验证,即使用密码以外的第二个身份验证。 用户需要使用U2F设备(例如USB密钥)来进行身份验证。主要用于增强身份验证的安全性,而不是完全替代密码。

JWT是一种认证协议

JWT(Json web token)提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。 令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的访问。

应用场景:JWT是用在前后端分离, 需要简单的对后台API进行保护时使用.(前后端分离无session, 频繁传用户密码不安全)

# 编码算法

Escape Sequences转义序列把数据转换成指定格式的数据,可解码,一般用于处理特殊字符

Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而Binary资料和字串资料彼此之间可以互相转换。 在实际应用中,Base64除了能将Binary资料可视化之外,也常用来表示字串加密过后的内容

# 加密算法

使用密钥加密数据转换成指定格式的数据,可通过密钥转换还原数据

公开密钥加密(public-key cryptography),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。

加密模式

  • ECB(Electronic CodeBook mode):电子密码本模式
  • CBC(Cipher Block Chaining mode):密码分组链模式
  • CFB(Cipher FeedBack mode):密码反馈模式
  • OFB(Output FeedBack mode):输出反馈模式
  • CTR(CounTeR mode):计时器模式
  • CTS
  • GOFB
  • OpenPGPCFB
  • SIC (or CTR)
  • CCM
  • EAX
  • GCM
  • OCB

# 消息摘要

生成数据的唯一密文,不可逆

哈希 (Hash Algorithm) 散列算法,是将任意长度的数据映射为固定长度数据的算法,也称为消息摘要(主要用于数据完整性校验和加密/签名)。 一般情况下,哈希算法有两个特点:

原始数据的细微变化(比如一个位翻转)会导致结果产生巨大差距

运算过程不可逆,理论上无法从结果还原输入数据

应对普通哈希容易被破解的策略

  • 加盐(salt)

加盐就是对目标字段哈希前,拼接上另一个字段(salt)。注:盐值加到字段之前较为普遍。加盐对防彩虹表很有效。

  • 慢哈希

# 证书格式