Category: 安全技术培训

2008-11-21

ISO/IEC17799释疑

归类于: 安全技术培训 - 21 Nov 2008

中科院研究生院信息安全国家重点实验室 左晓栋

编者按:信息安全管理正在逐步受到安全界的重视,加强信息安全管理被普遍认为是解决信息安全问题的重要途径。但由于管理的复杂性与多样性,信息安全管理制度的制定和实施往往与决策者的个人思路有很大关系,随意性较强。信息安全管理也同样需要一定的标准来指导。这就是英国标准协会(BSI)制订并于1999年修订的《信息安全管理标准》(BS7799)受到空前重视的原因。如今BS7799的一部分已经在2000末被采纳为国际标准,以标准号ISO/IEC17799发布,全名为《信息安全管理操作规则》。我国很多行业已经在参照BS7799或ISO/IEC17799制定自己的行业信息安全管理法规。但需要指出,管理问题极为复杂,单纯依靠一部标准难免有失偏颇,况且国际信息安全界对ISO/IEC17799的争议很多。鉴于界内对BS7799或ISO/IEC17799的高度关注及其引发的各种争论,美国国家标准和技术研究所(NIST)在2001年8月发布了非官方性质的ISO/IEC17799 FAQ,以期通过对背景资料的介绍,使围绕ISO/IEC17799的讨论更有意义。本文作者从中摘录了部分材料,希望通过对ISO/IEC17799 FAQ的介绍,使大家能够从侧面更深入地了解ISO/IEC17799。

一、ISO/IEC17799的目的是什么?

根据官方的报告,ISO/IEC17799的目的是\”为信息安全管理提供建议,供那些在其机构中负有安全责任的人使用。它旨在为一个机构提供用来制定安全标准、实施有效的安全管理时的通用要素,并得以使跨机构的交易得到互信\”。

二、ISO/IEC17799覆盖那些内容?

作为一个通用的信息安全管理指南,ISO/IEC17799的目的并不是告诉你有关\”怎么做\”的细节,它所阐述的主题是安全策略和优秀的、具有普遍意义的安全操作。该标准特别声明,它是\”制订一个机构自己的标准时的出发点\”,并不是说它所包含的所有方针和控制策略都是放之四海而皆准的,也不是其它未列出的便不再要求。在这样的原则指导下,这份65页的文档简要地讨论了如下的主题:

 建立机构的安全策略
 机构的安全基础设施
 资产分类和控制
 人员安全
 物理与环境安全
 通讯与操作管理
 访问控制
 系统开发和维护
 业务连续性管理
 遵循性

三、ISO/IEC17799不涉及哪些内容?

ISO/IEC17799不是一篇技术性的信息安全操作手册,它讨论的主题很广泛,如上所列。但是,它对每一项内容的讨论都没有深入下去。所以,ISO/IEC17799没有提供关于任何安全主题的确定或专门的材料。

17799没有提供足够的信息以帮助一个机构进行深入的信息安全检查,它离认证项目也还差得远。但是,作为对各类信息安全主题的高级别概述,17799显然是非常有用的,它有助于人们在高级管理中理解每一类信息安全主题的基础性问题。

需要说明,目前已经有几个国家指出,17799的某些部分与其国家法律存在着冲突,尤其是在隐私领域。

四、ISO/IEC17799与密码、数字签名或PKI互操作性的关系是怎样的?

17799涉及到一些密码的事情。但是,17799中没有包含与密码项目的开发和管理–比如PKI互操作性–有关的足够信息。17799中谈论PKI的内容不过区区几句话。

NIST发布的800-21《密码实施准则》现在可以免费下载,这里面包含了建立各种与密码有关的安全项目时的实施准则,可见http://csrc.nist.gov/publications/nistpubs/index.html。

五、ISO/IEC17799与BS7799的关系怎样的?

BS7799是英国标准学会(BSI)开发的一篇由两部分组成的安全管理标准,在英国政府的支持下,它在英国得到了非常广泛的应用。BS7799的两部分如下:

7799-1(第一部分)
《信息安全管理操作规则》。它不是一个机构的信息安全管理项目的规范–这种规范称为\”信息安全管理系统(ISMS)\”,而且,到目前为止,7799-1还不能用于认证的目的。请注意,ISO/IEC17799的当前版本(不久它就会出新版本)是完全基于BS7799-1的。

7799-2(第二部分)
《信息安全管理系统规范》。该部分是安全控制的\”核对表\”(checklist)。英国方面认为,BS7799-2是ISMS,可以用于认证的依据。7799-2与ISO/IEC17799没有直接联系。

BSI在2000年初将BS7799-1交给了ISO/IEC JTC1(国际标准化组织和国际电工委员会的联合技术委员会),以供各成员国对其投票表决。根据ISO的规定,JTC1的永久成员或与JTC1有A类联系的组织,都可以将来自任何地方的已有标准直接提交给ISO/IEC …

注册信息安全专业人员资质评估准则

归类于: 安全技术培训 - 21 Nov 2008

目 录

一、总则 5
二、使用范围和适用对象 5
三、管理职责 5
3.1 管理部门 5
3.2 管理职责 5
四、基本能力要求 6
五、基本道德准则 6
六、考核标准 6
6.1.1 培训基本能力要求 6
6.1.2 安全体系与模型 7
6.1.2.1 多级安全模型 7
6.1.2.2 多边安全模型 7
6.1.2.3 安全体系结构 7
6.1.2.4 Internet 安全体系架构 7
6.1.2.5 信息安全技术测评认证 7
6.1.2.6 信息安全国内外情况 7
6.1.3 安全技术 7
6.1.3.1 密码技术及其应用 7
6.1.3.2 访问控制 8
6.1.3.3 标识和鉴别 8
6.1.3.4 审计及监控 8
6.1.3.5 网络安全 …

