SEMI E132 设备客户端验证与授权规范概述

目的与背景

SEMI E132 规范旨在为半导体制造设备提供一套标准化的客户端身份验证与授权机制,确保只有经过认证和授权的客户端应用程序才能访问设备资源并进行通信。该规范定义了从身份验证、会话建立到权限管理的完整安全流程,支持从简单的基于角色的访问控制到高度细粒度的权限管理,适用于多客户端、网络化环境下的设备安全集成。

核心概念与术语
  • 身份验证(Authentication):确认客户端身份的过程,通常通过密码、密钥等凭据实现。
  • 授权(Authorization):向已验证客户端授予执行特定操作的特权。
  • 会话(Session):客户端与设备之间建立的应用级通信上下文,独立于底层通信协议。
  • 持久会话(Persistent Session):在设备断电或重启后仍可恢复的会话。
  • 访问控制列表(ACL):用于定义主体(Principal)与权限(Privilege)之间的映射关系。
  • 安全管理员(Security Admin):负责管理客户端凭据、ACL 和会话配置的特权角色。
集中式安全管理模型

(图片来源: SEMI E132)

  • Security Admin  – 安全管理员签发客户凭据,在设备上建立客户授权(可能还有客户凭据),定义自定义角色及其授权。
  • Client – 客户端持有分配给它的任何已颁发的凭据,并对设备进行身份验证,以建立经过身份验证的会话。
  • Equipment  -在管理模型中,设备的角色是为设备建立安全管理实体,持有任何已定义的授权,验证客户端建立会话,确定客户端授权级别,并对已建立的会话实施这些级别。

身份验证流程
  1. 会话请求: 此消息请求设备开始建立一个经过认证的会话。 接收到此消息后,设备开始进行身份验证握手,如上图所示, 如果请求未被接受,设备将以协议特定的警报或错误消息响应并终止连接。
  2. 设备挑战: 当会话请求被接受后,设备会回应一个挑战。 设备选择用于认证的算法(如果适用),提供自己的标识,并要求客户端进行自身认证。 
  3. 客户端认证: 客户端响应服务器的挑战,确认所选算法(如果适用)、设备的识别,并提供客户端自身身份的证明。 
  4. 设备ACK: 设备验证客户端的响应,并在最终的认证协议消息中确认交换的会话标识。   

会话状态机模型

(图片来源: SEMI E132)

E132 定义了完整的会话状态模型,包括:

  • ACTIVE:会话生命周期父状态, 覆盖经过认证的会话的整个生命周期。
  • AUTHENTICATING:身份验证。在此状态下,客户端和设备进行身份验证过程并建立新的经过身份验证的会话
  • ESTABLISHED:会话已建立。此状态是所有与服务调用和成功认证和会话建立之后的通信相关的子状态的父状态。 它有两个同时的子状态,通信和监视,这两个状态在会话建立时都是活动的。  
  • FROZEN:当设备下电或处于无法通信的状态时,持久会话被暂停。
  • CLOSING:由于客户端、安全管理员或设备启动错误,会话被终止。

授权与访问控制模型

E132 提供了一个灵活的授权模型,基于ACL实现权限分配:

  1. 主体(Principal)与角色(Role)
  • 主体:代表一个可通过身份验证的客户端实体。
  • 角色:一组权限的集合,用于简化权限分配。

2. 权限(Privilege)

  • 每个权限代表执行某类操作的权利。
  • E132规范定义了两个保留权限:
    • allPrivileges:除安全管理权限外的所有权限。
    • securityAdminPrivileges:仅限安全管理员使用的特权。

3. ACL 条目类型

  • PrivilegeAssignment:直接为主体或角色分配权限列表。
  • RoleAssignment:将主体分配给某一角色,间接获得该角色的所有权限。

每个主体只能通过一种方式(直接或间接)获得权限,且安全管理员权限只能分配给一个主体。

SecurityAdmin(安全管理)接口

E132定义设备必须提供一个仅允许已被授予securityAdminPrivileges的主体访问的安全管理接口。安全管理接口支持以下操作:

  • GetDefinedPrivileges:获取设备支持的所有权限列表。
  • GetACL:获取当前ACL配置。
  • AddACLEntry:添加ACL条目。
  • DeleteACLEntry:删除ACL条目。
  • GetActiveSessions:查看当前活动会话。
  • SetMaxSessions:设置最大非管理会话数。
  • GetMaxSessions:获取最大非管理会话数。
  • SetSessionPingSettings:配置会话心跳检测参数。
  • GetSessionPingSettings:获取会话心跳检测参数。

SessionManager(会话管理)接口

E132标准中定义客户端可以通过以下接口管理与设备的会话:

  • EstablishSession:请求建立一个新的认证会话,并设置客户端端点。
  • SessionPing:心跳检测请求。
  • CloseSession:请求关闭或终止当前或指定的会话。。

SessionClient(会话客户端)接口与通知

E132定义设备通过以下接口与客户端交互:

  • SessionPing:心跳检测请求。
  • SessionFrozen:通知客户端会话已被冻结。
  • SessionClosed:通知客户端会话已被终止。
InterfaceDiscovery 接口

支持Freeze II 及以后版本E132的设备,需要提供一个无需认证的InterfaceDiscovery接口,允许客户端查询设备支持的接口列表及其元数据,便于动态集成与发现。

总结

E132 通过引入挑战-响应身份验证、会话管理与访问控制列表(ACL)等机制,有效防止未授权访问,提升设备通信的安全性与可控性,SEMI E132 为半导体设备提供了一套完整、可扩展的安全通信框架。

如需了解SEMI E132解决方案,请联系support@kxware.com

如需获取SEMI 标准文档, 请访问SEMI网站获取:https://www.semi.org/en/products-services/download-standards 。