网络认证第十二讲作业

一.作业要求
测试邮件客户端软件(如Outlook、Foxmail等)是否支持key usage扩展
二.使用工具
OpenSSL,OutLook,FoxMail
三.实验过程

  1. 使用OpenSSL生成证书
    (1). 首先生成私钥pravate.pem
    在命令行中键入:genrsa -des3 -out private.pem 2048,使用RSA算法生成2048位私钥,并使用3DES算法来加密key。

    输入DES的加密密钥之后,生成private.pem文件

    (2). 生成带有扩展的证书
    实验要求测试邮件客户端是否支持key usage扩展,所以生成两个证书加以区分测试。cacert2.crt的key usage扩展为Digital Signature, Non-Repudiation, Key Encipherment (e0),证书可以用来加密和签名;cacert3.crt的key usage扩展为Digital Signature, Non-Repudiation,没有了加密功能,只能用来签名。
    在openssl.cnf文件中修改[v3_req]的keyUsage字段内容:
    cacert2.crt的配置 → keyusage= nonRepudiation, digitalSignature, keyEncipherment
    cacert3.crt的配置 → keyusage= nonRepudiation, digitalSignature

在命令行中键入:req -new -x509 -days 3650 -key private.pem -out cacert2.crt -config openssl.cnf -extensions v3_req,生成带有扩展的证书。同理,修改cnf配置文件后生成cacert3。

证书生成时要求输入证书信息,包括国家、组织名称、邮箱等,在此处输入的邮箱地址要与之后登陆测试的邮箱地址一致。
生成证书如下图所示,图左为cacert2.crt带有keyEncipherment加密功能的证书,图右为cacert3.crt不可用于加密的证书:

(3). 生成pfx文件
使用pkcs12将证书和对应的私钥信息进行打包,以口令保护私钥,生成pfx文件,以便将证书导入计算机的“个人”证书中,并在邮件客户端配置。
在命令行中键入:pkcs12 -export -out cacert2.pfx -inkey private.pem -in cacert2.crt

输入之前用于3DES算法用于加密私钥的密钥,验证通过后,再设置导出私钥的口令。分别生成cacert2.pfx和cacert3.pfx文件。

  1. 测试OutLook是否支持key usage扩展
    为了在OutLook中配置个人证书,首先要在浏览器中,将证书导入“个人”,并在“受信任的根证书颁发机构”中信任自己生成证书的颁发者。

    (1). keyusage= nonRepudiation, digitalSignature, keyEncipherment
    首先选择cacert2.crt(带有Key Encipherment可用于加密的证书)配置OutLook,该证书既可以用于签名也可以用于加密,如下图所示:

    然后发送加密签名测试邮件,收件人“xx的is”地址为“xxxxx@is.xx.xx”,事先已经在联系人中配置好该收件人的证书。在发送时选择加密和签署,如下图所示:


    收件人“xx的is”成功收到并打开该邮件,而且该邮件是被加密和签名过的,如下图所示:

    (2). keyusage= nonRepudiation, digitalSignature
    再从OutLook配置中更换证书,选择cacert3.crt(没有Key Encipherment不可用于加密的证书)。选择签名证书时,弹出了两个可选证书,其中包括cacert3.crt,该证书可用于签名。

    然而再选择加密证书,弹出选择证书中只有一个证书,无法选择cacert3.crt,可看出OutLook已经识别出来cacert3.crt不带有keyEncipherment的Key Usage扩展,所以无法用于加密。

    再尝试发送加密并签名的邮件,无法发送邮件,提示没有可用于加密的证书。

    尝试发送只签名不加密的邮件,可以发送成功。

四.实验结论
本次实验测试了OutLook客户端。
OutLook支持Key Usage扩展,当证书Key Usage扩展带有nonRepudiation, digitalSignature, keyEncipherment时,证书可以用于发送加密并签名的邮件,而不带keyEncipherment时,OutLook无法使用证书发送加密邮件。
FoxMail 7.2版本并不支持数字证书配置,更无从谈起是否支持Key Usage扩展了。但是该客户端拥有加密邮件的功能,保证了邮件机密性,却无法保证邮件的真实性完整性。可见OutLook在邮件安全方面做得比FoxMail全面并专业。

转载于:https://blog.51cto.com/13786619/2123916

