eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6371回复:24

出让VPN原码

楼主#
更多 发布于:2003-11-03 20:03

VPN

IPSEC
IKE(not PKI)

最新喜欢:

cyliucyliu
DK-boy
驱动中牛
驱动中牛
  • 注册日期2001-07-22
  • 最后登录2005-09-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-04 13:40

VPN

IPSEC
IKE(not PKI)

我对这些东东,最感兴趣,能否同我解释一下!
发我的邮件即可!
喜欢清静?享受人生
eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-04 14:46
当移动用户或远程用户通过拨号方式远程访问公司或企业内部专用网络的时候,采用传统的远程访问方式不但通讯费用比较高,而且在与内部专用网络中的计算机进行数据传输时,不能保证通信的安全性。为了避免以上的问题,通过拨号与企业内部专用网络建立VPN连接是一个理想的选择。

■VPN带来的好处
降低费用 首先远程用户可以通过向当地的ISP申请账户登录到Internet,以Internet作为隧道与企业内部专用网络相连,通信费用大幅度降低;其次企业可以节省购买和维护通讯设备的费用。
增强的安全性 VPN通过使用点到点协议(PPP)用户级身份验证的方法进行验证,这些验证方法包括:密码身份验证协议 (PAP)、质询握手身份验证协议 (CHAP)、Shiva 密码身份验证协议 (SPAP)、Microsoft 质询握手身份验证协议 (MS-CHAP) 和可选的可扩展身份验证协议 (EAP);并且采用微软点对点加密算法(MPPE)和网际协议安全(IPSec)机制对数据进行加密。以上的身份验证和加密手段由远程VPN服务器强制执行。对于敏感的数据,可以使用VPN连接通过VPN服务器将高度敏感的数据服务器物理地进行分隔,只有企业Intranet上拥有适当权限的用户才能通过远程访问建立与VPN服务器的VPN连接,并且可以访问敏感部门网络中受到保护的资源。
网络协议支持 VPN支持最常用的网络协议,基于IP、IPX和NetBEUI协议网络中的客户机都可以很容易地使用VPN。这意味着通过VPN连接可以远程运行依赖于特殊网络协议的应用程序。

IP地址安全 因为VPN是加密的, VPN数据包在Internet中传输时,Internet上的用户只看到公用的IP地址,看不到数据包内包含的专有网络地址。因此远程专用网络上指定的地址是受到保护的。

■VPN使用的协议
VPN使用两种隧道协议:点到点隧道协议(PPTP)和第二层隧道协议(L2TP)。

PPTP PPTP是PPP的扩展,它增加了一个新的安全等级,并且可以通过Internet 进行多协议通信,它支持通过公共网络(如Internet)建立按需的、多协议的、虚拟专用网络。PPTP 可以建立隧道或将 IP、IPX 或 NetBEUI 协议封装在 PPP 数据包内,因此允许用户远程运行依赖特定网络协议的应用程序。PPTP在基于 TCP/IP 协议的数据网络上创建 VPN连接,实现从远程计算机到专用服务器的安全数据传输。VPN服务器执行所有的安全检查和验证,并启用数据加密,使得在不安全的网络上发送信息变得更加安全。尤其是使用EAP后,通过启用 PPTP 的 VPN传输数据就象在企业的一个局域网内那样安全。另外还可以使用 PPTP 建立专用 LAN 到 LAN 的网络。

L2TP L2TP 是一个工业标准的Internet隧道协议,它和PPTP的功能大致相同。L2TP 也会压缩PPP 的帧,从而压缩 IP、IPX 或 NetBEUI 协议,同样允许用户远程运行依赖特定网络协议的应用程序。与PPTP不同的是,L2TP使用新的网际协议安全 (IPSec) 机制来进行身份验证和数据加密。目前L2TP只支持通过IP网络建立隧道,不支持通过 X.25、帧中继或 ATM 网络的本地隧道。