2008-11-20

基于DoS攻击的随机数据包标记源跟踪算法

归类于: 安全技术培训 - 20 Nov 2008

作者:饥饿加菲猫(QQ120474)
iojhgfti@hotmail.com

摘要: 针对互联网上日益猖獗的拒绝服务攻击(DoS),分析了传统的随机数据包标记算法的性能缺陷,提出一种新的基于散列消息鉴别码的返回跟踪算法HPPM,通过分析其性能指标,说明该算法提高了返回跟踪DoS攻击的效率和准确性。

感谢帮过我的几个高手袁哥[nsfocus], sunwear[E.S.T] , isno[xfocus] , scz[nsfocus]

1.引言
拒绝服务攻击,简称DoS(Denial-of-Service),是一种常见的黑客攻击行为。这种攻击行为通过发送带有虚假源地址的数据包请求,使网络服务器充斥大量等待回复的信息,消耗网络带宽或系统资源,使网络或系统服务负载过重,服务质量下降,直至瘫痪而停止正常的服务。有时,黑客为了提高攻击的效果,往往会联合多个攻击站点向受害者发动进攻。由于DoS攻击易于实施、难于防御,而且很难返回跟踪攻击源,使之成为一个严重侵扰网络服务提供商、政府机关和金融证券等机构正常运作的安全问题。

2.IP返回跟踪相关技术
为了彻底消除DoS攻击,必须追根溯源,找到真正的攻击机器或攻击者。这种方法被称为IP返回追踪技术(IP Traceback)。由于DoS攻击者在发送攻击数据包时往往会伪造源地址,使得IP返回追踪的难度很大。常用的IP返回追踪方法有:入口过滤(Ingress Filtering)、连接测试(Link Testing)、ICMP追踪[7]、登录分析(Logging)、源路径隔离引擎(SPIE)、IPSec追踪,以及随机数据包标记追踪(PPM)[2]。各种追踪技术之间的性能比较,如表1所示。

管理负担 网络负担 路由器负担 分布式能力 事后追踪能力 预防/反应
进入过滤 中等 低 中等 N/A N/A 预防
输入调试 高 低 高 好 差 反应
控制流 低 高 低 差 差 反应
登陆分析 高 低 高 极好 极好 反应
ICMP追踪 低 …

网络安全讲座:第九讲 审计结果

归类于: 安全技术培训 - 20 Nov 2008

我们已经学习使用了一些实施有效安全审计的工具。现在还剩下最后一步:提交细致的书面建议。建议应从三个角度来提出:

  ・ 为了能够确定安全策略和实施情况的差距,建议采用特定方法继续进行有效的审计。
  ・ 抵御和清除病毒,蠕虫和木马,修补系统漏洞。
  ・ 建议改善和增强如下内容:

   重新配置路由器
   添加和重新配置防火墙规则
   升级操作系统补丁类型
   升级旧有的和不安全的服务和TCP/IP堆栈
   加强网络审核
   自动实施和集中管理网络内部和边界安全
   增加入侵检测产品
   增强物理安全
   加强反病毒扫描
   加强用户级别的加密
   删除不必要的用户账户,程序和服务

  下表列出了对上图中每一个类别的改善建议

建立审计报告

  在本书的附录中A提供了一份审计报告样例,你的报告自然应该与它不同,但这份样例对报告的格式及结构提出了建议。文档中将报告问题和提出建议。

  在安全审计报告中应包含以下元素:

  ・总体评价现在的安全等级:你应该给出低、中或高的结论,包括你监视的网络设备的简要评价(例如,大型机,路由器,NT系统,UNIX系统等等)
  ・对偶然的、有经验的和专家级的黑客入侵系统做出时间上的估计。
  ・简要总结出你的最重要的建议。
  ・详细列举你在审计过程中的步骤:此时可以提及一些在侦查、渗透和控制阶段你发现的有趣问题。
  ・对各种网络元素提出建议,包括路由器,端口,服务,登录账户,物理安全等等。
  ・讨论物理安全:许多网络对重要设备的摆放都不注意。例如,有的公司把文件服务器置于接待台的桌子后,一旦接待人员离开,则服务器便暴露在网络攻击之下。有一次,安全审计人员抱着机器离开,安全守卫还帮了忙。
  ・安全审计领域内使用的术语。

  最后,记着递交你的审计报告。因为安全审计涉及了商业和技术行为,所以应该把你的报告递交给两方面的负责人。如果你采用电子邮件的方式递交报告,最好对报告进行数字签名和加密。

  增强一致性

  你不仅需要指出问题所在,还要排除问题。下面列出作为审计人员你应提出哪些建议。这些步骤总结了你在本课程中学到的安全规则。

  持续审计和加强安全的步骤

  下列是你对所有希望继续进行有效审计的公司建议采取的步骤。

   定义安全策略。
   建立对特定任务负责的内部组织。
   对网络资源进行分类。
   为雇员建立安全指导。
   确保个人和网络系统的物理安全。
   保障网络主机的服务和操作系统安全。
   加强访问控制机制。
   建立和维护系统。
   确保网络满足商业目标。
   保持安全策略的一致性。
   重复的过程。

  以上都是保证安全的基本步骤。许多国际性的公司要求符合这些需求。无论你提出了哪些方面的建议,你至少应该遵循某一种国际性的安全标准。

  安全审计和安全标准

  至少有三个国际安全标准可以供你在书写报告时进行参考。每种标准都可以帮助你使用正确的语言进行表达,更重要的是使你关注客户的商业需求。许多网络工作者认为这些标准没有必要,在处理更多的实际问题时很难将这些抽象的概念铭记在心。最后,将概念转变为实践是困难的。

  然而,因为许多公司要求遵循这些标准,所以它们也变得越来越重要。例如,许多政府在同公司进行商业合作时要求符合BS7799标准。

  ISO 7498-2

  国际标准组织(ISO)建立了7498系列标准来帮助网络实施标准化。其中第二个文件7498-2描述了如何确保站点安全和实施有效的审计计划。文件的标题是《Information Processing Systems,Open System Interconnection,Basic Reference Model,Part 2:security Architecture》,它是第一篇论述如何系统地达到网络安全的文章。

  英国标准7799(BS 7799) …