双证书体系key usage扩展——Outlook使用证书发送加密签名邮件相关推荐

  1. 证书体系: CSR 解析

    原文同时发布于本人个人博客: https//kutank.com/blog/cert-csr/ 简介 CSR 全称 "证书签名请求"(Certificate Signing Req ...

  2. 使用Gpg4Win+Outlook Express实现发送和接收加密邮件

    一.Gpg4win3.0.3的安装和使用        1.软件简介 Gpg4win是一款Windows平台下基于RSA公钥密码体制,集密钥生成.存储.发布于一体的密钥管理和加解密软件.一共包含Gpg ...

  3. 国密SSL协议之双证书体系

    1 背景 国密SSL协议使用双证书体系.本文描述了国密双证书体系的组成和差别,并描述了在U盾里面的使用情况. 2 国密SSL双证书 国密SSL协议使用双证书体系,分别称为签名证书和加密证书,服务器和用 ...

  4. 如何用 openssl 生成RSA双密匙;签名证书;加密文件邮件

    网上已有好多关于openssl的帖子,但是基本上都很"实用",只讲如何创建证书来用于数据的加密,如何你只需要这些,那么可以去  "流浪的脚步"的博客 http: ...

  5. ETCD出现:certificate specifies an incompatible key usage 解决方案

    问题描述: 在安装etcd 3.3.22 版本的时候,需要启用证书认证,于是我按此教程:Generate self-signed certificates 来生成自签名证书,用于etcd 各节点间.e ...

  6. 双软认证是指哪两项证书认证

    一.双软认证是指哪两项证书认证: "双软认证":指软件产品等登记和软件企业认定:企业申请双软认证,除了获得软件企业和软件产品的认证资格外,也可以使企业享受国家对软件行业提供的税收优 ...

  7. Key usage extensions and extended key usage

    转载自IBM的一篇文章 http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.help.do ...

  8. linux 运行pfx文件,Linux下pfx证书导出key和crt

    Linux下.pfx证书导出.key和.crt 1.确定openssl路径: openssl version -a OpenSSL 1.0.1e-fips 11 Feb 2013 built on: ...

  9. OpenSSL生成.key、.crt、.pfx证书(Windows下)

    OpenSSL生成.key..crt..pfx证书(Windows下) 最近在对接招行一网通支付,让人意想不到的是,在系统中使用过一次一网通后,就得永远使用这个一网通账户支付,除非解绑一网通支付账户的 ...

  10. ds3617xs 华擎J3455 无线网卡m.2 E key接口扩展2个M.2 E key接口

    ds3617xs 华擎J3455 无线网卡m.2 E key接口扩展2个M.2 E key接口 不少用户在使用J3455时,期望能在主板上扩展出更多的接口用于安装硬盘或网卡.对于无线网卡m.2接口的扩 ...

最新文章

  1. 【评估价格】采购申请中的价格
  2. 异步编程的 async/await
  3. MATLAB数据分析3
  4. 小黑框如何连接mysql_珍藏版(cmd小黑框)数据库命令及操作
  5. java类的实现程序_java – 如何在另一个类中实现处理程序?
  6. Java 9 揭秘(9. 打破模块封装)
  7. javascript编辑器
  8. python断点_Python断点()
  9. python图像转字符画_Python3:图片转字符画
  10. 内核中自带的内存调试方法CONFIG_DEBUG_SLAB
  11. java程序包condition不存在,Ant javac:包x不存在,但我将x.jar添加到java构...
  12. 如何简单快速地调整图片大小
  13. C++实现DNS域名解析
  14. SNAP 4. 使用snap进行地物光谱分析
  15. 树莓派4+神经计算棒二代开发-环境搭建
  16. 推荐一个阅读代码、文档的利器:屏幕贴图工具
  17. 英文论文查重规则是什么?
  18. java即时通讯 开源_java开源即时通讯软件服务端openfire源码构建
  19. 30天自制操作系统——自写设计
  20. 一、Docker 容器

热门文章

  1. 【Tensorlayer系列】深度强化学习之DQN求解FrozenLake
  2. 【观点讨论与支撑】读书到底有没有用?
  3. scikit-learn 算法的通用形式
  4. 1*1的卷积核的作用
  5. 卡方分布、T分布和F分布
  6. 机器学习Scikit-Learn基本操作实战
  7. plsql去除字段中空格_Python3中strip()、lstrip()、rstrip()用法详解
  8. Spring集成quartz实现的定时任务调用
  9. 四川大学计算机应用基础第二次作业,四川大学川成教2017年秋季《计算机应用基础》第二次作业...
  10. 作业帮基于 Flink 的实时计算平台实践