■VPN的身份验证方法
前面已经提到VPN的身份验证采用PPP的身份验证方法,下面介绍一下VPN进行身份验证的几种方法。

CHAP CHAP通过使用MD5(一种工业标准的散列方案)来协商一种加密身份验证的安全形式。CHAP 在响应时使用质询-响应机制和单向 MD5 散列。用这种方法,可以向服务器证明客户机知道密码,但不必实际地将密码发送到网络上。

MS-CHAP 同CHAP相似,微软开发MS-CHAP 是为了对远程 Windows 工作站进行身份验证,它在响应时使用质询-响应机制和单向加密。而且 MS-CHAP 不要求使用原文或可逆加密密码。

MS-CHAP v2 MS-CHAP v2是微软开发的第二版的质询握手身份验证协议,它提供了相互身份验证和更强大的初始数据密钥,而且发送和接收分别使用不同的密钥。如果将VPN连接配置为用 MS-CHAP v2 作为唯一的身份验证方法,那么客户端和服务器端都要证明其身份,如果所连接的服务器不提供对自己身份的验证,则连接将被断开。

EAP EAP 的开发是为了适应对使用其他安全设备的远程访问用户进行身份验证的日益增长的需求。通过使用 EAP,可以增加对许多身份验证方案的支持,其中包括令牌卡、一次性密码、使用智能卡的公钥身份验证、证书及其他身份验证。对于VPN来说,使用EAP可以防止暴力或词典攻击及密码猜测,提供比其他身份验证方法(例如 CHAP)更高的安全性。

在Windows系统中,对于采用智能卡进行身份验证,将采用EAP验证方法;对于通过密码进行身份验证,将采用CHAP、MS-CHAP或MS-CHAP v2验证方法。

■VPN的加密技术
VPN采用何种加密技术依赖于VPN服务器的类型,因此可以分为两种情况。

对于PPTP服务器,将采用MPPE加密技术 MPPE可以支持40位密钥的标准加密方案和128位密钥的增强加密方案。只有在 MS-CHAP、MS-CHAP v2 或 EAP/TLS 身份验证被协商之后,数据才由 MPPE 进行加密,MPPE需要这些类型的身份验证生成的公用客户和服务器密钥。
对于L2TP服务器,将使用IPSec机制对数据进行加密 IPSec是基于密码学的保护服务和安全协议的套件。IPSec 对使用 L2TP 协议的 VPN 连接提供机器级身份验证和数据加密。在保护密码和数据的 L2TP 连接建立之前,IPSec 在计算机及其远程VPN服务器之间进行协商。IPSec可用的加密包括 56 位密钥的数据加密标准DES和 56 位密钥的三倍 DES (3DES)。

------------------------------------------------------------
何为VPN?
VPN(Virtual Private Network):虚拟专用网络,是一门网络新技术,为我们提供了一种通过公用网络安全地对企业内部专用网络进行远程访问的连接方式。我们知道一个网络连接通常由三个部分组成:客户机、传输介质和服务器。VPN同样也由这三部分组成,不同的是VPN连接使用隧道作为传输通道,这个隧道是建立在公共网络或专用网络基础之上的,如:Internet或Intranet。

要实现VPN连接,企业内部网络中必须配置有一台基于Windows NT或Windows2000 Server的VPN服务器,VPN服务器一方面连接企业内部专用网络,另一方面要连接到Internet,也就是说VPN服务器必须拥有一个公用的IP地址。当客户机通过VPN连接与专用网络中的计算机进行通信时,先由ISP(Internet服务提供商)将所有的数据传送到VPN服务器,然后再由VPN服务器负责将所有的数据传送到目标计算机。VPN使用三个方面的技术保证了通信的安全性:隧道协议、身份验证和数据加密。客户机向VPN服务器发出请求,VPN服务器响应请求并向客户机发出身份质询,客户机将加密的响应信息发送到VPN服务器,VPN服务器根据用户数据库检查该响应,如果账户有效,VPN服务器将检查该用户是否具有远程访问权限,如果该用户拥有远程访问的权限,VPN服务器接受此连接。在身份验证过程中产生的客户机和服务器公有密钥将用来对数据进行加密。
eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-04 14:49
VPN技术非常复杂,它涉及到通信技术、密码技术和现代认证技术,是一项交叉科学。目前,CPE-based VPN主要包含两种技术:隧道技术与安全技术。

