2.2 针对Windows数据的攻防
针对Windows操作系统的数据安全主要包括数据本身的安全、数据存储安全和数据处理安全三部分,主要面对的安全威胁包括电源故障、存储器故障、人为误操作、网络入侵、病毒、信息窃取和自然灾害等方面。
2.2.1 数据本身的安全
数据本身的安全主要通过数据加密技术来实现,包括可靠的加密算法和安全体系。常用的加密算法主要有对称加密算法和非对称加密算法(公开密钥密码体系)两种。本节重点介绍Windows提供的EFS加密和BitLocker加密方法。
1. EFS加密方法
EFS(Encrypting File System,加密文件系统)是Windows操作系统中基于NTFS(New Technology File System,新技术文件系统)实现对文件进行加密与解密服务的一项技术。EFS采用核心文件加密技术,当文件或文件夹被加密之后,对于合法Windows用户来说不会改变其使用习惯。当操作经EFS加密后的文件时与操作普通文件没有任何区别,所有的用户身份认证和解密操作由系统在后台自动完成。而对于非法Windows用户来说,则无法打开经EFS加密的文件或文件夹。在多用户Windows操作系统中,不同的用户,可通过EFS加密自己的文件或文件夹,实现对重要数据的安全保护。
(1)EFS的加密过程。在Windows操作系统中,选取位于NTFS分区中的待加密的文件夹后,依次选择“属性→常规→高级”选项,在打开如图2-3所示的对话框中选中“加密内容以便保护数据”复选框后,就可以对指定的文件夹或文件进行EFS加密操作。下面主要介绍EFS加密的实现原理。
图2-3 对指定的文件夹进行EFS加密操作
①当一个文件或文件夹被加密时,EFS调用Windows Crypto API,使用基于口令的密钥派生功能,采用Microsoft Base Cryptographic Provider随机生成一个用于加密和解密文件的对称密钥FEK(File Encryption Key,文件加密密钥)。
②在第一次使用EFS时,如果用户还没有非对称密钥(公钥和私钥对),系统会根据该用户(加密者)的SID(Security Identifier,安全标识符)生成一个1024位的RSA非对称密钥,其中公钥保存在该账户的证书文件中。
需要说明的是,SID是标识用户、组和计算机账户的唯一标识符,第一次创建该账户时,系统会给该账户生成一个唯一的SID。当用户登录系统并通过验证后,Windows的内部进程将调用该账户的SID而不是账户的用户名或组名。也就是说,创建了一个账户并将其删除后,如果再创建一个同名的账户,则新创建的账户与被删除的账户的SID是不一样的。
③EFS从用户证书中获取公钥,用来加密FEK。具体会在文件头中创建一个DDF(Data Decryption Field,数据加密域)字段,用来保存用公钥加密的FEK。接着,EFS使用每一个DRA(Data Recovery Agent,数据恢复代理)证书中的公钥分别加密FEK,然后将这些经DRA加密的FEK组合起来,共同保存在加密文件头部的DRF(Data Recovery Field,数据恢复域)字段中。
需要说明的是,当利用EFS加密数据时,一旦密钥数据丢失就会为数据的恢复带来困难,为解决这些问题,可以通过创建数据恢复代理(DRA)。DRA可以透明地访问其他用户加密的文件,并通过执行解密操作恢复经EFS加密的文件或文件夹,是EFS策略的一个重要部分。DRA访问加密文件的过程和加密用户访问加密文件的过程类似,也是通过公钥/私钥对来实现的。针对一个EFS加密用户,可以同时存在多个DRA,所以可能存在多个经不同DRA公钥加密的FEK。经EFS加密后的文件结构如图2-4所示。
图2-4 经EFS加密后的文件结构
④系统并没有将密钥保存在Windows操作系统的SAM或其他的文件夹中,而是经重新加密后保存在受保护的密钥存储区域中。为了安全保存私钥,EFS调用数据保护API(Data Protection API)一个256位的被称为用户主密钥(Master Key)的对称密钥,用该密钥加密私钥。被加密的私钥保存在“%UserProfile%\ApplicationData\Microsoft\Crypto\RSA\SID”文件夹中。
⑤为了安全保存用户主密钥,EFS再次调用数据保护API,通过计算该EFS用户凭据(包括该Windows登录账户的用户名和口令)的Hash值生成一个对称密钥,再用该密钥加密用户主密钥。被加密的用户主密钥保存在“%UserProfile%\ApplicationData\Microsoft\Protect\SID”文件夹中。
(2)EFS的解密过程。EFS的解密是其加密操作的逆过程,主要操作步骤如下。
①当Windows合法用户需要打开经EFS加密的文件时,EFS调用数据保护API,根据该登录账户的用户名和口令的Hash值生成一个对称密钥,再利用该密钥得到用户主密钥(Master Key)。
②通过用户主密钥,取回用户的私钥。
③通过用户的私钥,解密存放在文件头DDF(数据加密域)字段中的FEK。
④用FEK解密被加密文件,得到明文数据。
除以上的EFS加密用户外,其他被指派的数据恢复代理也可以通过类似的操作来解密被EFS加密的文件。
(3)EFS的特点。在谈到EFS的特点前,首先有两个基本的概念需要强调:一是传统的加密技术可分为对称加密和非对称加密(公钥密钥)两类,其中对称加密的效率要比非对称加密高,但对称加密的密钥管理较为困难,而EFS综合运用了对称加密和非对称加密两种技术,充分利用了对称加密的高效和非对称加密的安全性优势;二是身份认证技术是资源受保护系统对访问者身份的合法性进行验证的基础,而身份认证的关键技术是数据加密,即对数据访问者身份进行审核,只有符合条件的访问者才能对数据进行读取、写入、修改等操作。
EFS技术的特点主要体现在以下几个方面。
①对于用户来说,EFS技术采用了透明加密操作方式,即所有的加密和解密过程对用户来说是感觉不到的。这是因为EFS运行在操作系统的内核模式下,通过操作文件系统,向整个系统提供实时、透明、动态的数据加密和解密服务。当合法用户操作经EFS加密的数据时,系统将自动进行解密操作。
②由于FEK和用户主密钥的生成都与登录账户的用户名和口令相关,所以用户登录操作系统的同时已经完成了身份验证。在用户访问经EFS技术加密的文件时,用户身份的合法性已经得到验证,无须再次输入其认证信息。
③EFS允许文件的原加密者指派其他的合法用户以数据恢复代理的身份来解密经加密的数据,同一个加密文件可以根据需要由多个合法用户访问。
④EFS技术可以与Windows操作系统的权限管理机制结合,实现对数据的安全管理。
当然,EFS技术也存在一些设计上的缺陷和应用中的不足,主要表现为以下几方面。
①EFS技术中密钥的生成基于登录账户的用户名和口令,但并不完全依赖于登录账户的用户名和口令,如FEK由用户的SID生成。当重新安装了操作系统后,虽然创建了与之前完全相同的用户名和口令,但此账户非彼账户,导致原来加密的文件无法访问。为解决此问题,EFS提供了密钥导出或备份功能,但此操作仅取决于用户的安全意识。
②由于EFS将所有的密钥都保存在Windows分区中,攻击者可以通过破解登录账户进一步获取所需要的密钥,以解密并得到加密文件。
③EFS技术可以防止非法用户访问受保护的数据,但是具有删除权限的用户可以删除经EFS加密的文件或文件夹,安全性受到威胁。
2. BitLocker加密方法
BitLocker全称为Bitlocker Driver Encryption(BitLocker驱动器加密),是从Windows Vista开始新增的一种数据保护功能,以防止计算机中存储的数据因硬盘等硬件设备丢失而造成的数据失窃或重要信息泄露等安全问题。
(1)Windows不同版本对BitLocker功能的支持。Windows Vista中的BitLocker程序只能实现对操作系统驱动器的加密,从Windows Vista SP1和Windows Server 2008开始增加了对固定数据驱动器的加密,从Windows Server 2008和Windows 7开始增加了BitLocker to Go功能,可以对外部硬盘驱动器和USB闪存驱动器(U盘)等可移动数据驱动器进行加密。从Windows Server 2012和Windows 8开始,BitLocker程序引入了网络解锁功能,在域环境下通过自动解锁可以在重新启动系统时加入到域环境中,同时还提供了仅加密已用磁盘空间的加密方式,以加速加密过程。从Windows Server 2012 R2和Windows 8.1开始,BitLocker程序开始支持TPM(Trusted Platform Module,可信平台模块),可以对安装有TPM芯片的基于x86和x64的计算机上的数据实现从操作系统启动开始到应用程序运行全过程的安全保护。同时,恢复密码保护程序使用符合FIPS(Federal Information Processing Standards,美国联邦信息处理标准)的算法。
(2)BitLocker的加密原理。BitLocker采用128~256位的AES(Advanced Encryption Standard,高级加密标准算法)对指定的每个扇区单独进行加密,加密密钥的一部分源自于扇区编号。为此,两个存储状态完全相同的扇区也会产生不同的加密密钥。使用AES加密数据前,BitLocker还会使用一种称为扩散器(diffuser)的算法,确保即使是对明文的细微改变都会导致整个扇区的加密密文发生变化,这使得攻击者发现密钥或数据的难度大大增加。
BitLocker使用FVEK(Full Volume Encrypt Key,全卷加密密钥)对整个系统卷进行加密,FVEK又被VMK(Volume Master Key,主卷密钥)加密。因此,如果VMK被攻击者破解,那么系统可以通过更换新的VMK来重新加密FVEK,而不需要对磁盘数据解密后再重新进行加密。
使用BitLocker加密系统磁盘时,系统生成一个启动密钥和一个恢复密钥(recovery key)。恢复密钥是一个以文件方式存在的密码文件,为48位明文密码,该48位的密码分为8组,每组由6个数字组成,可以查看和打印保存。BitLocker保存的是恢复密钥,与之对应的是启动密钥。需要的时候,可以使用恢复密钥解密出被加密的磁盘副本。如果将BitLocker保护的磁盘转移到其他计算机上,可以使用恢复密钥打开被加密的文件。系统启动密钥和恢复密钥都可以备份保存。
(3)BitLocker支持的两种工作模式。根据独立设备的不同,BitLocker主要包含TPM(Trusted Platform Module,可信平台模块)和U盘两种工作模式。如果要使BitLocker工作在TPM模式下,计算机最低需要支持TPM v1.2。TPM芯片一般集成在计算机主板上,BitLocker会将其密钥保存在TPM指定的存储区域中。经BitLocker加密的系统引导磁盘启动时,先由TPM解密SRK(Storage Root Key,存储根密钥),再由SRK解密VMK,然后由VMK解密FVEK,最后由FVEK解密磁盘数据完成系统启动,启动过程如图2-5所示。如果计算机没有TPM芯片,可以使用U盘等USB设备来保存加密密钥和解密密钥,这时BitLocker需要工作在U盘模式下,此时用户必须输入正确的PIN(Personal Identification Number,个人识别码)或插入USB密钥并输入正确的启动口令(startup password);否则系统无法正常启动。
图2-5 支持TPM的BitLocker加密系统的启动过程
TPM是可信计算(Trusted Computing,TC)实现的基础,它为可信计算平台中实现数据的真实性、数据的机密性、数据保护,以及代码的真实性、代码的机密性和代码的保护提供密钥生成与管理、证书管理等安全保障。基于TPM的可信计算技术,用于保护指定的数据存储区,防止攻击者实施特定类型的物理访问,同时赋予所有在计算平台上执行的代码以证明它在一个未被篡改环境中运行的能力。BitLocker便是可信计算技术在Windows环境下的具体应用。
(4)BitLocker的启用。对于存有重要数据的磁盘分区,可以利用BitLocker程序对其直接进行加密,这样只有合法用户才能访问加密的数据内容,其他用户在尝试访问被加密的数据分区时,系统会弹出类似“拒绝访问”的提示。在对某一数据分区执行“启用BitLocker”项目后,在弹出的如图2-6所示的对话框中选中“使用密码解锁驱动器”或“使用智能卡解锁驱动器”复选框,如果本地计算机没有集成TPM芯片,就只能选择“使用密码解锁驱动器”方式。
图2-6 设置BitLocker的解锁方式
之后,在访问加密分区中的文件时,需要输入事先设置的密码。如果在本地计算机中同时安装了两个操作系统,当切换到另一个系统后试图访问加密磁盘分区中的文件时,系统会弹出类似“驱动器不可用”的提示。如果用户将加密分区所在的硬盘移动到其他计算机上,该加密分区中的内容也不能被直接访问。要能够访问,必须要使用加密该分区时创建的备份密钥,从而大大提升了硬盘数据的安全性。不过,当加密数据从NTFS加密驱动器复制到其他文件系统上时会自动解密。
2.2.2 数据存储安全
数据存储的对象是指数据在加工前需要查找的信息或数据流在加工过程中产生的临时文件。不管是哪类数据,都以某种格式记录在计算机内部或外部的存储介质上。数据存储安全主要针对的是存储在介质上的数据的安全管理,防止攻击者窃取数据或因管理不当造成数据的丢失或损坏。
1. 独立冗余磁盘阵列(RAID)技术
独立冗余磁盘阵列(Redundant Array of Independent Disks,RAID)始于20世纪80年代美国加州大学伯克利分校的一个研究项目,当时RAID被称为廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。后来RAID中的字母I被改为了Independent,RAID就成了“独立冗余磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。在系统和数据安全方面,RAID技术具有其明显的优势。
(1)RAID系统的结构。简单地说,RAID是由多个独立的高性能磁盘驱动器组成的磁盘子系统,图2-7是RAID的组成结构示意图。
图2-7 RAID的组成结构示意图
RAID系统由两个主要部件组成:RAID控制器和磁盘阵列。RAID控制器是RAID系统的核心,负责数据的交换和缓冲,并管理主机(或网络)与磁盘阵列之间的数据流。RAID控制器可以连接SAN(Storage Area Network,存储局域网络)、NAS(Network Attached Storage,网络附属存储)或DAS(Direct-Attached Storage,直连式存储)。虽然RAID由多个磁盘组成,但是对于主机来说,RAID就像单个大容量的虚拟磁盘驱动器。RAID控制器通常以高速接口技术(如光纤通道、SCSI等)与主机或网络相连接。
(2)RAID的工作方式。根据系统所提供的磁盘I/O性能和数据存储安全性的不同,目前普遍使用的RAID可分为RAID0、RAID1、RAID0+1、RAID3和RAID5等级别。
①RAID0。RAID0也称为带区集,是一种无冗余、无校验的磁盘阵列。如图2-8所示,当写入数据时,数据先被分割成大小为64KB的数据块,然后并行存储到带区集的每个磁盘中。系统读取磁盘数据时,将同时从各个磁盘并发读取数据块,经自动整合后形成一个完整的数据。RAID0的最大优势是通过快速读取,提高了磁盘I/O系统的性能。但当带区集中的任何一个硬盘或分区损坏时,将造成所有数据的丢失。
图2-8 RAID0的工作原理
②RAID1。RAID1即通常所讲的磁盘镜像,所以也称为镜像磁盘阵列,它是在一个硬盘控制卡上安装两块硬盘。如图2-9所示,其中一个设置为主盘(master),另一个设置为镜像盘或从盘(slaver)。
图2-9 RAID1的工作原理
当系统写入数据时,会分别存入两个硬盘中,两个硬盘中保存有完全相同的数据。一旦一个硬盘损坏,另一个硬盘会继续工作。RAID1具有很好的容错能力,但是当硬盘控制卡受损时,数据将无法读取。RAID1具有最高的安全性,但只有一半的磁盘空间被用来存储数据。
③RAID5。RAID5是一种带奇偶校验的带区集。它是在RAID0的基础上增加了对写入数据的安全恢复功能。如图2-10所示,数据块分散存放在带区集的所有硬盘中,同时每个硬盘都有一个固定区域(约占所使用硬盘分区的1/3)来存放一个奇偶校验数据ECC(Error Correcting Code,差错校验码)。当任何一个硬盘失效时,可利用此奇偶校验数据推算出故障盘中的数据来,并且这个恢复操作在不停机的状态下由系统自动完成。RAID5在使整个硬盘的I/O性能得到明显改善的同时,还具有非常好的容错能力,但硬盘空间无法全部用来保存正常数据。
图2-10 RAID5的工作原理
前面分别介绍了多种RAID方案,在这些方案中(除RAID0),不论何时有磁盘损坏,都可以随时拔出损坏的磁盘再插入好的磁盘,数据不会受到损坏,失效磁盘上的内容可以很快被重建和恢复,而且整个过程都由相关的硬件或软件来完成。
2. 双机热备
对于一些重要的系统来说,为了提高系统的可靠性和可用性,在一些关键部分可采用双机热备技术。双机热备系统的要求为:一台设备发生故障后,另一台设备能够立即接替工作,而且对相关的设备没有影响。在双机热备系统中,由一台设备接替另一台设备的工作过程对用户来说是透明的,即无感知的。
双机热备技术的实现方式,如图2-11所示。双机(活动主机和备用主机)位于同一个网络中,并共享同一个存储,它们之间通过心跳线实时传输彼此存在的信号。用户数据一般存放在磁盘阵列上,当活动主机出现故障无法提供正常服务后,备用主机继续从磁盘阵列上取得原有数据。
图2-11 双机热备技术的实现方式
双机热备系统是基于共同文件系统建立的,也就是活动主机和备用主机上的内容完全一致。心跳线的作用是让两台主机之间相互检测对方是否存在,服务是否健全,一旦任何一方心跳消失,则另一台主机立即接替,继续提供服务。目前,双机热备软件的主要功能就是处理心跳信号,在双机之间交换信息,并确保心跳和所有服务正常。
3. 数据迁移
数据迁移又称为数据的分级存储管理,是指将系统中很少使用或一段时间不用的数据,从本地存储设备迁移到辅助设备的过程。一般情况下,会将访问频率高的数据存放在性能较高的本地存储设备中,而访问频率低的数据则存放在相对廉价的辅助设备中。由本地设备与辅助设备构成一个协调工作的存储系统,通过制定策略对指定数据进行动态迁移。
数据迁移策略的制定和执行是一个相对复杂的过程,一般分为数据迁移前的准备、数据迁移的实施和数据迁移后的校验3个阶段。其中,准备工作是实施迁移的基础,需要对待迁移的数据源进行详细分析,包括数据的存储方式、数据量、数据的时间跨度等;实施工作是数据迁移中最为重要的一个环节,需要结合具体的环境要求,制定详细的实施步骤,并对涉及的技术进行测试,最后再实施迁移工作;校验是指在迁移实施工作结束后,对数据迁移质量的检查,包括对数据完整性、一致性、记录条数等内容的检查,它是判断被迁移后的系统能否正式启用的重要依据。
回迁是迁移的逆过程,一般可以通过将存档文件的名称列表保留在本地存储设备上来实现。当用户需要存档的文件时,会在存档目录中查找该文件,找到后便像访问本地文件一样来调用它。在调用过程中,文件从辅助设备(如离线存储、光盘等)回迁到本地设备(磁盘)。回迁过程在后台进行,文件从辅助设备回迁到本地设备的过程对用户是透明的。被回迁的文件,在用户处理结束后又迁回到辅助设备中。
4. 异地容灾
异地容灾是指在相隔较远的不同地点,分别建立两套或多套功能相同的信息系统,系统之间可以进行健康状态监视和功能切换。当其中一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以自动切换到另一套,使得应用系统可以继续提供服务,保证了业务的连续。
(1)异地容灾的指标。衡量异地容灾技术时,用到了两个指标RPO和RTO。其中,RPO(Recovery Point Object,恢复点目标)主要是指业务系统所能容忍的数据丢失量;RTO(Recovery Time Object,恢复时间目标)主要是指业务系统所能容忍的业务停止服务的最长时间,即从灾难发生到业务系统恢复服务功能所需要的最短时间。RPO针对的是数据丢失,而RTO针对的是服务丢失,二者没有必然的关联性。RPO和RTO的确定必须在进行风险分析和业务影响分析后根据不同的业务需求确定。
(2)容灾恢复关键技术。异地容灾系统所涉及的恢复技术一般包括数据恢复技术、应用恢复技术和网络恢复技术3种。
①数据恢复技术。数据恢复技术是指通过建立一个异地的数据备份系统,将其作为本地关键应用或重要数据的一个备份,以备本地数据或整个应用系统出现灾难时使用。与本地生产的数据相比,异地备份的数据既可以是完全实时的,也可以在确保可用的前提下存在一定时间上的滞后。对于数据备份和数据复制技术,根据实现方式的不同,可以分为同步传输方式和异步传输方式。同步方式是指数据在本地和异地都保存成功后,才会将数据成功存储的信息反馈给应用系统;异步方式是数据只要在本地存储成功,就将成功存储的信息反馈给应用系统,而数据存储到异地是在后台异步完成的。
②应用恢复技术。应用恢复技术是在数据容灾的基础上,在异地建立一套完整的与本地生产系统功能相同的备份应用系统,实现本地系统与异地系统之间的相互备份。这是一个相对复杂的工作,它不是单纯的在异地重建一套系统,而需要包括网络、主机、应用、安全等各种资源之间的协调。其中,涉及的主要技术包括负载均衡、远程镜像、快照、虚拟化等。数据容灾是应用容灾的基础,应用容灾是数据容灾的目标。
③网络恢复技术。异地容灾的实质是在不同地方建立不同的数据中心。其中,本地生产系统所在的数据中心称为主数据中心;而异地数据中心称为备援数据中心。早期的主数据中心和备援数据中心之间的数据备份,主要是基于SAN(Storage Area Network,存储区域网络)的远程复制(镜像)方式来实现,即通过光纤通道(Fiber Channel,FC)把不同地理位置的SAN连接起来,进行远程复制。当灾难发生时,由备援数据中心替代主数据中心的工作,以保证系统服务的持续性。随着IP技术的发展和广泛应用,可利用基于IP的SAN互联协议(如FCIP、iFCP、Infiniband、iSCSI等),通过已有的IP网络可将主数据中心SAN中的信息远程复制到备援中心SAN中。这种基于IP SAN的远程容灾备份方式,不但使存储空间得到更加充分的利用,而且使得部署和管理更加有效。
2.2.3 数据处理安全
数据处理安全主要指在数据处理过程的各个环节中,对数据的安全性进行管理,以防止攻击者窃取数据或造成数据的泄露。
1. 数据备份
数据备份是最传统也是最为可靠的一种安全防范技术。数据备份就是在其他介质上复制并保存数据的副本。例如,在日常的工作中,经常将重要数据备份到光盘、U盘、网盘等介质中,以备本地数据损坏后进行恢复。
常用的备份策略有两种:完整备份和增量备份。其中,完整备份是指把所选择的数据完整地复制到其他介质上;而增量备份仅备份从上次备份以来添加或变更的数据。对于完整备份,由于所有的数据都被复制到存储介质中的连续区域,恢复时也就比较简单,但在备份时要占用大量的网络和存储资源。而对于增量备份,每次都只将被修改的数据进行复制,这对于大文件和大数据库来说,在备份时是很方便、实用的。但在恢复数据时,数据分散在存储介质的不同区域甚至是不同存储介质上,导致恢复过程很复杂。为了在备份和恢复性能之间取得平衡,一般的解决方式是在一次完整备份后可以连续进行几次增量备份,但增量备份的连续次数被限制在很小的数目以内,超过这个数目就必须进行完整备份。
在数据备份中,往往有一份完整数据或数据块的多个复制存放在多个介质上。为了比较两个数据的一致性,现在可以通过Hash数据或数据块的内容来建立索引,同时也可以确保备份数据的真实性,防止备份数据的篡改。
2. 权限管理
权限是指为了保证职责的有效履行,任职者必须具备的对某事项进行决策的范围和程度。权限管理是指根据系统设置的安全规则或安全策略,用户可以访问而且只能访问自己被授权的资源,权限管理的原则是够用就行,即最低权限原则。
科学合理的权限管理策略可以有效保护数据,防止数据的破坏。在具体实施中,可以根据不同用户在组织内的角色和职责为其分配相应级别的权限。权限的赋予并不是越高越好,尤其是要慎重给用户赋予“管理员”权限。例如,对于共享服务资源的权限赋予,一般仅分配给用户访问特定资源或使用特定程序的权限。
3. 数据加密
数据加密是针对数据的可逆转换,即借助加密软件对数据进行可逆加密转换,并将验证口令以不可逆算法加密后写入文件中。通过加密,实现介质中存储的数据或网络节点之间传输的数据的机密性和完整性。加密是对访问控制方法的一种补充,对笔记本电脑、智能手机等易丢失设备上的数据或网络中的共享文件,可以通过加密进行有效的保护。前面介绍的针对Windows相应版本的EFS和BitLocker技术,都是通过加密技术来实现的。