企业身份安全建设有个很奇怪的现象:应用层已经上了 SSO 和 MFA,操作系统这一层却还是裸奔的账号密码。

服务器 root 密码写在运维群里、车间控制电脑一个账号全班组共用、外场服务器的 administrator 密码三年没换过——这些都不是假设,是我在制造业、轨交、电力项目里实际见到的。

而攻击者非常清楚:绕过应用层的层层认证太麻烦,直接拿一台终端的操作系统权限,什么都有了

这篇文章讲操作系统登录认证这一层怎么补,用安当 SLA(Secure Login Agent,安全登录代理)在 Windows、Linux 和国产 OS 上的三个真实场景说明白。


一、为什么操作系统这层最难补

先说清楚难点,不然会低估工作量。

难点一:登录流程在系统内核层,改不动。
Windows 的登录走 Winlogon + Credential Provider,Linux 走 PAM 栈,都是系统级组件。传统"装个软件弹个框"的做法根本拦不住——用户可以直接绕过。

难点二:终端环境千差万别。
车间的工控 PC 可能还是 Windows 7,外场服务器是 Windows Server 2008,信创改造后的政务终端是银河麒麟或统信 UOS,还有一堆 CentOS/Ubuntu 服务器。要么全覆盖,要么等于没做。

难点三:很多终端根本不联网。
轨交沿线的信号服务器、工厂产线的隔离网段、涉密环境——这些地方连不上认证中心。云端 MFA 方案在这里直接失效。

难点四:不能影响生产。
产线电脑每天开机就要干活,认证多花 30 秒、偶尔认证失败一次,班组长就会来投诉。

SLA 的设计正是针对这四点:接管系统登录接口(而非弹窗)、全平台覆盖、支持离线令牌、认证过程控制在数秒内


二、SLA 的工作原理:接管登录接口,而不是加个壳

SLA 是安当自研的安全登录代理组件,核心思路是接管操作系统的登录接口,在系统登录前强制完成二次认证,通过后再向系统注入合法凭据

流程拆开是这样:

用户唤起登录界面
   ↓
SLA 接管登录入口(Windows: Credential Provider / Linux: PAM 模块)
   ↓
第一因子:账号 + 密码(或域账号)
   ↓
第二因子:UKey 插入验签 / 指纹比对 / OTP 动态口令
   ↓
本地策略校验:该设备是否允许该用户登录?
   ↓  (联网版会向 ASP 校验;单机版走本地策略库)
认证通过 → SLA 向系统注入合法凭据 → 进入桌面
   ↓
全量记录登录事件(本地留痕 + 可选上报 ASP / Syslog)

几个关键设计值得说明:

1. 认证发生在系统登录之前,不可绕过。 不是登录后再弹框验证,而是不过二次认证就拿不到系统凭据。

2. 无需修改系统内核,即装即用。 走的是操作系统官方提供的认证扩展机制,不做内核 hook,避免蓝屏和兼容性问题——这一点在国产 OS 上尤其重要。

3. 云 + 端双模。 联网版由 ASP 统一下发策略、集中审计;单机版完全本地化运行,无网也能强认证。同一套组件,两种形态。

支持范围:

平台 支持版本
Windows 客户端 Windows 7 及以上
Windows Server Windows Server 2008 及以上
Linux 主流发行版(CentOS / Ubuntu 等)
国产操作系统 银河麒麟、统信 UOS、中标麒麟
国产芯片架构 龙芯(LoongArch)、鲲鹏(ARM64)、飞腾(ARM64)

认证因子:USBKey 硬件令牌、OTP 软件令牌、指纹(USB 指纹仪)、FIDO2、数字证书。


三、场景一:300 台车间控制电脑的指纹登录改造

客户背景:某苹果核心供应商工厂,300+ 台车间控制电脑,运行 MES 生产管理系统和设备监控系统。

改造前的问题

  • 全部使用 Windows AD 域账号 + 密码登录,密码简单且多人共用
  • 车间是开放环境,非授权人员可以直接接触终端
  • 出现误操作时,日志只能追到账号,追不到人
  • 苹果供应链审计明确要求"操作可追溯到具体人员"

