QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

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

6 c% G/ m9 Z4 Q8 g/ h8 V

4 {3 v7 N" R4 {# v* f3 J* M8 g

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

$ j/ w" Q3 H2 O0 t0 V4 @ ?

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

Q: K: ^# C; X! `. ~' y C8 p

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

, y, E8 D7 P2 ^2 V8 ~

是对其的有益补充

; L) v" O1 S( }; W( V5 P

5 T' l! y ?% x5 A

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

( {) V0 a S K' O" j( `% ]

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

, c, J) s# X% q4 W7 _! G# x

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

" d) o& e! P; }- b

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

/ M2 y% T2 P" U6 _* G; ?( o

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

; K3 I2 }! K5 o0 {: L( U0 f6 @6 G

) {7 M& L9 X0 K* n0 m5 x

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

: o8 n6 d! a! ~8 D* d' x$ F) Q

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

) Q# e+ e) A$ S" }' L

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

' H X9 m1 K9 A: m/ f" H! {: ~. `

中途截留者更改

* n% f! [6 W8 t, x

* `7 V5 w. `0 @; D8 E; R

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

% [7 q6 n1 x4 b

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

X( r5 H4 Y% K: X, F, N% p1 c( y

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

' @6 L) n1 f- o7 u6 l& `4 j! T

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

) n! [' H' a! O7 ]9 L' K

5 ?4 [- _: d. T' v5 {' n7 I

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

$ \) e m2 m9 L

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

' C. s8 x% Z" P3 R6 U

在IAppServer::AS_GetRecords或者

]1 [' A$ l/ ~

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

. [% m- {4 ?/ _ t% |. S$ ^

7 ?' e& t: G. H# U5 a' h( A

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

6 c& I* l$ C5 S* `

IDataIntercept接口

" A9 `7 A, c, S3 [& D6 D

" \6 @6 A* f! u% ~! E$ d9 X. l

__interface IDataIntercept;

$ i) H& y- V# W7 [

typedef System:elphiInterface<IDataIntercept> _di_IDataIntercept;

( Z1 X, U2 z+ e

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

/ |) v2 N) f$ L+ D7 y

tercept : public IUnknown

$ x* u9 W) k, ^, p# j7 j

{

: E# B6 S$ W; k( }8 s% C Z+ t

public:

0 d1 b! R1 U. O6 Y

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

/ o. k( J ~+ M* i

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

. D/ E: `- S* o4 { e$ L, c9 c

};

* R; `, I _, N* U0 C" l5 o" B

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

9 q7 G1 C9 g8 E) Q, S

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

6 ?: Z# N, c$ h0 S% _0 F

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

5 x/ _1 O: g" |6 b

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

" @1 _5 u1 ^% q4 [! Y

1 K: w, y( ~: Z

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

. F$ U! ^* k- V4 u

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

* f( X& X. W3 z9 ^) T, c" A' x- ?' p! E

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

) |% l4 _) r# d* ?. B# g9 a

9 V$ Q. K. U/ P& i% Z$ V) N- v$ j1 N" n

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

3 y, Q; b/ Z2 {# J ]. G

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

( [9 i) J6 v4 t9 {5 z9 p/ Y# t

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

6 S& z v* @' {, d9 M0 Z7 H% O' R

- P$ Q* ^& q; P2 ^4 `/ W6 m4 g

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

& _6 p! I. p4 x' c7 O/ Q

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

( \8 J6 M0 w6 K! y G$ t

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

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-18 12:14 , Processed in 0.336270 second(s), 52 queries .

回顶部