一、隧道技术
隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是ISO 七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。

要使数据顺利地被封装、传送及解封装,通信协议是保证的核心。目前VPN隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKS v5,它们在OSI 七层模型中的位置如表所示。各协议工作在不同层次,无所谓谁更有优势。但我们应该注意,不同的网络环境适合不同的协议,在选择VPN产品时,应该注意选择。

1.点到点隧道协议―PPTP
PPTP协议将控制包与数据包分开,控制包采用TCP控制,用于严格的状态查询及信令信息;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中。目前,PPTP协议基本已被淘汰,不再使用在VPN产品中。

2.第二层隧道协议―L2TP
L2TP是国际标准隧道协议,它结合了PPTP协议以及第二层转发L2F协议的优点,能以隧道方式使PPP包通过各种网络协议,包括ATM、SONET和帧中继。但是L2TP没有任何加密措施,更多是和IPSec协议结合使用,提供隧道验证。

3.IPSec协议
IPSec协议是一个范围广泛、开放的VPN安全协议,工作在OSI模型中的第三层――网络层。它提供所有在网络层上的数据保护和透明的安全通信。IPSec协议可以设置成在两种模式下运行:一种是隧道模式,一种是传输模式。在隧道模式下,IPSec把IPv4数据包封装在安全的IP帧中。传输模式是为了保护端到端的安全性,不会隐藏路由信息。1999年底,IETF安全工作组完成了IPSec的扩展,在IPSec协议中加上了ISAKMP协议,其中还包括密钥分配协议IKE和Oakley。
一种趋势是将L2TP和IPSec结合起来: 用L2TP作为隧道协议,用IPSec协议保护数据。目前,市场上大部分VPN采用这类技术。

 
优点:它定义了一套用于保护私有性和完整性的标准协议,可确保运行在TCP/IP协议上的VPN之间的互操作性。
缺点:除了包过滤外,它没有指定其他访问控制方法,对于采用NAT方式访问公共网络的情况难以处理。
适用场合:最适合可信LAN到LAN之间的VPN。

4.SOCKS v5协议
SOCKS v5工作在OSI模型中的第五层――会话层,可作为建立高度安全的VPN的基础。SOCKS v5协议的优势在访问控制,因此适用于安全性较高的VPN。 SOCKS v5现在被IETF建议作为建立VPN的标准。
优点:非常详细的访问控制。在网络层只能根据源目的的IP地址允许或拒绝被通过,在会话层控制手段更多一些;由于工作在会话层,能同低层协议如IPV4、IPSec、PPTP、L2TP一起使用;用SOCKS v5的代理服务器可隐藏网络地址结构;能为认证、加密和密钥管理提供“插件”模块,让用户自由地采用所需要的技术。SOCKS v5可根据规则过滤数据流,包括Java Applet和Actives控制。

缺点:其性能比低层次协议差,必须制定更复杂的安全管理策略。
适用场合:最适合用于客户机到服务器的连接模式,适用于外部网VPN和远程访问VPN。

二、安全技术
VPN 是在不安全的Internet 中通信,通信的内容可能涉及企业的机密数据,因此其安全性非常重要。VPN中的安全技术通常由加密、认证及密钥交换与管理组成。

1.认证技术
认证技术防止数据的伪造和被篡改,它采用一种称为“摘要”的技术。“摘要”技术主要采用HASH 函数将一段长的报文通过函数变换,映射为一段短的报文即摘要。由于HASH 函数的特性,两个不同的报文具有相同的摘要几乎不可能。该特性使得摘要技术在VPN 中有两个用途:验证数据的完整性、用户认证。