方案设计

  1. 在 300 台电脑部署 SLA 联网版,无缝集成现有 AD 域环境(不改造 AD,SLA 作为额外的认证层)
  2. 强制"密码 + 指纹"双因素:输入域账号密码后,插入 USB 指纹仪完成二次验证
  3. 一账号绑定多指纹:同一个班组账号下可以绑定多名操作员的指纹,登录日志记录的是"哪个指纹",从而精准识别到人
  4. 登录日志实时对接企业统一日志管理系统

第 3 点是这个方案的巧妙之处。工厂的现实是账号确实要共用(MES 系统按工位授权,不按人),硬要一人一账号会打乱生产流程。而"一账号多指纹"既保留了原有账号体系,又把责任落到了人头上。

落地效果

  • 300 台控制电脑 100% 双因素登录,改造后零安全事件
  • 指纹精准追溯,彻底解决"账号共享责任不清"
  • 满足苹果供应链审计要求,一次通过

实施踩坑提醒:车间粉尘和油污会影响指纹识别率,采购指纹仪时要选工业级、防尘等级高的型号;另外要为指纹识别失败准备兜底方案(比如班组长 UKey 应急登录),否则产线会停。


四、场景二:轨交外场服务器的离线 UKey 登录

客户背景:某城市轨道交通系统,沿线车站和控制中心部署了数十套信号控制系统服务器。

改造前的问题

  • 由第三方维保单位和内部工程师共同现场运维
  • 共享管理员账号,长期未更换
  • 外场机房完全无网络,任何依赖云端的认证方案都不可用
  • 属于关键信息基础设施,受《关键信息基础设施安全保护条例》约束

方案设计

  1. 每台外场信号服务器部署 SLA 单机版,以 Windows 系统服务形式运行,完全离线
  2. 为每位运维人员配发国密 SM2 算法 USB Key,内置唯一私钥
  3. 登录时必须插入 UKey 并输入 PIN 码,无 Key 无法登录
  4. 所有 UKey 登录事件本地记录,定期由安全人员导出归档

为什么用 UKey 而不是 OTP:离线环境下 OTP 的时间同步会漂移,运维周期长了容易出问题;UKey 是基于挑战-响应的证书验签,不依赖时间同步,且私钥不出 Key,安全等级更高。

落地效果

  • 支持 Windows Server 与国产麒麟/统信等信号系统常用 OS
  • 彻底杜绝共享账号风险,人员离职只需回收 UKey,不用改任何密码
  • 符合关基条例对身份鉴别与操作审计的要求

这个场景的核心价值:把"改密码"这个高成本、易遗漏的动作,变成了"回收硬件"这个物理动作。运维人员流动频繁的单位,这一点非常实用。


五、场景三:信创环境下国产 OS 的双因素登录

信创改造后,政务和国企的终端大量替换为银河麒麟、统信 UOS。这时候会遇到一个尴尬:很多身份安全产品不支持国产 OS,等保测评又要求操作系统层双因素

SLA 在国产 OS 上的实现走的是 PAM(Pluggable Authentication Modules) 机制。Linux 的认证栈本来就是可插拔设计,SLA 作为一个 PAM 模块插入认证链:

# /etc/pam.d/ 配置示意(实际由安装程序自动写入)
auth    required    pam_unix.so           # 第一因子:系统密码
auth    required    pam_andang_sla.so     # 第二因子:SLA(UKey/OTP/指纹)
account required    pam_unix.so
session required    pam_unix.so

这种做法的好处是不碰内核、不改系统组件,升级 OS 也不会冲突。同时覆盖三种登录入口:

  • 本地图形界面登录(GDM/LightDM)
  • 本地字符终端登录(tty)
  • 远程 SSH 登录(这个最容易被忽略,但恰恰是运维实际用得最多的入口)

信创适配情况:ASP/SLA 已通过华为鲲鹏兼容性测试认证与信创产品评估认证,密码算法支持国密 SM2(数字证书)、SM3(哈希)、SM4(对称加密)。


六、联网版 vs 单机版:怎么选

这是方案设计时必须做的决策,给一张对照表:

