电脑技术学习

Solaris Cryptographic Framework密码体系

dn001
自称Solaris系统管理员的,应了解一下Solaris 密码体系:

Solaris OS Cryptographic Framework(SCF)密码体系以无缝透明的形式对用户提供应用和内核模块的加密服务,用户应用很少察觉到,并且很少受到干扰,其中包括命令、用户程序编程接口、内核编程接口,和其优化加密算法的程序,包括:

AES - Advanced Encryption Standard高级加密标准, 是美国联邦政府标准,是指定的标准密码系统,未来将在政府和银行业用户使用,因为它的执行速度很快,十分适合于现代需求(如智能卡),而且能够使用的密钥大小范围很广。

ARC4 - the public implementation of RC4

Blowfish - Bruce SchneIEr于1995年发表,最大448位可变长密钥。

DES - Data Encryption Standard, 在 1977 年被美国政府正式采纳,是全世界最广泛使用的加密算法。除政府以外,银行业是加密的最大用户,主要问题是其密钥长度很短,密钥实际上有 64 位,但密钥有 8 位是奇偶校验位,DES 密钥实际只有 56 位在起作用,完全不适合于当今的形势,它已由AES高级加密标准算法代替了。

3DES - 即三重 DES,只是以某种特殊的顺序使用2个密钥执行三次 DES,也可以使用三个单独密钥。

DH - Diffie-Hellman密钥协议,由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想,允许两名用户在公开媒体上交换信息以生成"一致"的,可以共享的密钥

DSA - Digital Signature Algorithm is a United States Federal Government standard for digital signatures,所谓数字签名就是信息发送者用其私钥对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,以保证发信人无法抵赖曾发过该信息(即不可抵赖性),同时也确保信息报文在经签名后末被篡改(即完整性)。当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。

HMac - Keyed-hash message authentication code,MAC有几种工作方式。第一种方式是在计算摘要之前,将秘钥并置到数据末尾。如果没有秘钥,则无法确认数据未经改动。另一种计算更复杂的方式是照常计算散列,然后再使用对称算法(如 DES)加密散列。要认证散列,必须首先对它解密。 HMAC is a type of MAC calculated using a cryptographic hash function in combination with a secret key。

MAC - Message Authentication Code 消息认证代码,使用一个密钥生成一个固定大小的小数据块,并加入到消息中。该密钥可以用于认证可疑数据,确保加密位流在传输中免遭恶意修改。

MD5 - Message-Digest Algorithm由麻省理工学院为开发的用于数字签名的信息-摘要算法,做Message的Hash变换,将任意长度的Message变换成一个128位的大整数,并且它是一个不可逆的字符串变换算法,MD5的典型应用是对一段Message产生数字指纹,以防止被篡改,即数字签名应用。2004年8月17日的美国国际密码学会议,山东大学王小云教授成功破解MD5算法的报告,发现可以很快的找到MD5的碰撞,即两个文件可以产生相同的指纹。

PKCS - Public-Key Cryptography Standards是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。PKCS已经公布了PKCS#1到PKCS#15。

PKCS#5 - 基于口令的加密标准,是一种利用从口令派生出来的安全密钥加密字符串的方法。使用MD5 从口令中派生密钥,并采用DES-CBC模式加密。主要用于加密从一个计算机传送到另一个计算机的私人密钥,不能用于加密消息。

PKCS#11 - 定义了一套独立于技术的程序设计接口,用于智能卡和PCMCIA卡之类的加密设备。

RSA- 美国麻省理工学院3个研究人员开发,是最有名的公钥算法,也是第一个能同时用于加密和数字签名的算法,出口受限。RSA 背后的一般思想将两个大素数相乘十分容易,但是想分解它们的乘积却极端困难,因此可以将乘积公开作为加密密钥。在 1999 年,用了7个月时间完成了对特定 RSA 512 位数(称为 RSA-155)的因式分解。由于进行的都是大数计算,使得RSA最快的情况也比DES慢。

RC4 – RSA公司的算法,应用于电子邮件系统,如Lotus Notes等。

SHA-1- 安全散列算法(SHA)是由美国国家标准和技术协会(National Institute of Standards and Technology)开发的,1994年发布了原始算法的修订版,称为 SHA-1。与 MD5 相比,SHA-1 生成 160 位的消息摘要,虽然执行更慢,却被认为更安全。明文消息的最大长度可达到 264 位。

显示Solaris中的算法:
# cryptoadm list

user-level providers:
Provider: /usr/lib/security/$ISA/pkcs11_kernel.so
Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so

kernel software providers:
des
aes
arcfour
blowfish
sha1
md5
rsa
swrand
...


# cryptoadm list -m

user-level providers:
=====================
Provider: /usr/lib/security/$ISA/pkcs11_kernel.so
no slots presented.
Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so
Mechanisms:
CKM_DES_CBC
CKM_DES_KEY_GEN
...
kernel software providers:
==========================
des: CKM_DES_ECB,CKM_DES_CBC,CKM_DES3_ECB,CKM_DES3_CBC
aes: CKM_AES_ECB,CKM_AES_CBC
arcfour: CKM_RC4
blowfish: CKM_BF_ECB,CKM_BF_CBC
sha1: CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL
md5: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL
rsa: CKM_RSA_PKCS,CKM_RSA_X_509,CKM_MD5_RSA_PKCS,CKM_SHA1_RSA_PKCS
swrand: No mechanisms presented.

# mac -l
Algorithm Keysize: Min Max (bits)
------------------------------------------
des_mac 64 64
sha1_hmac 8 512
md5_hmac 8 512

# encrypt -l
Algorithm Keysize: Min Max (bits)
------------------------------------------
aes 128 128
arcfour 8 128
des 64 64
3des 192 192

使用方法丰富多彩,如用DES加密的方法,做文件系统备份和恢复:

# ufsdump 0f - /var | encrypt -a des -k /etc/mykeys/backup.k | dd of=/dev/rmt/0

# decrypt -a des -k /etc/mykeys/backup -i /dev/rmt/0 | ufsrestore vf -

标签: