QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2058|回复: 0
打印 上一主题 下一主题

socket连接多层程序安全性简述 - 数据

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-26 01:11 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

socket连接多层程序安全性简述 - 数据

4 n% r5 {& l- U+ j* D$ T

3 \ T2 X5 H5 \$ u0 f+ W, _. V* V' h

剩下三种数据包/数据包完整性/数据包保密性

9 k4 X& k# o6 S6 ?1 A( j) h

其实只是一种安全机制的不同级别实现而已

, @, A* q+ W9 q3 x5 |

数据包对发送者的身份加密,完整性和保密性

0 F1 u1 N+ a. Z+ X, U

是对其的有益补充

1 x0 a, o6 ~4 P" L! H/ _

5 e% Z1 o$ ~* o5 x/ c

实际上数据包模式对发送者身份加密实现方法任意

9 x! S, Y- u3 o5 d; V: f( y

比如可以用Windows提供的那套加密库

" G$ H9 j9 Y, a: O7 N5 \

呵呵,反正只要你在服务器端对其进行检验

3 O9 @: h+ Q. P& \( n

传送中途数据包被截留不会泄露发送人身份或

& H5 w4 Z$ w! j

可以证明发送人身份的数据即可

+ r6 r$ j3 q) S3 j- C' z

" P j8 R7 E4 x% u& s5 f

而完整性可以通过各种算法保证,比如crc,md5都是

+ B0 q" H; m9 g2 n' o' N8 Z

可行的,甚至简单一点按位and/or也不失一种办法

6 V, x2 t9 C( o: p

只是比较简陋罢了,呵呵,总之要保证数据不会被

" V! d1 q0 d( R: q7 r; q+ M5 k

中途截留者更改

. C; O# O" v1 |+ l; z: ?

" l A- f. g# \7 z& l: p X5 j* Z

至于保密性,找一种对称加密算法对全部数据进行

- s" I$ D- e' _# K. W: s U

加密,然后将密匙用另外的非对称算法再次加密即可

" Q, K! A4 M( x* p

具体这方面的安全考虑问题可以看看《应用密码学》

% T R9 a) ~$ S# f

一书,非常不错的这方面的权威书籍

& Q/ _. S8 l) k. ?# S7 |9 f6 b

( o9 {0 F. j' m+ S! F

这里需要提及的是这三种模式的实现,

% s( H( t% m. i0 _+ |4 h7 T/ U" ]

简单一点的可以类似上一个呼叫模式中

! i. U; i; C3 x- p% ~& s' {

在IAppServer::AS_GetRecords或者

6 o4 o% B/ d$ m

其他类似的事件里面实现,参见上篇文章

' z4 E/ ]+ S D; w3 d9 |$ i

) Q/ F1 j# ?! A2 {! e/ F

不过很幸运的是borland提供了一种更加简单可行的方案

, `' g& }1 ^; [9 s4 e' w

IDataIntercept接口

0 I: N7 y. S( v6 Y: H

0 k, `2 t R6 ^( ]" ~6 l: `, c

__interface IDataIntercept;

8 f) e& C- x" z* I5 b

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

3 g% y& ~3 u0 j+ } [7 n3 q e

__interface INTERFACE_UUID("{B249776B-E429-11D1-AAA4-00C04FA35CFA}") IDataIn

0 w4 X: x/ n! {, R

tercept : public IUnknown

7 @" k* P( h) D5 W

{

1 z- h1 a2 p& |& w1 ~

public:

2 n, f& ?; P& L9 I# h

virtual void __stdcall DataIn(const _di_IDataBlock Data) = 0 ;

( b$ V5 h$ |* Q

virtual void __stdcall DataOut(const _di_IDataBlock Data) = 0 ;

) c- N, ~& d8 r" Q

};

1 r! G, |* I A

他在TSocketConnection类传送数据时会自动被使用

, N& E# r, E& W Z

呵呵,用它实现数据完整性和保密性都是非常合适的选择

6 s3 `9 m" b3 l: }6 O7 M/ B0 v

外加还可以对数据进行压缩,呵呵

& d3 d* w2 F2 D' _: N9 Z0 t

具体使用可以看看Delphi5\Demos\Midas\Intrcpt\目录的例子

- X, Y) O! G1 i

9 ~1 I5 c! c& x

MS对这几种安全机制的分类是高级别兼容低级别

, ]2 U" `/ ^: H8 @) g

实际上在我们自己使用的时候完全可以根据我们的需要

, }% }. Z- m, x, i

自己灵活混合几种机制进行处理,选择最适合自己项目的解决方案

+ [& a+ i0 o+ y) S7 j1 O

% i* r+ \2 v7 O ^

btw:本来想随便写写,发现好像很多问题都几句话说不清

4 R; D) ]4 w; o7 N

等到下个月有时间偶把这些东东好好总结一下写篇

- l, V: M v' o

象样一点的文章出来,呵呵

$ d, w* J0 v3 K! D

, L, O5 i3 V; R# F5 ]8 [

其实这些安全模式的实现方式还有很多,偶只是挑出

$ p, R: f! u& P: e- b: q

偶比较熟悉的比较容易说清楚的介绍,简介嘛,呵呵

% L# x$ _: A+ ^- z0 t! y; F

希望能够对大家有帮助,也希望大家积极讨论,批评指正

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-4-18 12:08 , Processed in 0.363781 second(s), 52 queries .

回顶部