作者:李洋
互联网给人们生活带来了极大的便利。然而,人们在享受网络便捷的同时,却往往容易忽视网络暗藏着的安全隐患。信息技术的不断发展使得互联网的双刃剑效应日渐显现。许多不法分子、不法组织或间谍机构也充分利用网络隐蔽资源的“暗房”,将罪恶的触角伸向他人、别国的个人隐私、战略秘密,肆意窃取或非法传播这些信息,以达到特定的目的。
对于企业来说,企业的财政开支状况、项目申请及研发文档等都是非常机密的材料,一些不法的竞争者经常通过技术手段窃取机密,使受害者遭受巨大的经济损失,因而,我们的网络管理人员在做好网络防护和管理的同时,应该注意做好网络保密工作。本文从数据传输保密、Http应用数据保密等多个层面来介绍如何构建高效的网络保密环境。
SSH助力企业数据传输保密
数据传输的保密性是网络保密的一个重要内容,在企业网络信息系统中,我们可以采用SSH技术及其软件来达到这个目的。
SSH的英文全称是Secure Shell。通过使用SSH,用户可以把所有传输的数据进行加密,这样,“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP,甚至PPP提供一个安全的“通道”。
SSH协议是建立在应用层和传输层基础上的安全协议,其主要由以下三部分组成,共同实现SSH的安全保密机制:
● 传输层协议。该协议提供诸如认证、信任和完整性检验等安全措施,此外还可以提供数据压缩功能。通常情况下,这些传输层协议都建立在面向连接的TCP数据流之上。
● 用户认证协议层。用来实现服务器与客户端用户之间的身份认证,运行在传输层协议之上。
● 连接协议层。分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议之上。
从客户端来看,SSH提供两种级别的安全验证:
第一种级别是基于口令的安全验证。只要用户知道自己的账号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证用户正在连接的服务器就是用户想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别是基于密钥的安全验证。需要依靠密钥,也就是用户必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。如果用户连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用用户的密钥进行安全验证。服务器收到请求之后,在指定目录下寻找用户的公用密钥,然后把它和用户发送过来的公用密钥进行比较。如果两个密钥一致,服务器就用公用密钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用用户的私人密钥解密再把它发送给服务器。
用这种方式,必须知道自己密钥的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别由于加密所有传送的数据,所以“中间人”这种攻击方式是不可能的(因为他没有用户的私人密钥)。
在用户使用SSH的过程中,需要注意SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是: 1.x和2.x。用SSH 2.x的客户程序不能连接到SSH 1.x的服务程序上。当前,SSH技术在Windows和Linux平台互访及数据交换时应用非常普遍。一般情况是通过使用Linux下的SSH服务器,然后使用Putty、Secure Shell Client等Windows下的客户端软件来访问。
PGP技术保证数据传输安全
随着网络与计算机技术的发展,数据存储与数据交换的安全性、完整性和一致性已经变得越来越重要。网络信息安全中核心的加密技术也被应用于数据存储和数据交换。同时,为了确保网络数据交换时双方身份的正确性以及不可抵赖性,签证体系也已经日趋成熟。如何保证在不安全的网络上安全地传输数据是一个难题,而基于PGP(Pretty Good Privacy)机制的加密及签名机制就可以极大地保证网络用户传输及使用数据的安全性。
PGP是一个基于RSA公钥加密体系的邮件加密软件。它不但可以对用户的数据保密以防止非授权者阅读,还能对邮件加上数字签名从而使收信人确信邮件是所期望的人发出,让我们可以安全地和从未见过面的人通信,而事先不需要任何保密的渠道用来传递密钥。
PGP采用了审慎的密钥管理——一种RSA和传统加密的杂合算法,包括用于数字签名的邮件文摘算法、加密前压缩等。它功能强大,速度很快。PGP的创始人PhilZimmermann创造性地把RSA公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密钥认证管理机制上有非常巧妙的设计,从而使得PGP成为几乎最流行的公钥加密软件包。其中,RSA(Rivest-Shamir-Adleman)算法是一种基于“大数不可能质因数分解假设”的公钥体系。简单地说就是找两个很大的质数,一个公开给世界,一个不告诉任何人。分别称为“公钥”和“私钥”。这两个密钥是互补的,就是说用公钥加密的密文可以用私钥解密,反过来也一样。
由于PGP使用了IDEA专利算法,所以使用PGP会有许可证的麻烦。人们想出了一些变通方法,比如在Linux环境下人们使用GnuPG,由于GnuPG并没有用到IDEA专利算法,所以对用户来说使用GnuPG没有任何限制,而在功能上它和PGP是一样的。GnuPG使用非对称加密算法,安全程度比较高。所谓非对称加密算法,就是每一个用户都拥有一对密钥: 公钥和私钥。其中,密钥由用户保存,公钥则由用户尽可能地散发给其他人,以便用户与其他人通信。
使用GnuPG其实非常简单,Linux系统中已经提供了很多命令来辅助用户用该软件来进行加解密以及数字签名,包括生成公钥/私钥对、公钥的导出、公钥的导入、加密和解密、对文件进行签名等命令。
在使用PGP的过程中,需要注意如下几个问题:
1. 需要根据实际的应用来确定生成密钥的算法、密钥的长度以及密钥的有效期限。
2.需要用户通过交互移动鼠标、键盘来保证生成的密钥对的随机性,否则,极有可能被黑客破解。
3. 公钥的安全是PGP安全的核心,一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配难保密的缺点。但公钥的发布中仍然存在安全性问题,例如公钥被篡改,这可能是公钥密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。使用者必须确信你拿到的公钥属于它看上去属于的那个人。
4. 私钥的保密也是决定性的。相对公匙而言,私钥不存在被篡改的问题,但存在泄露的问题。PGP的办法是让用户为随机生成的RSA私钥指定一个口令。只有给出口令才能将私钥释放出来使用,用口令加密私钥的方法保密程度和PGP本身是一样的,所以私钥的安全性问题实际上首先是对用户口令的保密。当然私钥文件本身失密也很危险,因为破译者所需要的只是用穷举法试探出你的口令了,虽说很困难但毕竟损失了一层安全性。最需要注意的是,要像任何隐私一样保藏你的私钥,不要让任何人有机会接触到它。
5. 在实际的使用过程中,用户可以将PGP软件灵活地运用到网络数据传输,包括电子邮件发送、FTP文件传送等各个应用领域。
SSL技术保证HTTP应用保密
Web通信通常是以非加密的形式在网络上传播的,这就有可能被非法窃听到,尤其是用于认证的口令信息。为了避免这个安全漏洞,就必须对传输过程进行加密。对HTTP传输进行加密的协议为HTTP,它是通过SSL进行HTTP传输的协议,不但可以通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过获得认证证书CA,保证客户连接的服务器没有被假冒。SSL是一种国际标准的加密及身份认证通信协议,一般浏览器都支持此协议。
SSL(Secure Sockets Layer)最初是由美国Netscape公司研究出来的,后来成为了互联网安全通信与交易的标准。SSL协议使用通信双方的客户证书以及CA根证书,允许客户/服务器应用以一种不能被偷听的方式通信,在通信双方间建立起了一条安全的、可信任的通信通道。它具备以下基本特征: 信息保密性、信息完整性、相互鉴定。该协议主要使用Hash编码、加密技术,这里不再对这些技术进行介绍。
在SSL通信中,首先采用非对称加密交换信息,使得服务器获得浏览器端提供的对称加密的密钥,然后利用该密钥进行通信过程中信息的加密和解密。为了保证消息在传递过程中没有被篡改,可以加密Hash编码来确保信息的完整性。
服务器数字证书主要颁发给Web站点或其他需要安全鉴别的服务器,以证明服务器的身份信息,同样也可以颁发客户端数字证书用于证明客户端的身份。
使用公用密钥的方式可以保证数据传输没有问题,但如果浏览器客户访问的站点被假冒,这也是一个严重的安全问题。这个问题不属于加密本身,而是要保证密钥本身的正确性。要保证所获得的其他站点公用密钥为其正确的密钥,而非假冒站点的密钥,就必须通过一个认证机制,能对站点的密钥进行认证。当然,即使没有经过认证,仍然可以保证信息传输的安全,只是客户不能确信访问的服务器没有被假冒。如果不是为了提供电子商务等方面对安全性要求很高的服务,一般不需要如此严格的考虑。
下面是使用SSL进行通信的过程:
1. 客户端向服务器端发起对话,协商传送加密算法。例如: 对称加密算法有DES、RC5,密钥交换算法有RSA和DH,摘要算法有MD5和SHA。
2. 服务器向客户端发送服务器数字证书。比如: 使用DES-RSA-MD5这对组合进行通信。客户端可以验证服务器的身份,决定是否需要建立通信。
3. 客户端向服务器传送本次对话的密钥,再检查服务器的数字证书是否正确通过CA机构颁发的证书,验证了服务器证书的真实有效性之后,客户端生成利用服务器的公钥加密的本次对话的密钥发送给服务器。
4. 服务器用自己的私钥解密获取本次通信的密钥。
5. 双方的通信正式开始。
在一般情况下,当客户端是保密信息的传递者时,他不需要数字证书验证自己身份的真实性,如我们通常使用的网上银行交易活动,客户需要将自己的隐秘信息(如账号和密码)发送给银行,因此银行的服务器需要安装数字证书来表明自己身份的有效性,否则将会使信息泄露。当然,对某些安全性要求很高的B2B应用,服务器端也需要对客户端的身份进行验证,这时客户端也需要安装数字证书以保证通信时服务器可以辨别出客户端的身份,验证过程类似于服务器身份的验证过程。而在通常情况下,浏览器都会通过交互的方式来完成上述的通信过程。
用户口令保密
目前,密码破解程序大多采用字典攻击以及暴力攻击手段,如果用户密码设定不当,极易受到字典攻击的威胁。很多用户喜欢用自己的英文名、生日或者账户等信息来设定密码,这样,黑客可能通过字典攻击或者是社会工程的手段来破解密码。所以建议用户在设定密码的过程中,应尽量使用非字典中出现的组合字符,并且采用数字与字符相结合、大小写相结合的密码设置方式,增加密码被黑客破解的难度。而且,也可以使用定期修改密码、使密码定期作废的方式,来保护自己的登录密码。具体列出几条设定安全密码的参考原则如下:
● 口令长度至少为8个字符: 口令越长越好。若使用MD5口令,它应该至少有15个字符。若使用DES口令,应使用最长长度(8个字符)。
● 混和大小写字母、混和字母和数字,包括字母和数字以外的字符(如&、$、和 > )等。
● 挑选一个你可以记住的口令。
其次,还有一些原则需要牢记:
● 不要只使用单词或数字,不要使用现成词汇,不要使用外语中的词汇,也不要使用黑客术语以及个人信息。
● 不要倒转现存词汇: 优秀的口令破译者总是倒转常用词汇,因此倒转薄弱口令并不会使它更安全。
● 不要笔录你的口令,也不要在所有机器上都使用同样的口令。
另外,我们还可以通过一些工具软件,用于在已知密文的情况下尝试破解出明文,从而验证当前密码的安全程度,如John the Ripper就是这样一个软件。
链接
网络保密的相关原则
网络管理人员在日常的工作中,应该尤其注意如下几方面的泄密途径:
1. 电磁波辐射泄密: 计算机网络在进行工作时是存在电磁波辐射的,只要有专门的接收装置,就能接收到辐射信息从而造成泄密。它的辐射主要有四个环节: 连接线路辐射,显示器辐射,主机辐射,输出设备辐射。有资料显示,在开阔地100米左右,用监听设备就能收到辐射信号。
2. 网络泄密: 计算机局域网的建立及其三级网、二级网、一级网的逐步建成运行,是当前网络应用发展的方向,这些网络的应用使分布在不同位置不同单位的计算机具有了信息传递的渠道,扩大了计算机的应用范围,大大提高了工作效率和降低了行政成本,使得每个用户终端都可利用各个计算机中存储的文件、数据。然而,在信息共享的同时,主机与用户之间、用户与用户之间存在很多的漏洞,一些未经授权的非法用户或窃密分子通过冒名顶替、长期试探或其他办法进入网络系统进行窃密。另外,联网后线路通道分支较多,输送信息的区域也较广,截取所送信息的条件就较便利,窃密者在网络的任何一条分支线路上或某一个节点、终端进行截取,就能获得整个网络的输送信息。
3. 操作人员泄密: 计算机操作人员的泄密是目前泄密的重灾区,操作人员有可能从以下几个方面造成泄密。(1)因无知泄密: 如不知道存储介质有可提取还原的信息,将曾经储存过秘密信息的存储介质交流出去,造成泄密; (2)保密意识不强,违反规章制度泄密: 如计算机出现故障后不按规定程序修理,或者在不能处理秘密信息的计算机上处理秘密信息; 有的甚至交叉使用计算机等; (3)故意泄密,这是极少数人为了个人利益或者个人的其他目的的泄密。这属于应该受到纪律或法律追究的行为。
4. USB泄密: 工作人员将带有机密信息、源代码文件、设计图纸等重要信息的移动存储器连接在联接互联网的计算机上,不知不觉中可能就被间谍软件窃取。现在有一种隐蔽性极强的木马病毒,不但传染电脑,还传染存储盘。用户的优盘一旦在感染了这种程序的电脑上使用,就会感染上这种病毒。如果这个优盘再用于你的办公电脑,就会自动秘密地把你电脑上的信息复制到优盘上。下次你再次将这个盘插入上网的电脑时,就会自动将盘上的信息发送到网上指定的地点。整个过程是秘密、自动完成的,用户很难察觉。
根据这些主要泄密途径,网络管理人员可以与企业高层达成共识,采取相应的手段来进行网络保密工作,比方说采用物理网络隔离或者GAP来对保密网络和互联网进行隔离,对操作人员进行培训宣讲和强调保密技术,对使用USB的安全问题进行分析和制定相关的规章进行约束等等。
另外,对于网管来说,保护系统安全还有一个最简单有效的方法,那就是到系统发行商那里下载最新的安全补丁(这些补丁的发现极有可能是黑客的功劳,也许是他们发现了系统漏洞所在)。最后,要强调的是,要建立良好的安全意识,从最简单的安全设置开始,合理利用安全工具。