网络安全讲座:第七讲 攻击与渗透

归类于: 安全技术培训 - 20 Nov 2008

一旦黑客定位了你的网络,他通常会选定一个目标进行渗透。通常这个目标会是安全漏洞最多或是他拥有最多攻击工具的主机。非法入侵系统的方法有很多,你应当对这些方法引起注意。
  常见攻击类型和特征

  攻击特征是攻击的特定指纹。入侵监测系统和网络扫描器就是根据这些特征来识别和防范攻击的。下面简要回顾一些特定地攻击渗透网络和主机的方法。

  常见的攻击方法

  你也许知道许多常见的攻击方法,下面列出了一些:

  ・ 字典攻击:黑客利用一些自动执行的程序猜测用户命和密码,审计这类攻击通常需要做全面的日志记录和入侵监测系统(IDS)。

  ・ Man-in-the-middle攻击:黑客从合法的传输过程中嗅探到密码和信息。防范这类攻击的有效方法是应用强壮的加密。

  ・ 劫持攻击:在双方进行会话时被第三方(黑客)入侵,黑客黑掉其中一方,并冒充他继续与另一方进行会话。虽然不是个完全的解决方案,但强的验证方法将有助于防范这种攻击。

  ・ 病毒攻击:病毒是能够自我复制和传播的小程序,消耗系统资源。在审计过程中,你应当安装最新的反病毒程序,并对用户进行防病毒教育。

  ・ 非法服务:非法服务是任何未经同意便运行在你的操作系统上的进程或服务。你会在接下来的课程中学到这种攻击。

  ・ 拒绝服务攻击:利用各种程序(包括病毒和包发生器)使系统崩溃或消耗带宽。

  容易遭受攻击的目标

  最常遭受攻击的目标包括路由器、数据库、Web和FTP服务器,和与协议相关的服务,如DNS、WINS和SMB。本课将讨论这些通常遭受攻击的目标。

  路由器

  连接公网的路由器由于被暴露在外,通常成为被攻击的对象。许多路由器为便于管理使用SNMP协议,尤其是SNMPv1,成为潜在的问题。许多网络管理员未关闭或加密Telnet会话,若明文传输的口令被截取,黑客就可以重新配置路由器,这种配置包括关闭接口,重新配置路由跳计数等等。物理安全同样值得考虑。必须保证路由器不能被外人物理接触到进行终端会话。

  过滤Telnet

  为了避免未授权的路由器访问,你应利用防火墙过滤掉路由器外网的telnet端口和SNMP[161,162]端口

  技术提示:许多网络管理员习惯于在配置完路由器后将Telnet服务禁止掉,因为路由器并不需要过多的维护工作。如果需要额外的配置,你可以建立物理连接。

  路由器和消耗带宽攻击

  最近对Yahoo、e-Bay等电子商务网站的攻击表明迅速重新配置路由器的重要性。这些攻击是由下列分布式拒绝服务攻击工具发起的:

  ・ Tribal Flood Network(TFN)

  ・ Tribal Flood Network(TFN2k)

  ・ Stacheldraht(TFN的一个变种)

  ・ Trinoo(这类攻击工具中最早为人所知的)

  因为许多公司都由ISP提供服务,所以他们并不能直接访问路由器。在你对系统进行审计时,要确保网络对这类消耗带宽式攻击的反映速度。你将在后面的课程中学习如何利用路由器防范拒绝服务攻击。

  数据库

  黑客最想得到的是公司或部门的数据库。现在公司普遍将重要数据存储在关系型或面向对象的数据库中,这些信息包括:

  ・ …

网络安全讲座之六:侦察与工具

归类于: 安全技术培训 - 20 Nov 2008

如你先前所知, 黑客 和安全审计人员采取的第一步都是侦查网络。在本讲中,你将接触一些网络侦查的工具和方法。

安全扫描

  安全扫描以各种各样的方式进行。你将利用 Ping 和端口扫描程序来侦查网络 , 你当然也可以使用客户端 / 服务器程序,如 Telnet 和 SNMP 等,来侦查网络泄漏的有用信息。你应当利用一些工具来了解网络。有些工具很简单,便于安装和使用。有时,审计人员和黑客利用程序语言如 Perl, C,C++ 和 Java 自己编制一些工具 , 这是因为他们找不到现成的针对某种漏洞的工具。

  另外一些工具功能更全面,但是在使用前需要认真地配置。专门从事网络管理和安全的公司出售这些工具。你将在本课中学习使用这些工具。好的网络级和主机级扫描器会试图监听和隔离进出网络和主机的所有会话包。在学习这些“ Hacker-in-a-box ”的解决方案前,你应当先接触一些当前黑客常常使用的技巧。

