QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

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

! [4 G. x. R! ~/ M

?; {1 o6 N. E/ U- k/ M

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

* |4 \$ O, {+ v- _+ r( U

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

. G. v9 g) [% Z; {4 Z

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

& ]7 m4 a. e) m( b0 i2 K

是对其的有益补充

. R; s/ A5 }6 f7 A" Y

8 d% q( \0 M" V2 w8 v7 W% A; s1 o

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

2 l1 e2 g- Z8 \

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

" o0 f& S7 g* s: ^5 D, h0 P0 `

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

0 b7 N$ g6 X" J& C

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

: a+ o8 ~0 y$ y4 l

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

( V# e2 f1 I! |* Y. n, t

7 @2 J B" V1 d( F& r

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

, S; l: h$ X [7 |1 v0 A

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

1 G; y& K: w& l" n; e

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

7 {4 l% y' j$ @5 L' E$ t& @" M6 s

中途截留者更改

1 K9 g( V& u" S! i' B4 H: r3 Q/ A

6 H6 b$ @- X$ I+ S9 I7 {+ ]

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

5 y0 U& u4 ~: l8 G; y

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

& w' Z) i, X. P2 M* ~. b: z

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

# P# y* a( i0 m! v* g; q

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

c; Y1 {- K B" x# F: u9 K' {8 T

7 w& r X/ t- |6 X

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

8 D& f& e: F- V7 m: h: X$ m

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

4 s/ F) k1 D2 H8 o8 J3 I1 t* u

在IAppServer::AS_GetRecords或者

5 `2 Q {! _% q5 E

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

4 X3 v4 k } g" m. ^; X# E! Y

3 Q6 g9 W1 Y6 ^: @

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

2 m+ L4 Y$ g" r

IDataIntercept接口

; i4 v4 [ K5 I" e' x5 R9 t

( w& f+ I0 V2 F" E

__interface IDataIntercept;

. ?8 d& T7 i! \ I- g* C. |4 F

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

8 d- B8 s# h* W( V* M, v

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

+ k H7 `6 O9 k0 D9 \

tercept : public IUnknown

1 U% Y, T" F& x: L

{

2 r- J" i. h" [- l( t

public:

1 R/ [/ E8 C: }3 q

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

1 S/ V: d5 v; G) I

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

: X) E: u$ m! E) k

};

* x3 C) m9 J" O' H

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

+ t) F1 s" ~ {2 o6 p& r

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

. E0 O( C5 ~* b5 D; W

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

, h+ B3 Y# ~' j% i& ^

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

! G7 n" \& K0 F( P

) s0 I5 d( D* d2 h' }% ~$ Y

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

: b" ~! l# q+ k1 B- K1 n: q

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

' a9 C' X& ?. [, T/ q7 h9 t1 I( P

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

7 d7 {# _' \- L( B* f

6 ]. x4 X( D; {

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

+ J2 X( @. i, ~$ ]4 j1 U

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

a: j( _5 y7 A E% Y

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

: \8 ?2 Y5 M, w$ h6 t6 t

; ^, f, O6 k7 j- H; o) C9 n1 ^

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

3 |* e0 j0 K# v& ^ s7 {, A! |

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

/ V. v- n# l4 o. V/ y( R

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

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-19 15:34 , Processed in 0.463491 second(s), 52 queries .

回顶部