2.加密技术
IPSec通过ISAKMP/IKE/Oakley 协商确定几种可选的数据加密算法,如DES 、3DES等。DES密钥长度为56位,容易被破译,3DES使用三重加密增加了安全性。当然国外还有更好的加密算法,但国外禁止出口高位加密算法。基于同样理由,国内也禁止重要部门使用国外算法。国内算法不对外公开,被破解的可能性极小。

3.密钥交换和管理
VPN 中密钥的分发与管理非常重要。密钥的分发有两种方法:一种是通过手工配置的方式,另一种采用密钥交换协议动态分发。手工配置的方法由于密钥更新困难,只适合于简单网络的情况。密钥交换协议采用软件方式动态生成密钥,适合于复杂网络的情况且密钥可快速更新,可以显著提高VPN 的安全性。目前主要的密钥交换与管理标准有IKE (互联网密钥交换)、SKIP (互联网简单密钥管理)和Oakley。

VPN组网方式
VPN在企业中的组网方式分以下3种。在各种组网方式下采用的隧道协议有所不同,要仔细选择。

1. Access VPN (远程访问VPN):客户端到网关
远程用户拨号接入到本地的ISP,它适用于流动人员远程办公,可大大降低电话费。SOCKS v5协议适合这类连接。

2. Intranet VPN (企业内部VPN):网关到网关
它适用于公司两个异地机构的局域网互连,在Internet 上组建世界范围内的企业网。利用Internet 的线路保证网络的互联性,而利用隧道、加密等VPN 特性可以保证信息在整个Intranet VPN 上安全传输。IPSec隧道协议可满足所有网关到网关的VPN连接,因此,在这类组网方式中用得最多。

3.Extranet VPN (扩展的企业内部VPN):与合作伙伴企业网构成Extranet
附件名称/大小 下载次数 最后更新
2003-11-04_VPN技术比较.doc (42KB)  81
zhuzc
驱动中牛
驱动中牛
  • 注册日期2001-09-01
  • 最后登录2005-04-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-11-04 18:25
下不来啊,不过freeswan就是源码啊。
我是树上的那只鸟,整理着自己的羽毛,看着城市的喧嚣……
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-11-06 14:38
下不来啊,不过freeswan就是源码啊。


兄弟也在研究freeswan的源码? :D :D :D :D :D :D :D
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-11-06 15:01
freeswan不适合嵌入
wuhuaqiang
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2007-02-05
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-11-10 19:01
有没有for windows的原码(实现类似SSH Sentinel功能)?可以谈谈。如果是Linux的就免了。
我实话告诉你们,我可是身经百战了。bbs我见的多了,哪个版我没灌过?你们要知道,smth的thupress版,那比你们不知道厉害到哪里去了,我在那谈笑风声.你们有一个好,就是无论在哪个版,什么话题都灌,但是灌来灌去的问题,都too simple,sometimes naive!你们懂不懂呀?啊?所以说灌水啊,关键是要提高自己的知识水平。你们啊,不要总想着弄个大坑,然后灌上十大,再把我羞辱一番……你们啊,naive !你们这样灌是不行地!
eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-11-10 19:14
当然不是for linux
可以移植到windows下

