﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-铁手剑谱-随笔分类-安全</title><link>http://www.blogjava.net/SteelHand/category/3328.html</link><description>&lt;strong&gt;上善若水&lt;/strong&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 22 Aug 2007 20:40:24 GMT</lastBuildDate><pubDate>Wed, 22 Aug 2007 20:40:24 GMT</pubDate><ttl>60</ttl><item><title>射频识别标签(RFID)(1)</title><link>http://www.blogjava.net/SteelHand/archive/2007/08/07/134918.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 07 Aug 2007 04:51:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2007/08/07/134918.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/134918.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2007/08/07/134918.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/134918.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/134918.html</trackback:ping><description><![CDATA[<p><em>这个系列会陆续编写有关RFID的基础知识和产业及应用分析。</em></p>
<h3><a>1 介绍</a></h3>
<h4>1.1 <a></a><a>RFID</a>领域和市场概述</h4>
<p>近年来，自动识别系统 (Auto-ID) 在很多服务领域、商务和分销、物流、工业和制造以及材料流等领域变得越老越流行。在这些领域中，自动识别过程提供关于人员、动物、货物、材料和产品等在传输过程中的信息。
<p>普遍使用的条形码标签在很久前出发了一场识别系统的革命，但是现在随着急剧增长的编号数量已经发现越来越不适用了。条形码可以十分便宜，但是其致命缺陷是其低存储容量和不能重新编程的特点。
<p>技术上讲，更好的方案是在硅芯片之上存储数据。我们日常生活中在用的最常见的电子数据设备是接触式IC卡(电话卡，银行卡等)。然是机械接触的IC卡却限制了其适用性。在数据承载设备和阅读器之间的非接触式数据传输可以带来更大的灵活性。在理想情况下，用于操作数据承载设备所需的电力也可以通过非接触方式从阅读器进行传输。因为用于传输数据和电力的方式，非接触ID 系统也称为是RFID系统(射频识别)。
<p>活跃在RFID系统领域中进行开发和销售的公司的数量说明了这是一个应该认真对待的市场。在2000年，RFID系统在美国的销售额大约是9亿美元，并可望在2005年达到26.5亿美元，在2008年达到42亿美元左右。RFID 市场因此成为射频技术领域 （还包括移动电话和无绳电话）增长最快的领域。
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/1.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=149 alt=1 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/1_thumb.png" width=240 border=0></a>
<p><a>图表 </a>1‑1 RFID的应用市场细分及增长
<p>并且，近年来，非接触识别已经发展成一本独立的交叉学科，它整合了多种完全不同的领域：高频技术和EMC，半导体技术，数据保护和加密，通信，制造科学和其他相关领域的技术。
<p>标准方面，目前RFID尚未形成统一的全球化标准，市场呈现多种标准并存的局面。从全球范围来看，美国已经在RFID标准建立、软硬件技术开发、应用等方 面走在世界前列。欧洲RFID标准追随美国主导的EPC global标准，在封闭系统应用方面与美国基本处于同一阶段。日本提出了UID标准，但支持者主要是本国厂商。韩国政府对RFID给予了高度重视，但至今韩国在RFID标准上仍模糊不清。在我国，科技部、信息产业部正联合14个部委制订《中国RFID发展策略白皮书》，预计2006年上半年可以发布。但 使用频率没有完全开放、产业整体发展水平滞后和实际应用匮乏，仍在很大程度上制约着我国RFID标准的制订与实施。
<p>市场规模方面，截至到2005年底，全世界已经安装了约5000个RFID系统，实际年销售额约9.64亿美元。在零售巨头沃尔玛、麦德龙的推动下， RFID在零售业也取得了一定进展，但整体规模仍十分有限。随着Gen2标准的完善和实施成本的逐渐下降，我们预计，2006年全球RFID产业将取得实 质性突破。2007年，全球RFID将全面启动，进入快速增长阶段，增长率超过50%。这一过程将至少持续到2009年，之后会保持平稳增长态势。在我 国，2005年RFID市场规模达到了16亿元人民币，与2004年同比增长25%。详细情况如下图所示:
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/2.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=324 alt=2 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/2_thumb.png" width=419 border=0></a>
<p><a>图表 </a>1‑2 2004-2009中国RFID市场规模
<p>应用领域方面，我国RFID主要应用于物流、医疗、货物和危险品追踪管理监控、民航行李和包裹管理、强制性检验产品、证件防伪、不停车收费、电子门票等领域。另外，在汽车防盗物品跟踪等各方面也在不断开拓新的应用。详细分布如下图所示:
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/3.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=315 alt=3 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/3_thumb.png" width=488 border=0></a>
<p><a>图表 </a>1‑3 中国RFID主要应用领域
<p>从产业链的角度来看，RFID产业链包括:芯片、标签、天线、读写器、中间件、系统集成以及实施咨询等环节。其中RFID芯片全球范围内仍然由飞利浦、西门子、ST、德仪等传统半导体厂商所垄断。荷兰皇家飞利浦电子是该领域的龙头老大，其RFID标签累计出货量已经超过了10亿只。国内的复旦微电子、大唐微电子等半导体厂商虽然也已进军这一领域，但目前仅局限于第二代身份证、智能卡等业务。标签、天线、读写器等环节，总体而言也是Alien、 Intermec、Symbol等国外厂商的天下，国内只有为数不多的几家厂商在进行相关研究。中间件、系统集成方面，IBM、HP、微软、SAP、 Sybase、Sun等国际巨头已经抢占了有利位置，国内像用友之类的ERP企业也开始涉足这一领域，但研发进程和投资力度显然与上述几家国外厂商无法同 日而语。总之，中国RFID目前还没有形成完善的产业链，市场上绝大部分产品都是代理国外的。虽然目前开展RFID业务的企业已经超过了100家，但总体 而言仍受核心技术缺失的困扰，真正具有较强自主研发实力的企业并不多，而且大都集中于低端产品，同质竞争比较严重，拥有政府背景的企业更易占据有利竞争位置。
<p>2006年，中国RFID市场仍会以产业链壮大与市场培育为主。标准的出台会对中国RFID产业产生积极的促进，预计会有越来越多的企业加入到这个行 业的竞争中，但只有像深圳远望谷、实华开这样有深厚背景和技术积累的企业才具有利用本地化优势与国外厂商一决高下的实力。不过，中国未来巨大的潜在市场规 模，无疑为国内各类RFID厂商提供了广阔的生存空间。
<h4><a></a><a>1.2 自动识别系统</a>（Automatic Identification Systems）</h4>
<p><a>图表</a> 1‑4 主要的自动识别技术
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/4.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=336 alt=4 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/4_thumb.png" width=462 border=0></a>
<h5><a></a><a>1.2.1 条形码系统</a></h5>
<p>条形码系统（Bar Code System）在过去20年历牢牢的统治着识别系统领域。 据专家估计，在上世界90年代早期，条形码系统在西欧的总容量曾达到30亿德国马克。
<p>条形码是由平行排列的线条和间隔所组成的二进制编码。它们根据预定的模式进行排列并且表达相应记号系统的数据项。宽窄不同的线条和间隔的排列次序可以解释成数字或者字母。它可以进行光学扫描阅读，即根据黑色线条和白色间隔对激光的不同反射来识别。但是尽管其物理原理相似，目前在用的大约有10数种不同的编码和布局方案。
<p>最流行的条形码方案是EAN 编码 (欧洲物品编码)，它在1976年设计，本来针对杂货店。EAN 编码是美国UPC (通用产品编码)的发展。今天， UPC表达为EAN 编码的子集，并且可以兼容之。
<p>EAN 编码由13位数字组成：国家标识符，公司标识符，制造商的物品标识符和校验位。如图3：
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/5.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=98 alt=5 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/5_thumb.png" width=363 border=0></a>
<p><a>图表</a> 1‑5 EAN编码的条形码实例
<p>除了EAN 之外，下列条形码在各种领域也很流行：
<p>n Code Codabar: 医学和临床应用，以及高安全需求的领域
<p>n Code 2/5 interleaved: 自动化工业，货物存储，货盘，集装箱和重工业。
<p>n Code 39: 流程工业，物流，大学和图书馆。
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/6.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" alt=6 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/6_thumb.png" border=0></a>
<p><a>图表</a> 1‑6 ISBN统一书号代码
<p>由于一维条码的信息容量很小，如商品上的条码仅能容纳几位或者几十位阿拉伯数字或字母，商品的详细描述只能依赖数据库提供，离开了预先建立的数据库，一维条码的使用就受到了局限。基于这个原因，人们迫切希望发明一种新的码制，除具备一维条码的优点外，同时还有信息容量大、可靠性高、保密防伪性强等优点。为了满足人们的这种需求，美国Symbol公司经过几年的努力，于1991年正式推出名为PDF417的二维条码，简称为PDF417条码（见下图1），即 &#8220;便携式数据文件&#8221;。
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/7_1.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=87 alt=7 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/7_thumb_1.png" width=240 border=0></a>
<p><a>图表</a> 1‑7 二维条码PDF417
<p>PDF417条码是一种高密度、高信息含量的便携式数据文件，是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。PDF417条码具有如下特点：
<p>n 信息容量大
<p>根据不同的条空比例每平方英寸可以容纳<strong>250</strong><strong>到</strong><strong>1100</strong>个字符。在国际标准的证卡有效面积上(相当于信用卡面积的2/3，约为76mm＊25mm), PDF417条码可以容纳1848个字母字符或2729个数字字符，约500个汉字信息。这种二维条码比普通条码信息容量高几十倍。
<p>n 编码范围广
<p>PDF417条码可以将照片、指纹、掌纹、签字、声音、文字等凡可数字化的信息进行编码。
<p>n 保密、防伪性能较好
<p>PDF417条码具有多重防伪特性，它可以采用密码防伪、软件加密及利用所包含的信息如指纹、照片等进行防伪，因此具有极强的保密防伪性能。
<p>n 译码可靠性高
<p>普通条码的译码错误率约为百万分之二左右，而PDF417条码的误码率不超过千万分之一，译码可靠性极高。
<p>n 修正错误能力强
<p>PDF417条码采用了世界上最先进的数学纠错理论，如果破损面积不超过50％，条码由于沾污、破损等所丢失的信息，可以照常破译出丢失的信息。
<p>n 容易制作且成本低
<p>利用现有的点阵、激光、喷墨、热敏/热转印、制卡机等打印技术，即可在纸张、卡片、PVC、甚至金属表面上印出PDF417二维条码。由此所增加的费用仅是油墨的成本，因此人们又称PDF417是&#8220;零成本&#8221;技术。
<p>n 条码符号的形状可变
<p>同样的信息量，PDF417条码的形状可以根据载体面积及美工设计等进行自我调整。
<p>在我国，中国物品编码中心介绍了二维条码国家标准《四一七条码》，即GB／T17172－1997。
<h5><a></a><a>1.2.2 光学字符识别</a></h5>
<p><strong>光学字符识别</strong><strong>（</strong><strong>Optical character recognition</strong><strong> (OCR)</strong><strong>）</strong>最早在上世纪60年代开始应用。人们开发了一些特殊的字体，以便能够使人和机器都能够阅读。OCR 系统最大的优点是信息的高密度性以及在紧急情况下人可以介入进行可视阅读。
<p>今天， OCR已经被用在生产，服务和管理领域，并且在银行用作支票的注册。
<p>但是， OCR系统没有成为通用手段的原因是其高昂的价格和与其他识别方式相比更加复杂的阅读器。
<h5><a></a><a>1.2.3 生物特征识别</a></h5>
<p><strong>生物特征识别（</strong><strong>Biometrics</strong><strong>）</strong> 是基于人类人体自身所带的某种身体或者行为特征进行模版化后对个体进行识别。因此，该方式具有其他方式所不具备的特征，即识别特征是天然的不可重复的（理论上）。对于方式来说，主要有指纹、掌纹、声音、语音、虹膜、视网膜、步态、面容等等。其中指纹方式是最流行和普遍的。
<p>关于生物特征识别的详细内容，请参见公司编写的《生物特征识别系统》和《生物特征识别和信息安全》两篇白皮书。
<h5><a></a><a>1.2.4 智能卡</a></h5>
<p><strong>智能卡（</strong><strong>smart card</strong><strong>）</strong>是一个数据存储系统，也可以提供附加的计算能力，并且对数据存储提供内置的防篡改支持<em>。</em>第一个智能卡是1984年发行的预付费电话卡。智能卡被放入阅读器中，这样，就与只能卡的触角之间形成了电流通路。阅读器向智能卡提供电源和和时钟脉冲。两者之间的数据传输使用双向串行接口的(I/O port)的方式。基于内部功能的不同，智能卡的基本类型分为两种：内存卡和处理器卡。
<p>智能卡的一个主要优势是存储在其上的数据可以防止非授权的访问和修改。因此，智能卡克易失得与这些信息相关的服务完成简单、便宜和安全的服务事务。因此在安全访问，认证、金融和电信领域使之成为微电子领域增站最快的一块。
<h5><a></a><a>1.2.5 RFID</a>系统</h5>
<p>RFID 和上述的智能卡系统非常紧密相关。和智能卡类似，数据被存储在一个电子数据承载设备——收发器（transponder）之上。但是，和智能卡不同，数据承载设备和阅读器之间的电源供应和数据传输不是基于接触的电流方式，而是基于磁场或电磁场的方式。其基本的依赖技术包括射频和雷达工程技术。RFID 的缩写代表radio frequency identification,即是说，信息是通过无线电波承载的。因为RFID 系统和其他识别系统相比有很多优点，RFID 系统开始大规模的占领市场。一个主要的应用领域就是非接触式智能卡在短程公共交通中的应用。
<h4><a></a><a>1.3 不同识别系统的比较</a></h4>
<p>上述各种不同的识别系统之间的比较如表&nbsp;<u>1.1</u>)所示。并且在接触式智能卡和RFID 系统之间有着紧密地联系。从某一方面说，后者弥补了前者的几乎所有缺点。
<p><a href="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/t1.png" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=743 alt=t1 src="http://www.blogjava.net/images/blogjava_net/SteelHand/WindowsLiveWriter/RFID1_B0B3/t1_thumb.png" width=674 border=0></a>
<p><a>图表</a> 1‑8 不同识别技术的比较 </p>
<img src ="http://www.blogjava.net/SteelHand/aggbug/134918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2007-08-07 12:51 <a href="http://www.blogjava.net/SteelHand/archive/2007/08/07/134918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RFID的领域应用 </title><link>http://www.blogjava.net/SteelHand/archive/2005/11/15/19795.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Tue, 15 Nov 2005 01:28:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/11/15/19795.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/19795.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/11/15/19795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/19795.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/19795.html</trackback:ping><description><![CDATA[<H1 class=style2 align=center><IMG height=1 alt=1 src="file:///C|/Documents%20and%20Settings/liusq/Application%20Data/Macromedia/Dreamweaver%208/OfficeImageTemp/clip_image002.gif" width=9>RFID的领域应用 </H1>
<P class=style2 align=left>RFID是一种自动识别技术。从本质上讲，它对其所标记的物品本身并不带来任何附加价值，甚至增加成本。但是，它却能够驱动与物品相关的背后应用带来巨大的价值，而这些则根据不同的应用体现而不同。这其中还有一个至关重要的驱动力，那就是以Internet、网络技术、通信技术、软件技术为代表的现代信息和通信技术（ICT）。只有在此基础上，RFID本身才能成为体系，自动标记和识别的数据才能得以广泛地传输和共享，从而连接随时随地的业务。即，企业和组织能够在前所未有的集成之基础上，自动地进行通信、协作、教育、销售、配送、采购、服务，以及企业内部的业务流程。<BR><BR>RFID 的本质是对物体或者人进行识别。其最大优点是自动化，不要求有人为干预，被标记的对象一旦处于阅读器的质询区域便能够被自动读取，而相关信息则实时传送到后段进行处理。被传递到业务系统的相关的数据主要包括： 标签编码（tag ID），阅读器编码（reader ID）以及读取时的时间片。所有的应用都是基于这些基本数据。 </P>
<P class=style2 align=left><STRONG>资产跟踪（<U>Asset Tracking）</U></STRONG> <BR>很自然，资产跟踪是RFID的最通用的应用。公司和组织可以将RFID标签置于那些流动的、分散的、易于丢失或者被盗的、难以定位和查找的物品之上。几乎每一种RFID系统都能够被用于资产跟踪。比如总部位于美国Secaucus, N.J.的一个第3方物流产商，NYK Logistics就使用RFID来跟踪其位于Long Beach, Calif.的集散中心的集装箱。它使用一种基于阅读器和主动标签的实时定位系统，可以将集装箱定位在10英尺之内。对于安全管理来说，一些敏感的信息设备，特别是移动设备（如笔记本电脑等），就可以使用RFID来跟踪管理。<BR><BR>加拿大航空公司使用RFID来跟踪用于世界各地机场的食品车，每年可以节约数百万美元。这样，不但因为使用了更少的食品车以及减少了保持库存的时间和费用，并且对世界各地移动的食品车的妥善管理也增进了效率和客户服务。 <BR>其它应用案例还包括，El Paso County使用915 MHz被动式标签来跟踪计算机和办公设备。一家法律公司Fish &amp; Richardson P.C.甚至使用13.56 MHz标签来跟踪重要文件。而一家新加坡公司使用13.56 MHz 技术来跟踪必须经过检测的建筑混凝土以保证建筑安全。 </P>
<P class=style2 align=left><STRONG>制造（<A href="http://www.rfidjournal.com/article/topics/10">Manufacturing</A>）</STRONG> <BR>RFID 应用在制造商其实已经很多年了。它可以对生产制造过程中的零件进行标识，甚至与工艺、制造参数、生产过程等相关。特别对自动化柔性生产线有巨大帮助。 <BR>波音公司就在其Wichita, Kansas的工厂中使用了一个915 MHz 的系统来跟踪零件的达到。而过去则是使用条形码来进行跟踪的，但条形码必须经过人工扫描，并且还必须经过特殊的化学处理。如果人工扫描环节出了差错，则会失去对零件的跟踪。而如今这些都是自动化的，并且减少了错误和需要的人手。 <BR>美国汽车通用公司（AM General ）也在其位于Mishawaka 的悍马汽车制造厂内使用了以一种主动式RFID 系统来跟踪零件。而 Club Car 则甚至将RFID作为其新的高尔夫球车装配线上的一个主要部件，将每辆车的生产时间从88分钟减少到46 分钟。 </P>
<P class=style2 align=left><STRONG>供应链管理（<A href="http://www.rfidjournal.com/article/topics/8/">Supply Chain Management</A>）</STRONG> <BR>RFID 技术过去已用于企业内部控制之用的供应链闭环控制。宝洁公司（Procter &amp; Gamble）在西班牙的配送中心使用了13.56 MHz 系统来增加吞吐量、减少了差错和成本。 </P>
<P class=style2 align=left>Paramount Farms公司，它加工大约整个美国60% 的pistachio 作物，并且出口到20多个国家，便使用了RFID来帮助自动化处理收购自越来越多的种植伙伴的产品。 </P>
<P class=style2 align=left>随着标准的出现，比如EPC等，使得不仅在企业内部进行供应链跟踪，借助于基于标准的编码和数据交换，以及Internet的网络支持，可以扩展到与企业相关的业务伙伴，从上游的供应商到下游的分销商。整个供应链在全球范围内形成，包括间接的第3方物流、运输商、以及零售商。并且，也在前所谓有的基础上提供了对生产（EPR）、零售（POS）、服务（CRM）的集成。 <BR>一家加拿大的护肤产品制造商Canus就使用了RFID 来减少其到零售客户的运输的检测成本，并且还使用基于RFID 的温度感应器来监控运输过程中的条件。 </P>
<P class=style2 align=left><STRONG>零售（<A href="http://www.rfidjournal.com/article/topics/9/">Retailing</A>）</STRONG> <BR>零售商们，如Best Buy, Metro, Target, Tesco 和 Wal-Mart 等，都是采用RFID技术的先驱。这些零售商都希望RFID能够整合供应链、有效管理库存和配送、以及有效的货架管理，以便减小成本和提高服务。 <BR>Wal-Mart已经有严格的时间表，已经要求他的前100家供应商提供RFID标记的产品，然后是前200家，500家直至全部供应商。与美国国防部DoD成为推动RFID的最大力量。 </P>
<P class=style2 align=left><STRONG>电子支付（<A href="http://www.rfidjournal.com/article/topics/11/">Payment Systems</A>）</STRONG> <BR>RFID 不仅在供应链中很火热，电子支付系统也很得到关注。包括不停车收费系统、泊车收费系统、公交车票务等等。 <BR>由于其中涉及到价值存储和转移，这里主要是高端RFID 系统，特别是智能卡。在世界很多城市、包括中国的很多城市，都采用非接触式的智能卡来进行公交系统：巴士、地铁、轻轨、电车甚至出租车。<BR>另外一个重要的方面就是银行支付，MasterCard 和Visa 都在计划将传统的磁卡转换成智能卡，增加安全性和解决其他很多问题。 </P>
<P class=style2 align=left><STRONG>安全和访问控制（<A href="http://www.rfidjournal.com/article/topics12/">Security and Access Control</A>）</STRONG> <BR>RFID 已经用于物理安全的访问控制很久了。以前一般使用低频的RFID标签。最近，供应商大都推介如今采用高频的13.56 MHz系统，提供更远的读取距离。 <BR><IMG height=1 alt=2 src="file:///C|/Documents%20and%20Settings/liusq/Application%20Data/Macromedia/Dreamweaver%208/OfficeImageTemp/clip_image002_0000.gif" width=9 border=0><BR>RFID 还用于保护重要财产。许多最新型号的汽车都使用这种技术来防盗。即在方向盘部位有一个内置的RFID reader，只有当读取到封装与钥匙中的标签发出的正确的识别号码时，才能够启动汽车。 <BR>主动式标签可以结合移动传感器来对极端敏感和高价值的东西，比如武器和珠宝进行监控，一旦检测到则会自动报警。RFID 标签也可以用于难以管理的移动计算和存储设备如笔记本电脑和USB存储设备等。 </P>
<P class=style2><STRONG>其他应用</STRONG> <BR>随着技术和领域的发展，会出现层出不穷的革新应用。比如，用于大型主题公园的儿童跟踪和识别，监狱犯人的识别和监控，钞票和票据的保安、病人和孤寡老人的监控等等。 <BR>无线传感器网络是下一代自主网络，它将无数的集成温度感应、移动感应、放射传感等等感应器的主动或者被动式RFID，并且具有自主的网络功能。美国军方已经研究出能够在实物中发现病原体的RFID传感器原型。这可以用于对通过食物感染疾病的恐怖袭击的检测和保护。 <BR>比如NASA的Jet Propulsion Laboratory 就在研究新一代的无线传感器网络。在其早期的实验中，可以用于检测土壤和空气的温度、湿度，以及光线、水流方向等等。 </P><img src ="http://www.blogjava.net/SteelHand/aggbug/19795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-11-15 09:28 <a href="http://www.blogjava.net/SteelHand/archive/2005/11/15/19795.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于生物识别的PKI</title><link>http://www.blogjava.net/SteelHand/archive/2005/09/26/14128.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Mon, 26 Sep 2005 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/09/26/14128.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/14128.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/09/26/14128.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/14128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/14128.html</trackback:ping><description><![CDATA[<P align=center><A name=_Toc104179672>基于生物特征识别的公开密钥基础设施</A></P>
<P align=center><STRONG>Biometrics-Based Public Key Infrastructure</STRONG></P>
<P align=center>&nbsp;</P>
<P align=center>摘要:</P>
<P align=center>&nbsp;</P>
<P>本文针对PKI体系所存在的难题和脆弱性，结合生物特征识别技术在网络安全中的应用提出了解决方案，并分析了相应的特点。</P>
<P>&nbsp;</P>
<P>关键字：生物特征识别 PKI 网络安全数字证书密钥管理智能卡</P>
<H1>前言</H1>
<P>PKI代表着基于公开密钥密码术对数字证书进行管理、分发、存储和撤销的过程以及相关的基础架构。迄今为止被认为是最有效地解决了安全服务（包括鉴别、认证、授权、完整性、机密性和不可否认性）的基础架构。并且，由于Internet等公开网络基础的飞速发展，它也成为在公开网络上实现安全的最好方式。</P>
<H1>PKI</H1>
<H2>PKI概述</H2>
<P>Internet是一个强大的、支持各种通信方式和电子事务的场所。它几乎无处不在，并且涉及到不计其数的服务器、交换机、路由器和应用系统。所有的网络设备和网络服务都不是某一组织所能控制，因此它不能视为一个可信网络。消息和事务在从一端传递到另一端时需要经过无法控制的无法预知的许多设备，每一个环节都存在潜在的巨大风险。因此，重要的是需要端对端（End to End）的安全。</P>
<P>另外，对于网络上发生的通信和事务，双方并不能看到、听到甚至知道对方，也无法判断接受到的信息是否是原始信息。因此需要用一定的方法来确保身份认证和通过非可信网络（包括Internet和超过用户控制范围的网络）发送的消息和事务的完整性。PKI 能够提供这些方法，并且能够应用于各中场合，特别是Internet。</P>
<H2>PKI的弱点?</H2>
<P>但是是否所有的数据传输都需要PKI呢？不是的。首先，并不是每一个人都需要如此级别的安全。许多用户以及用户使用的服务使用ISP或者公共终端（比如桌面计算机和浏览器、电子邮件程序等）提供的默认安全级别就已经足够。只有在涉及到隐私、机密、数据安全等商业和法定领域在非可信网络上，才需要这种高强度的安全。</P>
<P>整个PKI体系中最显著的问题是密钥的管理。因为不管对哪一方来说，也不管对密钥采用什么样的存储和管理方式，私钥是其中最重要的关键之处。也可以说，私钥的管理关系到整个PKI的安全。这也成为整个体系中最脆弱的部分。</P>
<P>如果私钥是保存在硬盘、软盘，或者其它非可信媒介之上的，则私钥本身存在失窃的严重风险，从而误用私钥，威胁PKI的安全。</P>
<P>为了密钥安全，目前的流行形式是双因素的认证。即将证书（私钥）保存在可信的硬件载体（Smart Card或者USB Key 设备等）之中。但即便这样，也可能存在着被偷窃、丢失、抢夺等风险。通常私钥都是通过一个PIN来保护的，而PIN只是一些简单的字符组合。这样就会遇到口令管理的怪圈：如果密码太过简单，则对暴力和猜测破解的方式抵御甚弱；如果密码太过复杂，则用户可能会在某处记录下来，这又是巨大的泄密风险。因此，如果PIN失密，并且因此而可以使用私钥，则整个PKI则毫无安全可言。其提供的安全服务越全面，受到的损害越大。</P>
<P>因此，密钥管理和密码安全成为PKI最大的脆弱之处。</P>
<H1>生物识别技术（Biometrics）</H1>
<P>生物识别（Biometrics）是一种基于个体的身体和行为特征对个体进行识别的自动化方法。比较通用的方法有指纹（fingerprint），面容（face），虹膜（iris），手型（hand geometry），语音（voice）和签名（dynamic signature）等。这些方法和技术，具有不同的特点，目前处在不同的技术和应用发展水平。而关于“最好”的生物识别方法类型则根据不同的应用需要而异。</P>
<P>生物识别系统对生物特征进行取样，提取其唯一的特征并且转化成数字代码，并进一步将这些代码组成特征模板，人们同识别系统交互进行身份认证时，识别系统获取其特征并与数据可中的特征模板进行比对，以确定是否匹配。</P>
<H1><A name=_Toc104179582>认证技术</A></H1>
<P>几乎所有的安全服务的基础都是基于用户鉴别和认证。只有合法的用户才能授予访问的权限。为了知道用户是否是合法，必须告诉计算机一个身份声明，以及相应的认证方法。最常见的方法是通过提供用户名称或者标识ID。通常可能有多种形式：用户姓名、序列号码、甚至x.500 的全限定名称。而用户的身份认证方式则根据采取的不同认证方法而不同。</P>
<P>身份认证的主要方式有三种：</P>
<UL>
<LI>你所知道的（Something you know），比如密码； 
<LI>你所拥有的（Something you have），比如令牌； 
<LI>你本来是（Something you are），可以测量的自身特点。</LI></UL>
<P>这通常称为是认证的三个基础。他们可以单独使用，也可以结合使用以提供更高强度的认证。</P>
<H2>基于生物特征识别的认证</H2>
<P>个体本身所具有的独特的身体和行为特征可以用来标识某个个体，这就可以用来进行认证。这种认证方式称为是生物认证。这就是一种“你本来是”类型的认证。</P>
<P>生物识别可以用来进行鉴别（<A href="mk:@MSITStore:C:\Documents%20and%20Settings\liusq\My%20Documents\Prentice%20Hall%20PTR%20-%20Biometrics%20and%20Network%20Security.chm::/0131015494/gloss01.html#gloss01entry35"><EM>identification</EM></A>）。这种情况是指用户并未声称自己的身份。生物识别系统试图通过比对采集的个体特征和事先存储的特征进行比对来进行相似性匹配。通常称为是1：N匹配。这种能够方式一般用于法律强制的环境中，比如刑事侦查和法院查证。这种方式一般返回的是一个最相似的集合结果。最后的决定结果一般需要人工参与。</P>
<P>生物识别也可以用于认证。如果某个用户声明了他/她的身份，就可以使用生物手段来进行认证。生物比对则试图在预先存储的特征签名数据库中查找，然后比对看时否提交的生物特征和登记的特征相匹配。如果匹配，则认证为合法用户。这通常称为是1：1匹配。这种匹配的返回结果很简单，那就是身份验证是，还是否。</P>
<H2>基于生物特征的多因素认证运行模式</H2>
<P>由于加入了生物识别特征，其运行是需要实时采集的模版和预先登记存储的参考模版进行比对，以此来决定用户的身份。因此，登记的参考模版的存储地点和验证时的比对操作的进行就显得比较灵活。</P>
<P>对于一个完整的基于生物特征识别的认证系统，可能的环节包括：</P>
<P><IMG height=155 alt=clip_image002.gif src="http://www.blogjava.net/images/blogjava_net/steelhand/clip_image002.gif" width=553 border=0></P>
<P>因此在这个链条中，模版的存储和比对的地点就存在多种组合，对应不同等额运行模式。如下表所示：</P>
<TABLE cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD width=114>
<P>比对存储</P></TD>
<TD width=114>
<P>服务器</P></TD>
<TD width=114>
<P>客户机</P></TD>
<TD width=114>
<P>采集设备</P></TD>
<TD width=114>
<P>智能卡</P></TD></TR>
<TR>
<TD width=114>
<P>服务器</P></TD>
<TD width=114>
<P>A</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>B</P></TD></TR>
<TR>
<TD width=114>
<P>客户机</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>C</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>D</P></TD></TR>
<TR>
<TD width=114>
<P>采集设备</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>E</P></TD>
<TD width=114>
<P>F</P></TD></TR>
<TR>
<TD width=114>
<P>智能卡</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>-</P></TD>
<TD width=114>
<P>G</P></TD></TR></TBODY></TABLE>
<P>其中某些组合可在操作性，安全性等方面具有较大缺陷，因此一般情况下不予采用。比如，因为参考模版是一种非常敏感的数据，因此尽可能存放在比较安全的地方。而且在比对过程中最好在一个受控的安全环境内进行。模版最好不离开相对安全的环境。</P>
<P>在上述四种信任链中，一般来说智能卡和服务器是相对比较安全的环境。并且基于安全的原则，敏感的数据尽量减少网络的传输环节。因此，如果模版是存储在服务器中，一般情况下比对最好在服务器中进行，这样可以让它处在一个受控的环境之中，并且减小传输的攻击威胁。</P>
<P>表中标注字母的组合是目前可以运行的组合方式，具有不同的特点和优缺点，可以分别适用于不同的需要。我们对其进行了列表对比：</P>
<P><STRONG>基于生物特征识别的网络安全运行模式比较</STRONG></P>
<TABLE cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD width=91>
<P>运行模式</P></TD>
<TD width=156>
<P>优点</P></TD>
<TD width=204>
<P>缺点</P></TD>
<TD width=117>
<P>主要应用</P></TD></TR>
<TR>
<TD width=91>
<P>A .服务器存储/服务器比对</P></TD>
<TD vAlign=top width=156>
<P>管理员可以全部控制用户的生物凭证模版；</P></TD>
<TD vAlign=top width=204>
<P>可能会涉及到个人隐私；</P>
<P>需要对原有架构作出更改；</P>
<P>敏感的数据在网络中传输，需要额外的安全连接；</P></TD>
<TD vAlign=top width=117>
<P>网络安全</P>
<P>国土安全</P></TD></TR>
<TR>
<TD width=91>
<P>B.卡内存储/服务器比对</P></TD>
<TD vAlign=top width=156>
<P>&nbsp;</P></TD>
<TD vAlign=top width=204>
<P>可能会涉及到个人隐私；</P>
<P>需要对原有架构作出更改；</P>
<P>敏感的数据在网络中传输，需要额外的安全连接；</P></TD>
<TD vAlign=top width=117>
<P>网络安全</P></TD></TR>
<TR>
<TD width=91>
<P>C.PC存储/PC比对</P></TD>
<TD vAlign=top width=156>
<P>用户可以控制其自身的模版；</P></TD>
<TD vAlign=top width=204>
<P>PC客户端本身是一个不安全的场合；</P>
<P>不能扩展到整个网络环境；</P></TD>
<TD vAlign=top width=117>
<P>终端安全</P>
<P>计算机安全</P></TD></TR>
<TR>
<TD width=91>
<P>D.卡内存储/PC比对</P></TD>
<TD vAlign=top width=156>
<P>用户可以携带其自身的模版；</P>
<P>可以漫游；</P></TD>
<TD vAlign=top width=204>
<P>在比对时，暴露了模版数据，可能会被窃取；</P>
<P>&nbsp;</P></TD>
<TD vAlign=top width=117>
<P>在线安全</P></TD></TR>
<TR>
<TD width=91>
<P>E.设备存储/设备比对</P></TD>
<TD vAlign=top width=156>
<P>用户可以携带其自身的模版；</P>
<P>用户敏感的模版不会暴露；</P></TD>
<TD vAlign=top width=204>
<P>不能漫游；</P></TD>
<TD vAlign=top width=117>
<P>物理控制</P></TD></TR>
<TR>
<TD width=91>
<P>F.卡内存储/设备比对</P></TD>
<TD vAlign=top width=156>
<P>模版可以被多种设备访问；</P>
<P>用户可以控制其自身的模版；</P></TD>
<TD vAlign=top width=204>
<P>对于PKI应用是由一个安全漏洞，因为保护证书的密码/PIN存储在卡中，会被发送到设备中进行比对。</P></TD>
<TD vAlign=top width=117>
<P>网络安全</P>
<P>物理控制</P></TD></TR>
<TR>
<TD width=91>
<P>G.卡内存储/卡内比对</P></TD>
<TD vAlign=top width=156>
<P>智能卡可以个人化；</P>
<P>卡内数据在没有匹配是不能被访问；</P>
<P>敏感的模版永不出卡；</P>
<P>用户可以控制其自身的模版，没有隐私侵犯问题；</P>
<P>与PKI架构整合时不需要对原有架构进行更改；</P></TD>
<TD vAlign=top width=204>
<P>&nbsp;</P></TD>
<TD vAlign=top width=117>
<P>网络安全</P>
<P>智能身份ID</P></TD></TR></TBODY></TABLE>
<P>从以上的运行模式比较中我们可以看出，有两种方式特别适合于应用于网络安全，即卡内存储/卡内与和卡内存储，服务器对比方式。</P>
<P>卡内存储/卡内比对方是是一种非常具有灵活性的模式，它能具有很好的隐私性、安全性、可伸缩性、互操作性和容易集成性。</P>
<P>而服务器为中心的方式则是一种强控制的方式，管理员可以控制所有相关的用户的生物凭证以及与之相关的安全策略，具有很好的适应性和应用范围。</P>
<P>关于卡内比对的运行方式，目前可以运行在主要的智能卡操作系统（COS）之上，比如PreciseBiometrics公司基于JavaCard系统的PRECISE MATCH™技术和G&amp;D的STARCOS SPK方案。</P>
<P>&nbsp;</P>
<H1>基于生物特征识别的PKI</H1>
<P>公开秘钥架构（PKI）是至今最为安全的提供认证和数字签名的方法。该方法基于非对称加密的基础，而且依赖于公开和私有的密钥对必须对应于相应的人。通常公钥要进行公开分发，而私钥则由拥有人妥善保管。</P>
<P>而公钥的保证一般是通过证书的方式来保证，证书由双方信任的机构来进行颁发。有多种不同的证书技术，常见的X.509 v3。某个证书包含一些描述与该公私密钥对相联系的人的身份信息。而且数字是自签名的，由一个权威机构完成，以保证证书的准确性和权威性。</P>
<P>数字签名则是由私钥所加密的文档的单向 Hash编码。通过对应的公钥或者证书就能验证该文档的有效性和完整性。一旦某人使用私钥进行了签名，那么任何获得了该对应公钥的人都可以使用该公钥来验证该签名的有效性。</P>
<P>数字签名的一个重要要求是不可否认性。然而，整个PKI架构中关键的因素是签名者的私钥，那么私钥管理的安全性就直接影响到签名的不可否认性。</P>
<P>所以，密码管理问题是传统PKI架构的主要问题。因此导致了非常复杂的密码管理和分发机制。首先必须部署基于软件的密码管理容器到签名的机器上。这些容器当然能保护不受非法的访问，但是，这种保护同样还是基于口令密码的机制，所以口令本身的安全问题同样存在。</P>
<H2>基于中心的策略</H2>
<P>某些组织找到了一种相对简化的PKI部署方式，这就使以服务器为中心的PKI架构。这种方式以一种中心服务器的方式来管理私钥，因此可以很快速的完成密钥的重新生成和验证。</P>
<P>这种方式现在为许多公司所用，包括大型的支付和金融公司，如Visa。它们通过网络来产生对应的私钥和签名以及证书。</P>
<P>这种方式实际上仅仅解决了布署的成本和复杂度，却没有解决安全的真正问题，私钥的安全性依然存在。</P>
<P>解决这种问题的一种方式是在服务器为中心的PKI的架构中引入生物特征识别技术。这样，有两个无与伦比的优点：</P>
<UL>
<LI>生物认证将签名直接对应到相应的个体而不是对应的证书/公钥； 
<LI>生物认证的高强度消除了非对称加密中私钥管理的难题。</LI></UL>
<P>其结构如图所示：</P>
<P align=center><IMG height=382 alt=clip_image004_0000.jpg src="http://www.blogjava.net/images/blogjava_net/steelhand/clip_image004_0000.jpg" width=554 border=0></P>
<P>其工作原理是，客户端采集生物特征信息，并传送到认证服务器进行认证。认证服务器能够决定用户的凭证是否有效，并自签一个认证信息给私钥保护器。私钥保护器然后根据文档信息计算数字摘要并向客户端返回一个数字签名。这样就在所有应用和服务间建立了完全信任的关系。</P>
<P>这实际上使用了我们前述的服务器存储/服务器比对的方式。</P>
<P>然后私钥保护器会和CA进行交互，以获得CA签发的公钥和证书。理想情况下，由于私钥和生物特征的重要性，因此，可以使用基于硬件的安全模块来进行管理，这样私钥永远不会暴露。</P>
<P>这种方式的优点是：</P>
<UL>
<LI>生物特征识别方式减小了否认的风险 
<LI>服务器为中心的密钥管理架构减小了部署成本和复杂度； 
<LI>强大的可伸缩性，可以使用与大规模的认证场合，并且密钥的产生非常快速； 
<LI>基于服务器的机构有利于进行痕迹审计； 
<LI>基于策略的认证方法，可以和其他原有的认证设施集成在一起； 
<LI>管理员对整个安全策略、密码体系和生物特征模板都具有控制权。</LI></UL>
<H2>基于端点的策略</H2>
<P>还有一种相对安全的保护私钥的方式是使用硬件令牌，比如智能卡和USB令牌。对智能卡来说，密钥对可以在卡中产生，而公钥输出作为验证，私钥在卡中受到保护。</P>
<P>这种方式的缺点是，卡可能会被窃取和丢失，而且通常这种方式产生的随机密钥对都有一定的有效期限，一旦失效必须在卡中重新生成。并且，对卡来说，同样也是通过用户名和口令（PIN）的方式来保护私钥的安全性。这样，口令威胁问题又会出现。</P>
<P>这种弱点也可以通过使用生物特征识别技术来进行解决。</P>
<P>根据以上的分析，非服务器比对方式中最安全的就是卡内存储/卡内比对的模式。这种模式下，模版的存储和比都在高度安全的卡内进行，而且敏感信息和秘密信息永不出卡。由于只有通过生物认证的情况下才可以使用卡中存储的数字证书，因此实际上可以免除PIN或者口令（当然也可以使用）。</P>
<P>除了基于生物特征识别的基于中心的策略所具有的优点之外，这种方式最大的优点是部署灵活和简单。它几乎不需要对原有基础实施进行改动，能够非常容易的融合到原有的PKI或者其它基于证书的安全基础架构之中。因为，所参与安全交互的只是经过生物认证后才使用的公钥（证书）。</P>
<P>同时，用户自身的生物特征在其自己拥有的卡（或其他设备）之中，用户能够具有控制权，消除了一些隐私的敏感性。</P>
<H1>基于生物特征识别PKI的特点</H1>
<P>基于生物特征的PKI主要有以下特点：</P>
<P>1.具体化。</P>
<P>虽然生物特征本身并不直接参与到网络安全和基础体系中，但是通过生物特征识别，能够将虚拟空间和显示空间联系起来。特别是对于认证和签名，可以追溯到具体的个体而不是抽象的二进制（用户名或者证书）。</P>
<P>2. 安全性</P>
<P>生物特征本身作为鉴别是目前最为安全的技术，特别是如虹膜识别等技术；</P>
<P>3. 自我管理</P>
<P>生物特征本身属于一种“我本来是”的特点，拥有人自我管理，减少了丢失、偷窃的可能（特别是活体识别技术）；减少了分发管理的负担；同时拥有人对其具有控制权。</P>
<P>4. 不可撤销性</P>
<P>生物特征识别技术不象数字方式的识别，一旦丧失安全性可以撤销重新颁发；生物特征本身是不可再生，不可重新发放的。因此，必须在使用过程中主要保护原始的生物特征信息（不是提取后的模板），比如使用轮流使用手指指纹，或者加入基于图像的扰动等。</P>
<P>5. 非绝对性</P>
<P>生物特征不管如何精确，却和数字手段不同，它是采用相似性来进行匹配的，而不是通过相等性来匹配的。所以，它不能直接应用在安全体系的密码体系之中。只能作为辅助的安全手段。</P>
<H1>结论</H1>
<P>传统的PKI技术面临着密钥管理和分发的难题，从而影响到PKI架构的广泛使用。</P>
<P>基于生物特征的识别能够解决这两个问题：首先，通过生物特征识别技术，可以将原有的私钥的管理难题和脆弱性得到解决，并且可以通过中心化策略和客户端策略来进行。前者能够在最大控制基础上，解决安全的密码分发和管理问题。而后者则更加灵活，与现有PKI架构无缝集成。</P>
<P>生物特征本身是个体自有特征，并且从逻辑上将认证和否认性追溯到具体的个体而不是抽象的数字代码。由于其天生性，也基本没有分发的管理负担。</P>
<P>基于生物特征识别的PKI，从逻辑上和技术上都加强了PKI。一方面有利于PKI的广泛应用，另一方面安全强度大大提高，对政府、军队和其它敏感行业尤其重要。</P>
<P>&nbsp;</P>
<H1>参考文献：</H1>
<UL>
<LI>公钥基础设施（PKI）：实现和管理电子安全 [美] Andrew Nash 等著，张玉清等译，清华大学出版社，2002年12月第1版。 
<LI>数字签名 Nohan Atreya 等著，贺军等译，清华大学出版社 2003年1月第1版。 
<LI></LI></UL><img src ="http://www.blogjava.net/SteelHand/aggbug/14128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-09-26 17:24 <a href="http://www.blogjava.net/SteelHand/archive/2005/09/26/14128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOP 10 Web应用安全之一：输入校验</title><link>http://www.blogjava.net/SteelHand/archive/2005/09/12/12727.html</link><dc:creator>铁手</dc:creator><author>铁手</author><pubDate>Mon, 12 Sep 2005 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/SteelHand/archive/2005/09/12/12727.html</guid><wfw:comment>http://www.blogjava.net/SteelHand/comments/12727.html</wfw:comment><comments>http://www.blogjava.net/SteelHand/archive/2005/09/12/12727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/SteelHand/comments/commentRss/12727.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/SteelHand/services/trackbacks/12727.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">TOP 10 Web</SPAN></B><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">应用脆弱性</SPAN></B><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">之一：未经验证的输入</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><BR>描述</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Web </SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">应用使用<SPAN lang=EN-US>HTTP </SPAN>请求<SPAN lang=EN-US>(</SPAN>也许还有文件，也是一种特殊请求<SPAN lang=EN-US>) </SPAN>来进行输入，并决定如何进行响应。攻击者可以篡改<SPAN lang=EN-US>HTTP </SPAN>请求的任何部分，包括<SPAN lang=EN-US>url</SPAN>，查询字符串（<SPAN lang=EN-US>querystring</SPAN>）<SPAN lang=EN-US>, headers, cookies, </SPAN>表单字段（包括隐藏字段），试图绕过服务器的安全机制。常见的通用输入篡改攻击包括：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">强迫浏览（<SPAN lang=EN-US>forced browsing</SPAN>）；<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">命令注入（<SPAN lang=EN-US>command insertion</SPAN>）；<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">交叉站点脚本（<SPAN lang=EN-US>cross site scripting</SPAN>）；<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">缓冲区溢出（<SPAN lang=EN-US>buffer overflows</SPAN>）；<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">格式字符串攻击（<SPAN lang=EN-US>format string attacks</SPAN>）；<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">SQL</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">注入（<SPAN lang=EN-US>SQL injection</SPAN>）；<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">有毒饼干（<SPAN lang=EN-US>cookie poisoning</SPAN>）；<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">o<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">隐藏字段操作（<SPAN lang=EN-US>hidden field manipulation</SPAN>），等等。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">某些站点试图通过过滤恶意输入来保护自己。但问题是编码信息的方式无穷无尽。这些编码方式看起来并不是加密的，所以似乎也用不着解码。但是，开发人员仍然经常忘记将所有的参数在使用之前解码为最简单的形式。参数应该在其被校验之前转换为最简单的形式，否则，恶意输入就可能掩饰自己从而流过过滤器。简化这些编码的过程称为是“规格化（<SPAN lang=EN-US>canonicalization</SPAN>）”。因为几乎所有的<SPAN lang=EN-US>HTTP </SPAN>输入都可以编码为多种格式，这种技术便可以打乱各种旨在利用和攻击上述弱点的攻击行为。这使得过滤非常困难。<SPAN lang=EN-US> <o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">有非常之多的<SPAN lang=EN-US>web </SPAN>应用仅使用客户端校验来验证输入。客户端校验机制是非常容易绕过的，这样就使得<SPAN lang=EN-US>Web</SPAN>应用几乎对恶意参数的攻击毫无保护。攻击者可以使用攻击甚至<SPAN lang=EN-US>telnet</SPAN>来产生他们自己的<SPAN lang=EN-US>HTTP </SPAN>请求。他们才不关心开发人员预定想要在客户端发生的时候事情呢。注意，客户端校验仅仅在提高性能和可用性方面有益，但是它毫无安全可言。因此，对于恶意参数攻击，服务器端校验是必须的。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">这种攻击的数量在不断上升，因为有大量的支持参数的“模糊化”（<SPAN lang=EN-US>“fuzzing”</SPAN>）、腐朽（<SPAN lang=EN-US>corruption</SPAN>）、以及野蛮强制增长的工具出现。不应该低估了这些使用非校验输入进行攻击的影响。实际上如果开发人员能够在使用参数之前对其进行验证，就可抵挡大部分的攻击。因此，最好使用一个中心化的、强大的验证机制来对所有<SPAN lang=EN-US>HTTP </SPAN>请求的输入都进行验证，这样利用此弱点进行攻击的数量就会大减。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><BR>环境影响<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">所有<SPAN lang=EN-US>web servers, application servers, </SPAN>以及应用环境都容易受到这种参数篡改的攻击。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><BR>如何决定你的应用是否脆弱<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">一个<SPAN lang=EN-US>Web</SPAN>应用所用的未经验证的<SPAN lang=EN-US>HTTP</SPAN>请求的任何和部分都称为是“脏” 参数。找出脏参数的最简单的方式是进行最详细的代码评审，找出所有从<SPAN lang=EN-US>HTTP</SPAN>请求提取信息的方法调用。比如，在<SPAN lang=EN-US>J2EE</SPAN>应用中，这些包括<SPAN lang=EN-US>HttpServletRequest </SPAN>类（以及其子类）中的方法。然后你就可以循着代码查看参数变量是在哪里使用的。如果变量在使用之前未作验证，这可能就是一个潜在的问题。在<SPAN lang=EN-US>Perl</SPAN>中，你因该考虑使用<SPAN lang=EN-US> “taint” (-T) </SPAN>选项。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">你也可以通过一些工具来找出脏参数，比如<SPAN lang=EN-US>OWASP</SPAN>的<SPAN lang=EN-US> WebScarab</SPAN>。它们可以查看和评审通过<SPAN lang=EN-US>HTTP/HTTPS</SPAN>的所有数据，并进行分析。<SPAN lang=EN-US><BR style="mso-special-character: line-break"><BR style="mso-special-character: line-break"><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">如何保护<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">保护很简单，那就是确保任何参数在被使用之前都进行了验证。最好的办法是使用一个中心化的组件库，比如<SPAN lang=EN-US>Java</SPAN>中的<SPAN lang=EN-US>Jarkarta Commons Validator.</SPAN>每个参数都演进行严格检查。涉及到过滤脏数据的“负面”方法或者依赖于签名的方法都不可能很有效率，并且难以维护。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">参数应该进行“正向”规格的检查，正向规格（<SPAN lang=EN-US> “positive” specification </SPAN>）的定义可包括：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<UL type=disc>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">数据类型<SPAN lang=EN-US>(string, integer, real, </SPAN>等<SPAN lang=EN-US>)<o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">允许的字符集<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">最大最小长度<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">是否允许<SPAN lang=EN-US>null<o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">是否必需<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">是否允许重复<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">数值范围<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">特定的法定值<SPAN lang=EN-US> (</SPAN>枚举<SPAN lang=EN-US>)<o:p></o:p></SPAN></SPAN> 
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">特定模式<SPAN lang=EN-US>(</SPAN>正则表达式<SPAN lang=EN-US>)<o:p></o:p></SPAN></SPAN></LI></UL>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><o:p>&nbsp;* 本系列整理自 OWASP（Opensource Web Applicaiton Security Project&nbsp;）</o:p></SPAN></P><img src ="http://www.blogjava.net/SteelHand/aggbug/12727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SteelHand/" target="_blank">铁手</a> 2005-09-12 11:52 <a href="http://www.blogjava.net/SteelHand/archive/2005/09/12/12727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>