Linux中IP隧道的分析与建议( 四 )



2、隧道的两端分别向对方发送自己的公开密码和设备号

3、如有必要 , 产生序列密码 , 后加密签名传给对方

4、正常通信 , ----放心 , 你的数据已经很保险了 。



在一个VPN的隧道中 , 一个封包的格式应如图四所示 。



/;; -----------------

|;;|;;;;封包IP头;;;;;|;

封包头;;;|;; -----------------

|;;|;;;封包协议头;;;;|

-----------------

/;;|;|;

|;;|;;;;原协议头;;;;;|

|;;|;;;;;;;及|

封包数据;;|;;|;;;原协议数据;;;;|;

|;;.;;;;(密文);;;;;.

|;;.;.

|;;|;|

-----------------





图四.;;;;;;VPN封包结构







你的几种使用方法 。

事情往往不能两全其美 , 你在安全强度和通信速度上必须作出选择 ,

(不然你就需要在安全强度和Money的耗费中做选择 。)

使用这样的协议 , 根据你的需求不同 , 你可有不同的使用方法 , 下面列举

一些:

0、跨Internet的公司多个内部网之间进行通信 , 保密性并不重要

直接使用原框架机制 , 无任何加密措施

这样速度快、效率高 , 公司也不用申请多个IP地址 , 方便可行

1、一般性的商业应用 , 具有保密要求

利用事先产生的序列密码 , 每次对原数据包加密

安全度提高了 , 是一种十分实用的方法 。只要强度足够 , 一般很难破译

速度快

2、密码不变的方式你认为不够安全

你可以自己实现一种密码传送方法 , 每隔一段时间更换一次密码 。

其中一些握手关系需要完善 , 有兴趣的欢迎探讨 。

如果发展成熟 , 此法相信很有前途 。

4、高度机密领域

敬请使用一次一密 , 并进行每次签名 。

每次产生新密钥和签名十分费时 , 在目前我国Internet网络的速度下

几乎不可行 。

但相信有此需要的部门也能够设法提高其网络带宽 , 让网络状况适合

这种应用 。



另外 , 当然还可以就加密强度自身作出选择 , 比如选择128位 , 还是512位、1024位









四、

待完善



主要牵涉到隧道的管理 , 在封包的传送过程中如果出现错误是十分正常的 ,

当一台路由器检测到错误时 , 它会发送一个ICMP包给隧道的发送端 , 但遗憾的是

ICMP返回的数据除了IP头外 , 只含8个字节的上层协议信息 。只凭这个难以对

ICMP信息作出反应 , 因此 , 在隧道端保留一些状态信息是必须的 。这些信息

主要包括:

隧道的另一端的可达性

隧道的拥塞状况

隧道的MTU

同时所发送的封包信息也是需要保留的 , 举例说 , 当一个路由不可达信息

到来时 , 封包的发送者要能够找出所封装的数据来自何方 , 并发送相应的ICMP包 。



强调一点 , MTU的更新对隧道来将很重要 , 因为一个灵活的隧道的下一级设备是

不定的 , 同时一些数据包本身也要求更改MTU 。


所有这些 , 在Linux中的处理都不够或根本没有处理 。大家努力呀!

推荐阅读