可可熊的窝

Tag Archives: security

CPU卡相关

IN:安全相关   Tags:    Comments:2

智能卡又称CPU卡。CPU卡内嵌芯片相当于一个特殊类型的单片机,内部除了带有控制器,存储器,时序控制逻辑等外,还带有算法单元和操作系统,由于CPU卡有存储容量大,处理能力强,信息存储安全等特性。因此,广泛用于信息安全性要求特别高的场合。

http://baike.eccn.com/eewiki/index.php/智能卡(CPU卡)

CPU卡在国内的最广泛应用应该是手机的SIM卡了,CPU卡要做应用一般都需要有一个上层的COS来支持,例如SIM卡就有基于GSM11.14和GSM11.11规范实现的COS。

COS是一个完整的系统,在结构上COS分为四大块:文件管理、安全机制、传输协议、命令解释。COS不是一个标准的操作系统,它是针对不同的应用来设计的,不过在一些底层的结构上还是基本相同的,比如文件管理、安全机制、传输协议,不同的应用在COS里体现在命令解释这一块。一般都有针对行业相关的命令标准,例如SIM卡相关的GSM11.11标准,金融相关的PBOC。关于CPU卡和COS最重要的规范就是ISO7816这一系列的标准,例如ISO7816-3规定了COS中的传输协议这一块,ISO7816-4规定了命令解释这一块,当然这里只是规定了最基本的一些命令,不同的应用可以有自己的扩展。 CPU卡在芯片级就做了很好的安全保护工作,比如对存放在CPU卡里数据的保密,以及CPU卡的物理攻击防范,举个简单的例子,你可能花很大的精力把一个CPU卡分解开(芯片的分层封装可以防卡轻松把一个CPU卡分解为ROM,CPU,EPROM等),得到的数据仍然是经过加密的。因此在很大程度上防止了卡的复制,而目前银行的磁条卡是很容易被复制的,只要知道卡号,密码和这个卡对应的一个随机数(据说可以直接读出来……而某些使用算法产生的也不安全,因为相关的算法很弱)就可以很轻松的复制出来一张银行卡。

国外很多银行已经开始采用基于CPU卡的银行卡,中国也有相应的标准出台:PBOC,不过涉及到数十亿磁条卡的更换,标准制定多年来一直没有得以推广,对于这种投资大(更换ATM机、POST终端、后台系统、人员培训),而不会有很明显回报的事,国内的银行还是表现的很”理智的”。

05-21
2009

加密算法相关

IN:Life   Tags: , ,    Comments:5

加密算法:

加密算法一般分为对称加密和和非对称加密,对称加密是指加密与解密使用的是同一密钥,而非对称加密加密解密使用不同的密钥,一般把两个密钥分别称为公钥和私钥。

对称加密算法又分为序列密码算法分组密码算法,从名字可以看出,序列密码算法在加密的时候每次只加密一个字节,而分组加密是把要加密的内容分为一块一块,例如16个字节,每次对这样一块数据进行加密。

典型的序列密码算法是RC4(由Ron Rivest发明,就是那个RSA的R),RC4是RSA公司的一种专有密码算法,在1994年的时候有人匿名发出了一份RC4的加密算法的代码,并被证明与RSA公司的RC4是兼容的。RC4是一种密钥长度可变的算法,其密钥长度可以在8~2048位之间。不管密钥有多长,都被扩展为一张固定尺寸的内部状态表,因此不论使用多长的密钥,该算法的运算速度都是一样快。

序列密码算法得到的密文是与明文一一对应的,因此为了防止被修改一般配合一种摘要算法来使用。

分组密码算法每次只能地固定的长度数据进行加密,例如16个字节,如果想要加密更大的数据,得使用ECB(Electronic Codebook)或者CBC(Cipher Block Chaining)模式。ECB只是简单的把消息分割成固定的16个字节,并使用加密算法对各块进行加密,这种方式有着明显的不足,例如两段很相似的明文,另密后也会产生很类似的密码,这会暴露给攻击者很多信息。CBC解决了这个问题,对每个明文分组的加密依赖于前一密文分组的密文。这是通过在加密前会使用前一个密文分组与明文进行异或来实现。这个时候第一个文明分组会与一个叫做IV(初始化向量)的随机分组进行异或。

DES是应用最为广泛的对称式加密算法,它是一种具有56位密钥的64位分组,意思就是以8字节大小的分组进行加密,密钥空间为56位,DES密钥的实际是64位长,但是每个字节的低位用来做奇偶校验。由于计算机速度的提高,DES已经被认为是不安全的了,毕竟密钥太短。在这种情况下3DES算法就出现了,3DES算法一般使用加密-解密-加密(EDE)的模式。

