每天登录邮箱、刷社交平台、网上支付,背后都离不开网络认证协议的保护。你输入的密码不会明文传出去,靠的就是加密技术。不同的认证协议用的加密方式不一样,安全级别也差很多。
常见的认证协议有哪些?
比如我们熟悉的HTTP Basic Auth,虽然简单,但如果没有HTTPS加持,用户名和密码只是Base64编码,并没有真正加密,很容易被截获。这种在公共Wi-Fi下尤其危险,就像把密码写在明信片上寄出去。
而OAuth 2.0广泛用于第三方登录,比如用微信账号登录某App。它本身不直接处理密码,而是通过令牌(token)机制授权。真正的敏感信息交换过程依赖TLS加密传输,重点在于控制访问范围和时效性。
加密方式怎么起作用?
以WPA2-Enterprise无线网络为例,它常结合802.1X和EAP协议。用户连接时要提供证书或凭证,系统后台用RADIUS服务器验证。整个过程使用EAP-TLS这类基于公钥加密的方式,连握手阶段都全程加密,防止中间人冒充。
再比如Kerberos,在企业内网中常见。它用对称加密算法(如AES)生成票据(ticket),客户端和服务端通过密钥分发中心(KDC)取得会话密钥。即使有人抓包,拿不到主密钥也解不开内容。
TLS在认证中的角色
现在大多数安全协议都依赖TLS来保障传输层安全。比如你在浏览器看到的小绿锁,说明通信已经加密。像LDAP over SSL、SMTP with STARTTLS,都是先建立TLS通道,再进行身份验证,避免凭据暴露。
实际配置中,服务端需要正确部署证书,客户端也要校验证书有效性。如果忽略这一步,攻击者可以伪造服务器诱导你输入账号,这就是所谓的“伪基站”式攻击。
代码示例:简单的JWT签名流程
JSON Web Token(JWT)常用于API认证,下面是一个用HMAC-SHA256签名的示意:
Header: {
"alg": "HS256",
"typ": "JWT"
}
Payload: {
"sub": "1234567890",
"name": "张三",
"exp": 1987654321
}
Signature = HMACSHA256(
base64UrlEncode(header) + "." + base64UrlEncode(payload),
secretKey)
Encoded JWT = header + "." + payload + "." + signature
这个token发给客户端后,每次请求带上它。服务端用同一个密钥验签,确认没被篡改。注意:secretKey必须严格保密,否则等于门钥匙丢了。
选择加密方式的关键点
不是越复杂就越安全。EAP-PWD虽然抗字典攻击强,但实现不当反而引入漏洞。相比之下,强制启用双因素认证+短时效token,有时比单纯依赖高强度加密更有效。
家用路由器默认的WPA2-PSK用的是预共享密钥,加密方式选AES-CCMP才够安全。很多人图省事设个“12345678”,就算加密算法再强也没用。
企业在部署Radius服务器时,建议关闭旧版EAP-MD5,改用EAP-TLS或PEAP-MSCHAPv2,配合证书验证,能大幅降低内网渗透风险。