用OTP令牌免密登录Windows

 

01  |  密码的低安全性

基于密码的安全性能在攻击者面前太过不堪一击。网络钓鱼欺诈、在途攻击、暴力攻击和密码重用大行其道,攻击者收集盗窃的登录凭证因此愈发轻而易举。这些被窃取的凭证可以被出售,用于凭证填充攻击。出于此原因,双因素身份验证或者无密码登录变得越来越重要。

02  |  安当SLA免密登录效果

静态密码只能对Windows用户的真实性进行低级认证,安当ASP双因素认证在企业桌面原有的静态密码认证基础上增加第二重保护,可通过手机令牌、硬件令牌、安全ukey等多种认证形式,实现双因素认证,提升账号安全,并且实时记录登录日志,提供用户禁用等有效的控制用户权限。

 

 03  |  安当SLA组件的优势

● 账号双重保护

提供Windows用户登录认证安全,解决弱口令可能引起的信息泄露;

●  方便运维

可实现多个用户运维同一台设备时用同一系统账号登录时做用户区分;

提升远程运维时安全性,不仅输入密码还需要输入动态口令;

●  轻松管理

内置用户管理,有效的管理用户,区分用户,禁用用户等

●  扩展性高

ASP身份认证平台同时支持SSO单点登陆,方便与其它应用集成

●  实时审计

详尽的登录日志和管理日志,发生安全事件时可定位到个人,用户认证可审计,能够追踪溯源,满足了等保要求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是用 Java 生成动态令牌 OTP 的示例代码: ```java import java.util.Date; import java.util.Random; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base32; public class OTPUtil { private static final int DIGITS = 6; private static final int PERIOD = 30; public static String generateOTP(String secretKey) { try { byte[] keyBytes = new Base32().decode(secretKey); // 获取当前时间戳,单位为秒 long timestamp = new Date().getTime() / 1000; // 计算时间戳的时间段 long counter = timestamp / PERIOD; // 将计数器转为字节数组 byte[] counterBytes = new byte[8]; for (int i = counterBytes.length - 1; i >= 0; i--) { counterBytes[i] = (byte) (counter & 0xff); counter >>= 8; } // 计算 HMAC-SHA1 哈希值 Mac mac = Mac.getInstance("HmacSHA1"); mac.init(new SecretKeySpec(keyBytes, "RAW")); byte[] hash = mac.doFinal(counterBytes); // 获取哈希值的低位 4 位字节 int offset = hash[hash.length - 1] & 0xf; int binary = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) | ((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff); // 对低位 4 位字节进行模运算 int otp = binary % (int) Math.pow(10, DIGITS); // 将 OTP 转为字符串 String otpStr = Integer.toString(otp); while (otpStr.length() < DIGITS) { otpStr = "0" + otpStr; } return otpStr; } catch (Exception e) { throw new RuntimeException(e); } } public static String generateSecretKey() { byte[] bytes = new byte[20]; new Random().nextBytes(bytes); return new Base32().encodeAsString(bytes); } } ``` 这段代码使用了 Google Authenticator 的算法,可以生成 6 位数字的动态令牌 OTP。其中 `generateSecretKey` 方法用于生成随机的钥,可以将生成的钥通过二维码等方式传递给用户,让用户将其添加到 Authenticator 应用中。`generateOTP` 方法用于根据钥生成动态令牌 OTP,可以在用户登录、重置码等需要验证身份的场景中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安 当 加 密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值