SECURITY OVERALL

 

OTP

A programmable read-only memory (PROM) or fieldprogrammable read-only memory (FPROM) or one-time programmablenon-volatile memory (OTP NVM) is a form of digital memory where thesetting of each bit is locked by a fuse or antifuse. Theyare a type of ROM (read-only memory) meaning the data in them ispermanent and cannot be changed.

 

application 1: OTP regsiter and LOCK resgister 他们一同保护OTPregister不会给改写

 

 

managed code

 

托管代码(managed code)同受管制的代码,由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。

 

 

 

FIPS 140-2

 

FIPS: FederalInformationProcessing Standards

(美国)联邦信息处理标准

 

FIPS Publication 140-2是NIST所发布的针对密码模块的安全需求(Securityrequirements for cryptographic modules)。目前该标准的最新版本发表于2002年12月3日,其提供了密码模块评测、验证和最终认证的基础。

 

安全需求涵盖了密码模块安全设计和实现的相关领域,每个领域在特定的安全级别上开展评估。

这些领域包括:

密码模块的规格(cryptographicmodule specification);

密码模块端口和接口(cryptographicmodule ports and interfaces);

角色、服务和认证(roles,services, and authentication);

有限机模型(finitestate model);

物理安全(physicalsecurity);

操作环境(operationalenvironment);

密钥管理(cryptographickey management);

电磁干扰/电磁兼容性(electromagneticinterference/electromagnetic compatibility) (EMI/EMC);

自我测试(self-tests);

设计保障(designassurance);

其它攻击减缓(mitigationof other attacks)

 

RSA vs SHA

 

SHA是散列算法,RSA是非对称加密技术。前者用于验证integrity,后者用于加密和签名

 

对称和非对称加密

对称加密:DES,AES,TEA
非对称加密:DSA ,RSA (DSA 一般用于数字签名和认证;DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,只用于签名,它比RSA要快很多)

 

Digest

Message Digest
MessageDigest是一个数据的数字指纹.即对一个任意长度的数据进行计算,产生一个唯一指纹号.
MessageDigest的特性:
A) 两个不同的数据,难以生成相同的指纹号
B) 对于指定的指纹号,难以逆向计算出原始数据
代表:MD5/SHA
 

SHA

安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要(MessageDigest)。
该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。

SHA的特性:不可逆,无法还原原始信息;雪崩效应,输入信息的微小变化会导致SHA值差别巨大;很难找到不同输入信息却又相同SHA值的情况

SHA的用途:单向散列函数一般用于产生消息摘要,密钥加密等。常见的有:
l MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,128位数值。
l SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;
 

数字签名原理

数字签名就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。一般是发送方将消息摘要digest(注意:这里不是消息全部内容,而是利用hash函数生成的消息摘要)进行签名,接收方通过public key来校验签名以判别消息的合法来源,并还原出digest,并和重新计算的额digest进行比较,以判断信息的完整性
 

CA的缘由

因为发布个人的public key的过程也是一个需要信息保护的安全过程,所以引入了CA的概念,发送方和接收方都默认信任CA。
解释:如果本地存储的别人的公钥被替换,那么你就无法判断信息来源是否真实,因为你都不能确定本地保存的公钥是否合法?所以大家找到共同信任的机构CA(Certificate Authority),由CA用自己的私钥,对发送方的公钥和相关信息加密,生成了“数字证书”(Digital Certificate),这样,发送方再发送信息时,除了携带签名,再附上CA颁发的数字证书就可以了

总结下,发送发向CA发送申请数字证书请求,并要求接收方向CA请求和安装CA的数字证书(根证书),之后接收方解开发送发信息中携带的数字证书中的public key验证发送发的数字签名。SR:接收方要事先安装CA的数字证书,并用此来验证发送方在信息中携带的数字证书的合法性,然后解开它得到发送方真正的公钥。

SR认为:
这样便解决了两个问题:
1. 无需担心发送方的公钥在本地存储不安全的问题,因为不在本地保存
2. 由信任的CA来发送公钥,解决了分发公钥的安全信任问题
依然无法解决CA数字证书在本地安装和保存的安全性问题,当然这不是数字证书要解决的焦点

参考:http://netsecurity.51cto.com/art/201108/287971.htm

 

DSA的概述

DSA数字签名,非对称加密的另一种实现。
DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签 名。如果数据和签名不匹配则认为验证失败!数字签名的作用就是校验数据在传输过程中不被修改。数字签名,是单向加密的升级!

DSA举例 openssl
生成一个密钥(私钥)
 [root@hunterfu ~]# openssl dsaparam -out dsaparam.pem 1024
 [root@hunterfu ~]# openssl gendsa -out privkey.pem dsaparam.pem
生成公钥
[root@hunterfu ~]# openssl dsa -in privkey.pem -out pubkey.pem -pubout     
[root@hunterfu ~]# rm -fr dsaparam.pem
使用私钥签名
[root@hunterfu ~]# echo -n "123456" | openssl dgst -dss1 -sign privkey.pem > sign.result
使用公钥验证
[root@hunterfu ~]# echo -n "123456"  | openssl dgst -dss1 -verify pubkey.pem -signature sign.result

RSA概述

1. RSA,这个巨NB算法的实现方式,使其既可以用于签名也可以用于加密(密钥交换)。除了将公钥与密钥的地位交换一下之外,其它步骤几乎是完全一样的。发送方用自己的私钥对消息的摘要值进行“加密”,接收方使用发送方的公钥进摘要值进行“解密”,并将其与根据消息独立计算出的摘要值进行比较进行验证。如果匹配,则签名就是有效的。相比加密,RSA签名比较难懂的是分组格式化,我们常说RSA是对摘要值进行加密,其实并不一定对,在加密之会使用一个DER编码的DigestInfo结构(该结构包括HASH算法标识符+摘要值),是对这个DigestInfo结构进行加密。所有导致一般使用RSA(1204位)私钥进行加密的话,最多只能加密117字节数据,而不是128字节(1024位)。

这样做的目的,是用来防止攻击。假设某个HASH算法(H1)遭受灾难性破坏,有可能产生消息摘要为定值的随机消息(BTW:HASH算法也不能证明完全没有问题,只是在给定时间你产生不了相同的冲撞就认为是安全的,L)。攻击过程:

1)使用另一种不同的算法H2对消息M进行签名

2)攻击者可以使用H1(M’)=H2(M)的特性产生一个新的消息M’。

将我们的签名附加于他新产生的消息M’上(标注用已攻破的散列算法H1进行),该签名仍然被验证。

RSA举例 openssl
适用OPENSSL 适用RSA 的命令如下:
生成一个密钥(私钥)
[root@hunterfu ~]# openssl genrsa -out private.key 1024
注意: 需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密,后面的1024是生成
密钥的长度.
通过密钥文件private.key 提取公钥
[root@hunterfu ~]# openssl rsa -in private.key -pubout -out pub.key
使用公钥加密信息
[root@hunterfu ~]# echo -n "123456" | openssl rsautl -encrypt -inkey pub.key -pubin >encode.result
使用私钥解密信息
[root@hunterfu ~]#cat encode.result | openssl rsautl -decrypt  -inkey private.key
      123456

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值