实现对 IBM Cloud 的安全 SSH 访问

了解安全云访问的基础知识

通过研究从企业级远程计算到云的迁移背后的一些最新趋势,了解如何升级、选择和实现一个连接到 IBM® Cloud 的、安全高效的 SSH 连通性解决方案。本文将查看从关键流程的内部处理转换到基于云的解决方案时需要考虑的一些关键领域。我们会研究一个现有的端到端、服务器和客户机 SSH 安全性解决方案,了解该方案如何满足实际的规范要求。

Beth Redd, 产品经理, Pragma Systems, Inc.

Beth Redd 已经在 Pragma Systems 工作了 14 年,最近 5 年,她担任高级服务器产品开发人员。她毕业于奥斯汀市德克萨斯大学,获得了计算机科学学士学位。她拥有广泛的技术背景,曾涉足各种服务器和客户机技术,其中包括所有基于 Windows 的技术、C++ 和 C# 语言。最近,她还参与了一个跨多种基于云的技术的高级开发项目。



2012 年 2 月 20 日

越来越多的公司正在从各种软硬件组件的传统内部处理系统迁移到一种新模式,这种模式有利于将关键流程外包到远程数据中心。这些数据中心的设计目的和管理方式旨在同时服务于内部计算需求和面向客户的外部需求,比如改善通信,产品演示、订单处理和产品实现。

但是,这种迁移有一个要求,即关键的公司内部信息和赋予特权的客户数据仍然只供那些被授予访问和管理该数据权限的人员进行访问。

本文旨在介绍升级、选择和实现一个连接到 IBM Cloud 的安全高效的 SSH 连通性解决方案的基础知识。本文首先介绍最近一些迁移到云的趋势,然后研究从关键流程的内部处理迁移到基于云的解决方案时需要考虑的关键领域,最后展示一个现有的端到端、服务器和客户机 SSH 安全性解决方案。

安全云访问挑战

潜在云用户关心的一个问题是,数据在从一个安全的内部位置移动到一个可能不那么安全的外部位置时可能会被暴露。即使云实例本身可以通过 Windows Active Directory、NTFS 文件系统和防火墙进行保护,但数据传输可能会遇到麻烦。

有些问题如果得不到解决,就可能会导致真实且代价高昂的安全漏洞事宜。这样问题包括:

  • 明文传输:所有通信都以明文形式进行,包括用户名和密码。
  • 低强度的客户机身份验证:以常规方式部署的不安全的访问方法通过用户名和密码验证用户身份。实践多次证明,这种方式不仅不可靠,而且无法支持公共/私有密钥、Kerberos 和数字证书等高级方法。
  • 无服务器身份验证:用户没有办法确定,他们是在与自己预期的服务器而不是一个模仿该服务器的攻击者进行通信。
  • 数据完整性缺失:任何人都能修改和破坏服务器与客户端之间传输的数据,而不被别人察觉。

在这些情况下,大量从移动设备上访问云数据的问题也必须被考虑在内。如今,员工有以下行为并不少见:

  • 使用智能手机和平板电脑检查仓库里的存货。
  • 在现场作业时收集信息。
  • 跨多个检查站跟踪产品。
  • 从汽车上或机场休息室里向总公司传输数据。

据预计,在 2014 年,移动 Internet 应用将超过桌面 Internet 应用。现在,在所有 “本地” 搜索中,已经有超过一半是通过移动设备完成的。

鉴于联邦隐私和数据保护规范数量众多,而且黑客们展现出来的技术能力越来越高超,在企业设置中,允许员工通过移动设备对网络进行远程访问越来越受到挑战。

人们注意到有些用户和公司不愿意进行变革,不愿意进行这种转变。但当公司及其员工重新定义工作地点的地理范围时,关注如何最好地、安全地将多个访问点迁移到云中的存储数据尤为重要。