Whois 命令

Whois 〔类似于 finger 〕是一种 internet 的目录服务, whois 提供了在 Internet 上一台主机或某个域的所有者的信息,如管理员的姓名、通信地址、电话号码和 Email 地址等信息,这些信息是在官方网站 whois …

网络安全讲座:第八讲 IDS系统

归类于: 安全技术培训 - 20 Nov 2008

我们已经接触了手工和自动运行的扫描程序。这些工具在审计过程中是非常有用的。你还使用了包嗅探器,这是另一个确定网络中存在哪些活动类型的工具。入侵监测系统会在两方面引起你的注意。首先,这种保护网络的形式变得越来越流行。你需要了解网络当前的结构来确定配置是否合适。第二,你可能在推荐这种产品,因此,你必须知道如何为特殊的网络情况推荐这种产品。

  在测试过程中你可以使用多种类型的工具。这些工具在整个的审计过程中是必不可少的。它们会帮助你在枯燥乏味的分析过程中节省时间。

  什么是入侵监测

  入侵监测系统处于防火墙之后对网络活动进行实时检测。许多情况下,由于可以记录和禁止网络活动,所以入侵监测系统是防火墙的延续。它们可以和你的防火墙和路由器配合工作。例如,你的IDS可以重新配置来禁止从防火墙外部进入的恶意流量。你应当理解入侵监测系统是独立于防火墙工作的。

  入侵监测系统IDS与系统扫描器system scanner不同。系统扫描器是根据攻击特征数据库来扫描系统漏洞的,它更关注配置上的漏洞而不是当前进出你的主机的流量。在遭受攻击的主机上,即使正在运行着扫描程序,也无法识别这种攻击。

  IDS扫描当前网络的活动,监视和记录网络的流量,根据定义好的规则来过滤从主机网卡到网线上的流量,提供实时报警。网络扫描器检测主机上先前设置的漏洞,而IDS监视和记录网络流量。如果在同一台主机上运行IDS和扫描器的话,配置合理的IDS会发出许多报警。

  入侵监测的功能

  大多数的IDS程序可以提供关于网络流量非常详尽的分析。它们可以监视任何定义好的流量。大多数的程序对FTP,HTTP和Telnet流量都有缺省的设置,还有其它的流量像NetBus,本地和远程登录失败等等。你也可以自己定制策略。下面讨论一些更常见的检测技巧。

  网络流量管理

  像Computer Associates’ eTrust Intrusion Detection(以前是SessionWall),Axent Intruder Alert和ISS RealSecure等IDS程序允许你记录,报告和禁止几乎所有形式的网络访问。你还可以用这些程序来监视某一台主机的网络流量,eTrust Intrusion Detection可以读取这台主机上用户最后访问的Web页。

  如果你定义了策略和规则,便可以获得FTP,SMTP,Telnet和任何其它的流量。这种规则有助于你追查该连接和确定网络上发生过什么,现在正在发生什么。这些程序在你需要确定网络中策略实施的一致性情况时是非常有效的工具。

  虽然IDS是安全管理人员或审计人员非常有价值的工具,但公司的雇员同样可以安装像eTrust Intrusion Detection或Intrude Alert这样的程序来访问重要的信息。攻击者不仅可以读取未加密的邮件,还可以嗅探密码和收集重要的协议方面的信息。所以,你首要的工作是要检查在网络中是否有类似的程序在运行。

  系统扫描,Jails和IDS

  在本教程的早些时候,你学习到如何应用不同的策略来加强有效的安全。这项任务需要在网络中不同的部分实施控制,从操作系统到扫描器、IDS程序和防火墙。你已经使用过系统扫描器,许多安全专家将这些程序和IDS结合起来。系统完整性检查,广泛地记录日志,黑客“监狱”和引诱程序都是可以同IDS前后配合的有效工具。

  追踪

  IDS所能做到的不仅仅是记录事件,它还可以确定事件发生的位置,这是许多安全专家购买IDS的主要原因。通过追踪来源,你可以更多的了解攻击者。这些经验不仅可以帮你记录下攻击过程,同时也有助于确定解决方案。

  入侵监测系统的必要性

  防火墙看起来好像可以满足系统管理员的一切需求。然而,随着基于雇员的攻击行为和产品自身问题的增多,IDS由于能够在防火墙内部监测非法的活动正变得越来越必要。新的技术同样给防火墙带来了严重的威胁。例如,VPN可穿透防火墙,所以需要IDS在防火墙后提供安全保障。虽然VPN本身很安全,但有可能通过VPN进行通信的其中一方被root kit或NetBus所控制,而这种破坏行为是防火墙无法抵御的。基于以上两点原因,IDS已经成为安全策略的重要组成部分。

  我们还需要注意的是,攻击者可以实施攻击使IDS过载,其结果可能是IDS系统成为拒绝服务攻击的参与者。而且,攻击者会尽量调整攻击手法,从而使IDS无法追踪网络上的活动。

  入侵监测系统的构架

  有两种构架的IDS可供选择,每种都有它的适用环境。虽然主机级的IDS具有更强的功能而且可以提供更详尽的信息,但它并不总是最佳选择。

  网络级IDS

  你可以使用网络级的产品,象eTrust Intrusion Detection只需一次安装。程序(或服务)会扫描整个网段中所有传输的信息来确定网络中实时的活动。网络级IDS程序同时充当管理者和代理的身份,安装IDS的主机完成所有的工作,网络只是接受被动的查询。

  优点和缺点

  这种入侵监测系统很容易安装和实施;通常只需要将程序在主机上安装一次。网络级的IDS尤其适合阻止扫描和拒绝服务攻击。但是,这种IDS构架在交换和ATM环境下工作得不好。而且,它对处理升级非法账号,破坏策略和篡改日志也并不特别有效。在扫描大型网络时会使主机的性能急剧下降。所以,对于大型、复杂的网络,你需要主机级的IDS。

  主机级IDS

  像前面所讲的,主机级的IDS结构使用一个管理者和数个代理。管理者向代理发送查询请求,代理向管理者汇报网络中主机传输信息的情况。代理和管理者之间直接通信,解决了复杂网络中的许多问题。

  技术提示:在应用任何主机级IDS之前,你需要在一个隔离的网段进行测试。这种测试可以帮助你确定这种Manager-to-agent的通信是否安全,以及对网络带宽的影响。 …

