当前位置: 首页 > news >正文

Magenta Systems Delphi Internet Component Suite (ICS) 扩展组件介绍

概述

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-105.43 MB2027年5月ICS V9.6
3.6.3(32-bit)2026-06-105.44 MB2026年11月ICS V8.67
3.5.7(32-bit)2026-06-105.36 MB2030年4月 (LTS)ICS V8.67
3.4.3 (32-bit)2025-10-025.11 MB2026年10月ICS V8.67
3.0.20 (32-bit)2026-04-094.58 MB2026年9月 (LTS)ICS V8.67
1.1.1w (32-bit)2023-09-201.83 MB2023年9月 (已终止)ICS V8.57
1.0.2u (32-bit)2021-01-071.74 MB2019年 (已终止)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.pem156Apple 信任库
google_aosp.pem143Google AOSP 信任库
microsoft_windows.pem310Microsoft Windows 信任库
mozilla_nss.pem145Mozilla NSS 信任库
openjdk.pem89OpenJDK 信任库
oracle_java.pem91Oracle 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 其他修复

  1. V9.6 中的两个 Bug 修复:

    • 未启用MSCRYPT_Clients定义时的 SSL 握手错误

    • NO_DEBUG_LOG未启用时HTTPRestInitSsl问题

  2. 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中的wsoIcsDnsLookupwsoAsyncDnsLookup选项现在被忽略

  • 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 统一的日志系统

  • TWSocketTWSocketS中添加了统一的事件日志系统

  • 使用onDebugDisplay事件和新的WSDebugOptions选项控制

  • SSL 证书链检查功能移入TSslWSocket,使用SslCertVerMethodSslAllowSelfSign属性

  • 各协议组件(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 动词:PURGEPROPFINDPROPPATCHMKCOLMOVECOPYLOCKUNLOCK

  • Web 服务器内部支持PROPFIND目录列表

  • HTTP REST 示例可将 PROPFIND XML 响应转换为TIcsFDirRec数组

5.5 HTTP 客户端增强

  • SNI 类型控制SslSniType属性,支持不发送 IP 地址作为 SNI(默认,符合 RFC6066)

  • 同步请求超时SyncMaxSecs属性,限制同步请求的最大持续时间

  • 缓存控制CacheType属性,支持httpCacheNonehttpCacheNoCachehttpCacheMaxAge等选项

  • 错误处理改进:404 状态码始终返回,并带有ReasonPhraseRequestDoneErrorStr

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-IpAddrX-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)转换问题

  • 新增IcsDigestAsntoIEEEIcsDigestIEEEtoAsn转换函数

  • ACME 请求使用 EC 密钥签名现在正确工作

6.7 HTTP 服务器自定义错误页面

  • 新增OnHttpCustomError事件,可自定义 HTTP 错误响应(301、302、400、401、403、404 等)

  • 新增hoContDispHdr选项和AttachmentTypes列表,控制文件下载行为(如 .pdf 保存而非显示)

6.8 内存监控工具

  • 新增 Windows 内存报告函数:

    • IcsMemInfoProg

    • IcsMemInfoGlob

    • IcsMemInfoPerf

  • 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 组件

  • 新增TIcsMQTTServerTIcsMQTTClient

  • 支持发布-订阅模式的机器对机器通信

8.6 DNS 查询增强

  • TDnsQuery支持多个 DNS 服务器列表(失败时切换)

  • 内置公共 DNS 服务器列表(Google、Cloudflare、OpenDNS 等)

  • 新增 AAAALookup 方法(IPv6 查询)

8.7 域名缓存组件

  • TIcsDomainNameCacheTIcsDomNameCacheHttps:简化正向/反向域名查询

  • 支持 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.RESOpenSSL 3.0 DLL根据 DEFINE 选择
LibV31OpenSSL32.RES/64.RESOpenSSL 3.1 DLL根据 DEFINE 选择
LibV32OpenSSL32.RES/64.RESOpenSSL 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.RESICS 根证书和中间证书-
ICSPortList.RES端口列表-
nmap-mac-prefixes.RESMAC 地址前缀-

总结

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 互联网开发的重要工具集。

http://www.cnnetsun.cn/news/3575723.html

相关文章:

  • LangChain4j与Prompt工程在Java中的实战应用
  • C++图像格式转换实战:从RGB/YUV原理到内存布局与优化实现
  • 深入解析TMS320F2837xS模拟子系统:从ADC、DAC到CMPSS的实战配置
  • isaacsim5.1.0编译报错记录
  • 启创记账适合谁?丹灶小微企业财税服务选择维度参考
  • AI图像生成模型识别与评估:从Midjourney到Stable Diffusion的实用指南
  • YOLOv5/8/10在垃圾分类检测系统中的应用与实践
  • 孟加拉语OCR数据集解析与应用指南
  • YUM包管理工具:Linux软件安装与依赖管理详解
  • 大模型评测全流程解析:从Benchmark设计到分数解读
  • AI Agent开发指南:核心组件与实战技巧
  • AI模型实用部署指南:从环境配置到批量任务优化
  • JavaScript初相识与数据类型Number、String、Boolean
  • AI学伴系统:融合认知计算与情感计算的教育创新
  • 前后端参数传递方式与最佳实践解析
  • AI代码分析新范式:codebase-memory-mcp技术解析与应用
  • 市面上还有高性价比谷歌SEO优化公司,这是真的吗?
  • 静态路由实验
  • 瀑布项目管理全流程怎么做?从立项、计划到验收复盘
  • 豆包与抖音联动创作新手指南
  • Vlm-RT-DETR多模态实时检测模型解析与部署实践
  • C++代码覆盖率实战:从gcov到llvm-cov,提升软件质量的关键技术
  • Winform应用Native AOT编译实战与优化策略
  • 如何用GTA5线上小助手彻底改变你的洛圣都冒险体验:5大功能全面指南
  • 2026年Codex同类企业AI工具深度评测:5款主流产品横向选型指南
  • AIGC检测和查重能一起过吗?讲清区别再一次降到达标
  • ROS多线程订阅优化:解决机器人开发性能瓶颈
  • 深圳坂田企业招聘现状与高薪岗位解析
  • 强化学习突破机器人仿真训练现实应用瓶颈
  • AI专著高效创作:工具链搭建与实战方法论