至于那些隐私规范,我们中的大多数人已经注意到,在过去十年里,联邦政府已经颁布了很多联邦规范,以保护消费者和公司的隐私。这些规范包括:

  • PCI-DSS(2004 年颁布,2009 年 1 月更新):这个支付卡工业数据安全标准规范规定如何处理、存储和传输信用卡信息。Telnet 缺乏加密、身份验证强度低和缺乏数据完整性的特征使其完全不适合支持该标准对无线网络的要求。
  • GLBA(1999 年颁布):Gramm-Leach-Bliley Act 要求金融业充分保护客户数据信息,同样,这是对 Telnet 和 FTP 的一个不切实际的要求。
  • Sarbox(2002 年颁布):Sarbanes-Oxley 要求企业实现严格的内部控制机制,以确保财务报告恰当反映任何公开上市公司的经营和财务状况。大多数审查 IT 系统的审计员要求关闭 Telnet 和 FTP 远程计算活动。
  • HIPAA(1996 年颁布):这个医疗规范要求医生加密和保护患者信息,同样,这对 Telnet 和 FTP 是不可能的。
  • FIPS Compliance:根据 Information Technology Management Reform Act (Public Law 104-106),美国商务部长批准了 National Institute of Standards and Technology (NIST) 为联邦计算机系统开发的标准和指南。这些标准和指南被 NIST 发布为 Federal Information Processing Standards (FIPS),在政府范围内应用。NIST 之所以要开发 FIPS,是因为那时联邦政府有迫切需求,却没有可以接受的行业解决方案或标准,比如安全性和互操作性标准。

    作为这个计划的一部分,Cryptographic Module Validation Program (CMVP) 鉴定计划负责验证针对该标准的密码模块。CMVP 是 National Institute of Standards and Technology (NIST) 和加拿大政府的 Communications Security Establishment (CSE) 之间的一个联合计划。通过这个计划验证的模块将受到有资质的独立 Cryptographic Module Testing (CMT) 实验室的严格测试。

除发布这个简明的规范外,联邦政府最近还对其数据中心启动了一个为期六个月的研究,其研究成果将为一项大范围的公共数据中心合并工作奠定基础。紧随联邦政府的步伐,纽约市也启动了一个类似的项目。

当政府部门致力于简化数据中心和存储功能并将越来越多的功能放置在云中时,许多行业观察家预计,这些大规模计划将带来进一步的数据和隐私保护规范,以确保远程计算的安全性。


SSH 作为一种云访问安全性解决途径

将在这里讨论的 SSH 组件使其成为云访问安全性解决途径的一个最佳候选对象。

作为一个允许数据通过一个安全通道在任意两个网络设备间进行交换的网络协议,SSH 在 1995 年设计之初就是特意为了充当 Ielnet、FTP 和其他不安全的远程 shells 的替代品。

SSH 通过加密机制来确保在不安全的网络上传输的数据的机密性和完整性。借助适当的 SSH 解决方案,公司能够有效防止:

  • 数据在任何网络上传输时被 “偷听”。
  • 数据在路由器等中间网络元素上被操纵。
  • IP 地址欺骗。
  • 可信主机名/IP 地址的 DNS 欺骗。
  • IP 源路由。

随着时间推移,SSH 的角色已经扩展为安全远程访问、安全文件传输和安全隧道连接的事实上的行业标准。也许更重要的是,SSH 已经成为将应用程序从服务器交付到桌面和移动客户机的安全交付传输的选择。

下面的 RFCs 列表充分说明了 SSH(作为一个 RFC 标准)在促进安全远程数据通信方面的作用:

  • RFC 4250:安全 Shell (SSH) 协议分配数 (The Secure Shell Protocol Assigned Numbers)
  • RFC 4251:安全 Shell (SSH) 协议架构 (The Secure Shell Protocol Architecture)
  • RFC 4252:安全 Shell (SSH) 鉴定协议 (The Secure Shell Authentication Protocol)
  • RFC 4253:传输层协议安全 Shell (SSH) (The Secure Shell Transport Layer Protocol)
  • RFC 4254:安全 Shell(SSH) 连接协议 (The Secure Shell Connection Protocol)
  • RFC 4256:安全 Shell 协议 (SSH) 的一般信息交换鉴定 (Generic Message Exchange Authentication for the Secure Shell Protocol)
  • RFC 4335:安全 Shell (SSH) 会话信道暂停扩展 (The Secure Shell Session Channel Break Extension)
  • RFC 4344:传输层加密模式安全 Shell(SSH) (The Secure Shell Transport Layer Encryption Modes)

