有关椭圆曲线加密套件的测试说明.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有关椭圆曲线加密套件的测试说明

有关椭圆曲线加密套件的测试说明 OPENSSL的底层加密套件要被协议层客户端和服务端加载使用的话,要满足两个条件。首先,服务端和客户端都得支持这一加密套件,其次便是我们所用的证书也得支持客户端和服务端加载使用的加密套件。 一、首先,我们先谈谈加密套件。对于一个完整的椭圆曲线加密套件,它的定义在OpenSSL/SSL/s3_lib.c中 /* Cipher C004 */ { 1, TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA, SSL_kECDHe, SSL_aECDH, SSL_AES128, SSL_SHA1, SSL_TLSV1, SSL_NOT_EXP | SSL_HIGH | SSL_FIPS, SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF, 128, 128, }, 其中1表示是合法的加密套件; TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA为加密套件的名字, TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 为 加密套件 ID , SSL_kECDHe指密钥交换采用ECDHE算法,SSL_aECDH指认证采用ECDH算法, SSL_AES128指对称加密算法采用AES128, SSL_SHA1指摘要采用SHA1, SSL_TLSV1指采用TLS协议第1版本 SSL_NOT_EXP | SSL_HIGH | SSL_FIPS 表明了算法的强度,那么在以后的开发中,我们就可以仿照该加密套件创建自己的加密套件。 加密套件的名字和ID的定义在OpenSSL/SSL/ssl3.h以及openssl/SSL/tls1.h中定义,服务端程序中通过 SSL_CTX_set_cipher_list(ctx,ECDH-ECDSA-AES128-SHA) 这个函数就可以很轻松的选择一个我们需要的加密套件来进行客户端和服务端的交互,然而我们应该注意到 SSL_CTX_set_cipher_list()这个函数的参数是ECDH-ECDSA-AES128-SHA,而非上面我们说的加密套件的名字和ID,而在openssl/doc/ciphers.pod文件中,它把这个参数ECDH-ECDSA-AES128-SHA和加密套件的名字相对应起来。 说完了加密套件的名字和ID的定义,我们再来说说SSL_kECDHe,SSL_aECDH, SSL_AES128,SSL_SHA1,SSL_TLSV1等这些标识的定义,在openssl/SSL/ssl_loal.h 中,openssl对这些标识进行了定义。那么这些简单的标识是如何实现从EVP层调用加密算法的呢? 在目录openssl/SSL/SSL_cipher.c中,通过ssl_cipher_methods这个变量,可以放置EVP_CIPHER*以及EVP_MD* 类型算法,当我们添加一个加密套件时,需要将所添加的算法类型注册到文件中。ssl_cipher_methods这个变量在首次使用ssl算法库时加载,在函数ssl_load_ciphers中,可通过该变量中的EVP_get_digestbyname(SN_sha1)来加载SHA算法。 二、其次,我们来谈谈证书的生成。 对于ECC加密套件证书的生成,我们先生自签名的CA证书,然后生成服务端证书,最后用CA证书对服务端证书进行签名。 1.建立CA目录结构 mkdir -p ./demoCA/{private,cacaerts} touch ./demoCA/index.txt touch ./demoCA/serial 在serial文件中写入01,index.txt文件为空白 2.生成CA根证书前,要先生成ec密钥对 (1)生成ec曲线参数 openssl genpkey -genparam -algorithm EC -out cashu.pem -pkeyopt ec_paramgen_curve:secp384r1 (2)用生成的曲线参数生成ec密钥对 openssl genpkey?-paramfile?cashu.pem?-out?cakey.pem (3)利用生成的ec密钥对生成自签名CA证书 openssl req -new -x509 -key cakey

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档