QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

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

: |8 ?0 T q( j; e6 S

& ^" A( i# N6 m

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

* R% L* p _, a& A* R4 z

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

+ w8 q& Y, N0 {9 L) s% r1 N+ q9 a

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

6 j1 e7 x. m4 V3 z/ f: [+ v, G

是对其的有益补充

1 I. q# [ u4 Y: y

% Y6 i) y/ p) h4 m8 @ w6 q

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

5 w ^8 ^* n; c& C

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

' l" \$ j/ Y% @

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

, G; G1 X+ Q8 T; \& e' H

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

+ F8 C9 F% |9 ^$ ?- \* C

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

8 _$ h+ g5 j$ g9 {% f8 n

- N# B$ R) k1 D: e( h( {) s7 P

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

0 l! o, ]$ W9 ]# i9 i

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

2 R! H1 K0 s9 k" @

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

: A/ @1 R9 W7 n0 h% @0 k

中途截留者更改

- }! b5 M+ i6 ?/ {# N ]

7 K, b% G/ ^. Z; e4 [: `# j

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

- m# ?& V5 L5 d# t5 \7 l; q

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

2 f/ D9 ]/ ?7 |

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

2 u% b# p' d" c$ }

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

, x- F$ J& y- f! u' b

' Y* n$ c) F. H& C9 e8 l

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

( b: B0 ^! \; Z" q2 T9 h8 F+ c6 Y

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

( ?& p+ ~; l6 R# N6 z5 N5 V! P. r, @

在IAppServer::AS_GetRecords或者

9 X, n4 H: F8 x

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

5 k" d( j! Z$ o( y( t& e, n/ a' w

/ Z4 N0 |7 k. G6 x- v6 f5 O+ ?4 A! @* M

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

5 O( x2 O7 Q- m

IDataIntercept接口

0 P+ C$ P9 M- f4 q

8 D) j4 a" L: S' e1 R

__interface IDataIntercept;

5 M5 o$ M1 z9 f0 L0 L& ?

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

* b \& w* S8 j

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

! d0 T4 ?* o V R1 t& m8 Z

tercept : public IUnknown

" }! ?- u& [5 ]0 J7 }

{

3 y# r2 b9 t$ x# C

public:

+ o1 L. Q2 G1 u& f5 {

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

; I4 d p1 J8 s* ~# b$ `# z

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

' f) ^; \- q8 |" [% ?( l

};

* O3 b) q# R% \2 D4 }( T3 N$ d

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

2 n( Z. p( O5 N( G% \

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

' V/ l, Q) Y2 p m; m1 G+ R

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

# r- M$ d4 O3 e" |6 l! L1 `

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

) F' o; V6 \8 B

: z* L6 i/ n) c& N' |9 Y, v& E, [

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

9 }: T5 _$ ^- G- B( v

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

! u/ X* | g8 ~$ T& `3 N/ u

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

T# V$ ~6 _# d$ |* E u' x

; ], z* o1 g% {/ N$ i0 O! x" p

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

, H* p, E; L. j: F

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

" T, P# i% M& S% A4 O: J9 z

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

$ h* o" P% e( Q1 t J

: _. k3 q' Q, i Z

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

" ~ ~5 |2 E+ f% ]* ~- U! g

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

. r3 E3 g" _8 V1 y7 r4 H V3 K _

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

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-6-10 22:20 , Processed in 0.380797 second(s), 51 queries .

回顶部