数据加密技术

归类于: 安全技术培训 - 20 Nov 2008

我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。在信息时代,信息可以帮助团体或个人,使他们受益,同样,信息也可以用来对他们构成威胁,造成破坏。在竞争激烈的大公司中,工业间谍经常会获取对方的情报。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。数据加密与解密从宏观上讲是非常简单的,很容易理解。加密与解密的一些方法是非常直接的,很容易掌握,可以很方便的对机密数据进行加密和解密。

一:数据加密方法
在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原文和密文时,破译加密算法虽然也不是很容易,但已经是可能的了)。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。例如,大家都知道的PKZIP,它既压缩数据又加密数据。又如,DBMS的一些软件包总是包含一些加密方法以使复制文件这一功能对一些敏感数据是无效的,或者需要用户的密码。所有这些加密算法都要有高效的加密和解密能力。

幸运的是,在所有的加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的“置换表”。事实上,80×86 CPU系列就有一个指令‘XLAT’在硬件级来完成这样的工作。这种加密算法比较简单,加密解密速度都很快,但是一旦这个“置换表”被对方获得,那这个加密方案就完全被识破了。更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个“置换表”就可以了。这种方法在计算机出现之前就已经被广泛的使用。

对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的,或者基于数据流本身。这时,破译变的更加困难,因为黑客必须正确的做几次变换。通过使用更多的“置换表”,并且按伪随机的方式使用每个表,这种改进的加密方法已经变的很难破译。比如,我们可以对所有的偶数位置的数据使用A表,对所有的奇数位置使用B表,即使黑客获得了明文和密文,他想破译这个加密方案也是非常困难的,除非黑客确切的知道用了两张表。

与使用“置换表”相类似,“变换数据位置”也在计算机加密中使用。但是,这需要更多的执行时间。从输入中读入明文放到一个buffer中,再在buffer中对他们重排序,然后按这个顺序再输出。解密程序按相反的顺序还原数据。这种方法总是和一些别的加密算法混合使用,这就使得破译变的特别的困难,几乎有些不可能了。例如,有这样一个词,变换起字母的顺序,slient 可以变为listen,但所有的字母都没有变化,没有增加也没有减少,但是字母之间的顺序已经变化了。

但是,还有一种更好的加密算法,只有计算机可以做,就是字/字节循环移位和XOR操作。如果我们把一个字或字节在一个数据流内做循环移位,使用多个或变化的方向(左移或右移),就可以迅速的产生一个加密的数据流。这种方法是很好的,破译它就更加困难!而且,更进一步的是,如果再使用XOR操作,按位做异或操作,就就使破译密码更加困难了。如果再使用伪随机的方法,这涉及到要产生一系列的数字,我们可以使用Fibbonaci数列。对数列所产生的数做模运算(例如模3),得到一个结果,然后循环移位这个结果的次数,将使破译次密码变的几乎不可能!但是,使用Fibbonaci数列这种伪随机的方式所产生的密码对我们的解密程序来讲是非常容易的。

在一些情况下,我们想能够知道数据是否已经被篡改了或被破坏了,这时就需要产生一些校验码,并且把这些校验码插入到数据流中。这样做对数据的防伪与程序本身都是有好处的。但是感染计算机程序的病毒才不会在意这些数据或程序是否加过密,是否有数字签名。所以,加密程序在每次load到内存要开始执行时,都要检查一下本身是否被病毒感染,对与需要加、解密的文件都要做这种检查!很自然,这样一种方法体制应该保密的,因为病毒程序的编写者将会利用这些来破坏别人的程序或数据。因此,在一些反病毒或杀病毒软件中一定要使用加密技术。
循环冗余校验是一种典型的校验数据的方法。对于每一个数据块,它使用位循环移位和XOR操作来产生一个16位或32位的校验和 ,这使得丢失一位或两个位的错误一定会导致校验和出错。这种方式很久以来就应用于文件的传输,例如 XMODEM-CRC。 这是方法已经成为标准,而且有详细的文档。但是,基于标准CRC算法的一种修改算法对于发现加密数据块中的错误和文件是否被病毒感染是很有效的。

二.基于公钥的加密算法

一个好的加密算法的重要特点之一是具有这种能力:可以指定一个密码或密钥,并用它来加密明文,不同的密码或密钥产生不同的密文。这又分为两种方式:对称密钥算法和非对称密钥算法。所谓对称密钥算法就是加密解密都使用相同的密钥,非对称密钥算法就是加密解密使用不同的密钥。非常著名的PGP公钥加密以及RSA加密方法都是非对称加密算法。加密密钥,即公钥,与解密密钥,即私钥,是非常的不同的。从数学理论上讲,几乎没有真正不可逆的算法存在。例如,对于一个输入‘a’执行一个操作得到结果‘b’,那么我们可以基于‘b’,做一个相对应的操作,导出输入‘a’。在一些情况下,对于每一种操作,我们可以得到一个确定的值,或者该操作没有定义(比如,除数为0)。对于一个没有定义的操作来讲,基于加密算法,可以成功地防止把一个公钥变换成为私钥。因此,要想破译非对称加密算法,找到那个唯一的密钥,唯一的方法只能是反复的试验,而这需要大量的处理时间。

