您的位置:程序门 -> .net技术 -> asp.net



每个用户有对应的积分,积分可当钱用,该用什么方案加密积分这个字段?(银行是怎么做的?)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


每个用户有对应的积分,积分可当钱用,该用什么方案加密积分这个字段?(银行是怎么做的?)
发表于:2007-08-12 20:00:05 楼主
系统基于sql2005和.net2.0,用户可以通过在线支付购买积分,积分可用于购买商品,有点预付款的意思。因为积分就相当于钱,所以安全性方面要求很高,简单的加密存储我觉得不够安全,比如说数据库管理员就可以把自己的积分调成跟其它高级用户一样,这个操作不需要解密就能做到,系统管理员也可通过编程方式调整积分(只要看到源码)。我想知道一般涉及到金额钱款这类数据时有什么好的解决方案,比如银行怎么处理金额信息,有没有人有这方面的经验,请指教。
发表于:2007-08-12 20:02:151楼 得分:0
解决这个问题可能光从程序角度还不够,如果有硬件方面和管理方面的建议也请提出,谢谢。
发表于:2007-08-12 20:03:302楼 得分:0
积分就使用int类型就行了,多加一个字段存储   积分+保密值   的md5

这样就算被人在数据库中修改了,也能查到,不过   保密值   比较重要
发表于:2007-08-12 20:04:253楼 得分:0
上面是程序中做的,管理中,就是源代码的管理,还有   保密值   ,根据自己的情况进行控制比较合理
发表于:2007-08-12 20:14:094楼 得分:0
可以自己设计加密函数,封装成dll。在插入数据之前先利用加密函数将积分加密,然后再入库,取出来的过程反之。这样可以保证系统管理员不能利用职务之便获得积分信息。
但是,管理员如果对系统非常熟悉或者监管不严,还是可以获得dll自己实现加密解密功能的。
发表于:2007-08-12 20:17:165楼 得分:0
比如说数据库管理员就可以把自己的积分调成跟其它高级用户一样

====

那么,你说   某个银行保险库的密码   是否连金库管理员   都无法知道呢?
这是一个防范“监守自盗”的问题,技术角度上无论如何都不可能完全做到,需要一定的行政规范,你不会随便将金库钥匙给任何人吧?

从系统设计上看,
对于涉及安全、保密的操作,每个操作都应该有相关的详细日志记录,何时何地何人做了什么样的操作,以及可重做策略如何设计
这样可以某种成都上,对操作员的操作作出约束,

当然,对于   hack   级别的“闯入者”,他也有办法绕过你的监督机制,比如你用了触发器,他肯定想方设法的绕过取,

因此,技术上能够解决安全性通常的对象是本系统之外或者非专业的人员的“异想天开”的“行为”

作为,系统管理员/dba,你赋予了他进入系统/数据库的权限,他当然有可能作出任何不守业务规则的行为,这似乎不是技术角度能够完全防范到的

具体的实施方案,也不了解,找从事相关行业的朋友了解下吧,
发表于:2007-08-12 20:26:596楼 得分:0
跟据上面的讨论看来,我应该在如何生操作成日志的问题上下功夫了,这才是正确的方向。请问有没有具体化的方案,自己想的话难免会有疏漏,大家多提提方案。比如说kingwkb提到的保密值,应该是个不错的方案,但是保密值也有可能被改,最好还有其它补充措施。
发表于:2007-08-12 20:36:367楼 得分:0
保存数据库的操作日志就可以,默认情况下sqlserver是保存操作日志的,你可以在sqlserver的系统管理界面中查看日志。
发表于:2007-08-13 09:38:148楼 得分:0
数据库的操作日志不方便查看啊
发表于:2007-08-13 09:51:199楼 得分:0
银行的系统也不会有程序去加密金额的. 银行的管理人员也是可以随便改金额的. 但是.银行的管理制度比较严格. 数据维护要申请,填申请表,进机房要登记,直接改金额帐不平,很容易查到.
发表于:2007-08-13 10:14:3710楼 得分:0
一般这种东西都是,服务器ssl配置,然后给客户端颁发数字证书
懂电子商务的人都知道,颁发证书,是比较有效的安全控制方式
再者就是从管理上下工夫,跟技术无关
发表于:2007-08-13 10:20:1911楼 得分:0
up
发表于:2007-08-13 10:30:1012楼 得分:0
专业路过!!
发表于:2007-08-13 10:54:1313楼 得分:0
up
发表于:2007-08-14 15:19:2414楼 得分:0
呵呵,没做过这么严格的东西!学习,接分!!!!1
发表于:2007-08-14 18:05:4215楼 得分:0
你的积分怎么充值?是用户直接充(点卡形式)还是通过管理员修改?

如果是管理员修改,那技术上肯定不行,只有通过管理流程控制(比如会计与出纳的方式)来尽量避免了。

如果采用点卡的方式,我想以下几点应该可以提高数据安全性:
1、n个字段分开以自定义加密格式保存积分和点卡密码数据,互相校验;最好多定义几种加密方式;
2、点卡密码什么的敏感数据由系统生成后加密保存,不留直接解密或查看密码的接口;
3、程序中不留可以直接修改敏感数据的接口或函数


就样应该基本可以避免管理员私自修改数据库了。
发表于:2007-08-14 19:54:4616楼 得分:0
mark
发表于:2007-08-14 21:20:1617楼 得分:0
1.同意楼上   jinglecat(晓风残月   > >   问题需简洁,错误要详细)   说的,你要防止监守自盗的话,应该在系统设计上做到对管理员的严格管理和跟踪,就如银行的职员出出入入都要刷卡都要log,什么时候钱被偷了,看看log那个时段谁进出过就知道了,这么明显的保安机制银行职员显然不会蠢到想要偷钱,至少想偷都想个更高明的办法吧。

2.如果你真的想知道电子钞票是怎么做的,你最好自己去看信息安全有关的书籍和理论,有问题最好也到安全有关的板块问,因为那是很复杂的事情,当然它可以保证1元就是1元,没有密钥你无法凭空创造1元出来,同一个1元也无法复制或者重复消费。


快速检索

最新资讯
热门点击