如何增强虚拟应用程序交付平台的安全性和性能 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

如何增强虚拟应用程序交付平台的安全性和性能

walker 技术 2023-01-04 11:10:00
76121
收藏

导语:Cameyo是一家总部位于美国的 VAD 服务提供商,在全球开展业务。该公司的 VAD 平台为客户提供了从任何地方在任何设备上安全访问关键业务应用程序的权限,而无需 VPN。

客户端

Cameyo是一家总部位于美国的 VAD 服务提供商,在全球开展业务。该公司的 VAD 平台为客户提供了从任何地方在任何设备上安全访问关键业务应用程序的权限,而无需 VPN。

挑战

我们的客户想知道如何保护虚拟应用程序交付平台,并确保在引入新功能的同时高效及时地支持他们的产品。他们希望通过这种方式满足现有客户的需求并吸引新客户。他们正在寻找一支由经验丰富的开发人员组成的团队,他们可以适应快速变化的优先级和项目目标,同时保持所交付功能的整体质量。

方法

在分析项目并与客户讨论可能的改进后,Apriorit 团队集中精力实现关键的五个目标:

image.png

如何提升产品价值

我们将这些技术任务分为两类:

  1. 通过修复我们的质量保证 (QA) 专家发现的错误以及解决平台最终用户报告的错误和错误来支持现有功能

  2. 研究和实施新功能,以增加产品对现有用户和潜在新用户的价值

为了满足客户的需求并提高产品的可行性,我们组建了一个团队,其中包括一名项目经理 (PM)、一名 QA 专家和对 C/C++、Go 和远程桌面协议 (RDP) 有深入了解的 Windows 软件专家). 

image.png

VDA平台增强技术

结果

Apriorit 团队实施了多项功能,提高了 Cameyo 的虚拟应用程序交付平台的安全性、性能和可用性。我们还引入了新的项目管理工具和方法来减少项目的管理开销。此外,我们的专家对项目文档进行了实时更新,确保更好地跟踪所有产品变更,并更容易实施进一步的产品改进。

如何做到的

在我们多年的合作中,Apriorit 团队执行了各种旨在帮助我们的客户实现其目标的任务,从研究竞争对手和市场趋势到构建新功能和测试 VAD 平台的安全性。

以下是我们的团队为 Cameyo 平台实现的四个主要功能:

image.png

VDA 平台的新功能

让我们详细了解这些功能中的每一个。

1.扫描仪重定向

Apriorit 开发人员实现了扫描仪重定向功能,并将其添加到用 .NET 编写的本机 Cameyo 客户端中。此功能将真实的扫描仪转发到用户的 RDP 会话,使在远程服务器上运行应用程序的用户能够像使用本地设备一样使用选定的扫描仪。

我们面临的主要挑战之一是解决 Cameyo 客户端的权利限制问题,因为它没有安装在最终用户的系统中。为了克服这些限制,在 Cameyo 本机客户端中,我们构建了一个自定义扫描仪客户端,负责使用扫描仪。该客户端的工作流程如下所示:

1. 在端点方面,我们的自定义扫描仪客户端连接到远程端点,使最终用户能够使用远程扫描仪。该客户端可以执行诸如向用户转发可用扫描仪列表、确认活动扫描仪的选择以及传输支持的操作模式等操作。

2. 在服务器端,我们实现了一个自定义的TWAIN兼容提供程序,它也充当我们自定义扫描仪客户端的服务器。使用此提供程序,我们将扫描仪控制命令从 RDP 用户会话传递到扫描仪客户端,并将扫描数据发送回用户。

我们基于用 C 编写的开源解决方案构建了自定义 TWAIN 提供程序,为原始解决方案添加了对会话隔离的支持。由于本机 Cameyo 客户端已经为客户端-服务器通信提供了一个活动的 RDP 会话,因此在 TWAIN 提供程序中,我们使用了虚拟 Windows 终端服务器 (WTS) 通道。

我们还改进了自定义扫描仪客户端中的数据缓存,以提高转换扫描图像的速度,并实施了一个额外的适配器进程,使客户端与 x86 应用程序兼容。

最后,由于本地客户端和我们的扫描器客户端是用不同的语言编写的,我们需要实现一个跨语言的 RPC。为此,我们使用了Apache Thrift并创建了一个使用虚拟 RDP 通道的附加传输层协议。

2.云隧道

为了实现与 Cameyo 服务器的安全远程连接,Apriorit 团队实施了云隧道功能。此功能用作将平台的最终用户连接到 Cameyo 服务器的云节点,并提供一种安全的替代方法来设置用户与服务器之间的直接连接。 

