QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

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

# @3 g. Y4 ?! n8 |2 e; ~- b

% M2 C$ ]5 T- W

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

5 l2 x$ Y9 Y1 r: A! M

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

$ v) @. f. }# R

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

; A2 E# b+ W0 M1 ^% ~+ j

是对其的有益补充

: ]) F1 Z, y6 R2 C5 K. A4 a

5 z/ S0 b% V4 u5 ?! R, C# j( t4 F

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

) S H- ]1 @' n- y- c8 [2 R

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

9 a0 o/ S% L5 _: i9 X

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

, l X2 Q$ ? j5 ]

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

b: p7 Q! R+ Y; I; ^) W

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

$ m3 o0 ?/ i7 l# ?

5 }5 i5 Z- J0 V1 P' I6 f

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

2 e$ p1 T; q `( Y" O/ Q

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

9 @/ [, g$ M2 s( W% Y* S

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

" d" `. t$ z1 ^# H" X1 V* S5 E

中途截留者更改

' K. R5 s7 A3 e' x3 w3 A

5 c8 M+ l. P4 ?

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

3 n; v5 |9 V2 l: }$ p

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

* K! V/ j- Q8 d! S7 }

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

5 X% n+ ?+ p- b. T

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

! Y' D& i$ P3 ]6 @) h

( n2 Z8 R' E+ u% ~

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

3 c! W2 j8 K% g7 u

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

% j- `7 S: e& n. H

在IAppServer::AS_GetRecords或者

+ c/ X7 z8 H0 i! C( t" G, Q B3 \- {

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

9 f3 k4 F6 v7 K; m2 r7 J# W' H

: ~# u/ _. Q! {0 ?) j: V8 H: r

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

4 L( x: D, W) L6 T, O

IDataIntercept接口

/ e+ U3 v& T; S# R

0 u$ ~* {% O- f6 V- e1 V. \% X2 |/ _

__interface IDataIntercept;

5 \- H8 ]1 s% T+ |7 x8 S7 R9 y

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

- y0 ^% }. d$ @" g. l" `! |9 g

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

: g+ J; E; {% a3 r5 m% j( m: b! I

tercept : public IUnknown

7 Y" v% A0 p: P, Y& I" B% O4 ~- D

{

" r! G/ O J! N+ Y O& }( L' a# P

public:

1 X) l k* s: }

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

1 A0 j7 ~" R. P! c) U* d

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

4 V O+ x% p5 m/ `! B1 d

};

5 H# _8 @& {, @5 [% H

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

5 G% B( Q; U( z& |. |. g

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

4 j& @0 D; a5 l c% I6 y

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

" M4 ^" Y. h3 W: J

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

U* {$ I4 x+ A5 K

+ R; s3 V1 }! j* O; F- y6 U- l, s

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

3 V- Q, ~8 b( p; U+ R0 P; c( ]

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

: `6 m6 _% k! \

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

. @! `: T* D" H" D" R

$ T' b, z5 I2 K# E* w; Z; Y

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

0 g7 K0 N- |' ^; F

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

2 j) M+ ~# j+ `2 v' o* _% |

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

1 u, z+ U2 G8 v

p* G- g! x" c

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

# I% C" P& X& N2 L) ?% s

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

& r; X; g m, K8 p N) w0 e

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

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 07:33 , Processed in 0.417906 second(s), 52 queries .

回顶部