了解服务器信任
学习目标
解释服务器信任、客户端对服务器身份的验证,以及如何在 SAP 系统中维护信任列表
服务器信任
客户端需要信任它们所连接的服务器,以避免将密码等数据发送给未授权方。它们需要验证服务器的身份。换言之:服务器向客户端证明自己的身份。
TLS 握手期间的服务器认证
当客户端使用 TLS 协议(例如 HTTPS)连接到服务器时,客户端会在 TLS 握手期间验证服务器的身份。以下步骤以极度简化的方式描述此过程。它们并非旨在反映 TLS 协议的真实流程,而是帮助你理解该过程。
服务器将其服务器证书发送给客户端,证书中包含(除其他内容外)服务器名称和公开加密密钥。
客户端检查该证书(其有效期;是否由客户端信任的证书颁发机构签发且签名有效;当然还要检查它是否与服务器名称匹配)。
客户端使用服务器的公开密钥加密一个随机数,服务器需要用其私有密钥解密,以证明其拥有相应的私有密钥。
如果其中任一步骤失败,则连接不会建立。常见原因如下:
服务器证书已过期。
证书中提及的服务器名称与客户端尝试连接的主机名不匹配。
客户端不信任签发该服务器证书的证书颁发机构,或由于客户端信任库中缺少条目而无法验证证书链。
注意
客户端需要维护信任列表,即存储受信任证书颁发机构(CA)的证书,以便能够验证服务器的证书链。这些列表至少必须包含根 CA 的证书,但也可以包含中间 CA。中间证书通常由服务器随服务器证书一起发送,因此客户端只需知道相应的根 CA 即可验证证书链。
以下视频将该过程可视化。请记住,该视频同样出于演示目的展示了极度简化的过程版本!
视频:本节含 SAP 官方视频(视频 ID
1_5hzaktal),需在 learning.sap.com 在线观看。
该视频聚焦于作为 TLS 握手一部分的服务器认证。如果服务器要求客户端也使用客户端证书进行认证,则该过程会以相反的顺序再执行一次。在这种情况下,客户端将其证书发送给服务器,由服务器进行验证。这也称为双向认证。基于证书的认证将在下一课中说明。
借助加密和通信对端认证等功能,TLS 协议极大地帮助保护通信免受所谓的中间人(MITM)攻击,在此类攻击中,攻击者试图拦截客户端与服务器之间的所有消息,并可能注入新消息。如果没有签发和签署证书的受信任证书颁发机构,攻击者可以简单地生成自己的证书并冒充通信伙伴的身份。
在 SAP 系统中维护信任列表
受信任证书颁发机构的列表也必须在 SAP 解决方案中维护。在这些解决方案中,它们被称为 Trust Store、Keystore 或 Trust List。SAP Sales and Service Cloud 和 Cloud Integration 随附一组默认的受信任公共证书颁发机构,而 SAP S/4HANA 则不附带此类预交付列表。不过,所有解决方案中的这些列表都可由管理员维护。你可以在以下位置找到这些列表:
SAP Sales and Service Cloud: Administrator 工作中心 → Common Tasks 视图 → Edit Certificate Trust List
Cloud Integration: Monitor 视图 → Manage Security 部分 → Keystore 磁贴
SAP S/4HANA: 事务 STRUST