我们就移植过
wuhuaqiang
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2007-02-05
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-11-11 10:38
eric.sd朋友,能否详细介绍一下你们的代码,包括功能、原理、限制条件、如何出让等等。
最好能给我发一些资料或demo程序等等。
whq521f@21cn.com
wuhuaqiang@130-165.com
我实话告诉你们,我可是身经百战了。bbs我见的多了,哪个版我没灌过?你们要知道,smth的thupress版,那比你们不知道厉害到哪里去了,我在那谈笑风声.你们有一个好,就是无论在哪个版,什么话题都灌,但是灌来灌去的问题,都too simple,sometimes naive!你们懂不懂呀?啊?所以说灌水啊,关键是要提高自己的知识水平。你们啊,不要总想着弄个大坑,然后灌上十大,再把我羞辱一番……你们啊,naive !你们这样灌是不行地!
eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-11-11 11:55
ok
我给你发了邮件
wuhuaqiang
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2007-02-05
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-11-11 12:55
我看过了,可能不是我们想要的,不过还是非常感谢你。
我实话告诉你们,我可是身经百战了。bbs我见的多了,哪个版我没灌过?你们要知道,smth的thupress版,那比你们不知道厉害到哪里去了,我在那谈笑风声.你们有一个好,就是无论在哪个版,什么话题都灌,但是灌来灌去的问题,都too simple,sometimes naive!你们懂不懂呀?啊?所以说灌水啊,关键是要提高自己的知识水平。你们啊,不要总想着弄个大坑,然后灌上十大,再把我羞辱一番……你们啊,naive !你们这样灌是不行地!
twofish
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2008-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-11-17 18:13
对于IKE部分也就是pluto移植到windows不是很难,有很多例子。
至于klips好像困难些。不过大部分代码可以使用。
eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-11-17 18:49
对于IKE部分也就是pluto移植到windows不是很难,有很多例子。
至于klips好像困难些。不过大部分代码可以使用。


会者不难,
这个世界有什么难?

国内做软件的公司不都是移值来移值去的么。open source 抄来抄去的,
做这些当然不难。

难的是想去真真花些时间做些东西!!!

不知你认为怎样。
badplayboy
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2004-09-17
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-11-23 01:27
eric.sd,能否详细介绍一下你的代码,包括功能、原理、限制条件、如何出让等等。
最好能给我发一些资料或demo程序等等。

多谢!

badplayboy@sina.com
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-12-11 15:51
ipsec和ike都是你自己做的?
你测试过和其他系统的兼容性没有?可以和不是你们的对端通不?
ipsec和ike如果通讯各方都用自己做的工作量可能是20%,80%的麻烦事都在互通和nat穿越等上面,兄弟做的怎么样,可以告诉大家不?
根据地的兄弟们,团结就是力量
bluestarmin
驱动牛犊
驱动牛犊
  • 注册日期2003-03-21
  • 最后登录2004-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-12-11 15:59
eric.sd朋友,能否详细介绍一下你的代码,包括功能、原理、限制条件、如何出让等等。
最好能给我发一些资料或demo程序等等。
非常感谢!lhm@mail.nwpu.edu.cn
littleblueb
驱动牛犊
驱动牛犊
  • 注册日期2003-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-12-16 17:56
eric.sd,你好。我现在正在做vpn方面的嵌入式工作。十分想了解你做的相关工作。不知可否发些资料给我,让我了解一下你的代码,包括功能、原理、限制条件、如何出让等等。
最好能给我发一些资料或demo程序等等。。谢了

littleblueb@163.com


 
eric.sd
驱动牛犊
驱动牛犊
  • 注册日期2003-11-03
  • 最后登录2004-11-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-12-16 18:42
eric.sd,你好。我现在正在做vpn方面的嵌入式工作。十分想了解你做的相关工作。不知可否发些资料给我,让我了解一下你的代码,包括功能、原理、限制条件、如何出让等等。
最好能给我发一些资料或demo程序等等。。谢了

littleblueb@163.com


  


你是嵌入在什么系统内,
协议栈是什么?
stevehe
驱动牛犊
驱动牛犊
  • 注册日期2002-12-15
  • 最后登录2011-02-16
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望24点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-11-16 11:13
eric.sd,能否详细介绍一下你的代码,包括功能、原理、限制条件、如何出让等等。
最好能给我发一些资料或demo程序等等。

多谢!

hyf@zhijiu.com
上一页
游客

返回顶部