??xml version="1.0" encoding="utf-8" standalone="yes"?>天天综合精品,精品精品国产毛片在线看,麻豆电影在线播放http://www.aygfsteel.com/alancxx/category/47608.html------单就是美zh-cnFri, 27 May 2011 20:38:27 GMTFri, 27 May 2011 20:38:27 GMT60Fedora Core 4下的GPG加密解密及文件完整性验?/title><link>http://www.aygfsteel.com/alancxx/articles/348896.html</link><dc:creator>蜂鸟</dc:creator><author>蜂鸟</author><pubDate>Sat, 23 Apr 2011 15:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/alancxx/articles/348896.html</guid><wfw:comment>http://www.aygfsteel.com/alancxx/comments/348896.html</wfw:comment><comments>http://www.aygfsteel.com/alancxx/articles/348896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/alancxx/comments/commentRss/348896.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/alancxx/services/trackbacks/348896.html</trackback:ping><description><![CDATA[<table style="table-layout: fixed"> <tr> <td> <div id="wmqeeuq" class="cnt" id="blog_text">准备知识:<br /> 对称加密:<br /> 发送方: 010111 XOR 101100 = 111011   (101100为加密密?<br /> 接收? 111011 XOR 101100 = 010111<br /> 公钥加密:<br /> 发送方产生两把密钥:公钥(Public Key)&U钥(Private Key),也就是密钥对(Key Pair)<br /> 明文->公钥加密->密文->U钥解密->明文<br /> 数字{֐:<br /> ....<br /> <br /> <br /> -----------------------------发送方的操?------------------------------------<br /> sh# mkdir ~/.gnupg   //默认是把密钥对存在此目录<br /> sh# gpg --gen-key //生成公钥pubring.gpg,U钥secring.gpg,邮箱是很重要?br /> sh# gpg --list-keys //查看所有密?如果生成了多个密钥对的话有多个?br /> sh# gpg --list-public-key //查看所有公?注意pub后面?号字W串,pub xxxxx/******** 2007-07-10,它就是以下可能用到的KEYID<br /> sh# gpg --list-secret-key //查看所有密?br /> sh# gpg --list-sig //查看所有签?br /> sh# gpg --export-secret-keys -a -o secring.asc //导出U钥,作ؓ备䆾<br /> sh# gpg -a --export zjstandup@126.com >test.gpg //导出公钥,邮箱名是W一步填?对应于zjstandup@126.com的公匙信息就保存Ctest.gpg文g?此文件可以由邮箱发送或上传臛_钥服务器供别Z?如subkeys.pgp.net),有点像BTU子,哈哈<br /> <br /> /**此处演C怎么把公钥上传至公钥服务器上,可以直接ȝ站上?也可以像以下q样用命令上?br /> sh# gpg --send-keys KEYID //KEYID用以上那个代?默认好像是传Csubkeys.pgp.net,文g名就不是test.gpg?q些公钥服务器好像是全球同步更新!厉害?<br /> <br /> **/<br /> <br /> <br /> sh# gedit test.txt //生成一个文?里面输入点东?用于以下试<br /> <br /> 演CZU验证方式和一个数字签?br /> 一U是公钥验证,大概是用于验证文件完整?相当?sh#md5sum ***;<br /> 另一U是U钥验证,控制只让那些知道密码的h能打开?br /> <br /> sh# gpg --clearsign test.txt //使用U匙Ҏ据进行签?生成test.txt.asc,打开此文件还是可以看到内容的,只是多了一些东?把这个发l其他h,q个演示公钥验证<br /> sh# gpg --output test.txt.gpg -r zjstandup@126.com -as --encrypt test.txt //导入U钥,数据被加密成了test.txt.gpg,打开此文件看不到原信息的,把这个发l对?q个演示U钥验证<br /> sh# gpg --output test.sig --sign test.txt //q个演示数字{֐<br /> <br /> <br /> <br /> ---------------------------接收方的操作------------------------------------------<br /> /**下蝲公钥,由邮件接收或者从服务器上下蝲,此处演示从服务器下蝲<br /> sh# gpg --search-keys zjstandup@126.com //搜烦公钥,启动了全球搜?!然后填入1׃?<br /> <br /> **/<br /> sh# gpg --import test.gpg //导入公钥x?test.gpg由发送方邮g传输q来或从公钥服务器下载过来的<br /> <br /> /**以下一D不太清?好像是防止公钥被改,验证公钥的完整?br /> sh# gpg --fingerprint zjstandup@126.com //指纹取样,防伪造的公钥,执行后可以看到密钥指U?可以通过其他通讯方式咨询Ҏ,是否是这个公?应该是上方让大家注意的pub后面的字W串)<br /> sh# gpg --sign-key zjstandup@126.com<br /> sh# gpg --check-sigs zjstandup@126.com<br /> sh# gpg --edit-key zjstandup@126.com<br /> sh# trust<br /> sh# quit<br /> **/<br /> <br /> 1:公钥验证<br /> sh# gpg --verify test.txt.asc //有信息表明是完整的{֭,假如改变了这个文仉面的信息再执行此命o,出C同的l果? <br /> <br /> 2:U钥验证<br /> sh# gpg --decrypt test.txt.gpg > zjstandup.txt //执行,要输入正的密码(在发送端生成密钥Ҏ的那?才能生成txt<br /> <br /> 3;数字{֐<br /> sh# gpg --output sig.txt --decrypt test.sig //显C完整的{֭q还原内容生成sig.txt<br /> <br /> <br /> sh# gpg --help >> manule.txt<br /> sh# gedit manule.txt<br /> <br /> //看C下说?br /> gpg (GnuPG) 1.4.1<br /> Copyright (C) 2005 Free Software Foundation, Inc.<br /> This program comes with ABSOLUTELY NO WARRANTY.<br /> This is free software, and you are welcome to redistribute it<br /> under certain conditions. See the file COPYING for details.<br /> <br /> Home: ~/.gnupg<br /> 支持的算法:<br /> 公钥QRSA, RSA-E, RSA-S, ELG-E, DSA<br /> 对称加密Q?DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH<br /> 散列QMD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512<br /> 压羃Q不压羃, ZIP, ZLIB, BZIP2<br /> <br /> 语法Qgpg [选项] [文g名]<br /> {֭、检查、加密或解密<br /> 默认的操作依输入数据而定<br /> <br /> 指oQ?br /> <br /> -s, --sign [文g名]           生成一份签?br />      --clearsign [文g名]      生成一份明文签?br /> -b, --detach-sign             生成一份分ȝ{֭<br /> -e, --encrypt                 加密数据<br /> -c, --symmetric               仅用对U加?br /> -d, --decrypt                 解密数据(默认)<br />      --verify                  验证{֭<br />      --list-keys               列出密钥<br />      --list-sigs               列出密钥和签?br />      --check-sigs              列出q检查密钥签?br />      --fingerprint             列出密钥和指U?br /> -K, --list-secret-keys        列出U钥<br />      --gen-key                 生成一副新的密钥对<br />      --delete-keys             从公钥钥匙环里删除密?br />      --delete-secret-keys      从私钥钥匙环里删除密?br />      --sign-key                为某把密钥添加签?br />      --lsign-key               为某把密钥添加本地签?br />      --edit-key                ~辑某把密钥或ؓ其添加签?br />      --gen-revoke              生成一份吊销证书<br />      --export                  导出密钥<br />      --send-keys               把密钥导出到某个公钥服务器上<br />      --recv-keys               从公钥服务器上导入密?br />      --search-keys             在公钥服务器上搜d?br />      --refresh-keys            从公钥服务器更新所有的本地密钥<br />      --import                  导入/合ƈ密钥<br />      --card-status             打印卡状?br />      --card-edit               更改卡上的数?br />      --change-pin              更改卡的 PIN<br />      --update-trustdb          更新信Q度数据库<br />      --print-md 法 [文g]    使用指定的散列算法打印报文散列?br /> <br /> 选项Q?br /> <br /> -a, --armor                   输出l?ASCII 装<br /> -r, --recipient 某甲          为收件?#8220;某甲”加密<br /> -u, --local-user              使用q个用户标识来签字或解密<br /> -z N                          讑֮压羃{?N (0 表示不压~?<br />      --textmode                使用标准的文本模?br /> -o, --output                  指定输出文g<br /> -v, --verbose                 详细模式<br /> -n, --dry-run                 不做M改变<br /> -i, --interactive             覆盖前先询问<br />      --openpgp                 行ؓ严格遵@ OpenPGP 定义<br />      --pgp2                    生成?PGP 2.x 兼容的报?br /> <br /> (请参考在U说明以获得所有命令和选项的完整清?<br /> <br /> 范例Q?br /> <br /> -se -r Bob [文g名]          ?Bob q个收g人签字及加密<br /> --clearsign [文g名]         做出明文{֭<br /> --detach-sign [文g名]       做出分离式签?br /> --list-keys [某甲]           昄密钥<br /> --fingerprint [某甲]         昄指纹<br /> <br /> 请向 <gnupg-bugs@gnu.org> 报告E序~陷?br /> 请向 <zuxyhere@eastday.com> 反映体中文翻译的问题?/div> </td> </tr> </table><img src ="http://www.aygfsteel.com/alancxx/aggbug/348896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/alancxx/" target="_blank">蜂鸟</a> 2011-04-23 23:02 <a href="http://www.aygfsteel.com/alancxx/articles/348896.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GPG(pgp)加解密详q?/title><link>http://www.aygfsteel.com/alancxx/articles/348895.html</link><dc:creator>蜂鸟</dc:creator><author>蜂鸟</author><pubDate>Sat, 23 Apr 2011 14:55:00 GMT</pubDate><guid>http://www.aygfsteel.com/alancxx/articles/348895.html</guid><wfw:comment>http://www.aygfsteel.com/alancxx/comments/348895.html</wfw:comment><comments>http://www.aygfsteel.com/alancxx/articles/348895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/alancxx/comments/commentRss/348895.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/alancxx/services/trackbacks/348895.html</trackback:ping><description><![CDATA[<h2><span style="color: #3366ff">一、介l?/span></h2> <p>我们都知道,互联|是不安全的Q但其上所使用的大部分应用Q如Web、Email{一般都只提供明文传输方式(用https、smtps{例外)。所以,当我们需要传输重要文件时Q应该对当中的信息加密。非对称密码pȝ是其中一U常见的加密手段。而在ZPGP方式加密的中文介l少之又,所以萌生了写一个完整教E的xQ当然本文部分资料是我搜遍网l整理出来的Qƈ不能保证癑ֈ之百的原?</p> <p></p> <blockquote> <p>GnuPG 是一个用来进行非对称加密(PGP)的免费YӞUGPGQ是不是有的童鞋已经被PGP和GPGl搞昏了Q。先说说什么是非对U加密。传l的加密手段往往是用同一个密码进行加密和解密。例如你加密时用的密码是“abc”Q?则解密时也要使用“abc”才行。这样就存在一个问题,你不能够把一D加密信息发送给你的朋友。试惻I如果采用q种加密方式把信息发送给你的朋友Ӟ你的 朋友必须要知道你的密码才能把你的信息解密出来。但你如何保证你的朋友是l对可靠的呢Q也是_如果你的朋友把你的密码告诉了别hQ你的密码就不再安全 了?br /> 非对U加密采用的是另一U思想。它会给你生两个密钥,一个称?#8220;公钥”Q另一个称?#8220;U钥”。公钥是可以公开的,你尽把它传l别 人;U钥你一定要保管好不让其他Q何h知道。当某h得到你的公钥后,他就可以l你发送加密信息了。具体来_他把他要发给你的信息用你的公钥加密后发给 你,加密的信息只能用你的U钥去解密。这P因ؓ世界上除了你以外没有别h知道你的U钥Q所以即使别人看到发送给你的加密信息他也无法解密Q甚臌发送?本h也不行。因Z不知道你的私钥。简单说来,是用公钥去加密Q用对应的私钥去解密。想l谁发送加密信息,首先要得C的公钥?br /> 支持?对称加密的Y件有多种Q最著名的可能是国的PGP了,不过它是个商业YӞh不便宜。对于加密YӞ我反对用破解YӞ因ؓ如果信息需要加密的话, 肯定是非帔R要的信息Q破解Y件无法保证加密的安全可靠。因此我使用免费开源的GnuPG软gq行信息的加密和解密?/p> </blockquote> <h2><span style="color: #3366ff">二、?</span></h2> <p><span style="color: #ff6600"><strong>1.生成密钥?/strong></span><br /> 要用GnuPG加密Q首先需要创建密钥对Q执行:</p> <div id="wmqeeuq" class="quote"> <blockquote> <div id="wmqeeuq" class="quote-content"># gpg –gen-key<br /> gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.<br /> This program comes with ABSOLUTELY NO WARRANTY.<br /> This is free software, and you are welcome to redistribute it<br /> under certain conditions. See the file COPYING for details. <p> </p> <p>请选择您要使用的密钥种c:<br /> (1) DSA ?ElGamal (默认)<br /> (2) DSA (仅用于签?<br /> (5) RSA (仅用于签?<br /> 您的选择Q?1  <span style="color: #ff0000">←只有1可以用于加密Q其他种cd能用于签?/span><br /> DSA 密钥对会?1024 位?br /> ELG-E 密钥长度应在 1024 位与 4096 位之间?br /> 您想要用多大的密钥尺寸?(2048)  <span style="color: #ff0000">←选择密码的位敎ͼ位数大Q越安全Q但速度慢</span><br /> 您所要求的密钥尺寸是 2048 ?br /> 误定这把密钥的有效期限?br /> 0 = 密钥怸q期<br /> <n>  = 密钥?n 天后q期<br /> <n>w = 密钥?n 周后q期<br /> <n>m = 密钥?n 月后q期<br /> <n>y = 密钥?n q后q期<br /> 密钥的有效期限是Q?0) 0  <span style="color: #ff0000">←Ҏ实际情况选择密钥期限</span><br /> 密钥永远不会q期<br /> 以上正确吗?(y/n)y  <span style="color: #ff0000">←认</span></p> <p>您需要一个用h识来辨识您的密钥Q本软g会用真实姓名、注释和电子邮g地址l合<br /> 成用h识,如下所C:<br /> “Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>”</p> <p>真实姓名QHyphen Wang  <span style="color: #ff0000">←请填入真实姓名,后面会用?/span><br /> 电子邮g地址Qgpgencrypt@linuxfly.org  <span style="color: #ff0000">←邮g作ؓ标记之一Q不能重?/span><br /> 注释QUse for GPG Encrypt  <span style="color: #ff0000">←仅是注释而已</span><br /> 您选定了这个用h识:<br /> “Hyphen Wang (Use for GPG Encrypt) <gpgencrypt@linuxfly.org>”</p> <p>更改姓名(N)、注?C)、电子邮件地址(E)或确?O)/退?Q)QO  <span style="color: #ff0000">←输入“O”认</span><br /> 您需要一个密码来保护您的U钥?nbsp; <span style="color: #ff0000">←输入两次用于讉KU钥的密码,紧记Q不能公开或丢?/span></p> <p>我们需要生成大量的随机字节。这个时候您可以多做些琐?像是敲打键盘、移?br /> 鼠标、读写硬盘之cȝ)Q这会让随机数字发生器有更好的机会获得够的熉|?br /> ++++++++++…++++++++++..++++++++</p> <p>随机字节不够多。请再做一些其他的琐事Q以使操作系l能搜集到更多的熉|Q?br /> (q需?74字节)  <span style="color: #ff0000">←q行一些的E序Q以便在内存中获得更多随机数</span><br /> 我们需要生成大量的随机字节。这个时候您可以多做些琐?像是敲打键盘、移?br /> 鼠标、读写硬盘之cȝ)Q这会让随机数字发生器有更好的机会获得够的熉|?br /> +++++++++++++++++++++++++.+++++.+++++.++++++++++.+++<+++++..+++++^^^<br /> gpg: 密钥 <strong><span style="color: #dc143c">A3942296</span></strong> 被标Cؓl对信Q  <span style="color: #ff0000">←密钥ID</span><br /> 公钥和私钥已l生成ƈl签名?/p> <p>gpg: 正在查信d数据?br /> gpg: 需?3 份勉Zd 1 份完全信任,PGP 信Q模型<br /> gpg: 深度Q? 有效性:  2 已签名:  0 信Q度:0-Q?qQ?nQ?mQ?fQ?u<br /> pub   1024D/A3942296 2008-12-19<br /> 密钥指纹 = E95E 1F77 6C4E 33BD 740C  19AB EEF9 A67E A394 2296<br /> uid                  Hyphen Wang (Use for GPG Encrypt) <gpgencrypt@linuxfly.org><br /> sub   2048g/911E677B 2008-12-19</p> </div> </blockquote> <div id="wmqeeuq" class="quote-content"><span style="color: #ff6600"><strong>2.密钥的回?/strong></span></div> <div id="wmqeeuq" class="quote-content">当您的密钥对生成之后Q您应该立即做一个公钥回收证书,如果您忘C您的U钥的口令或者您的私钥丢失或者被盗窃Q您可以发布q个证书来声明以前的公钥不再有效。生成回收证书的选项?#8221;–gen-revoke”?/div> <div id="wmqeeuq" class="quote-content"> <blockquote> <p>gpg –output revoke.asc –gen-revoke <span style="color: #3366ff">mykeyID</span></p> </blockquote> <p>其中mykey 参数是可以表C的密钥标识Q生的回收证书攑֜revoke.asc文g里,一旦回收证书被发放Q以前的证书׃能再被其他用戯问,因此以前的公钥也失效了?/p> <p><span style="color: #ff00ff">PS:如果一旦决定撤销已经上传的公钥,需要将该密钥的回收证书上传臛_钥服务器完成回收工作?/span></p> <p><strong></strong></p> <blockquote> <p>gpg –keyserver <span style="color: #3366ff">Server Address</span> –send-keys <span style="color: #3366ff">mykeyID</span></p> </blockquote> <p><strong><span style="color: #ff6600">3.密钥的上?/span></strong></p> <p>当上q工作完成以后,Z让尽可能多的取您的公钥,您可以将公钥邮寄出去Q或者脓在自q个h主页上,当然q有一U更好的Ҏ是上传到全球性的密钥服务器,其他用户可以通过您提供的公钥ID来搜索ƈ获得您的公钥?/p> <p>通过如下命o可以你的key发布到服务器上:</p> </div> <blockquote> <div id="wmqeeuq" class="quote-content">gpg –keyserver <span style="color: #3366ff">Server Address</span> –send-keys <span style="color: #3366ff">mykeyID</span></div> </blockquote> <div><span style="color: #ff00ff">PS:当然您也可以定义默认的服务器key serverQ一般安装好后的默认key server都是subkeys.pgp.net。你也可以通过修改.gnupg/gpg.conf中的keyserver信息来改变你的key server?/span></div> </div> <div><strong><span style="color: #ff6600">4.密钥的导出/导入</span></strong></div> <div><strong><span style="color: #ff6600"><br /> </span></strong></div> <div>我们通常需要导出公钥和U钥保存hQ当然公钥是可以满世界的泼洒Q但是私钥请务必保存好,否则你的密钥对将会永久性的失去威力?/div> <ul> <li>公钥的导出: </li> </ul> <div> <blockquote> <p>gpg -o <span style="color: #3366ff">keyfilename</span> –export <span style="color: #3366ff">mykeyID</span></p> <p>如果没有mykeyID则是备䆾所有的公钥Q?span style="color: #ff0000">-o</span>表示输出到文件keyfilename中,如果加上<span style="color: #ff0000">-a</span>的参数则输出文本格式( ASCII )的信息,否则输出的是二进制格式信息?/p> </blockquote> <ul> <li>U钥的导出: </li> </ul> <blockquote> <p>gpg -o <span style="color: #3366ff">keyfilename </span>–export-secret-keys <span style="color: #3366ff">mykeyID</span></p> <p>如果没有mykeyID则是备䆾所有的U钥Q?span style="color: #ff0000">-o</span>表示输出到文件keyfilename中,如果加上<span style="color: #ff0000">-a</span>的参数则输出文本格式的信息,否则输出的是二进制格式信息?/p> </blockquote> <ul> <li>密钥的导入: </li> </ul> <blockquote> <p>gpg –import <span style="color: #3366ff">filename</span></p> </blockquote> <p><span style="color: #ff00ff">PS:用户可以使用gpg –list-keys命o查看是否成功导入了密钥?/span><br /> <strong></strong></p> <p><strong><span style="color: #ff6600">5.加密解密和数字签?/span></strong></p> <p>通过上述的密钥生成以及公钥分发后Q加密和解密数据变得非常ҎQ用户可以通过使用该功能来辑ֈ安全地在|络上传输自q隐密数据的目的?/p> <p>如果用户patterson要给用户liyang发送一个加密文Ӟ则他可以使用liyang的公钥加密这个文Ӟq且q个文g也只有liyang使用自己的密钥才可以解密查看。下面给出加解密的步骤:</p> <ul> <li>用户patterson使用liyang的公钥加密文件testQ用下面的指oQ?</li> </ul> <blockquote> <p># gpg -e test</p> <p>You did not specify a user ID. (you may use “-r”)</p> <p>Enter the user ID. End with an empty line: liyang</p> <p>Added 1024g/C50E455A 2006-01-02 “liyang (hello) < liyang@sina.com>”</p> </blockquote> <p>q样Q就可以gpg.conf文g加密成test.gpgQ一般用h无法阅读?/p> <p><span style="color: #ff00ff">PS:当然你也可以直接指定使用哪个用户的公钥进行加?</span></p> <blockquote> <p>gpg -e -r liyang test  (-r 表示指定用户)</p> <p>q可以加上参?-a 来输出ASCII~码的文件test.asc(test.gpg是二q制~码的,不可用文本读)</p> <p>gpg -ea -r liyang test</p> </blockquote> <ul> <li>用户liyang 使用自己的私钥来解密该文Ӟ如下所C: </li> </ul> <blockquote> <p># gpg -d test.gpg</p> <p>You need a passphrase to unlock the secret key for</p> <p>user: “liyang (hello) < liyang@sina.com>”</p> <p>1024-bit ELG-E key, ID C50E455A, created 2006-01-02 (main key ID 378D11AF)</p> <p>GnuPG提示用户Q需要输入生成私钥用的密码Q?/p> <p>Enter passphrase:</p> <p>gpg: encrypted with 1024-bit ELG-E key, ID C50E455A, created 2006-01-02</p> <p>“liyang (hello) < liyang@sina.com>”</p> <p>PS:无论加密解密Q都可以加上<span style="color: #ff0000">-o</span>参数来指定加密和解密后的输出文gQ例?/p> <p><span style="color: #888888">#gpg <span style="color: #ff0000">-o </span>doc.gpg -er name doc<br /> 其中name是选择谁的公钥加密Q即谁是文g的接收者?br /> doc加密的文Ӟ卛_文g<br /> doc.gpg为命令执行后生成的加密的文gQ这里要先指定好文g?/span></p> </blockquote> <ul> <li>Ҏ件进行签?</li> </ul> <blockquote> <p><span style="color: #00ccff">1、数字签?/span><br /> 命o格式Q?br /> #gpg -o doc.sig -s doc<br /> 其中doc是原文gQdoc.sig包含了原文g和签名,是二q制的。这个命令会要求你输入你的私钥的密码句?br /> #gpg -o doc.sig -ser name doc<br /> 既签名又加密</p> <p><span style="color: #00ccff">2、文本签?/span><br /> #gpg -o doc.sig –clearsign doc<br /> q样产生的doc.sig同样包含原文件和{֐Q其中签名是文本的,而原文g不变?/p> <p><span style="color: #00ccff">3、分d{֐</span><br /> #gpg -o doc.sig -ab doc<br /> doc.sig仅包括签名,分离式签名的意思是原文件和{֐是分开的?br /> b 表示分离式签名detach-sign</p> <p><span style="color: #00ccff">4、验证签?/span><br /> #gpg –verify doc.sig [doc]<br /> 验证之前必须导入文g作者的公钥Q对于分d{֐Q最后还要加上原文gQ即后面的doc?/p> </blockquote> <ul> <li>密匙{֐和用户信?q阶功能) </li> </ul> <p>管在理ZԌ具备了公匙和U匙可以实现安全的信息通讯Q但是在实际应用中,q必d公匙q行有效认。因为,实存在伪造公匙信息的可能?/p> <p>由此Q在GPG中引入了一个复杂的信QpȝQ以帮助我们区分哪些密匙是真的,哪些密匙是假的。这个信ȝl是Z密匙的,主要包括密匙{֐?/p> <p>当收到熟人的公匙q且GPG告知不存在Q何实体可信信息附加于q个公匙后,首要的事情就是对q个密匙q行“指纹采样”QfingerprintQ。例如,我们Ҏ自mike的公匙进行了导入操作Qƈ且GPG告知我们不存在这个密匙的附加可信信息Q这时候,我们首先要做的工作就是对q个新密匙进?#8220;指纹采样 ”Q相兛_令及执行情况如下Q?/p> <blockquote> <p>$ gpg –fingerprint mike@hairnet.orgpub 1024D/4F03BD39 2001-01-15 Mike Socks (I’m WIRED) Key fingerprint = B121 5431 8DE4 E3A8 4AA7 737D 20BE 0DB8 4F03 BD39sub 1024g/FDBB477D 2001-01-15$</p> </blockquote> <p>q样Q就从密匙数据中生成了其指纹信息Qƈ且应该是唯一的。然后,我们打电话给mikeQ确认两件事情。首先,他是否发送给我们了密匙;其次Q他的公匙的指纹信息是什么。如果Mike认了这两g事情Q我们就可以信q个密匙是合法的。接下来Q我们对密匙q行{֐操作Q以表示q个密匙来自Mike而且我们对密匙的信QQ相兛_令及执行情况如下Q?/p> <blockquote> <p>$ gpg –sign-key mike@hairnet.orgpub 1024D/4F03BD39 created: 2001-01-15 expires: neversub 1024g/FDBB477D created: 2001-01-15 expires: never(1) Mike Socks (I’m WIRED) pub 1024D/4F03BD39 created: 2001-01-15 expires: neverFingerprint = B121 5431 8DE4 E3A8 4AA7 737D 20BE 0DB8 4F03 BD39Mike Socks (I’m WIRED) Are you really sure that you want to sign this keywith your key: Ima User (I’m just ME) Really sign? yYou need a passphrase to unlock the secret key foruser: Ima User (I’m just ME) 1024-bit DSA key, ID D9BAC463, created 2001-01-03Enter passphrase:$</p> </blockquote> <p>执行到此Q用我们的U匙完成了对Mike的公匙的{֐操作QQ何持有我们的公匙的h都可以查证签名确实属于我们自己。这个附加到Mike的公匙上的签名信息将随它环游Internet世界Q我们用个Z誉,也就是我们自qU匙Q保证了那个密匙实属于Mike。这是一个多么感人的充满诚信的故事啊 <img class="wp-smiley" alt=":-)" src="http://www.alexgao.com/wp-includes/images/smilies/icon_smile.gif" /> 现实世界的h们是否应该从q严格的技术标准中反思些什么呢Q?/p> <p>q是回到q里。获取附加于一个公匙上的签名信息列表的命o是:</p> <blockquote> <p>gpg –check-sigs mike@hairnet.org</p> </blockquote> <p>{֐列表长Q密匙的可信度越大。其实,正是{֐pȝ本n提供了密匙查证功能。假设我们接收到一个签名ؓMike的密匙,通过Mike的公匙,我们验证出签名确实属于MikeQ那么我们就信Q了这个密匙。推而广之,我们可以信任Mike{֐的Q何密匙?/p> <p>Z更加E_QGPGq引入了另一个附加功能:可信U别Qtrust levelQ。用它Q我们可以ؓ我们拥有的Q何密匙的所有者指定可信别。例如,即我们知道Mike的公匙是可信的,但是事实上我们不能信任Mike在对其他密匙{֐时的判断Q我们会惻IMike也许只对数密匙q行了签名,但却没有好好地检查一遍?/p> <p>讄可信U别的命令及执行情况如下Q?/p> <blockquote> <p>$ gpg –edit-key mike@hairnet.orgpub 1024D/4F03BD39 created: 2001-01-15 expires: never trust: -/fsub 1024g/FDBB477D created: 2001-01-15 expires: never(1) Mike Socks (I’m WIRED) Command> trust 1 = Don’t know 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully s = please show me more information m = back to the main menuYour decision? 2Command> quit$</p> </blockquote> <p>在命令编辑环境中执行trustQ然后选择U别2QI do NOT trustQ,q样我们割断了Q何信任链Q每个密匙都必ȝqMike的签名?/p> <p><strong><span style="color: #ff6600">6.删除密钥</span></strong></p> <p>从私钥钥匙环里删除密钥:</p> <div id="wmqeeuq" class="quote"> <blockquote> <div id="wmqeeuq" class="quote-content"># gpg –delete-secret-keys hyphenwang@redflag-linux.com<br /> gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.<br /> This program comes with ABSOLUTELY NO WARRANTY.<br /> This is free software, and you are welcome to redistribute it<br /> under certain conditions. See the file COPYING for details. <p> </p> <p>sec  1024D/A3942296 2008-12-19 Hyphen Wang (Use for GPG Encrypt) <gpgencrypt@linuxfly.org></p> <p>要从钥匙环里删除q把密钥吗?(y/N)y<br /> q是一把私钥!――真的要删除吗?(y/N)y</p> </div> </blockquote></div> <p>必须先删除私钥,然后才能删除公钥?br /> 从公钥钥匙环里删除密钥:</p> </div> <div sizset="135" sizcache="1"> <div id="wmqeeuq" class="quote" sizset="135" sizcache="1"> <blockquote> <div id="wmqeeuq" class="quote-content"># gpg –delete-keys hyphenwang@redflag-linux.com<br /> gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.<br /> This program comes with ABSOLUTELY NO WARRANTY.<br /> This is free software, and you are welcome to redistribute it<br /> under certain conditions. See the file COPYING for details. <p> </p> <p>sec  1024D/A3942296 2008-12-19 Hyphen Wang (Use for GPG Encrypt) <gpgencrypt@linuxfly.org></p> <p>要从钥匙环里删除q把密钥吗?(y/N)y</p> </div> </blockquote> <h2 class="quote-content"><span style="color: #3366ff"><strong><strong>?对称加密:</strong></strong></span></h2> <p>当然GPG同样具备普通的对称加密功能Q这时候就不需要密钥,直接用密码加密即可(注意Q这里的密码不一定是你私钥的密码Q您大可以随意设定)</p> <blockquote> <p>gpg -o doc.gpg -c doc</p> </blockquote> <p>Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?/p> <h2 class="quote-content"><span style="color: #3366ff"><strong>?GPG常用参数:</strong></span></h2> <blockquote> <div id="wmqeeuq" class="quote-content">语法Qgpg [选项] [文g名]<br /> {֭、检查、加密或解密<br /> 默认的操作依输入数据而定</div> </blockquote> <p>指oQ?/p> <blockquote> <p>-s, –sign [文g名]           生成一份签?br /> –clearsign [文g名]      生成一份明文签?br /> -b, –detach-sign             生成一份分ȝ{֭<br /> -e, –encrypt                 加密数据<br /> -c, –symmetric               仅用对U加?br /> -d, –decrypt                 解密数据(默认)<br /> –verify                  验证{֭<br /> –list-keys               列出密钥<br /> –list-sigs               列出密钥和签?br /> –check-sigs              列出q检查密钥签?br /> –fingerprint             列出密钥和指U?br /> -K, –list-secret-keys        列出U钥<br /> –gen-key                 生成一副新的密钥对<br /> –delete-keys             从公钥钥匙环里删除密?br /> –delete-secret-keys      从私钥钥匙环里删除密?br /> –sign-key                为某把密钥添加签?br /> –lsign-key               为某把密钥添加本地签?br /> –edit-key                ~辑某把密钥或ؓ其添加签?br /> –gen-revoke              生成一份吊销证书<br /> –export                  导出密钥<br /> –send-keys               把密钥导出到某个公钥服务器上<br /> –recv-keys               从公钥服务器上导入密?br /> –search-keys             在公钥服务器上搜d?br /> –refresh-keys            从公钥服务器更新所有的本地密钥<br /> –import                  导入/合ƈ密钥<br /> –card-status             打印卡状?br /> –card-edit               更改卡上的数?br /> –change-pin              更改卡的 PIN<br /> –update-trustdb          更新信Q度数据库<br /> –print-md 法 [文g]    使用指定的散列算法打印报文散列?/p> <p>选项Q?/p> <p>-a, –armor                   输出l?ASCII 装<br /> -r, –recipient 某甲          为收件?#8220;某甲”加密<br /> -u, –local-user              使用q个用户标识来签字或解密<br /> -z N                          讑֮压羃{?N (0 表示不压~?<br /> –textmode                使用标准的文本模?br /> -o, –output                  指定输出文g<br /> -v, –verbose                 详细模式<br /> -n, –dry-run                 不做M改变<br /> -i, –interactive             覆盖前先询问<br /> –openpgp                 行ؓ严格遵@ OpenPGP 定义<br /> –pgp2                    生成?PGP 2.x 兼容的报?/p> </blockquote> <p>(请参考在U说明以获得所有命令和选项的完整清?</p> <p>范例Q?/p> <p>-se -r Bob [文g名]          ?Bob q个收g人签字及加密<br /> –clearsign [文g名]         做出明文{֭<br /> –detach-sign [文g名]       做出分离式签?br /> –list-keys [某甲]           昄密钥<br /> –fingerprint [某甲]         昄指纹</p> <p>——————————————————————————?#8211;</p> </div> </div> <img src ="http://www.aygfsteel.com/alancxx/aggbug/348895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/alancxx/" target="_blank">蜂鸟</a> 2011-04-23 22:55 <a href="http://www.aygfsteel.com/alancxx/articles/348895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GPG 单?/title><link>http://www.aygfsteel.com/alancxx/articles/GPG.html</link><dc:creator>蜂鸟</dc:creator><author>蜂鸟</author><pubDate>Sat, 23 Apr 2011 14:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/alancxx/articles/GPG.html</guid><wfw:comment>http://www.aygfsteel.com/alancxx/comments/348893.html</wfw:comment><comments>http://www.aygfsteel.com/alancxx/articles/GPG.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/alancxx/comments/commentRss/348893.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/alancxx/services/trackbacks/348893.html</trackback:ping><description><![CDATA[<div class="wmqeeuq" id="art" style="margin: 15px" width="100%"> <h2 class="title" style="color: #000080">The GNU Privacy Guard</h2> <p>Private和public的钥匙是gpg加密和解密过E的主要部分,所以第一步就是创Zؓ自己创徏一对密?</p> <div id="wmqeeuq" class="procedure"> <ol type="1"> <li> <p><strong>生成U钥</strong></p> <table style="border-right: rgb(153,153,153) 1px solid; border-top: rgb(153,153,153) 1px solid; font-size: 12px; border-left: rgb(153,153,153) 1px solid; width: 80%; border-bottom: rgb(153,153,153) 1px solid" align="center"> <tbody> <tr> <td><strong style="color: #ff0000">$gpg --gen-key</strong><br /> </td> </tr> </tbody> </table> <p>你需要回{一些这个命令提出的问题</p> <ol type="a"> <li> <p>U钥的种cdsizeQ这里缺省的{案已经_好了</p> <li> <p>U钥的有效期Q我通常选择不会q期Q呵?/p> <li> <p>你的真实的姓名和e-mail地址Q这些是用来从一大堆钥匙中找C的钥匙的</p> <li> <p>关于你的钥匙的commentQ可以ؓI,我一般填一个昵U?/p> <li> <p>钥匙的密? 千万别忘了,否则所有你加密q的文g都没用了</p> </li> </ol> <li> <p><strong>Z的私钥生成一个公?文本文g)Q这是我的:</strong><a target="_blank"><strong>aubrey.asc.zip</strong></a></p> <table style="border-right: rgb(153,153,153) 1px solid; border-top: rgb(153,153,153) 1px solid; font-size: 12px; border-left: rgb(153,153,153) 1px solid; width: 552px; border-bottom: rgb(153,153,153) 1px solid; height: 40px" align="center"> <tbody> <tr> <td><strong><span style="color: #ff0000">$ gpg --armor --output public.key --export <your email><br /> </span></strong></td> </tr> </tbody> </table> <p>你可以分发这个文件了Q给你的朋友Q或者脓C的个人网站上Q?or whatever.</p> <li><strong>己加密一个文? q里--recipient可以是你的全名,也可以是你的邮g地址<br /> </strong> <table style="border-right: rgb(153,153,153) 1px solid; border-top: rgb(153,153,153) 1px solid; font-size: 12px; border-left: rgb(153,153,153) 1px solid; width: 547px; border-bottom: rgb(153,153,153) 1px solid; height: 38px" align="center"> <tbody> <tr> <td> <pre class="programlisting"><strong><span style="color: #ff0000">#gpg --encrypt --recipient 'Your Name' foo.tx<span style="font-family: 'Courier New',Courier,'宋体'">t</span></span></strong></pre> </td> </tr> </tbody> </table> <li><strong><span style="font-family: monospace">?/span>密这个文? q里不加--output选项的话,解密的内容将被送到屏幕?/strong> <table style="border-right: rgb(153,153,153) 1px solid; border-top: rgb(153,153,153) 1px solid; font-size: 12px; border-left: rgb(153,153,153) 1px solid; width: 544px; border-bottom: rgb(153,153,153) 1px solid; height: 33px" align="center"> <tbody> <tr> <td> <pre class="programlisting"><strong><span style="color: #ff0000">#gpg --output foo.txt --decrypt foo.txt.gpg</span></strong></pre> </td> </tr> </tbody> </table> <li><strong><span style="font-family: monospace">?/span>别h加密一个文? q里首先要import别h的公钥,然后加密。注意这里变化的只是--recipient选项</strong> <table style="border-right: rgb(153,153,153) 1px solid; border-top: rgb(153,153,153) 1px solid; font-size: 12px; border-left: rgb(153,153,153) 1px solid; width: 544px; border-bottom: rgb(153,153,153) 1px solid; height: 31px" align="center"> <tbody> <tr> <td> <pre class="programlisting"><strong style="color: #ff0000"><span style="font-family: 'Courier New',Courier,'宋体'">#gpg </span>--import key.asc<br /> #gpg --list-keys<br /> #gpg --encrypt --recipient 'myfriend@his.isp.net' foo.txt</strong><br /> </pre> </td> </tr> </tbody> </table> <li><strong>解密一个从别h那里发来的文? q个和本机加密的文g解密没什么区?<br /> </strong> <table style="border-right: rgb(153,153,153) 1px solid; border-top: rgb(153,153,153) 1px solid; font-size: 12px; border-left: rgb(153,153,153) 1px solid; width: 544px; border-bottom: rgb(153,153,153) 1px solid; height: 38px" align="center"> <tbody> <tr> <td> <pre class="programlisting"><strong><span style="color: #ff0000"><strong>#gpg --output foo.txt --decrypt foo.txt.gpg</strong></span></strong> </pre> </td> </tr> </tbody> </table> </li> </ol> </div> <br /> </div> <img src ="http://www.aygfsteel.com/alancxx/aggbug/348893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/alancxx/" target="_blank">蜂鸟</a> 2011-04-23 22:39 <a href="http://www.aygfsteel.com/alancxx/articles/GPG.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows下用RatProxyhttp://www.aygfsteel.com/alancxx/articles/ratproxy.html蜂鸟蜂鸟Thu, 03 Mar 2011 07:52:00 GMThttp://www.aygfsteel.com/alancxx/articles/ratproxy.htmlhttp://www.aygfsteel.com/alancxx/comments/345600.htmlhttp://www.aygfsteel.com/alancxx/articles/ratproxy.html#Feedback0http://www.aygfsteel.com/alancxx/comments/commentRss/345600.htmlhttp://www.aygfsteel.com/alancxx/services/trackbacks/345600.htmlWindows下用RatProxy步骤:
 1、安装CygwinQ?/strong>下蝲地址Cygwin(http://www.cygwin.com/)q行setup.exe?lt;下一?gt;...到Select PackagesQ找到Devel节点q展开q上:
    1) make
    2) gcc-core
    3) openssl-devel
    然后在Libs或Net节点扑ֈopensslq先上它Ql下一步直臛_装完成?nbsp;   
 2、生成RatProxyQ?/strong>下蝲RatProxyQ随便解压到某一目录Q如c:\ratproxy?br />     1)  用记事本打开Makefile文gQ找?#8220;CFLAGS = -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE”Q删?#8220;-Wno-pointer-sign”(貌似跟编译器不兼容,需要删掉这个~)Q?br />          最后变成这PCFLAGS = -Wall -O3 -D_GNU_SOURCE       
    2) 从http://www.nowrap.de/download/flare06doswin.zip下蝲flareq解压到ratproxy的flare-dist子目录下 
    3) q行cygwin.batQ切换到c:\ratproxy     
         cd “c:\ratproxy”   
    4) 然后q行makeQ编译完成?
 3、用RatProxyQ?/strong> 
    1) q行命o $ ./ratproxy -v . -w test.log -d test.com -lfscm 
       说明Q其?v参数出日志文件的目录Q?w为日志文件名Q?d限定扫描的域名,更多的参数可以通过-h扑ֈ说明Q或者通过它的在线文档Q?br />         http://code.google.com/p/ratproxy/wiki/RatproxyDoc?nbsp;                                     
    2) 打开览器,q设|代理ؓ127.0.0.1Q端?080(ratproxy默认端口)?br />     3) 开始浏览你要检的|站吧,它会Ҏ你浏览的面生成相应的日志的?br />     4) 通过在cygwin中执行以下命令:$ ./ratproxy-report.sh test.log > test.html
        作者的另一Ƒַ具skipfish比较自动了Q可以体验了一下?/p>

