概述
Magenta Systems Ltd 为 François Piette 开发的Internet Component Suite (ICS)提供了一系列扩展组件和增强功能。ICS 是一套广泛应用于 Delphi 开发环境的互联网组件套件,而 Magenta Systems 的贡献则进一步丰富了其功能,特别是在安全通信、服务器监控和高级网络协议支持方面。
本文档基于 Magenta Systems ICS 扩展页面 的内容,详细介绍了这些扩展组件的功能、版本更新和使用方式。
一、ICS 核心信息
1.1 支持的 Delphi 版本
ICS V8 及更高版本支持广泛的 Delphi 编译器,包括:
Delphi 7, 2006–2010
Delphi XE–XE8
Delphi 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney
Delphi 11, 12, 13
1.2 获取方式
1.3 最新版本
ICS V9.7(2026年5月16日发布):主要修复版本
每日构建版 V9(2026年7月20日):包含最新开发内容
二、OpenSSL 支持
Magenta Systems 为 ICS 提供了预编译的 OpenSSL Windows 二进制文件,支持多个版本:
| OpenSSL 版本 | 发布日期 | 大小 | 支持截止日期 | 最低 ICS 版本 |
|---|---|---|---|---|
| 4.0.1(32-bit) | 2026-06-10 | 5.43 MB | 2027年5月 | ICS V9.6 |
| 3.6.3(32-bit) | 2026-06-10 | 5.44 MB | 2026年11月 | ICS V8.67 |
| 3.5.7(32-bit) | 2026-06-10 | 5.36 MB | 2030年4月 (LTS) | ICS V8.67 |
| 3.4.3 (32-bit) | 2025-10-02 | 5.11 MB | 2026年10月 | ICS V8.67 |
| 3.0.20 (32-bit) | 2026-04-09 | 4.58 MB | 2026年9月 (LTS) | ICS V8.67 |
| 1.1.1w (32-bit) | 2023-09-20 | 1.83 MB | 2023年9月 (已终止) | ICS V8.57 |
| 1.0.2u (32-bit) | 2021-01-07 | 1.74 MB | 2019年 (已终止) | ICS V8.65 |
重要说明:
从 OpenSSL 4.0 开始,二进制文件已由 "Magenta Systems Ltd" 进行数字签名。
建议使用长期支持版本(LTS)OpenSSL 3.5,支持至 2030 年。
OpenSSL 4.0 是主要新版本,需要 ICS V9.6 或更高版本。
三、CA 信任证书库
3.1 证书库来源
SSL/TLS 信任根证书捆绑包从Common CA Database (CCADB)和Trust Stores Observatory Git 仓库生成。Magenta Systems 开发了专门工具,将 YAML 格式的证书数据转换为 OpenSSL 可用的 PEM 和 PKCS7/12 格式。
3.2 提供的证书捆绑包(2026年4月更新)
| 捆绑包名称 | 证书数量 | 说明 |
|---|---|---|
apple.pem | 156 | Apple 信任库 |
google_aosp.pem | 143 | Google AOSP 信任库 |
microsoft_windows.pem | 310 | Microsoft Windows 信任库 |
mozilla_nss.pem | 145 | Mozilla NSS 信任库 |
openjdk.pem | 89 | OpenJDK 信任库 |
oracle_java.pem | 91 | Oracle Java 信任库 |
3.3 文件特性
每个证书都包含详细的描述信息(颁发者、到期时间、公钥类型、SHA256 哈希)
提供三种版本:标准 PEM、清理版 PEM(不含注释)、PKCS7/12 格式(更小)
附带
-titles.txt和-fprints.txt文件,用于快速查看证书概要包含 Microsoft Windows 证书库的变更记录(新增/移除的证书)
3.4 ICS 内置支持
ICS 发行版已包含三个 CA 信任存储,可通过FAQ_SSL/TLS_Certificate_Authority_Root_Stores了解更多信息。
四、V9.7 主要更新(2026年5月16日)
4.1 关键修复:Google 服务器兼容性问题
问题:2026年5月初,Google 服务器变更导致使用 OpenSSL 3.2 及以上版本的 ICS V9.5/V9.6 在 SSL 握手时失败,错误信息为 "SSL routines::tls alert illegal parameter"。
原因:与 Raw Public Key 证书的新功能相关,该功能影响客户端行为。
解决方案:已禁用该功能,所有访问 Google 托管网站(及其他使用 BoringSSL 的服务)的用户应升级到 V9.7。
4.2 其他修复
V9.6 中的两个 Bug 修复:
未启用
MSCRYPT_Clients定义时的 SSL 握手错误NO_DEBUG_LOG未启用时HTTPRest的InitSsl问题
MultiWebServ不再需要USE_IcsGeoTools定义即可构建
4.3 默认 OpenSSL 版本调整
默认 OpenSSL 版本改为4.0
移除了 OpenSSL 3.0 和 3.4 的资源文件(四个月内停止支持)
OpenSSL 3.6 六个月后停止支持,因此3.5 LTS版本被放在
ICS-OpenSSL目录作为备选发现 OpenSSL 4.0 的首个问题:验证 URL 中的 IP 地址时需要使用不同的 API
4.4 SSL/TLS 证书相关变更
订购证书时,仅对 Let's Encrypt 使用证书配置文件,Google 拒绝带有配置文件的订单
4.5 DNS 查询优化
WSocket.ComponentOptions中的wsoIcsDnsLookup和wsoAsyncDnsLookup选项现在被忽略WSocket始终使用异步线程 DNS 查询(IPv4 和 IPv6)
移除了旧的 IPv4 同步 DNS 代码,提升了性能和一致性
4.6 HTTP 客户端改进
转换部分旧的
IcsLogger输出为新版onDisplay日志添加检查以防止 ICS 在 Linux 下构建(V9 不支持,V10 计划支持)
移除了所有测试用的 Linux、Android 和 macOS 包
4.7 WebSocket 客户端修复
使用
WSFullHdrs时,不移除添加的ExtraHeaders不允许重复的
Connection:头
4.8 SuperObject JSON 修复
写入 Currency JSON 时,检查并删除末尾的点号(避免混淆某些解析器)
五、V9.6 主要新增功能(2026年5月15日)
5.1 后量子密码学(PQC)支持
支持ML-DSA私钥签名(使用 Jose)和ML-KEMTLS 密钥交换
V9.5 客户端已发送
X25519MLKEM768组,但未正确报告支持状态,现已修复新增 TLSv1.3 服务器的 PQC 支持
注意:目前尚无 PQC 加密套件和 PQC 签名的 X.509 证书(等待 RFC 标准)
5.2 统一的日志系统
在
TWSocket和TWSocketS中添加了统一的事件日志系统使用
onDebugDisplay事件和新的WSDebugOptions选项控制SSL 证书链检查功能移入
TSslWSocket,使用SslCertVerMethod和SslAllowSelfSign属性各协议组件(FTP、SMTP、POP3、HTTP)统一使用新日志系统
旧版
IcsLogger已废弃(定义NO_DEBUG_LOG默认启用),计划完全移除
5.3 通用对称加密组件 -TIcsSymCrypto
支持所有 OpenSSL 加密算法(AES 最常用)
多种密钥派生方法:PKCS5v15、PKCS5_PDKDF2_HMAC、Argon2、Raw Key/IV、Quick Hash
与
openssl-enc命令行工具兼容提供简单的字符串加密/解密函数:
IcsJoseStrEncrypt/IcsJoseStrDecrypt
5.4 HTTP WebDAV 支持
新增 HTTP 动词:
PURGE、PROPFIND、PROPPATCH、MKCOL、MOVE、COPY、LOCK、UNLOCKWeb 服务器内部支持
PROPFIND目录列表HTTP REST 示例可将 PROPFIND XML 响应转换为
TIcsFDirRec数组
5.5 HTTP 客户端增强
SNI 类型控制:
SslSniType属性,支持不发送 IP 地址作为 SNI(默认,符合 RFC6066)同步请求超时:
SyncMaxSecs属性,限制同步请求的最大持续时间缓存控制:
CacheType属性,支持httpCacheNone、httpCacheNoCache、httpCacheMaxAge等选项错误处理改进:404 状态码始终返回,并带有
ReasonPhrase和RequestDoneErrorStr
5.6 WebSocket 客户端增强
WsConnect现在传递 URL 而非设置 URL 属性,允许传递RestParams正确支持代理设置
恢复 V9.5 中丢失的异步连接错误处理
5.7 证书处理改进
改进 IPv6 地址处理(
TX509Base)新增
ListAllNames方法获取所有 SAN 名称CertMainInfo正确显示空白通用名称和 IP 地址的 TLS 服务器证书CertsHandshake报告客户端握手证书链(主机、中间、根)
5.8 Let's Encrypt 支持更新
支持六天有效期的短生命周期证书(为 2029 年要求准备)
支持 IP 地址证书(非仅主机名)
新增
dns-persist-01挑战类型(可手动设置一次,永久有效)
5.9 SMTP 服务器改进
使用
IcsHosts支持多监听器和自动化证书仅支持 SSL 版本(移除无 SSL 版本)
新增
X-IpAddr和X-RDNS头,避免解析 Received 头
5.10 代理服务器改进
ForwardSocFamily属性:控制转发代理的地址族(IPv4 监听器可连接 IPv6 目标)OnProxyForward事件:应用程序可决定哪些端口可通过 HTTP CONNECT 转发
5.11 OpenSSL 4.0 支持
添加 OpenSSL 4.0.0 支持(DLL 文件名变更,不兼容旧版本)
V9.6 默认仍使用 OpenSSL 3.6(需修改
Defs.inc启用 4.0)资源提取改进:检查所有三个 DLL 是否已提取,不因首个错误停止
5.12 Delphi WinARM64EC 支持
为 Delphi 13.1 添加 Windows ARM64EC 目标平台支持
主要差异:无汇编支持和 OBJ 文件
六、V9.5 主要新增功能(2025年)
6.1 地理组件 -TIcsGeoTools
读取 MaxMind 格式 GEO 数据库(使用
MMDBReader组件)内置
db-ip.com的 "IP to Country Lite" 和 "IP to ASN Lite" 数据库可链接为资源文件或从文件加载
支持国家/地区过滤,用于服务器防护
6.2 服务器连接过滤
TWSocketServer新增OnClientAcceptFilter事件在连接接受前基于远程 IP 地址进行过滤(类似防火墙)
THttpSrv新增OnHttpAcceptFilter事件
6.3 ACME 多供应商支持
除 Let's Encrypt 外,新增支持Google Trust Services(免费)
理论上支持 DigiCert、ZeroSSL、SSLcom(商业证书)
Google 证书允许指定有效期(短至 3 天)
使用 ACME 外部账户绑定
6.4 MQTT 协议增强
支持 MQTT 协议3.1.1版本(此前仅 3.1)
新增
LogPackets属性用于诊断新增
BurstMode属性(3.1.1 客户端可不等待 Connect 响应直接发布)
6.5 WebSocket 改进
客户端支持异步连接(
OnWSConnected事件)服务器支持连接后延迟发送欢迎消息
新增
OnWSFramesDone事件用于流控示例
IcsAppMonMan.dpr演示多 WebSocket 客户端同时连接多个服务器
6.6 ECDSA 修复
修复 ECDSA 二进制摘要的两种格式(ASN.1 和 IEEE P1363)转换问题
新增
IcsDigestAsntoIEEE和IcsDigestIEEEtoAsn转换函数ACME 请求使用 EC 密钥签名现在正确工作
6.7 HTTP 服务器自定义错误页面
新增
OnHttpCustomError事件,可自定义 HTTP 错误响应(301、302、400、401、403、404 等)新增
hoContDispHdr选项和AttachmentTypes列表,控制文件下载行为(如 .pdf 保存而非显示)
6.8 内存监控工具
新增 Windows 内存报告函数:
IcsMemInfoProgIcsMemInfoGlobIcsMemInfoPerf
IcsMemWarning检测低内存/临界内存问题(85%/95% 使用率警告)
6.9 OCSP 支持调整
由于 Let's Encrypt 于 2025 年 5 月停止在证书中添加 OCSP URL,OCSP 代码现可通过定义选项禁用
证书生命周期缩短(2029 年将减至 47 天),OCSP 需求降低
6.10 OpenSSL 3.5 默认
ICS V9.5 默认使用 OpenSSL 3.5.2(长期支持至 2030 年)
支持后量子密码学算法(ML-KEM、ML-DSA、SLH-DSA)
支持 QUIC(RFC 9000),但 ICS 暂无 QUIC 计划
七、V9.4 主要新增功能(2024年)
7.1 应用监控系统
完整的 ICS 应用程序监控系统(V9.3 开始)
客户端组件
TIcsAppMonCli:嵌入应用程序中服务器组件
TIcsAppMonSrv:通常作为 Windows 服务运行支持 Web 和 WebSocket 远程监控,实时更新状态
7.2 新增 Windows 工具单元
OverbyteIcsWinUtils:包含 Windows API 函数功能:Windows 服务控制、注册表访问、防火墙、任务计划、硬件信息、密码加密
7.3 FTP 组件改进
零长度文件下载优化(创建空文件,避免 SSL 握手错误)
扩展被动模式(EPSV ALL)支持,提高防火墙/NAT 兼容性
新增
CheckBadUnicode属性(默认 false),跳过 Unicode 到 Ansi 转换检查
7.4 ICMP 组件修复
修复
PingMsg属性设置问题
八、V9.0 主要新增功能(2023年)
8.1 长期支持版本
ICS V9 计划为长期支持版本,不添加新组件或重大功能,仅 Bug 修复
8.2 示例重组
新增
ActiveDemos项目组(约 50 个示例项目)新增
OverbyteIcsSnippets示例:包含 HTTP REST、WebSocket、FTP、邮件等独立功能代码片段
8.3 OAuth2 增强
支持嵌入式浏览器(TEdgeBrowser/TWebBrowser)认证
更好的用户体验(认证完成自动关闭窗口,无需本地 Web 服务器)
新增
TOAuthBrowser组件和TOAuthLoginForm窗口
8.4 WebSocket 组件
新增客户端
TSslWebSocketCli和服务器支持(THttpWSSrvConn)支持 ws:// 和 wss:// 协议
Echo、EchoPing 和 Chat 演示
8.5 MQTT 组件
新增
TIcsMQTTServer和TIcsMQTTClient支持发布-订阅模式的机器对机器通信
8.6 DNS 查询增强
TDnsQuery支持多个 DNS 服务器列表(失败时切换)内置公共 DNS 服务器列表(Google、Cloudflare、OpenDNS 等)
新增 AAAALookup 方法(IPv6 查询)
8.7 域名缓存组件
TIcsDomainNameCache和TIcsDomNameCacheHttps:简化正向/反向域名查询支持 Winsock 缓存、TDnsQuery 和 DNS over HTTPS
支持最多 100 个并行查询(默认 5 个)
8.8 Windows 证书存储支持
可从 Windows 证书存储加载 SSL/TLS 证书(PEM 和 PFX 之外的新选择)
LoadFromStore支持读取 EC 和 RSA 私钥TMsX509List.FindBest根据搜索字符串匹配证书服务器使用
SslLoadSource属性(CertWinStoreUser/CertWinStoreMachine)
8.9 FTP 保持连接
新增
NoopAsync方法:长时间传输期间发送 NOOP 命令保持控制连接活跃解决 2 小时以上传输因防火墙/路由器关闭连接而失败的问题
8.10 互联网数据包监控组件
基于 Magenta Systems 互联网数据包监控组件
支持 IPv6、协议和 IP 地址过滤
类似于 Wireshark 的数据包捕获功能
九、资源文件
ICS 现在包含多个可直接链接到应用程序的资源文件,避免分发独立文件:
| 资源文件 | 内容 | 定义选项 |
|---|---|---|
LibV30OpenSSL32.RES/64.RES | OpenSSL 3.0 DLL | 根据 DEFINE 选择 |
LibV31OpenSSL32.RES/64.RES | OpenSSL 3.1 DLL | 根据 DEFINE 选择 |
LibV32OpenSSL32.RES/64.RES | OpenSSL 3.2 DLL | 根据 DEFINE 选择 |
RootCaCertsBundle.RES | 大型 CA 证书捆绑包 | OpenSSL_CA_Bundle_Large |
sslRootCACertsBundle.RES | 小型 CA 证书捆绑包 | OpenSSL_CA_Bundle_Small |
TrustedCaBundle.RES | 中型 CA 证书捆绑包 | OpenSSL_CA_Bundle_Medium |
ICSCerts.RES | ICS 根证书和中间证书 | - |
ICSPortList.RES | 端口列表 | - |
nmap-mac-prefixes.RES | MAC 地址前缀 | - |
总结
Magenta Systems 的 ICS 扩展组件套件为 Delphi 开发者提供了企业级的互联网通信解决方案,涵盖:
✅全面的 SSL/TLS 支持:多版本 OpenSSL 二进制文件、自动证书管理
✅丰富的协议支持:HTTP/HTTPS、WebSocket、MQTT、FTP、SMTP、POP3、DNS、ICMP
✅高级安全特性:后量子密码学、ACME 多供应商支持、Windows 证书存储
✅强大的监控能力:应用监控、数据包捕获、地理 IP 过滤
✅跨平台准备:当前支持 Windows(含 ARM64EC),V10 计划支持 Linux/macOS
这些组件特别适合构建高可靠性服务器应用、安全通信系统和需要实时监控的互联网服务。持续更新和活跃的社区支持使其成为 Delphi 互联网开发的重要工具集。