`
Liner
  • 浏览: 139075 次
  • 性别: Icon_minigender_1
  • 来自: 西南边陲
社区版块
存档分类
最新评论

普通 http 网络下数据的安全传输(设计原理)

阅读更多
曾几何时,https 安全但缺乏效率,http 有效率但却缺乏安全, 鱼与熊掌——两者不可兼得!

https 采用不对称加密算法创建安全的连接,之后用对称加密算法传递数据,安全性毋庸置疑——但因效率较低和授权费用(第三方 CA 机构认证)而难以普及。
http 设计的初始是基于相互信任,数据在网络上的传输是采用明文,不做任何加密处理,因此也就得到了效率——但数据的安全性或隐秘性就无从谈起了。只要别人愿意,网络监听就是一目了然的事。

为何不能将两者结合起来呢?——既有 http 的高效,又有类似 https 的足够的安全性!

在数据安全方面的理论中,要保证数据加密的可靠性,“密钥的传递”必须是安全的!一般情况下,密钥的传递途径最好与密文(加密后的数据)的传递途径不同。

一个显而易见的难题是——http 是明文传输

所以,通过 http 协议连接的服务器端和客户端,首先就无法实现密钥的安全传递! 或许因此,http 下数据的加密传输就失去了意义,也缺乏研究(大多寄希望于 IPv6 了——但那也还有些遥远,远水不解近渴)。

但当真如此吗? http 下真的没法做加密通讯么? 或许,我们可以慢慢探讨一下……

一、密钥的安全传递

这是首先要解决的问题。但如何在明文传输的 http 下进行呢? 毫无疑问,这是不可行的,《老子》曰:曲成万物而不遗——曲则全。呵呵,我们可借助 https 的安全性来实现密钥的安全传递,然后在 http 下进行业务数据的加密传输。

这样的想法,似乎一目了然,很直观,但如何实现? 经济效益如何? 在浏览器跨域安全规则的限制下,这样的想法实现起来却并不直观。初看起来,经济效益也并不怎样——既然有了 https 服务,干嘛不就用 https 来做业务数据的传输呢?

其实并不然,首先可以看下经济效益的问题:

有一台 https 服务器
A.  直接用来做业务,业务占用大量的 https 资源……这台 https 也就只能做少量的用途了。
B.  只做 “认证” 服务,即只做密钥的传递工作……它可以给很多普通 http 服务器提供服务——这很适合一站通式的站群登录服务。

并且:
A 方式中,大量的业务可能会压垮 https 服务器,使得需要投入新的 https 相关费用。
B 方式中,因为只提供认证服务,服务单一,既便于维护,也可以承载更大量的认证请求。同时,认证与业务的分离,使得业务的扩展变得简单——不论是相同业务的硬件扩展,还是不同业务的软件扩展。

所以说,在经济上,这十分划算!

下面看看,密钥如何从安全的 https 连接中安全地传递到普通的 http 连接下(这里说的传递可是指任意域间的跨域传递哦!)。
说明:因为没有现成的 https 服务,没有做过 https 页面中向 http iframe 设置 window.name 的测试。但原理上,设置 iframe 的 window.name 与 iframe 的 src 属性中 url 的协议类型无关,故这应该是可行的,有条件的朋友不妨一试。

用图示说明较好,传递方式如下:




1. 安全认证(图中 1-3):
    通过 https 安全连接登录, 服务器端存储密钥,同时返回密钥和登录ID;
    客户端转递密钥到目标域本地存储,同时向目标域中的 http 服务器发送登录ID。

2. 安全业务(图中 4-5):
    目标域中的 http 服务器通过“登录ID”从 https 服务器提取密钥并存储(Session 中);
    与客户端进行数据的加密传输,实现数据安全的业务通讯。

二、数据的加密传输

在实现了密钥的安全传递之后,数据的安全就可以通过加密来保证了。

但就我所知,在现阶段的各个浏览器中,尚未实现 http 下数据加密的调用接口(指 JS 环境),故我们只能自己来创造 JS 下的加密方法了。如本博客前几篇博文所述(请参看:《几个文字加密的 JS 简洁算法和一些个人的想法》《几个文字加密的 JS 简洁算法(续)-- 字符错位法》《几个文字加密的 JS 简洁算法(续2)--进制乱序法》), JS 环境下也是可以有简单且高效的加密方式的——或许我们只需要对“文字”进行处理,加密后的密文依然是正常的可视文字,从而并不影响 http 下明文传输的设计思想。

文字的加密方式应该会有很多,前几篇博文也仅是提供了一些思考的素材。http 下的通讯因没有考虑安全性,故网络劫持依然会存在——不论对客户端还是服务器,但那是另一个话题了(当然也可以通过一些手段来增强其安全性)。

JS 下数据的加密算法有待专业人士的努力和创造,俺就不多干巴了……但就前述的几种加密算法,本人倾向于“进制乱序法”,因为密文十分规范,网络传输十分可靠(ASCII 字符集是任何系统都可良好处理的)。——注:该算法或许应该改进一下,实现自动识别单双字节以节约编码长度。

参考:
wnRequest 的实现,请参考《近乎完美的简单 JS 跨域解决方式 --window.name》
在一年多以前,曾经写了一篇博文《普通 http 下可靠的网路认证方式》,如果您时间充裕,不妨小看一下,呵呵。
欢迎提出宝贵意见!
  • 大小: 7.1 KB
分享到:
评论
3 楼 clue 2011-02-15  
对称加密算法的效率通常都非常高的吧,以前在学校的时候,课程设计就是实现AES算法。
当时一个同学的程序就有10M每秒(或者是20M?记不清了)的处理速度,要知道当时还是单核,1G的时代。

嗯。。。我想应该比gzip还要快些吧,没试过……
2 楼 lym6520 2011-02-15  
可以看出LZ对CAS单点登入也是蛮有研究的哦。
1 楼 aofeng 2011-02-14  
不错的文章,分享既方便他人,也方便自己。

相关推荐

    计算机网络课程设计---小型网络设计.doc

    计算机网络课程设计-- 小型网络设计 课程设计说明书 NO.1 " 小型网络设计 " "1、课程设计的目的 " "通过对网络的具体规划和组建,掌握网络互连设备的使用及工作原理;掌握IP地址" "的配置及数据传输过程和路由的选择...

    电子商务网站设计原理重点.docx

    虚拟专用网:用于Internet交易的一种专用网络,在两个系统之间建立安全的信道(或隧道),用于电子数据交换。 电子商务网站设计原理重点全文共8页,当前为第1页。 信息检索:信息检索是指将信息按一定的方式组织和...

    04751计算机网络安全.doc

    04751计算机网络安全 [单项选择题] 1、某公司位于A市,其分公司位于距A市120公里的B市,总部与分公司之间在上班时间内 要经常性地进行大量电子表格传递,则应选择的合理通信连接方式为() A.普通电话拨号联网 B....

    通信与网络中的电力线宽带网络设备设计

    摘 要:本文阐述了使用电力线作为传输媒质的网络设备...1.电力线网络适配器:数据传输速率为2.5~12Mbps;单个变压器内最大连接节点数为25;最大传输距离100m。利用该适配器可组成对等计算机电力线宽带传输网络,实现

    物联网与网络安全技术调研报告.doc

    界和新闻媒体的高度重视,当前物联网的定义、内在原理、体系结构和系统模型等方面还 存在许多值得探讨的问题,通过对现有物联网技术文献和应用实例的分析,探讨了物联网 与下一代网、网络化物理系统和无线传感器网络的...

    通信与网络中的高速视频信号的光纤传输系统设计

    摘要:针对1000帧/秒高速摄影传输系统需要实现数据输出速率600MBps的长距离传输难题,提出了采用CIMT编码方式的光纤数字化传输设计方案。整个系统主要包括数字信号的多路复用、解复用以及PCI数据传输卡三部分。详细...

    计算机网络常见问题解答

    那么为什么当初不把因特网的传输设计成为可靠的? 问题1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢?或者说,是否我们可以在...

    清华大学的计算机网络课件

    但因特网的网络层使用IP协议,它只能提供不可靠的数据传输。那么这里有没有什么矛盾? 问题1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质...

    linux programming instances网络编程教程 附源代码

    本书通过55个精彩的实例,全面剖析了在Linux下编写网络应用程序的方法,并阐述了网络协议架构和开发规范。为了适应不同读者的需要,本书从最基本的Linux系统操作到网络技术的基本理念,逐步深入至Linux/UNIX下具体的...

    通信网络技术

    通过对通信网络技术的学习,我了解了有关通信网络的一些基本知识,如按功能与用途通信网的不同分类,通信网络的各种不同拓扑机构,以及各种传输介质的优略。这将对以后在现实中的运用起到了很大的作用。通信网络的...

    服务器备份方案.doc.doc

    由于服务器到共享存储设备的大量数据传输是通过SAN网络进行的,局域网 只承担各服务器之间的通信任务,而无需承担数据传输的任务。实现了控制流和数据流 分离的目的。 2. 实现方式 LAN- free网络数据备份系统结构有...

    linux网络编程-宋敬彬-part1

    5.1.3 OSI参考模型中的数据传输 140 5.2 TCP/IP协议栈 141 5.2.1 TCP/IP协议栈参考模型 141 5.2.2 主机到网络层协议 143 5.2.3 IP协议 144 5.2.4 网际控制报文协议(ICMP) 146 5.2.5 传输控制协议(TCP...

    服务器备份方案.doc

    由于服务器到共享存储设备的大量数据传输是通过SAN网络进行的,局域网只承 担各服务器之间的通信任务,而无需承担数据传输的任务.实现了控制流和数据流分离的 目的. 2. 实现方式 LAN- free网络数据备份系统结构有多种...

    单片机课程设计-IIC总线式EEPROM存储器应用设计.doc

    目录 1 设计要求 2 2 设计目的 2 3 器件EEPROM的介绍 3 3.1 EEPROM简介 3 3.2 EEPROM24XX系列功能概述 3 4 IIC协议的介绍 3 4.1 IIC协议总线特征 3 4.2 IIC协议工作原理 3 4.3 IIC协议总线基本状态 4 4.4 寻址约定 5...

    寒江独钓-Windows内核安全编程(高清完整版).part3

    第10章 网络传输层过滤 296 10.1 TDI概要 297 10.1.1 为何选择TDI 297 10.1.2 从socket到Windows内核 297 10.1.3 TDI过滤的代码例子 299 10.2 TDI的过滤框架 299 10.2.1 绑定TDI的设备 299 10.2.2 唯一的分发函数 ...

    支持双向数据传输,HID转串口评估板设计-电路方案

    CH9326 支持双向数据传输,用于接收串口数据,并按照HID 类设备规范,将数据打包通过USB口上传给计算机,或者从计算机接收符合HID 类设备的USB数据包,并从串口进行发送。通过提供的上位机软件,用户也可自行配置...

    中文版RFC,共456

    RFC877 IP 数据包通过公共数据网络的传输标准 RFC888 STUB Exterior Gateway Protocol RFC890 外部网关协议执行表 RFC894 IP 数据包通过以太网网络传输标准 RFC895 IP 数据包通过试验性以太网网络的传输标准 RFC896 ...

    C++网络爬虫项目

    引擎提供商,为此开发了一整套云存储与云计算平台,使用数以万计的普通PCWEBCRAWLER 网络爬虫实训项目 4 搭建了海量信息的可靠存储与计算架构,以此作为搜索引擎及其相关应用的基 础支撑。优秀的云存储与云计算平台...

    RFC中文文档-txt

    RFC877 IP 数据包通过公共数据网络的传输标准 RFC888 STUB Exterior Gateway Protocol RFC890 外部网关协议执行表 RFC894 IP 数据包通过以太网网络传输标准 RFC895 IP 数据包通过试验性以太网网络的传输标准 RFC896 ...

Global site tag (gtag.js) - Google Analytics