QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

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

0 f/ L& a" ^' R8 ^, |$ `

9 g$ M# S4 G; w+ y6 E* T

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

8 d6 m2 E2 M/ L

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

" t+ e7 ~- t# j( n2 |9 m/ F9 y

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

* H5 n- K$ Z& J" q

是对其的有益补充

9 ?- {6 p4 | ^3 ?+ \, r+ o. c

7 M8 y/ D9 A$ V/ `

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

* p5 J# @1 h7 |; @1 \

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

) b; S, N9 H. G; w/ v/ i! G

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

, O" p# I0 v6 f5 q: ?) s: [! A9 {* S) h

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

6 M! x, I) A$ C

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

( Y7 g8 W4 O6 m \7 I3 ^

% k! n( |. a* N* o& ^' r

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

4 c; j) q2 Y! h n& i

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

0 V& Y/ Z z8 p. B

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

9 z# O, b9 P4 N; Z# O( L+ [3 Q# T

中途截留者更改

* b& M% g. q; S: k/ S& ^, h q

% M% C7 G6 Q( [! h

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

* m) r: h9 |( R0 P7 {- U

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

8 w& \3 F0 ?& H F z8 B) l

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

+ k' M$ z. I }& a- J( g" L3 U3 s. s

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

" ]# Y# ~% t5 Q1 D( ]" j

/ x6 @5 f) D- b9 R' z

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

- H2 O" d Z$ E/ {% u) V3 a! L

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

X1 p; r9 ^0 \( L

在IAppServer::AS_GetRecords或者

A+ c. r" c* M, W; L9 S @9 }9 N) X- B

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

( Z/ V! N T1 a8 n# I' S

% e$ ~" G7 p1 G! R

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

& N. D* j' M/ q1 i

IDataIntercept接口

% Y% s3 d& F+ e* n

5 R1 V3 ?7 I# m5 S4 w g

__interface IDataIntercept;

0 R& l' Y) u: N/ S4 v! |4 P

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

* j, O- W0 d; l6 b6 d/ c' ~3 g

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

4 Q4 u! R) @( S! B

tercept : public IUnknown

; ^# ^0 g( t! W% `6 p

{

& h' U \) G( m

public:

) ?$ E+ x3 E, N

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

7 x% Y5 Y* _+ }( X# C& ] e

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

; v' v" w; J* v# e5 l0 `

};

% e7 x4 Z8 \* p8 c" A

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

' [2 E2 a' n8 D) o

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

* u1 b' u/ U p

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

& w3 e5 ]3 N- O+ ]$ s+ @$ N5 Z

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

3 ^1 G( q8 b& J1 T% N

" B& P$ k& Q, p' j0 A

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

' N. w. P8 _# x, y( S

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

. e7 w. p7 ^1 w/ ~

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

; [( t6 e6 ^# a; _( w" @- D

3 X2 x" _% q. a' M9 I( g. T. ~

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

# @$ P, u' b9 k+ N" ]

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

, m1 X+ J: T7 u8 x& P

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

, ^/ f$ b. M$ k# {6 I6 @

% j, \# d2 W! d. _+ P# }

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

: @. \# w# D8 `# u1 p8 R; b

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

& E5 C# h% V2 A' ]' \

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

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-13 05:45 , Processed in 0.427396 second(s), 52 queries .

回顶部