开发此功能时,我们使用了两种编程语言——Go 用于隧道服务,C 用于鳄梨酱修改。

由于 Cameyo 的浏览器模块使用 Guacamole 来启动浏览器会话,我们实现了将 Guacamole 服务器转变为客户端的逻辑。这使我们即使在启用防火墙的情况下也能建立安全连接。传统配置在这种情况下不起作用。

我们还实现了一个自定义隧道服务,充当两个连接客户端之间的中介。在此服务中,我们实现了两个服务器:

  • 在我们的 RPD 应用程序和浏览器之间建立连接

  • 执行握手以交换设置

由于此功能,用户可以在本地服务器上安全地操作会话,而无需使用入站防火墙端口或 VPN 解决方案。

3.GFX模式

Cameyo 平台的 Web 客户端依赖于 Guacamole 模块。虽然此模块可确保不同 Web 浏览器和操作系统的平台可用性,但 Cameyo Web 客户端中使用的 Guacamole 版本相当慢。当最终用户使用动态图形内容时,这会损害平台的性能。

为应对这一挑战,Apriorit 团队实施了 GFX 模式,提高了 Cameyo 网络客户端在图形应用程序方面的性能。

在研究可能的解决方案和实施 GFX 模式时,我们与 Cameyo 的内部团队密切合作。Cameyo 希望他们的 Web 客户端能够以至少每秒 30 帧 (FPS) 且没有伪像的高质量准确显示视频内容,从而使最终用户能够舒适地使用现代视频编辑应用程序。

为实现这一目标,我们希望利用支持高清屏幕传输编解码器(如 avc444 或 avc420)的可用 RDP 功能。然而,Guacamole 协议不允许我们获得我们想要的结果。

在寻找可能的解决方案时,我们评估了几个选项并最终确定了一个简单但看似有效的想法——将编码图形数据流从FreeRDP 重定向到浏览器并在那里解码。

为此,我们需要扩展 Guacamole 协议,使其能够传输使用 H.264 编解码器编码的内容。在浏览器端,我们决定使用 WebCodecs——一个内置的 Chrome API,允许对音频和视频数据进行编码和解码。

我们开始研究从 FreeRDP 获取数据的可能方法,并寻找 CPU/GPU 负载尽可能低的编解码器。在对不同的编解码器进行了一系列实验之后,我们选择了 libx264——一种基于 CPU 的 H.264 编码器,它使我们能够处理高清视频数据,而无需花费太多 CPU 时间。

4.渐进式网络应用

我们实施的另一个功能是适用于 ChromeOS 的渐进式网络应用 (PWA) 解决方案。此功能允许 ChromeOS 上的最终用户将 Cameyo 网络应用程序下载到他们的设备,以便更轻松、更快速地启动远程应用程序。

为介绍此功能,我们编写了一个 JavaScript 脚本来解决两个任务:

1. 实现通过打开桌面应用程序访问门户的机制

2.缓存内容,加快门户网站访问速度

因此,最终用户可以方便地使用 Cameyo 网络应用程序,甚至不需要打开他们的网络浏览器。

挑战与解决方案

在开展该项目时,Apriorit 团队成功应对了多项挑战:

明确目标——这个项目进行了大量的实验和调整,因为客户对如何改进他们的产品有很多想法。为确保开发过程易于规划和评估,我们帮助客户将这些想法转化为清晰、可衡量的规范。特别是,我们与客户举行了回顾会议,在会上我们评估了我们的进展并阐明了正在开发的功能的目标。

项目文档的持续维护——我们需要在开发新产品功能的同时编写和更新大量技术文档。通过遵循 Apriorit 的内部标准程序,我们能够使所有项目文档保持最新状态,从而更轻松地跟踪对产品所做的所有更改并保持最终结果的高质量。

复杂的支持程序——由于平台的高度可定制性,我们很难重新创建和修复在特定定制环境中检测到的错误。为了提高我们支持服务的效率,我们设计了一份标准问卷,由 Cameyo 专家在收到最终用户的支持请求时填写。该调查问卷使我们能够组织调试所需的信息,并提高支持的速度和效率。

项目管理开销——最初,Aprioit 团队的所有任务都在 Trello 中分配,这使得项目管理过程既耗时又不明确。为了解决这些问题,我们将所有与项目相关的活动都转移到了 Jira。在配置关键流程、构建透明路线图并建立迭代项目工作流程之后,我们能够使双方的开发流程更加高效和可预测。

如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务