QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

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

# B1 L& K3 z$ e$ i/ z7 [4 m

& w/ R% O1 K1 X) X& q6 O k7 {

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

! K8 o- @' o" u. I

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

* k: |& J( Q* P) M7 f$ r$ V6 S: V

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

( s% q9 v8 K2 B/ a; h0 a$ H1 `

是对其的有益补充

6 Z* g& u, N, x7 C

: l' J$ h2 i7 n6 ?2 @$ i: c

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

& t8 p- l1 p% I0 F0 w

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

7 A, E. l* r9 j% h

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

, _% G! T1 \# X; T# r1 V7 z

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

D$ `" E: g% m5 K3 p

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

7 l* m# Y# l: ~7 c* E: c Y

0 d1 `- Y- F; L! I2 f' I

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

! B% C' [ M \$ R

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

5 K& L L6 o8 A& ]# q: k& }

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

" x$ N# B9 w7 d6 H

中途截留者更改

8 Z0 W2 a& y+ r7 p! h* J

7 \' p9 L/ l4 X) k* B) R( P

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

4 v/ k6 x/ E0 X! k$ a- V, g" O( f

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

( T! J, K) r0 \1 k4 I

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

% a" a8 Y/ u+ E, O9 l6 Z, v

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

$ ]+ V3 x' }( V j: M2 k8 x2 Q( k

7 u9 {+ ?! G; i- s# K

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

- v$ g9 t. u/ q% B- Z

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

9 J9 [( a, s; J, C9 K

在IAppServer::AS_GetRecords或者

; Y O( F! m$ t" B

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

2 p2 s* e6 l* h4 L# @ |

, X# x! c) J1 a* b

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

0 X2 n5 |+ h+ i1 J% R2 q

IDataIntercept接口

6 s5 u4 k5 N. o6 H# p6 }2 l

3 P. m: z# ^# G- B" C4 k4 v# Y

__interface IDataIntercept;

8 c, i# k/ y+ P' P- l) _2 [

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

0 F5 z; ~: s0 o

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

9 R8 h! x" G* ] n$ m/ t2 Q

tercept : public IUnknown

- F1 [0 p1 C/ `8 B+ Y

{

7 P: O' p, o' x4 @- T

public:

% Y/ Y+ J2 S0 g; H0 a1 @& X/ r+ f

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

; ~; E2 v& M1 k& v$ K6 h! R: T7 c

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

3 n0 q+ l( n2 l& W1 r

};

7 }: s& @" |7 Q3 d, Y. @4 A

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

% ~3 ^/ \# E) \) M

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

) n3 ?. ?! ^; r" m3 r9 X: c

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

1 I4 j( T6 A- s/ B: G0 l6 U( e, d

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

g! {( U# }2 b9 R4 L

" R8 Y9 C0 s( B7 E' w& O

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

) \5 ], W' [0 n& G! ]; }

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

" O. ?6 j. c% b) o; t* W# }0 r( X D" S

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

5 g3 i+ ^9 u' M$ p, {& X; |( ^

9 u& m, G/ r( K% y; D9 w7 a

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

' F* z1 ]7 K6 V3 p' @6 v

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

; E# W4 f& ^9 R( x/ {/ ` ^3 Z- T

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

3 V. e. K$ R/ t

( J0 O" V+ @2 x! `3 t

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

7 o8 e8 d! R) Y

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

1 W6 r' r8 x+ i

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

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 10:47 , Processed in 0.334504 second(s), 52 queries .

回顶部