蜂鸟 2011-03-03 15:52 发表评论
]]>
电子商务安全与支付技?/title><link>http://www.aygfsteel.com/alancxx/articles/344131.html</link><dc:creator>蜂鸟</dc:creator><author>蜂鸟</author><pubDate>Sat, 12 Feb 2011 05:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/alancxx/articles/344131.html</guid><wfw:comment>http://www.aygfsteel.com/alancxx/comments/344131.html</wfw:comment><comments>http://www.aygfsteel.com/alancxx/articles/344131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/alancxx/comments/commentRss/344131.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/alancxx/services/trackbacks/344131.html</trackback:ping><description><![CDATA[<p><strong><span style="font-size: 24pt"><strong style="color: #003366; font-family: 楷体_GB2312">电子商务的安全需?/strong> <br /> </span></strong><br /> 信息安全需求、信用安全需求、管理安全需求和法律保障安全需?<br /> 1)信息的保密性;<br /> 2)信息的完整性;<br /> 3)信息的不可否认性;<br /> 4)交易者n份的真实性;<br /> 5)pȝ的可靠性、可用性、可控?<br /> <br /> <strong style="font-size: 24pt"><span style="font-family: 楷体_GB2312"><strong style="font-size: 24pt; color: #003366; font-family: ">信息的保密性技?/strong> <br style="font-family: " /> <strong style="font-family: "><br style="font-family: " /> </strong></span></strong><strong>1、加?解密技?/strong> <br /> 1) 加密/解密技术是一U用来防止信息泄露的技术。电子商务中的信息在通过Internet传送之前,Z防止信息的内容被他h有意或无意的知晓Q需要将它的内容通过一定的Ҏ转变成别人看不懂的信息,q个q程是加密QEncriptionQ;而将看不懂的信息再{变还原成原始信息的过E称?Decription)。这里,加密之前的信息被UCؓ明文(plaintext)Q加密之后的内容UCؓ密文Q加密通常要采用一些算法(对应着加密/解密的程序)Q而这些算法需要用C同的参数Q这些不同的参数UC密钥Q密钥空间是所有密钥的集合?br /> 2)  cd<br /> 按照历史发展阶段:Q手工加密、机械加密、电子机内ؕ加密、计机加密 <br /> 按照保密E度Q理Z保密的加密、实际上保密的加密、不保密的加密三U类?br /> 按照密钥使用方式Q对U加密和非对U加?br /> <br />  <img height="589" alt="" src="http://www.aygfsteel.com/images/blogjava_net/alancxx/1.JPG" width="535" border="0" /><br /> <strong> i ) 对称加密</strong> <br /> 也叫׃n密钥加密或机密密钥加密,收发双方拥有相同的单个密钥,q把密钥既可用于加密Q也可用于解密,卛_密和解密使用的是相同的一把密钥,此密钥又UCؓ对称密钥或会话密钥?br /> 常见的对U加密方法有DES?DES、AES、BASE64{?<br /> <strong><span style="font-size: 12pt"><strong>DES(Data Encryption Standard)</strong> </span></strong>Q?br /> 法输入的是64比特的明文,?4比特密钥的控制下产生64比特的密文;反之输入64比特的密文,输出64比特的明文?4比特 的密钥中含有8个比特的奇偶校验位,所以实际有效密钥长度ؓ56比特 ?br /> <strong>3DESQ?br /> </strong>是DES法扩展其密钥长度的一U方法,可加密密钥长度扩展?28比特Q实际有效位?12比特Q或192比特Q实际有效位?68比特Q。其基本原理是将128比特 的密钥分?4比特的两l,Ҏ文多ơ进行普通的DES加解密操作,从而增强加密强度?br /> AES(Advanced Encryption Standard)QAES处理?28bit数据块ؓ单位的对U密钥加密算法,可以用长?28?92?56位的密钥加密?br /> <strong>Base64 加密Q编码):<br /> </strong>先将要编码的信息内容Q明文)以二q制的形式排成一行,从高位开始,?位ؓ一个单位进行排列。例如,信息内容为字W流“ABCD”Q在计算Z以ASCII码进行编码,因此对应的二q制ؓQ?nbsp;<br />       01000001Q?1000010Q?1000011Q?1000100<br /> 上述二进制流?位ؓ单位重新排列Q结果ؓQ?br />       010000Q?10100Q?01001Q?00011Q?10001Q?0<br /> ׃末尾一l不?位,在不_位的后面补零Q组?位,l果为:<br />       010000Q?10100Q?01001Q?00011Q?10001Q?00000<br /> ҎW号到数字的映射表,?位二q制对应的数值分别{化成相应的数字,重新整理成一个字W流<br /> <img alt="" src="http://www.aygfsteel.com/images/blogjava_net/alancxx/2.JPG" border="0" /><br /> 规定~码的原始字W流字节数应?的整数倍,原始字符?#8220;ABCD”q需要补两个字节,ȝ字节数才能被3整除Qؓ此后面需补上两个“=”字符Q所以原始字W流“ABCD”的最lBase64~码为:<br />  QUJDRA== <br /> <strong>? </strong>使用Openssl软g包,Ҏ件进行BASE64~码与解?<br /> openssl enc -base64 -d -in 026h23fbase64.txt  -out 026h23fplain.txt <br /> <strong> ii ) 非对U加?/strong> <br /> 非对U加密方法中使用一对密钥:公钥(public key)和私?private key)l合。用公钥加密的密文只能用U钥解密Q反之,用私钥加密的密文只能用公钥解密。在操作q程中,公钥可向外界发布Q让其他人知道,U钥则自׃存,只有自己知道?<br /> <strong>RSA:<br /> </strong>由Ron Rivest,Adi Shamir和Leonard Adleman三h首创Q是一U公开密钥加密ҎQ?br /> 它的原理是:先由密钥理中心产生一对公钥和U钥Q称为密钥对。生方法如下:先生两个够大的强质数p、q。可得p与q的乘Uؓ n=p×q。再由p和q出另一个数z=(p-1)×(q-1)Q然后再选取一个与z互素的奇数bQ称b为公开指数Q从q个b值可以找出另一个值aQƈ能满b×a=1 (mod z)条g。由此而得到的两组?nQb)?pQqQa)分别被称为公开密钥和秘密密钥,或简U公钥和U钥。若Ҏ文信息x(0<=x<n)加密Q其加密法是y=E(x)=xb Qmod nQ?Q而解密算法是D(y)=ya Qmod nQ?br /> RSA法Z大整数因子分解这一著名的数学难?br /> <strong>RSA特点Q?br /> </strong>优点Q能适应|络的开放性要求,密钥理单,q且可方便地实现数字{֐和n份认证等功能Q是目前电子商务{技术的核心基础?br /> ~点Q算法复杂,加密数据的速度和效率较低,只能对小扚w的数据进行加密?br /> 在实际应用中Q通常对U加密算法和非对U加密算法结合用,利用对称加密法来进行大定w数据的加密,而采用RSA{非对称加密法来传递对U加密算法所使用的密钥,通过q种Ҏ可以有效地提高加密的效率q能化对密钥的管理?<br /> <strong>?</strong> 使用Openssl软gQ生一对RSA非对U密钥(公钥与私钥)Qƈ分别用它们来Ҏ个文件进行加密和解密?br /> <span style="color: #ff0000">openssl genrsa -des3 -out myrsaCA.key 1024</span>Q将会生一个RSAU钥Q私钥放在myrsaCA.key文g?Q?br /> 用公钥加密的文gQ以后需要用U钥来解密(加密模式Q:<br /> <span style="color: #ff0000">openssl rsautl -encrypt -in 026h23f.txt -inkey myrsaCA.key -out pub026h23f.enc</span>  <br /> <span style="color: #ff0000">openssl rsautl -decrypt -in pub026h23f.enc -inkey myrsaCA.key -out newpub026h23f.txt <br /> </span>用私钥加密的文gQ以后需要用公钥来解密({֐模式Q:<br /> <span style="color: #ff0000">openssl rsautl -sign -in 026h23f.txt -inkey myrsaCA.key -out pri026h23f.enc <br /> openssl rsautl -verify -in pri026h23f.enc -inkey myrsaCA.key -out newpri026h23f.txt<br />  <br /> </span><strong style="font-size: 24pt"><span style="color: #003366; font-family: 楷体_GB2312"><strong style="font-size: 24pt; font-family: ">防火墙技?/strong> <br style="font-family: " /> <br style="font-family: " /> </span></strong>1、实C密的另外一U方法是q行存取讉K控制Q对敏感数据的访问实行n份验证,具备合法w䆾的允许其讉KQ不合法w䆾的禁止其讉KQ放火墙技术正是ؓ实现q一目的而生的?<br /> 2?#8220;防火?#8221;是一UŞ象的说法, 其实它是一U由计算机硬件和软g的组? 使互联网与内部网之间建立起一个安全网? scurity gateway), 从而保护内部网免受非法用户的R入,它其实就是一个把互联|与内部|(通常q局域网或城域网Q隔开的屏?<br /> <img alt="" src="http://www.aygfsteel.com/images/blogjava_net/alancxx/3.JPG" border="0" /><br /> <strong>cd<br /> 1)包过滤型Q?br /> </strong>包过滤型防火墙可以动态检查通过防火墙的TCP/IP报文头中的报文类型、源IP地址、目标IP地址、源端口L信息Q与预先保存在防火墙中的清单q行对照Q按预定的安全策略决定哪些报文可以通过、哪些报文不可以通过?br /> <strong>2)应用|关型:<br /> </strong>使用代理技术,在内部网与外部网之间建立一个单独的子网Q该子网有一个代理主机,通过路由器和|关分别与内、外|连接,代理L对外部和内部用户的网l服务请求进行认证,对于合法用户的服务请求,代理L则连接内部网与外部网Q自׃为通信的中介,外部用户只能获得l过代理的内部网服务Q从而保护内部网l资源不受R実?<br /> <br /> <strong style="font-size: 24pt"><span style="color: #003366; font-family: 楷体_GB2312"><strong style="font-size: 24pt; font-family: ">数据完整性技?br style="font-family: " /> </strong><br style="font-family: " /> </span></strong>要保证数据的完整性,技术上可以采用信息摘要Q数字指U)的方法或者采用数字签名的ҎQ?br /> <strong>数字摘要Q?br /> </strong>采用单向Hash函数Q如SHAQMD5{)对要传送的信息内容q行某种变换q算Q得到固定长度的摘要信息<br /> <img alt="" src="http://www.aygfsteel.com/images/blogjava_net/alancxx/4.JPG" border="0" /><br /> <strong>?</strong> 使用Openssl软gQ对某个文g产生数字摘要 ?br /> openssl  dgst -md5  -out  026h23f.md5  026h23f.txt<br /> <br /> <strong style="font-size: 24pt"><span style="font-family: 楷体_GB2312"><strong style="font-size: 24pt; font-family: "><span style="color: #003366"><strong style="font-size: 24pt"><span style="font-family: 楷体_GB2312"><strong style="font-size: 24pt; font-family: ">不可否认技?/strong> <br style="font-family: " /> </span></strong></span></strong><br style="font-family: " /> </span></strong>要达C可否认的目的Q可以采用数字签名和数字旉戳等技?Q?br /> <strong>数字{֐<br /> </strong><img alt="" src="http://www.aygfsteel.com/images/blogjava_net/alancxx/5.JPG" border="0" /><br /> <strong>?</strong> 使用Openssl软gQ对某个文g产生的数字摘要进行签名,q证签名?br /> <span style="color: #ff0000">openssl  dgst -md5  -out  026h23f.sign  -sign  026h23f.key   026h23f.txt <br /> openssl  dgst -md5  -signature  026h23f.sign  -prverify  026h23f.key   026h23f.txt <br /> </span><strong>数字旉?/strong> <br /> <img alt="" src="http://www.aygfsteel.com/images/blogjava_net/alancxx/6.JPG" border="0" /><br /> <br /> <strong style="font-size: 24pt"><span style="color: #003366; font-family: 楷体_GB2312"><strong style="font-size: 24pt; font-family: ">w䆾认证技?br style="font-family: " /> </strong><br style="font-family: " /> </span></strong>需要借助于数字证书的技术,讄安全认证中心Q制定一pd的安全协议等来实现?br /> <strong>1) 数字证书<br /> </strong>数字证书QDigital CertificateQ是一U权威性的电子文档Q提供了一U在Internet上验证n份的方式Q其作用cM于司机的N执照或日常生zM的n份证。它是利用数字签名技术由一个权威机构—CA证书认证(Certificate Authority)中心{֏?<br /> 数字证书概念最早由MIT的Kohnfelder?978q在他的本科毕业论文中提出,内容是通过数字{֐来保护命名的证书Q名字/密钥对)Q从而可公钥分散存攑֒讉KQ克服将公钥集中存放C个数据库中而带来的讉K性能问题Q因此,数字证书除了可用于网上证明交易者的w䆾Q还有另外一个作用,可以利用它来分发交易者的公钥?br /> <strong>2) 数字证书颁发q程<br /> </strong>用户向注册中心RA提出甌Q注册中心首先ؓ用户产生密钥对,然后生成一个称为csrQ数字证书请求)的文Ӟ内含公钥及部分用戯n份信息;认证中心CA收到RA的csr文g后,执行一些必要的核实步骤Q以信h是真实的Q然后进行签名,生成数字证书。这栯证书内包含有用户的个Z息和他的公钥信息Q同时还附有认证中心的签名信息?<br /> <strong>数字证书cd<br /> </strong>按用途:个h数字证书、服务器数字证书、代码签名证书;<br /> 按格式:X.509?PGP?SDSI/SPKI?X9.59(AADS)?AC{类型的证书Q?br /> 按协议:SSL证书Q服务于银行对企业或企业对企业的电子商务zdQ、SET证书(服务于持卡消贏V网上购?{?br /> <strong>X.509数字证书的数据结?<br /> </strong><img alt="" src="http://www.aygfsteel.com/images/blogjava_net/alancxx/7.JPG" border="0" /><br /> <strong>3) 认证中心</strong> <br /> 认证中心CAQCertificate AuthorityQ,作ؓ电子交易中受信Q的第三方Q负责ؓ电子商务环境中各个实体颁发数字证书,以证明各实体w䆾的真实性,q负责在交易中检验和理证书 ?br /> <strong>CA认证中心的功能主要有Q?/strong>证书发放、证书更新、证书撤销和证书验证?br /> 具体为:<br /> 接收验证用户数字证书的申诗?br /> 定是否接受用户数字证书的申P卌书的审批?br /> 向申误颁发(或拒l颁发)数字证书?br /> 接收、处理用L数字证书更新h?br /> 接收用户数字证书的查询、撤销?br /> 产生和发布证书的有效期?br /> 数字证书的归档?br /> 密钥归档?br /> 历史数据归档?br /> VeriSign 是最大的公共 CA Q中国数字认证网、中国商务在U?<br /> <strong>4) 数字证书的申请与应用 <br /> </strong>首先在认证中心的|站上下载ƈ安装认证中心的根证书Q所谓根证书Q是指认证中心自׃ؓ自己颁发的数字证书)Q然后填写相关的甌表格Q提交相x料,提出甌Q认证中心收到申请后Q将为用L成一个时的证书Qƈ证书的序列可回给用户Q接下来Q认证中心对用户w䆾q行仔细核查Q核查通过后将为用户颁发由自己{过名的正式数字证书Q用户得到此证书后就可以q行譬如对电子邮件进行加密等操作??br /> <strong>?</strong> 利用Openssl软gQؓ用户颁发数字证书 <br /> <br /> <strong><span style="font-size: 24pt"><strong style="color: #003366; font-family: 楷体_GB2312">安全协议</strong></span> <br /> <br /> 常用的安全协?</strong>安全套接层协议、安全电子交易协议、安全超文本传输协议、安全多媒体Internet邮g扩展协议{??br /> 安全套接层协议(SSLQSecure Sockets LayerQ?<br /> SSL安全协议最初是由Netscape Communication公司设计开发;<br /> SSL安全协议主要提供三方面的服务Q?br /> 一是用户和服务器的合法性认证;<br /> 二是加密数据以隐藏被传送的数据Q?br /> 三是保护数据的完整性?br /> <strong>安全套接层协议的通信q程 Q?br /> </strong>接通阶D:客户通过|络向服务商打招|服务商回应;   <br /> 密码交换阶段Q客户与服务器之间交换双方认可的密码Q一般选用RSA密码法Q也有的选用Diffie-Hellmanf和Fortezza-KEA密码法Q?nbsp;  <br /> 会谈密码阶段Q客户与服务商间产生彼此交谈的会谈密码;   <br /> 验阶D:验服务商取得的密码;   <br /> 客户认证阶段Q验证客L可信度;   <br /> ……加密资料传?#8230;…<br /> l束阶段Q客户与服务商之间相互交换结束的信息<br /> <strong>安全套接层协议的~点 Q?br /> i ) </strong>SSL协议q行的基Ҏ商家对客户信息保密的承诺。但在上q流E中我们也可以注意到QSSL协议有利于商家而不利于客户。客L信息首先传到商家Q商安d再传至银行,q样Q客戯料的安全性便受到威胁?br /> 商家认证客户是必要的Q但整个q程中,~少了客户对商家的认证。在电子商务的开始阶D,׃参与电子商务的公司大都是一些大公司Q信誉较高,q个问题没有引vZ的重视。随着电子商务参与的厂商迅速增加,对厂商的认证问题来突出,SSL协议的缺点完全暴露出来?br /> 安全电子交易协议QSETQSecure Electronic TransactionQ?<br /> <strong>ii )</strong> Z克服SSL安全协议的缺点,满电子交易持箋不断地增加的安全要求Qؓ了达C易安全及合乎成本效益的市求,VISA国际l织及其它公司如Master Card、Micro Soft、IBM{共同制定了安全电子交易协议。这是一个ؓ在线交易而设立的一个开攄、以电子货币为基的电子付Ƅl规范,它采用公钥密码体制和X.509数字证书标准Q主要应用于BtoC模式中保障支付信息的安全性; <br /> SET在保留对客户信用卡认证的前提下,又增加了对商家n份的认证 Q双重签名)Q?br /> SET协议比SSL协议复杂 ?br /> 安全电子交易协议要达到的目标<br /> 保证电子商务参与者信息的怺隔离。客L资料加密或打包后边过商家到达银行Q但是商家不能看到客L账户和密码信息;   <br /> 保证信息在因特网上安全传输,防止数据被黑客或被内部h员窃取;   <br /> 解决多方认证问题Q不仅要Ҏ费者的信用卡认证,而且要对在线商店的信誉程度认证,同时q有消费者、在U商店与银行间的认证Q?nbsp;  <br /> 保证了网上交易的实时性,使所有的支付q程都是在线的;   <br /> 规范协议和消息格式,促不同厂家开发的软gh兼容性和互操作功能,q且可以q行在不同的g和操作系l^C?nbsp;  <br /> <strong>SET安全协议的工作原理主要包括以?个步骤:</strong>   <br /> 消费者利用已有的计算机通过因特|选定物品Qƈ下电子订单;   <br /> 通过电子商务服务器与|上商场联系Q网上商场做出应{,告诉消费者的订单的相x况;   <br /> 消费者选择付款方式Q确认订单,{֏付款指oQ此时SET介入Q;   <br /> 在SET中,消费者必d定单和付ƾ指令进行数字签名,同时利用双重{֐技术保证商家看不到消费者的账号信息Q?nbsp;  <br /> 在线商店接受定单后,向消费者所在银行请求支付认可,信息通过支付|关到收单银行,再到电子货币发行公司认Q批准交易后Q返回确认信息给在线商店Q?nbsp;  <br /> 在线商店发送定单确认信息给消费者,消费者端软g可记录交易日志,以备来查询Q?nbsp;  <br /> 在线商店发送货物或提供服务Qƈ通知收单银行钱从消费者的账号转移到商店̎P或通知发卡银行h支付?br /> <strong style="font-size: 24pt"><br /> <span style="color: #003366; font-family: 楷体_GB2312">其他安全协议<br style="font-family: " /> </span></strong><br /> 安全文本传输协议,即S-HTTPQ基于SSLQ通过密钥加密技术,保障了Web站点上信息的安全QؓWeb文档提供完整性、鉴别、不可抵赖和机密性等安全措施。支持S-HTTP协议的网站URL以shttp://标识开始?br /> 安全多媒体Internet邮g扩展协议QS/MIMEQ:用于安全C输电子邮?nbsp; <br /> <br /> <strong style="font-size: 24pt; color: #003366; font-family: 楷体_GB2312">PKI技?/strong> <br /> <br /> PKI体系l构采用证书来管理公钥,通过W三方的可信机构CAQ把用户的公钥和用户的其他标识信息(如名U、e-mail、n份证LQ捆l在一P在Internet|上验证用户的n份;同时Q在PKI体系l构中,把公钥密码和对称密码l合hQ以实现密钥的自动管理,保证|上数据的机密性、完整性?<br /> q义上,所有提供公钥加密和数字{֐服务的系l,都可叫做PKIpȝ ?br /> 狭义上,W合PKCS(公开钥密码标准,public-Key cryptography Standard)的系l。典型、完整、有效的PKI应用pȝ臛_应具有以下部分: 公钥密码证书理、黑名单的发布和理、密钥的备䆾和恢复、自动更新密钥、自动管理历史密钥、支持交叉认证?<br /> <br /> <strong style="font-size: 24pt; color: #00ccff; font-family: 楷体_GB2312">思?<br /> </strong><br /> 电子商务的安全需求有哪些Qؓ保障安全Q各采用什么技术?<br /> 什么是信息安全Q其安全保障体系有哪几方面?<br /> 数据完整、不可否认的含义是什么?<br /> C加密技术的U类有哪些?LOpenssl软gҎ个文件进行加密?br /> 什么是对称加密Q什么是非对U加密?常见的对U加密与非对U加密算法有哪几U?<br /> 对称加密和非对称加密的优~点各是什么?<br /> 什么是数字{֐?数字{֐的作用是什么?写出数字{֐的过E?br /> 什么是数字证书Q数字证书的颁发一般有哪些q程Q?br /> 数字证书的作用是什么?CA的作用是什么?试用Openssll某个用户颁发一份证书?br /> Openssl命o中与加密有关的命令有哪些Q与证书生成有关的命令有哪些Q?br /> 常见的安全协议有哪些Q试比较SSL协议和SET协议?br /> SSL协议有那些缺点?<br /> 上网甌一份数字证书,q利用此证书l某人发一签名的电子邮g?/p> <img src ="http://www.aygfsteel.com/alancxx/aggbug/344131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/alancxx/" target="_blank">蜂鸟</a> 2011-02-12 13:34 <a href="http://www.aygfsteel.com/alancxx/articles/344131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>openssl使用手册http://www.aygfsteel.com/alancxx/articles/344111.html蜂鸟蜂鸟Sat, 12 Feb 2011 02:28:00 GMThttp://www.aygfsteel.com/alancxx/articles/344111.htmlhttp://www.aygfsteel.com/alancxx/comments/344111.htmlhttp://www.aygfsteel.com/alancxx/articles/344111.html#Feedback0http://www.aygfsteel.com/alancxx/comments/commentRss/344111.htmlhttp://www.aygfsteel.com/alancxx/services/trackbacks/344111.html

蜂鸟 2011-02-12 10:28 发表评论
]]>
վ֩ģ壺 | ʯȪ| Ϫ| | | պ| ֲ| | | | | | | ̨| ij| | | | | | Ʊ| | | | ʲ| ¦| | | º| ʼ| ԭ| ī| ¡| | ɽ| | | ij| Դ| â| ľ|