维度 SLA 单机版 SLA 联网版 SLA SaaS 版
网络要求 完全离线 需连接 ASP 服务端 需连接公网
策略管理 本地配置,逐台维护 ASP 集中下发,实时生效 云端集中管理
设备注册 首次联网自动向 ASP 注册 自动注册
用户授权 本地授权列表 可实时调整某台设备的允许登录人员,策略立即下发 同联网版
日志审计 本地留痕 全量上报 ASP,支持 Syslog 外发 SIEM 云端审计
适用规模 几台到几十台 几十台到数千台 中小规模、免运维
典型场景 外场服务器、涉密隔离网、工业无网环境 车间产线、办公终端、机房服务器 分支机构、快速上线

选型建议:终端数量超过 30 台且网络可达,一律选联网版——逐台维护策略的运维成本会迅速失控。真正的离线场景才用单机版。

联网版还有个容易被忽略的能力:管理员可以集中托管和轮换终端 SLA 组件的管理员密码及离线 OTP(配合 SYP 密码管理器)。这解决了"应急密码怎么管"的问题。


七、部署实施要点(血泪经验)

1. 先做兼容性验证,再批量推。
挑 3-5 台代表性终端(不同 OS 版本、不同硬件型号)做试点,跑满一周。特别注意:装了某些国产杀毒软件或桌管软件的终端,可能与登录组件冲突。

2. 必须准备应急登录通道。
UKey 丢了、指纹仪坏了、员工手机没电——这些一定会发生。方案里要明确:谁有权限做应急登录、怎么审批、事后怎么审计。没有应急预案的强认证方案,最后一定会被业务部门要求关掉。

3. 批量部署用静默安装。
300 台终端不可能一台台点。SLA 支持命令行静默安装,配合域策略(GPO)或桌管系统下发:

:: Windows 静默安装示例
SLASetup.exe /S /SERVER=https://asp.company.local /GROUP=workshop-line-A

4. 分批灰度,按班组推进。
先推一个班组,跑通一周,收集反馈,再推下一个。一次性全推,出问题就是全厂停摆。

5. 培训要针对一线,不是针对 IT。
一线操作员不关心什么是双因素,只关心"我怎么登录进去"。培训材料要做成一页纸图示,贴在机台旁边。


八、常见问题

Q:SLA 会不会影响系统性能或稳定性?

SLA 是轻量代理,不做内核 hook,只在登录时刻工作,进入桌面后基本无资源占用。不改系统内核这一点,是国产 OS 环境下能稳定运行的关键。

Q:如果 ASP 服务端宕机,终端还能登录吗?

联网版支持离线令牌降级:服务端不可达时,终端用本地缓存的策略和离线 OTP 完成认证,保障业务连续性。这也是"云+端双模架构"的意义所在。

Q:远程桌面(RDP)登录能管控吗?

可以。RDP 登录同样走 Windows 的 Credential Provider 链路,SLA 会一并接管。实际上远程运维恰恰是最需要强认证的入口。

Q:能不能只对特定用户或特定时段强制双因素?

联网版支持按设备下发允许登录人员列表,并可实时调整、立即生效。更细粒度的时段策略需要结合 ASP 侧的认证策略配置。

Q:跟微软自带的 Windows Hello 有什么区别?

Windows Hello 是终端本地的便捷登录,不解决集中管理、集中审计、跨平台和国产 OS 覆盖的问题。SLA 的定位是企业级统一管控——策略从 ASP 下发、日志汇聚到 SIEM、Windows 和 Linux 和国产 OS 一套体系。


写在最后

操作系统登录认证是身份安全体系里最脏最累但绕不过去的一块。应用层做得再漂亮,终端一台被拿下,前面的努力都打折。

好消息是这块的技术方案已经相当成熟:接管登录接口、全平台覆盖、离线可用、不改内核。剩下的其实是项目管理问题——试点、灰度、应急预案、一线培训。

把这四件事做扎实,300 台终端的双因素改造,两周就能落地。


本文技术内容参考《安当 ASP 身份认证服务平台技术白皮书 V4.0》。SLA 操作系统双因素认证支持 Windows/Linux/国产 OS 全平台,支持 UKEY/OTP/FIDO 多种认证方式,无需修改系统内核即装即用。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