QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

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

1 ?5 h6 P) n2 S9 d6 e

8 }% y3 u7 I- J( s7 A

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

2 Q; D9 y; U" ~* b: M% K, O' r3 S

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

i1 m f) X4 E. _9 n' E

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

0 _9 M: ?# H5 ]9 z

是对其的有益补充

! ~# `1 Z5 R) u5 Y, L' E

) A' K" l$ u P# l& k& H2 Z+ d

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

4 X* D; O+ f- n' W, I, X, ?3 t5 k

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

( m0 F; a) _; v0 d+ y+ Z: E9 k7 Z

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

, ?, E/ w7 B( D" e0 W

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

7 x" z0 c* u, h# G( m! X4 v

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

4 t* T1 B( Q, w; k9 G) J- x

. U* D$ ~8 z2 {6 }; z

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

% |$ o O: Q! U6 r& r

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

6 `* ~+ U ~, B t" f

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

1 y$ z0 t5 H0 g' T

中途截留者更改

" s, v8 n6 {2 j( Y( ?

9 o7 _: A4 Z- F4 y+ G; j* \# f

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

! s3 @0 k- D$ F a0 i7 K! f

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

1 b7 t5 \/ b9 Q- d

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

5 K+ @8 b# y7 e1 z9 n" e

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

2 I$ X) _6 \0 ]: M" b% ]+ t& ^8 ^' A

: H: I! L3 S$ q1 M- I7 y [# [5 _6 D

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

/ I% H0 X6 w' c% L( v

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

, S" G8 }- j: Q; p6 n7 ~! n8 ~) h

在IAppServer::AS_GetRecords或者

. W( t0 [7 B u

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

3 ^' T. Z' H" ]

$ w1 c+ t% ]; x& b8 A& @

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

5 m; g' B0 I" j# `

IDataIntercept接口

& e' x9 J. B+ p2 ^1 S* h

. g, @# t% ?( |/ S

__interface IDataIntercept;

Z( b' e Z# }; y2 A# b' B6 p

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

7 [7 F, t/ M% g4 X8 ]5 Y2 J! y

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

( `' |" N8 d p+ o9 b" V' L

tercept : public IUnknown

% c7 A4 w9 N. [1 G+ [" _1 y' p

{

+ e: ?6 D5 n& L" z9 B% g- n/ [

public:

% A9 q8 |- W0 @/ g% }- x

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

) v! g6 S" Q0 F3 ^8 g

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

% |# }! B7 q% U/ s, b v9 r- s# o1 E

};

/ p/ c# p& p+ B$ \7 u

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

8 x6 ]0 |; e, V/ r. W2 |/ h

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

' i7 Y! D( G Y1 d

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

7 E, m1 W% u0 P9 I

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

' k: c' v- `" v3 V+ s

1 r3 U+ @, n1 u- ^% n

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

+ a' Z9 q$ z, X3 U( [4 b

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

; t/ D. B6 h! }% J5 L& x

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

4 k9 K5 I: U8 D3 C' o" u( X

- R& U' d- E2 b3 p

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

1 }3 r8 M% w4 M

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

. d: F' F* [1 S- H

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

# p2 x Y' p2 E4 ?& x$ H! F

' u/ w- X& E1 t$ V9 o

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

6 g+ W+ C. D3 z/ {$ ]- e

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

0 K- ?* h: a: O/ E' Q; d

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

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-8-12 03:10 , Processed in 0.451708 second(s), 51 queries .

回顶部