资料加密

再看封包內容

只要封包能流经本机,我们就有很多软体能将之抓下来。下面让我们再撷取两个封包﹐看看您能发现什麽﹖


        没错啦﹕就是使用者名称和密码﹗哇﹗﹗那还了得﹖那还有保密可言吗﹖

的确如此﹗假如您使用纯文字(paint text)方式来传送密码的话﹐虽然在您的萤幕上看到的是“******”﹐但使用网路封包撷取工具来看的﹐却是原原本本的文字。虽然这里使用的例子是撷取本机的封包﹐但其实大部份的封包撷取工具都可以撷取所有流经本地网路的封包,只要 datalink 层级的 frame 能到达本机界面就行(这也就是为何 switch 要比 hub 更安全的原因了)。要是您用 hub 来连接网路的话,只要骇客成功的登录了网路中的其中一台工作站﹐那麽﹐所有资料都无所遁形。这情形在 Internet 上面也非常普遍。之所以现在的网页流览器﹐都会在您提交资料的时候提出警告﹐让您认知到您的资料随时可能被别人截获。

那麽﹐有没有方法避免、或尽量减少资料被窃听的风险呢﹖

资料加密的手段

在没有使用资料加密之前﹐在网路中传递的 email 或商业资料﹐或任何文字资料﹐都有如“网路明信片”一般﹐有心人士随手可得、一览无遗。有鉴于此﹐人们在传送资料之前﹐都会将资料进行加密处理(encrypt)﹔然后在接收到资料后﹐再进行解密处理(decrypt)﹐将资料还原。而在传送过程中的资料﹐除非您有能力进行 decrypt ﹐否则您看到的只是一些杂乱无章的文字而已。

那么﹐这个加密和解密是怎样合作的呢﹖如果您喜欢看二次世界大战间谍片的话﹐应该知道什么叫密码电报公码电报吧﹖公码电报就是使用一套公认的规则﹐将资料转换成特定的电波信号发送出去﹐然后接收到信号的那一端也使用公认的规则将信号还原成资料。而密码电报呢﹖是使用一套只有发送者和接收者才知道的规则来发送信号和将信号还原。虽然发送出去的电波任何人都接收得到﹐但如何还原资料﹐也就是如何破解这个秘密的规则﹐就成了反间谍的一项重要任务了。闻说日本偷袭珍珠港之前﹐任何飞机都不能发送通讯﹐也就是为了避免遭美军拦截到信号从而破解﹐因而偷袭相当成功。不过﹐其策划者山本五十六后来也是因为美军破解了日方的密码电报﹐获知其行踪﹐在太平洋上空将其飞机击落。

那么﹐我们在网路传递资料的时候﹐如果没有加密的话﹐就好比是公码电报。不过﹐发送者也可以和接收者拟定自己的一套“密码电报”﹕我们可以用自己的规则将资料加密后才传递出去﹐然后﹐利用秘密的管道将规则传递给对方﹐这样﹐资料的保密性就大大提高了。我们称这样的加密方法为“单一键值加密”或 “对称键值加密”(Single/Symmetrical Key Encryption)

不过﹐这又有另外应一个问题出现了﹕假如﹐我们要将资料传递给上万个客户呢﹖要维持好这样的一套规则恐怕是件非常耗时耗量的工作﹐是非常不符合效益的。而且,我们又如何达成键值的交换呢?因为,若是我们在网路上交换键值的时侯,若被拦截的话,那麽之后所加密的资料也将被轻易解密。

正所谓路不转人转﹐聪明的人们在刚才的“单一键值加密”方法的基础上﹐开发出另一套更灵活的加密方法﹐叫做﹕“双键值加密”或“非对称键值加密”(Double/Asymmetrical Key Encryption)。在使用“非对称键值加密”的时候﹐任何人都可以使用公开的键值(public key)进行加密﹐但需要配合另一个私有键值(private key)同时工作才能将资料解密。所谓的 public keyprivate key 是惟一的对称关系,其情形就好像这样﹕
我打制了一把只有自己才拥有的锁匙﹐另外再打制另外一把锁匙挂在门口﹐任何人都可以拿去复制。 然后邮局提供一个标准铁罐来传递资料﹐这铁罐本来是没有上锁的。 如果朋友想传递资料给我﹐他就先把我挂在门口的锁匙拿去复制﹐然后用复制好的锁匙将铁罐锁上。 一但铁罐锁上了﹐只有用我的私有锁匙才能够打得开。除非是开锁专家﹐别人休想看到里面的东西。