从 Cisco 路由器到公司产品服务器,SSH 可适用于各种平台,其中包括 Microsoft® Windows、UNIX®、Apple Mac 和 Linux®,以完成以下任务:

  • 登录远程主机上的 shell(以替代 Telnet 和 rlogin)。

    使用任意标准 SSH 客户机以获取 shell 访问。

  • 在远程主机上执行单个命令(替代 rsh)。

    传递命令到 SSH 连接,以自动运行以下命令:

    ssh user@server c:\temp\batch_file_to_launch
  • 通过 Secure FTP (SFTP) 和 Secure Copy Protocol (SCP) 将文件从本地服务器复制到远程主机,提供文件复制选项。
    scp source_file user@sshServer:drive:\dest_directory\dest_file
  • 结合 SFTP 传输文件,作为 FTP 的一个安全替代方案。一种常见的误解是这是安全 FTP 并且可以使用 FTP 客户机进行连接;其实,需要 SFTP 客户机连接到 SFTP 服务器。
  • 结合 rsync 进行备份,复制和镜像文件既高效又安全。
  • 使用脚本自动化文件复制。下面的代码是一个 Pragma Systems 命令 SFTP 客户机脚本示例:
    sftp user@sftp_server -b batchfile -L logfile

    这个批处理文件可以包含以下文件传输动作:

    cd userlogs
    mput *.log
    cd \serverlogs
    mget *.logs
  • 对端口进行转发和隧道操作。端口转发的一个常见错误是连接到远程主机而不是本地端口。端口转发允许本地连接隧道通过 SSH 连接,对完整的会话进行加密。而且,一种自动转发端口的好方法是使用一个批处理文件,该文件建立作为用户的登录脚本运行的端口转发。
    • Web 流量隧道操作可以通过端口转发完成。打开一个 SSH 客户机并与端口转发连接:
      ssh user@ssh_server -L 8080:internal_webserver:80


      接着,以本地方式连接,使流量以隧道方式通过端口 http://localhost:8080。
    • 可以使用电子邮件流量。打开一个 SSH 客户机并与端口转发连接:
      ssh user@ssh_server -L
  • 从一个远程主机转发(可以通过多个中间主机)。
  • 使用支持 SOCKS 协议的 SSH 客户机,通过一个加密的代理连接浏览 Web。
  • 使用 SSHFS 将远程服务器上的目录安全地加载为本地计算机上的文件系统。
  • 通过这些机制中的一种或几种自动远程监控和管理服务器。
  • 与多个 SSH shell 通道用户进行安全协作,这时,对已断开的会话进行会话传输、交换、共享和恢复就成为可能。

鉴于这些任务和需求,SSH 似乎是随时随地安全访问云的适当解决途径。但还应该考虑一点,对于支持您需要和想要从现场执行的所有工作,SSH 自身是否就已够用。

SSH 在以下情况下可以单独胜任工作:

  • 您只需要命令行访问。
  • 您想执行一些单独命令,无论它们是以脚本方式还是交互式方式执行。
  • 您可以在一个命令行上执行您的所有管理工作。
  • 您希望所有流量都通过一个端口安全通过。
  • 您只想在一个防火墙中打开一个端口。
  • 您想快速访问您的服务器。

如果您有以下需求,那么您可能需要 VPN 或 Terminal Services:

  • 您需要运行图形程序。
  • 您想在用户上下文中完全访问多个程序。