RC2同样是R发明的分组密码,它采用一种经过变形的变长密码,它还具有一种可变的有效密钥长度。

AES至少有128位的分组大小,可以用128、192、256位的密钥长度。

非对称加密:

最出名的算法应该是RSA了,RSA的理论基础很简单,而算法的安全性基于一个数学难题:“对一个大素数进行因数分解”。

Diffie-Hellman(DH)是首个公开发表的公钥加密算法(RSA一开始是有专利的),一般用于密钥磋商,而RSA用于密钥交换。

摘要算法:

摘要算法比较简单,从设计的角度来看,所有的摘要算法都非常的相似,唯一的区别就是输出尺寸的不同。两种最流行的算法为MD5、SHA-1。由于MD5的输出长度只有128位,而且存在了相关的破解方法,所以一般在PKI中推荐使用SHA-1。

05-15
2009

也谈网银

IN:互联网   Tags: , ,    Comments:5

先给大家看一个关于网银与USB-KEY的科普教程:

http://apex.ncksoft.com/archives/tag/usb-key

写得还不错,看完后你对目前网银的安全模式应该有个大概的了解。

目前公认最安全的网银模式就是使用2代U-KEY,就是在普通的USB-KEY的基础上增加一个确认按钮和LCD显示屏,这样可以极大的确保每一笔交易是经过你的确认。目前工行已经推出了二代U-KEY。

这里解释下二代KEY出现的背景,由于我们平时使用的电脑是“不可信环境”(在病毒、木马泛滥的年代,大部分人的电脑都可以被被木马随意操作),所以我们不能相信自己的鼠标,比如我们点了下鼠标,做了一笔转帐交易,木马很可能帮你再点一次,这个时候就得在U-KEY上加一个确认按钮,防止木马偷偷做交易;我们也不能相信自己的眼睛,例如本来打算用1000块钱买个手机,结果木马把这个数字在发往U-KEY时改成了1W,而在屏幕上显示的仍然是1000,我们很无辜。这个时候你得在U-KEY上确认下我刚才是不是花了1000块去买那个手机。

U-KEY其实已经是一台完整的计算机了,根据冯·诺依曼原理,输入设备(LCD显示,按钮)、存储设备(16-32K)、运算器、控制器(智能卡CPU),而且U-KEY还有自己的操作系统COS(Card Operating System)。由于平台的特殊性我们可以假定不会有木马进入这个U-KEY,因为所有针对U-KEY的操作都要通过COS对外提供的接口来完成,而且不同厂家的COS一般是不同的。这个时候U-KEY是一个“可信环境”,所以我们可以确保在按下“确认”按钮的时候U-KEY一定是对LCD上显示的交易进行了签名,签名算法可以确保该签名后的数据无法被修改。

最近公司在做U-KEY,不过不是传统意义上的USB-KEY,所以得和SSL,openssl,CSP,PKI,X509等这些安全、加密、证书相关的东西打交道。

05-15
2009

说说网站密码的安全问题

IN:互联网   Tags: ,    Comments:5

今天和一同学谈到了网站密码安全问题,大家应该在上网的时候都使用统一的用户名和密码吧,至少我是这样的,我相信大多数的人都是这样的。对于大多数的网站用户的密码都是经过一种不可逆的算法加密的(例如MD5,目前很多的网站都是MD5加密用户的密码),这里有一个假设,这些网站都存储的是加密后的用户密码,而昨天我就在学校选毕业设计时看到办公的老师直接从SQL2000里直接查询出所有带毕设老师的用户ID以及“明文”的密码,那么我在这里的密码也不就“赤裸裸”的暴露在这些老师的眼里吗?

由此我们可以联想到还会有多少网站的密码是明文保存的呢?再假如有人有意做一个这样的陷阱网站(比如娱乐资源类),然后在后台中保存了所有用户的明文密码,那将会是一件多么可怕的事情!

所以定期更换密码是很有必要的,还有在大多数的小网站不要使用你比较重要的密码(或者用户名),还有一个我认为比较实用的方法,可以去一些MD5查询的网站检查一下你的密码是否已经在人家的数据库里,这里推荐一个站点

12位及12位以下数字、8位字母、全部7位及以下字母加数字等组合

我试了下10位的一个随机数,可以查到,11位的也可以查到,不过好像一个IP查询有限制,要收费了,呵呵。看来使用全数字的密码是很不安全的。赶快改吧!

贴个MD5的代码:
import hashlib
hashlib.md5(“11348231″).hexdigest()

04-02
2008
loading...