这样﹐传送者和接收者就无需事先约定好加密的键值了﹕任何人都可以将公用键值公布在网路上﹐任人下载﹐然后用之加密资料送来﹐也只有拥有私有键值的人才能够将资料还原。不过﹐这个时候﹐保护好私有键值不被盗窃﹐就成了最重要的保密工作了。

加密的应用

从上面的说明中,我们或许发现使用非队称加密更有便利性及弹性,但它的缺点却是:加密与解密都需要更多的运算资源,因此在效能上并不如对称加密那样迅速

所以,聪明的人们总是能集优而取:大量的资料传送通常使用对称加密、而对称键值则用非对称加密来交换!Bingo~~~ 这样不就解决了便利性与效能的矛盾了吗? ^_^ 是的,现今许多加密应用软体,都同时将两种加密技术应用在一起:

当 client 端连上来之后,从 server 端下载 public key 。
Client 端随机产生用作对称加密的 session key 。
并使用刚从 server 端下载回来的 public key 作加密,将 session key 送回给 server 。
最后用 session key 作加密,开始传送加密资料。
当然了,以上只是一个简单的描述而已,真正的运作会复杂得多,但基本原理则是一样的。

数位签章

无需再花费太多的时间来解释﹐相信您也知道资料加密的重要性和用途之广了吧。除了可以用来做公司内部的资料传递﹐也可以用来和客户进行保密交易。

在网路上﹐我们还可以使用“数位签章(Digital Signature)”来进行身份确认。数位签章可以说是一个独一无二的数值﹐它由使用者的私有键值进行加密﹐然后利用公用键值进行确认:若 public key 能通过验证,那我们就肯定所对应的 private key 之正确性,否则,则可排除签章所用的 private key 。换而言之,数位签章兼具这两种双重属性:”可确认性” 及 “不可抵赖性” 。


加密與簽章
        时至今天网路的广泛应用﹐传统的手写签名显然派不上用场。但有过网上购物经验的朋友﹐有几个使用到“电子数位签章”呢﹖可以说﹐今天的网上购物还是极俱风险的﹕既没有签名﹐也没有电话确认﹐银行就照样从您的信用卡帐户中过户给网路商店﹐都不知道他们凭什么居然这样儿戏的﹖﹗要是,如果引入了数位签章系统﹐由于它目前还被认为是“几乎无法伪造”的特性﹐网上购物才会显得是安全的﹕您使用您的信用卡和数位签章进行购物﹐然后商店必须将付款资料连同您电子认证资料一起送给银行请求授权﹐待核实无误之后﹐银行才会进行转帐。这样既保障信用卡不会被冒用﹐同时还可以减少错帐的出现。只可惜的是﹐现今的人们还普遍缺乏网路安全意识﹐就连银行本身﹐也只顾赚钱﹐不理顾客利益﹐实在是有点可悲的。

网络认证的取得

现在的许多网站为保护流览者的资料保密性﹐大多会使用由 Netscape 公司开发 SSL(Security Socket layer) 技术来进行资料加密﹐它工作于 OSI 的应用层和传送层之间﹐所以不局限于特定的网路协定之上。不过﹐要提供 SSL 连结服务﹐网路伺服器和和流览器双方都必须支援才可。而 SSL 数位认证的签发﹐目前由美国的 VeriSing (http://www.verisign.com)受理﹐伺服器如果要提供 SSL 服务﹐都必须到该公司注册才可以。

而个人数位 ID 的申请,也可从上述网站取得。除了 Verisign 之外,任何一家获得信任授权的机构,如台湾的网际威信(http://www.hitrust.com.tw),也可核发全球信任的数位签章。

如果您使用网路购物﹐SSL 技术可以保障您的信用卡号码不会被除了商店之外的人获得﹐如果再配合数位认证的话﹐其安全性就更高了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注