那么,在云中实现 SSH 的最佳实践都有哪些呢?请记住以下几点:

  • GUI 连接是处理器密集型的。对于服务器,这种连接可能会被禁止。命令行访问需要占用较少的处理器资源,因此可以实现快速连接。
  • SSH 是远程管理服务器和运行控制台应用程序的理想选择。通过 GUI 执行的所有管理几乎都可以通过命令行执行。Windows 为命令行管理提供了 PowerShell 和其他命令行工具。
  • 由于 SSH 是标准的,因此允许跨平台连接。Linux、Windows 以及 RF 枪和移动电话等手持式设备都能连接上,从而传输文件或运行应用程序。
  • Windows 云实例上的 SSH 向 Windows 提供一些 Linux 云实例目前提供的基本功能,但同时具有常见的、基于 Windows 的系统的灵活性和易用性。

下面,我们先介绍一个能够满足向云提供 SSH 访问的要求的现有系统。然后,我们将检查该系统如何满足 PCI 等法规的要求。


实际的 SSH 解决方案

Pragma Systems 的 Fortress SSH

Pragma Systems 的 Fortress SSH™ Server 提供安全、可靠、快速、功能齐全的 Secure Shell 服务器连通性;它交付了您向授权用户提供关键文件和其他数据的安全访问所需的 全部服务器端功能。Fortress SSH Server 具有以下特征和功能:

  • 通过 FIPS 140-2 认证 (Pragma Systems Certificate #1500)。
  • 提供远程安装、管理和配置。
  • 是一个 C++ 应用程序,提供 32 位和 64 位平台支持,跨 Windows Server 2008 R2/ Windows 2008/2003/2000 和 Windows 7/Vista/XP。
  • 伸缩性极佳,支持超过 1,000 并发会话。
  • 支持运行控制台应用程序并支持历史回滚。
  • 支持远程运行任意控制台/字符模式应用程序。
  • 支持加速 SFTP 和 SCP 文件传输。
  • 对网络内部、收到和发出的流量进行端到端加密。

Pragma 和 IBM 精诚合作,向公司提供一个行业级高性能解决方案,简化将关键系统和流程切换到云的过程。

Pragma Systems 的 Fortress SSH Server 安装简单,使用方便。可以通过一个对话窗口或命令行程序进行配置。它还允许轻松定制,从而支持用户定义的登录脚本和可定制的登录 shell。Fortress SSH Server 还经过精心设计,支持跨多个大型公司环境进行无缝和轻松部署。

下面的实现案例将展示 Fortress SSH 如何满足 Payment Card Industry (PCI) 安全性要求。

作为 Payment Card Industry 的关键支付信息安全数据传输的关键要求列表的一部分,PCI 的一个关键是 Requirement 4.1-4.1.1:持卡人数据跨公共开放网络进行加密传输。换句话说,在通过容易和经常受到黑客拦截、修改和转向的网络进行数据传输过程中,敏感数据必须被加密。这些要求包括:

  • 4.1:在通过公共开放网络传输数据时,要使用安全套接字层 (SSL)/传输层安全性 (TLS) 和 Internet 协议安全性 (IPSEC) 等强大的密码术和安全协议来保护敏感的持卡人数据。
  • 4.1.1:对于传输持卡人数据的无线网络,应使用 WiFi 保护访问(WPA 或 WPA2)技术、IPSEC VPN 或 SSL/TLS 来加密传输。绝对不要只依赖有线等效协议 (Wired Equivalent Privacy, WEP) 来保护机密性和对无线 LAN 的访问。

    如果使用 WEP:
    • 最少要使用 104 位加密密钥和 24 位初始化值。
    • 必须结合使用 WiFi 保护访问(WPA 或 WPA2)技术、VPN 或 SSL/TLS。
    • 每次轮换共享 WEP 密钥的四分之一(或者在技术允许的情况下自动轮换)。
    • 只要对密钥拥有访问权的人员发生变动,就要轮换共享 WEP 密钥。
    • 基于 MAC 地址限制访问权。

参阅 Sections 4.1 和 4.1.1,重要的是要注意 SSH(包括 Pragma 的 Fortress SSH)与 SSL/TLS 和 IPSEC 使用相同的加密机制,然后再进一步,实际提供额外的安全性特性。

SSL 是一个较早的 TLS 版本:TLS 1.0 等同于 SSL 3.0。SSH 设计用于(通过 SFTP)提供安全远程访问和安全文件传输,而 SSL/TLS 设计用于保护 Web 电子商务,IPSEC 设计用于提供 VPN 访问。SSH 和 SFTP 已经成为 RFC 标准,并在行业中广泛采用和部署。

另外,针对 Internet 的 Request for Comments (RFC) Overview Notes 列示了 TLS Record 协议的两个基本属性:

  1. 连接是私有的。对称加密用于数据加密(比如 DES [DES] 和 RC4 [RC4])。这种对称加密的密钥针对每个连接生成惟一密钥,且基于与 TLS Handshake Protocol 之类的另一个协议之间的秘密协商。Record Protocol 也可以不加密使用。
  2. 连接是可靠的。消息传输包括一个使用键控 MAC 的消息完整性检查。安全散列函数(比如 SHA 和 MD5)被用于 MAC 计算。Record Protocol 不需要 MAC 即可运行,通常,只在另一个协议将 Record Protocol 用作传输机制来协商安全性参数时,才使用这种模式。

简言之,TLS 提供一种机制来阻止他人查看传输的数据(连接是私有的),还提供了一种机制来验证接收的数据是发送的数据(连接是可靠的)。这第二个特性看起来可能像一个基本的错误检查功能,但它的实际目的是为了防止黑客修改传输中的数据。

而且,IPSEC 是在 RFC 4301-4309 中定义的。在 Section 2.1 中,Goals/Objectives/Requirements/ Problem Description 描述如下:

IPSEC 旨在为 IPv4 和 IPv6 提供可互操作的、高质量的和基于密码的安全性。提供的安全性服务集包括访问控制、无连接完整性、数据源身份验证、重播的探测和拒绝(一种部分序列完整性形式)、(通过加密的)机密性和有限的传输流机密性。这些服务在 IP 层上提供,为所有可能通过 IP 携带的协议(包括 IP 自身)提供一种标准形式的保护。事实上,IPSEC 提供一个超级 SSL/TLS 功能超集。

从这个描述可以看出,加密和消息完整性对 PCI-DSS 依从性的影响是最重要的。

Pragma Systems 的 Fortress SSH 安全性特性与 IPSEC 非常相似,它们都利用相同的算法来进行加密:消息身份验证代码 (MAC) 处理和密钥交换。但是,除加密功能外,SSH 还向公司提供安全性和易用性之间的完美平衡。与 SSL/TLS 和 IPSEC 相比,Fortress SSH 具有相同的安全性,但提供更多灵活性。Pragma 的 Fortress SSH 技术直接体现了 Requirement 10.2.4-10.2.5 中表达的 PCI DDS 10.2.4-10.2.5 的原则:跟踪和监视对网络资源和持卡人数据的所有访问。它提供了稳固的身份验证机制,包括密码、公共密钥以及 Kerberos 身份验证机制。Fortress SSH 还可以轻松促进无效登录企图和有效连接的跟踪和记录。

日志机制和跟踪用户活动的能力很关键。在所有环境中,如果问题出现,日志的存在允许进行彻底跟踪和分析。如果没有系统活动日志,确定某个损害的原因将非常困难。


结束语

本文描述了实现安全云访问面临的挑战,描述了如何使用 SSH 来实现一个安全的云访问系统(包括必要的组件);本文还简要介绍了为云环境实现有效的 SSH 访问系统的一些最佳实践,并在 Pragma System 的 Fortress SSH 产品中提供了一个实际示例。

参考资料

学习

获得产品和技术

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing
ArticleID=794791
ArticleTitle=实现对 IBM Cloud 的安全 SSH 访问
publish-date=02202012