RSA加密算法使用了两个非常大的素数来产生公钥和私钥。即使从一个公钥中通过因数分解可以得到私钥,但这个运算所包含的计算量是非常巨大的,以至于在现实上是不可行的。加密算法本身也是很慢的,这使得使用RSA算法加密大量的数据变的有些不可行。这就使得一些现实中加密算法都基于RSA加密算法。PGP算法(以及大多数基于RSA算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。这个对称算法的密钥是随机产生的,是保密的,因此,得到这个密钥的唯一方法就是使用私钥来解密。

我们举一个例子:假定现在要加密一些数据使用密钥‘12345’。利用RSA公钥,使用RSA算法加密这个密钥‘12345’,并把它放在要加密的数据的前面(可能后面跟着一个分割符或文件长度,以区分数据和密钥),然后,使用对称加密算法加密正文,使用的密钥就是‘12345’。当对方收到时,解密程序找到加密过的密钥,并利用RSA私钥解密出来,然后再确定出数据的开始位置,利用密钥‘12345’来解密数据。这样就使得一个可靠的经过高效加密的数据安全地传输和解密。

一些简单的基于RSA算法的加密算法可在下面的站点找到:
ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa

三.一个崭新的多步加密算法

现在又出现了一种新的加密算法,据说是几乎不可能被破译的。这个算法在1998年6月1日才正式公布的。下面详细的介绍这个算法:
使用一系列的数字(比如说128位密钥),来产生一个可重复的但高度随机化的伪随机的数字的序列。一次使用256个表项,使用随机数序列来产生密码转表,如下所示:
把256个随机数放在一个距阵中,然后对他们进行排序,使用这样一种方式(我们要记住最初的位置)使用最初的位置来产生一个表,随意排序的表,表中的数字在0到255之间。如果不是很明白如何来做,就可以不管它。但是,下面也提供了一些原码(在下面)是我们明白是如何来做的。现在,产生了一个具体的256字节的表。让这个随机数产生器接着来产生这个表中的其余的数,以至于每个表是不同的。下一步,使用\”shotgun technique\”技术来产生解码表。基本上说,如果 a映射到b,那么b一定可以映射到a,所以b[a[n]] = n.(n是一个在0到255之间的数)。在一个循环中赋值,使用一个256字节的解码表它对应于我们刚才在上一步产生的256字节的加密表。

使用这个方法,已经可以产生这样的一个表,表的顺序是随机,所以产生这256个字节的随机数使用的是二次伪随机,使用了两个额外的16位的密码.现在,已经有了两张转换表,基本的加密解密是如下这样工作的。前一个字节密文是这个256字节的表的索引。或者,为了提高加密效果,可以使用多余8位的值,甚至使用校验和或者CRC算法来产生索引字节。假定这个表是256*256的数组,将会是下面的样子:

crypto1 = a[crypto0][value]

变量\’crypto1\’是加密后的数据,\’crypto0\’是前一个加密数据(或着是前面几个加密数据的一个函数值)。很自然的,第一个数据需要一个“种子”,这个“种子” 是我们必须记住的。如果使用256*256的表,这样做将会增加密文的长度。或者,可以使用你产生出随机数序列所用的密码,也可能是它的CRC校验和。顺便提及的是曾作过这样一个测试: 使用16个字节来产生表的索引,以128位的密钥作为这16个字节的初始的\”种子\”。然后,在产生出这些随机数的表之后,就可以用来加密数据,速度达到每秒钟100k个字节。一定要保证在加密与解密时都使用加密的值作为表的索引,而且这两次一定要匹配。

加密时所产生的伪随机序列是很随意的,可以设计成想要的任何序列。没有关于这个随机序列的详细的信息,解密密文是不现实的。例如:一些ASCII码的序列,如“eeeeeeee\”可能被转化成一些随机的没有任何意义的乱码,每一个字节都依赖于其前一个字节的密文,而不是实际的值。对于任一个单个的字符的这种变换来说,隐藏了加密数据的有效的真正的长度。

如果确实不理解如何来产生一个随机数序列,就考虑FIBBONACCI数列,使用2个双字(64位)的数作为产生随机数的种子,再加上第三个双字来做XOR操作。 这个算法产生了一系列的随机数。算法如下:

unsigned long dw1, dw2, dw3, dwMask;
int i1;
unsigned long aRandom[256];

dw1 = {seed #1};
dw2 = {seed #2};
dwMask = {seed #3};
// this gives you 3 32-bit \”seeds\”, or …

2008-11-19

计算机安全等级划分标准

归类于: 安全技术培训 - 19 Nov 2008

几年前,美国国防部为计算机安全的不同级别制订了4个准则。橙皮书(正式名称为可信任计算机标准评估标准)包括计算机安全级别的分类。看一下这些分类可以了解在一些系统中固有的各种安全风险,并能掌握如何减少或排除这些风险。

1、D1 级
  这是计算机安全的最低一级。整个计算机系统是不可信任的,硬件和操作系统很容易被侵袭。D1级计算机系统标准规定对用户没有验证,也就是任何人都可以使用该计算机系统而不会有任何障碍。系统不要求用户进行登记(要求用户提供用户名)或口令保护(要求用户提供唯一字符串来进行访问)。任何人都可以坐在计算机前并开始使用它。

  D1级的计算机系统包括:
  MS-Dos
  MS-Windows3.xe及Windows95(不在工作组方式中)
  Apple的System7.x

  2、C1 级
  C1级系统要求硬件有一定的安全机制(如硬件带锁装置和需要钥匙才能使用计算机等),用户在使用前必须登录到系统。C1级系统还要求具有完全访问控制的能力,经应当允许系统管理员为一些程序或数据设立访问许可权限。C1级防护不足之处在于用户直接访问操作系统的根。C1级不能控制进入系统的用户的访问级别,所以用户可以将系统的数据任意移走。

  常见的C1级兼容计算机系统如下所列:

  UNIX 系统
  XENIX 
  Novell3.x或更高版本
  Windows NT
  
  3、C2 级
  C2级在C1级的某些不足之处加强了几个特性,C2级引进了受控访问环境(用户权限级别)的增强特性。这一特性不仅以用户权限为基础,还进一步限制了用户执行某些系统指令。授权分级使系统管理员能够分用户分组,授予他们访问某些程序的权限或访问分级目录。另一方面,用户权限以个人为单位授权用户对某一程序所在目录的访问。如果其他程序和数据也在同一目录下,那么用户也将自动得到访问这些信息的权限。C2级系统还采用了系统审计。审计特性跟踪所有
的“安全事件”,如登录(成功和失败的),以及系统管理员的工作,如改变用户访问和口令。

  常见的C2级操作系统有:

  UNIX 系统
  XENIX 
  Novell3.x或更高版本
  Windows NT

  4、B1 级
  B1级系统支持多级安全,多级是指这一安全保护安装在不同级别的系统中(网络、应用程序、工作站等),它对敏感信息提供更高级的保护。例如安全级别可以分为解密、保密和绝密级别。

  5、B2 级
  这一级别称为结构化的保护(Structured Protection)。B2 级安全要求计算机系统中所有对象加标签,而且给设备(如工作站、终端和磁盘驱动器)分配安全级别。如用户可以访问一台工作站,但可能不允许访问装有人员工资资料的磁盘子系统。

  6、B3 级
  B3级要求用户工作站或终端通过可信任途径连接网络系统,这一级必须采用硬件来保护安全系统的存储区。

  7、A 级
  这是橙皮书中的最高安全级别,这一级有时也称为验证设计(ve-rified design)。与前面提到各级级别一样,这一级包括了它下面各级的所有特性。A级还附加一个安全系统受监视的设计要求,合格的安全个体必须分析并通过这一设计。另外,必须采用严格的形式化方法来证明该系统的安全性。而且在A级,所有构成系统的部件的来源必须安全保证,这些安全措施还必须担保在销售过程中这些部件不受损害。例如,在A级设置中,一个磁带驱动器从生产厂房直至计算机房都被严密跟踪。

计算机安全的八大要素

归类于: 安全技术培训 - 19 Nov 2008

主要计算机安全方法基于以下八大要素:

计算机安全应该支持机构的使命。
计算机安全是良好管理不可分割的一部分。
计算机安全应该是有成本效益的。
计算机安全的责任和职责应该得到明确。
系统拥有者对机构外负有责任。
计算机安全需要广泛和集成的方法。
计算机安全应该得到定期的重新评估。
计算机安全受到社会因素的制约。

熟悉这些要素能够帮助人们更好地理解安全控制是如何支持整体计算机安全项目目标的。

1. 计算机安全应该支持机构的使命
计算机安全的目的是保护机构有价值的资源,如信息、硬件、软件。通过选择和实施适当的保护措施,安全能够通过保护其物理的和金融的资源、信誉、合法地位、员工和其它有形及无形资产为机构的使命提供帮助。遗憾的是,有时由于影响恶劣的选择、给用户、管理人和系统带来麻烦的规则和规程使安全被视为机构使命的绊脚石。相反的,选择良好的安全规则和规程不是为自身而存在的,它们的使用保护了重要资产从而支持整个机构的使命。

所以不应该为了安全而安全。举例来说,在私营机构的业务中,良好的安全通常要让位于创造利润。所以,安全就应该提高企业创造利润的能力。在公共机构中,安全通常要让位于为公民提供机构的服务。所以,安全就应该帮助改善为公民提供的服务。

为了达到这个目的,管理人既应该了解机构的使命也应该了解信息系统是如何支持使命的。在系统的角色被确定后,应该明确所定义的角色下的安全需求。这样安全就可以在机构使命中得以明确。

系统的角色和功能可能不仅被用于一个机构。在机构间的系统中,保护系统可以使每一个机构获益。例如,为了进行成功的电子交易,参与各方都需要安全控制来保护其资源。但是,买方系统的良好安全也会使卖方受益;如果买方系统受到欺诈或无法使用就会对卖方产生不利影响。(反过来也一样。)

2. 计算机安全是良好管理不可分割的一部分

信息和计算机系统通常是支持机构使命的关键资产。保护这些资产对于保护机构其它资源如金钱、物理资产或员工是至关重要的。

但是,信息和计算机管理的安全考虑并不能完全消除这些资产受到伤害的可能性。最终,机构管理者不得不决定其原因接受的风险等级,以便考虑安全控制的成本。

与其它许多资源一样,信息和计算机的管理可能会穿越机构的边界。当机构的信息和计算机系统与外部系统相连时,管理的责任也延伸到机构以外。这可能会需要管理层(1)外部系统所使用的主要安全级别或类型,或者(2)寻求外部系统为使用机构的需要提供充分的安全保证。

3. 计算机安全应该是有成本效益的

应该以货币和非货币的形式对安全的成本和效益进行仔细地研究以确保控制的费用不会超出预期的效益。安全应该是适当的并与相关计算机系统的价值和地位以及潜在损害程度、可能性和范围相称。依据特定系统的不同,安全的需求是多种多样的。

通常,安全是精明的商业措施。通过对安全方法的投资,机构可以减少与计算机安全相关的损失的频率和程度。例如,机构通过评估发现由于计算机系统遭到欺诈而导致每年有很严重的财产损失。安全方法如改进访问控制系统可能会大量减少这种损失。

此外,良好的安全项目可以阻止黑客并减少感染病毒的几率。消减这些威胁可以减少不良的公众影响、鼓舞士气和提高生产率。

获得安全效益既需要直接费用也需要间接费用。直接费用包括购买、安装和管理安全方法,如访问控制软件或消防系统。另外,安全方法有时会影响系统的性能、员工的士气或需要进行培训。所有这些被认为是附加在控制初始费用(通常被视为诸如管理访问控制软件包的费用)之外的费用。如果安全问题方案的直接或间接成本高于容忍问题造成的损失,则不会采用该方案。

4. 计算机安全的责任和职责应该得到明确

计算机系统的拥有者、提供者和用户以及其它与计算机系统安全有关的其他参与者的责任和职责应该得到明确。职责的设定可以是针对机构内部的也可以扩展到机构以外。

依据机构的规模不同,项目可大可小,甚至可以是一个管理人员的附属工作。但是,即使是小机构也要准备叙述机构政策的文件以明确计算机安全责任。这个要素不设定必须为所有系统提供的个人职责。例如,许多信息发布系统不要求进行用户识别,所以也就无法确定用户责任。

5. 系统拥有者对机构外负有责任
如果系统有外部用户,其拥有者有责任让其它用户了解安全方法的基本情况以便用户确定系统得到了充分的保护。(这不暗示所有的系统必须满足最小的安全等级,但是暗示系统的拥有者应该将安全的基本情况告知其客户或用户。)

另外为了共享安全信息,机构的管理人“应该采取及时、协调一致的行动来防止和响应对安全的破坏”以便帮助保护其他方面免遭损害。但是采取这些行动不应该危害系统的安全 。

6. 计算机安全需要广泛和集成的方法

为了提供有效的计算机安全需要考虑到计算机安全领域内外的各种领域的广泛的方法。这些广泛的方法延伸到整个信息生命周期。

(1)安全控制的相互关系
为了有效的工作,安全控制通常依赖于其它控制功能的正确运行。事实上这种依赖性广泛存在。如果选择适当,管理、操作和技术控制可以协调一致的工作。另一方面,缺乏对安全控制相互关系的透彻理解,这些控制就可能互相干扰。例如,缺乏对病毒探测软件包使用方法和时机的培训,用户就可能会错误地使用软件包从而导致其没有效果。结果,用户可能会错误地认为其系统永远不会有病毒从而在无意中传播病毒。在真实环境中,这些相互关系经常是非常复杂而难以确定的。

(2)其它相互关系
安全控制的有效性还依赖于诸如系统管理、法律问题、质量保证以及内部和管理控制等因素。计算机安全需要与包括物理和人员安全在内的传统的安全原则一起协调运作。还有许多机构或系统环境特有的重要依赖性。管理人应该清楚计算机安全与系统和机构管理的哪些领域相关联。

7. 计算机安全应该得到定期的重新评估

计算机及其运行环境是动态的。系统技术和用户、系统中的数据和信息、系统相关的风险在不断变化,从而安全需求也在不断变化。有许多类型的变化影响到系统安全:技术的发展(无论是系统拥有者采用的还是其他人可以使用的)、与外部网络的连接、信息价值或使用的变化或新威胁的出现。

另外,系统被实施的时侯安全决不会是完美的。系统用户和操作员会有意无意地发现绕过或破坏安全的新方法。系统或环境的改变会造成新的缺陷。严格忠实于规程的情况很少见,规程会随着时间的推移变得过时。所有这些问题都需要对计算机系统的安全进行重新评估。

8. 计算机安全受到社会因素的制约

支持机构使命的安全能力会受到各种因素的限制,如社会问题。例如,安全和工作场所的隐私可能存在冲突。通常,系统通过识别用户和追踪用户的行动来实施安全。但是,隐私保护的多样性会造成一些安全措施会侵犯到隐私。(在一些情况下,隐私受到法律的保护。)

虽然隐私是极其重要的社会问题但却不是唯一的。信息的流动,特别是政府与其公民之间的信息流动是安全可能需要得到修改以支持社会目标的另一种情况。另外,有些认证方法如视网膜扫描在有些环境和文化中可能会被认为是具有侵犯性的。

解决办法是在选择和实施安全措施的时侯仔细了解各方的权利和合法利益。这涉及到信息拥有者对安全的需要与用户的社会目标之间的平衡。但是,与正确使用安全控制相关的规则和期望处于变化之中。这种变化可能会有助于安全也可能对安全不利。

安全和社会规范之间的关系不一定是对立的。安全可以通过提供更准确和可靠的信息以及更高的系统可用性而增强数据和信息的访问和流动。安全也可以加强对个人隐私的保护或协助达成其它一些社会目标。

下一页 »