IPSEC VPN

IPSEC VPN

IPSEC是为IP网络提供安全性的协议和服务的集合,是一种协议簇,一个基于网络层,应用密码学的安全信息协议组。一开始TCP/IP 没有考虑到信息的安全传输。IPSEC协议簇诞生的意义就是保证TCP/IP的安全传输。

伪头部校验:TCP再校验的时候会包含TCP数据部分、原始数据部分还会包括IP头部里面12字节(源IP和目标IP、协议字段、8位保留字段、长度字段)的校验。其中TCP必须,UDP选用。

IPSEC协议簇是针对IPV6设计的,在IPV6的产品中,IPSEC是强制使用,保证其数据传输的安全性;但是,也可以使用在IPV4中,作为一个可选项来使用

IPSEC提供的安全服务

安全信息要素:机密性、完整性、可用性,这三点被称为CIA的黄金三角,新添加可控性和不可否认性

  • 机密性 --- 数据加密

  • 完整性 --- 防篡改

  • 可用性

    • 数据源鉴别:身份认证

      • 预共享密钥 --- PSK --- 相当于两边对了一个暗号,这个暗号需要事先确定好。

      • 数字证书 --- 遵循PKI体系 --- 相当于一个被公认让你的身份证。

    • 不可否认性 --- 数字签名

  • 访问控制

    • 有限的流量保护 --- 在IPSEC中可以抓取感兴趣流,即可以设定哪些流量需要进入到IPSEC通道中,进行保密传输,哪些不需要进入通道

      • 注意

        • IPESC通道,不一定是隧道。隧道是VPN技术的核心技术。IPSEC本身是一个安全体系,它的作用并不一定是用来构建VPN隧道的。他也可以单纯的保证数据的安全传输。指的是要不要保护传输的数据;同理,GRE和GRE VPN也是同样道理,GRE是一种封装技术,而GRE VPN是通过利用GRE技术形成的一种VPN技术;并且MPLS VPN 和MPLS,MPLS它是一种标签转发技术,依靠标签转发。而不依靠路由转发。本身也是一种封装转发技术,MPLS VPN就是利用这个封装转发技术,来建立的一种VPN

重传攻击(重放攻击)

用户登录服务器的加密数据包被截取,其他人通过重新发送这个数据包给服务器,从而绕过登录,进入服务器

预防方法:

  • 数据包+时间戳

  • 数据包+序列号

重传攻击保护 --- 抗重放 --- IPSEC通过启用序列号的方法来进行防重放攻击。 --- 相当于启用一个一次性的数字,不会再次生效。

IPSEC协议簇

安全协议

  • 工作方式:即两种不同的封装方式。

    • 传输模式

      • 特点:没有创建隧道,主机和主机之间,不需要跨越隧道针对数据的保护,一般应用在私网内部。

      • 主要应用场景:经常用于主机和主机之间端到端通信的数据保护。因为没有创建隧道,所以,不能穿越公网,一般用于私网内部。

      • 封装方式 --- 不改变原有的IP包头,在原始的数据包头后面出入IPSEC的包头,将原来数据封装成为被保护的数据。主要针对IP层及以上的数据进行保护,具体的保护方法和范围需要由选用的安全协议来决定。

    • 隧道模式

      • 主要应用场景:因为可以跨公网创建隧道,所以,经常用于私网和私网之间通过公网进行通信,建立安全的VPN隧道。

      • 封装方式 --- 增加新的IP头部,之后是IPSEC的头部,再之后是原始的数据包封装。

  • 安全协议

    • AH(Authentication Header),鉴别头,协议号是51

      • AH提供的安全服务。注意:AH协议无法提供加解密的服务。

        1. 数据完整性保障 --- AH的主要工作就是保证数据的完整性的。

        2. 数据源认证 --- 身份认证

        3. 抗重放攻击

      • AH头部

        • 下一头部:上层协议使用类型

        • 安全参数索引(SPI):用来标识唯一的SA(安全联盟)的,SA相当于建立安全会话,用于参数协商。即IPSEC SA注意,这个SA也是分方向的,如果需要构建这个安全通道,需要构建两条方向相反的SA才行。不同的SA通道需要通过SPI进行标识,相当于SA的一个ID号。

        • 序列号:用来防重放,并且不允许重复

        • AH认证部分= 原始IP头部和数据。将其放在AH头部中的认证数据中。

      • AH保护范围

        • 传输模式

        • 隧道模式

      • 注意

        • AH在进行完整性校验时,因为,会包含IP头部,而IP头部中的部分数据比如TTL,TOS这些参数,在传递的过程中会发生变化,所以,AH在进行校验时将不包含这次参数。

        • 因为AH在进行完整性校验的时候,包含有IP地址信息,但是,NAT技术会修改IP地址信息,所以,AH协议无法通过NAT环境,否则将导致校验失败。

      • 补充

        • GRE协议号是47

        • TCP协议号6

        • UDP协议号17

    • ESP(IPSec Encapsulating Security Payload) --- 封装安全载荷协议

      • ESP提供的安全服务

        1. 数据完整性保障

        2. 数据源认证 --- 身份认证

        3. 抗重放攻击

        4. ESP可以提供数据的加解密服务,并且,加解密是可选的。

      • ESP的头部

        • 注意:ESP尾部主要目的是进行数据的填充。因为数据进行加密主要使用的对称加密算法,而其中分组加密需要针对固定长度的分组进行加密,如果最后分组的长度不足,则需要填充。满足加密的条件。还有就是下一头部因为包含数据信息,所以,也放在尾部进行保护,因为负载部分和尾部部分是会进行加密的。

        • 加密部分=数据部分+尾部部分

        • 下一头部:上层协议使用类型。之所以加密是因为会暴露信息上层协议信息,即泄露数据。

      • ESP的保护范围

        • 加密范围:除了IP头部内容和ESP头部的内容外,剩余所有网络层以上的数据都会进行加密。

        • 认证范围:认证范围广,不包含最外层的IP头部,包含ESP头部和数据部分以及ESP尾部,都进行认证生成摘要值,放在最后面的ESP认证里。

        • 传输模式

          • 红色区域便是加密区,TCP和载荷数据以及ESP尾,黄色区域是验证区包括:ESP和TCP,载荷数据和ESP尾。

        • 隧道模式

          • 红色区域是加密区域,整个数据包加ESP尾, 黄色区域是验证区域,这些区域内的数据是不能被修改的。

          • 此时原始IP头部加密是因为转发依靠新的IP头部转发。

    • AH和ESP对比

    • AH和ESP结合使用

      • 传输模式

      • 隧道模式

      • 结论:只要有AH协议参与的封装都无法通过NAT环境

IKE

IPSEC SA --- 注意,这个SA也是分方向的,如果需要构建这个安全通道,需要构建两条方向相反的SA才行。

手工建立IPSec SA

手工建立IPSec SA的一直生效

  • 先通过ACL列表抓取感兴趣数据流。

  • 配置IPSec的安全提议,即配置安全参数

    • transform --- 选取安全协议封装,AH/ESP

    • esp encryption(加密)-algorithm(算法) 定义做完整性校验,如MD5,SHA-1,SHA-2

    • ah encryption(加密)-algorithm(算法)

    • encapsulation(封装)-mode 确定封装模式,即传输模式或隧道模式

  • 配置IPSec安全策略

    • 针对流量做哪些处理、定义哪些参数。

    • 可以创建点到点,也可以创建点到多点。

    • 设置安全表示SPI。

    • 配置预共享密钥。

    • 两端都要配置。

  • 调用IPSec安全策略

动态建立IPSec SA

IKE(互联网密钥交换) ,主要用来完成IPSec中需要的密钥相关参数的协商工作。可以动态建立IPSec SA。

有两个版本IKE V1和IKE V2

IKE有多个协议构成:SKEME、OAKLEY、ISAKMP

  • ISAKMP(互联网安全联盟密钥管理协议)

    • IKE的协议本体 :主要用来完成IPSec中需要的密钥相关参数的协商工作。可以动态建立IPSec SA

    • 它本身是应用层协议,传输层使用到UDP协议,端口号是500,并且要求源端口和目标端口号都为500。

  • SKEME、OAKLEY 可以理解为IKE协商过程中使用到的资源库

第一阶段

主要目的是为了获得建立IPSec SA时使用的密钥,以及身份认证。并且身份认证是建立安全隧道的前提。

IKE SA (ISAKMP AS) ---这个SA是双向逻辑,不区分源和目标;而IPSec SA 是单向逻辑,通信双方都要建立。

第一阶段的过程

主模式

默认使用IP地址作为身份标识,并且需要通过6个数据包经行交互,安全性更高。

PSK(预共享密钥)和身份标识两者的含义不同,PSK是双方商量的是一样的,主模式用IP地址作为身份标识,它还要作为预共享密钥的识别标志。因为预共享密钥和身份标识有一种对应关系,目的是用来区分选取的预共享密钥,并且用于之后生成密钥,最后再第五第六个数据包解密得出IP地址与数据包传输用的IP对比中得到验证,即身份认证通过。


  • 第一二个数据包 :用来SA交换,即安全参数的交换。

    • CI --- cookie值:用作身份标识,每个数据包中都会携带,并且在IKEV2中,变成了SPI。

    • SA --- 里面携带的是需要协商的安全参数

      • 加密算法

        • AES等

      • 哈希算法

        • MD5等

      • 身份认证方式

        • PSK

        • 证书

      • DH组x

        • (x,的数字越大,越难被破解;一般不选择DH1,因为简单)

      • SA存活期

        • (默认84600s,一天时间)

    • 注意

      • 手工建立的SA,一经建立,则永久有效;但是IKE建立的SA,需要配置生存周期,周期时间到了之后,将重新建立SA。SA两端的数值不要求完全相同,如果时间不同,则按照最小的周期时间执行。

      • 第二个数据包主要确认安全参数,如果安全参数都可以对得上,则将继续完成后面的协商。如果参数没有对上,则将回复一个负载拒绝报文,用于结束IKE SA的建立。

  • 第三四个数据包:DH密钥算法交换,用来计算对称密钥。

    • NI,Nr --- 代表的是随机数

    • X,Y --- 代表DH算法中需要公开的参数。并且这里为了加强安全性,DH算法会生成四种密钥

      • PRF一种哈希算法,将预共享密钥和随机数去经行计算,生成种子密钥。预共享密钥没有传递,而是加入到算法中,如果双方预共享密钥相同,最后得出的密钥结果就是一样的,就相当身份认真了。

      • 种子密钥 --- 剩余三种密钥都需要加入种子密钥运算得出,并且,在种子密钥计算中会携带预共享密钥

      • SKEYID_e --- 加密密钥,用于第一个阶段中5,6个数据包和第二阶段数据包加密使用

        • g^ir --- 代表的就是DH算法中计算出来的Z;

        • CKY-I/CKY-R --- 数据包中携带的cookie值。

      • SKEYID_a --- 验证密钥 --- 用于第二阶段Hash时使用的密钥,即HMAC算法(结合密钥的Hash算法),安全性比不加入密钥的Hash算法更高。

      • SKEYID_d --- 推导密钥 --- 用于计算最终密钥(最终加密数据的密钥)的素材

        • 终加密数据的密钥,第二阶段用的密钥。推到密钥和第二阶段一起算出加密数据的密钥

  • 第五六个数据包

    • ID --- 身份信息 ---在主模式下,默认使用IP地址作为身份信息;

    • Hash ---- 针对之前SA信息再经行Hash运算,对比结果。这里的Hash运算会加入验证密钥一起进行,更加安全。

野蛮模式

注意:在野蛮模式中,可以自定义身份标识,主要是因为身份信息不需要加密。并且前两个数据包都无法加密。所以,野蛮模式安全性比较低。仅第三个数据包会进行加密。但是,野蛮模式适用于NAT环境以及IP地址不固定的环境下使用。

两种模式对比

第二阶段

基于已经建立的安全通道,来协商建立IPSec SA的安全参数。完成后,则标志这IPSec SA建立完成。

快速模式

与第一阶段用于也是UDP 500端口。

协商的安全参数

  • 加密算法 --- 正式传输数据时使用的加密算法(加密算法协商完成后,会计算密钥第一阶段计算出来的推导密钥会加入到该密钥的计算种);

  • Hash算法 --- 正式传输数据时经行完整性校验的算法;

  • 安全协议 --- AH/ESP

  • 封装模式 --- 传输模式/隧道模式

  • 存活时间

PFS

PFS(密钥完美向前保密) --- 正常工作中,第二阶段的最终密钥是通过第一阶段的推导密钥计算出来的,但是,这样做不完全。推导密钥泄露可能导致最终密钥的泄露。所以,可以开启这个PFS技术(注意:要开启这个技术,需要两端都开启才行),之后,则将在第二阶段重新进行一次DH交换,计算最终的密钥,从而提高安全性。

VPN黑洞

VPN黑洞 ---数据传输阶段,IPSec VPN隧道建立之后,如果其中一端的设备异常重启,而另一端的IPSec VPN隧道还在有效期内,则它发送的数据将有去无回,从而形成VPN黑洞 。

解决方法 --- DPD死亡对等体检测(保活机制)

DPD死亡对等体检测,它类似于心跳检测机制,采用空闲计时器原理。两边同时开启一个固定时间的计时器。在计时期间数据将直接发过去,但是如果计时器超时,则在数据发送前,先发送一个DPD检测报文。如果收到对方的DPD应答报文,则将重置计时器。如果没有收到,并且连续五次都没有收到,则将拆掉安全通道 。

IPSec VPN配置

IKE的配置流程

  1. 抓取感兴趣流

    • 创建ACL列表,要创建高级ACL列表,因为后面配置IPSec安全策略中调用的ACL列表只能是高级ACL列表。并且高级ACL列表可以指定源和目标,精确匹配到哪些流量要走VPN隧道,哪些流量不需要走隧道。如果是基础ACL列表,只要是到抓取人发的流量都走隧道,就有可能绕远。

    • [r1]acl 3000 --- 这里只能选择使用高级ACL列表,因为后面调用的时候,仅能调用高级的
      [r1-acl-adv-3000]rule permit ip
  2. 配置IKE安全提议

    • [r1]ike proposal 1 --- 创建IKE安全提议,数字1-99,用来区分不同的IKE安全提议。
      [r1-ike-proposal-1]
       ​
      [r1-ike-proposal-1]encryption-algorithm aes-cbc-128 --- 定义加密算法,缺省是DES算法
       ​
      [r1-ike-proposal-1]authentication-algorithm md5 --- 定义校验算法,缺省是SHA1
       ​
      [r1-ike-proposal-1]authentication-method pre-share --- 定义认证方式,缺省是预共享密钥
       ​
      [r1-ike-proposal-1]dh group2 --- 定义DH组,缺省DH组1
       ​
      [r1-ike-proposal-1]sa duration ? --- 定义SA的老化时间
        INTEGER<60-604800> Value of time(in seconds), default is 86400
      [r1-ike-proposal-1]sa duration 86400 --- 建议:老化时间修改的时候,要大于600S,避免频繁更新带来的资源消耗。

  3. 配置IKE对等体

    • [r1]ike peer aa v1 --- 需要声明对等体的名称(自定义),第一次进入时,需要写版本号。
      [r1-ike-peer-aa]
       ​
      [r1-ike-peer-aa]ike-proposal 1 --- 关联IKE安全提议
      [r1-ike-peer-aa]exchange-mode ? --- 选择一阶段的模式
        aggressive Aggressive mode --- 野蛮模式
        main Main mode --- 主模式
      [r1-ike-peer-aa]exchange-mode main --- 这里缺省选择的是主模式
       ​
      [r1-ike-peer-aa]pre-shared-key cipher 123456 --- 定义预共享密钥的具体值,注意,两边必须一样
      [r1-ike-peer-aa]remote-address 23.0.0.2 --- 三位一体 
           1,邻居对等体的建邻地址,即指明远端的IP地址;
           2,参与查找预共享密钥,根据IP地址,查找对应的预共享密钥,并且计算出密钥,对比身份标识,验证对端身份。;
           3,作为身份标识验证对端身份。

  4. 配置IPSec的安全提议

    •  [r1]ipsec proposal aa --- 需要定义一个提议的名称
       [r1-ipsec-proposal-aa]
       [r1-ipsec-proposal-aa]transform esp --- 定义安全协议 --- 缺省esp
       [r1-ipsec-proposal-aa]esp encryption-algorithm aes-128 --- 定义数据加密算法,缺省为des
       [r1-ipsec-proposal-aa]esp authentication-algorithm md5 --- 定义数据验证算法,缺省为md5
       [r1-ipsec-proposal-aa]encapsulation-mode tunnel --- 选择封装模式 ,缺省为隧道模式。

  5. 配置IPSec的安全策略

    •  [r1]ipsec policy aa 1 isakmp --- 需要定义策略的名称和编号,并且需要选择手工模式还是IKE的方式。
       ​
       [r1-ipsec-policy-isakmp-aa-1]security acl ? --- 关联ACL列表
        INTEGER<3000-3999> Apply advanced ACL
       [r1-ipsec-policy-isakmp-aa-1]security acl 3000
       ​
       [r1-ipsec-policy-isakmp-aa-1]ike-peer aa --- 关联IKE对等体
       ​
       [r1-ipsec-policy-isakmp-aa-1]proposal aa --- 关联ip

  6. 接口调用

    • [r1-GigabitEthernet0/0/0]ipsec policy aa

  7. 其他

    •  [r1]display ipsec sa --- 查看IPSec SA
       
       [r1]display ike sa --- 查看IKE SA

IPSec协议簇补充

两个数据库

  • SPD --- 安全策略数据库

  • SAD --- 安全关联数据库

解释域DOI

  • 可以理解为操作空间,将标准,规则都规范起来,统一在解释域中操作。

IKE V2版本

IKEV1的缺点

  1. 协商速度慢

    • 如果第一阶段使用主模式 --- 6 + 3 = 9 条消息完成IPSEC SA的协商;

    • 如果第一阶段使用野蛮模式 --- 3 + 3 = 6条消息完成IPSEC SA的协商。

    • KEV2针对协商速度进行了优化

      • 在IKEV2中,第一阶段协商IKE SA仅需要两个数据包就可以完成;而第二个阶段,在协商IPSEC SA时,也仅需要两个数据包就可以完成 --- 2 + 2 = 4

  2. IKEV1不支持远程用户接入

    • 如果IKEV1想要接入远程用户,可以结合l2tp来构建VPN隧道,只能借助l2tp,通过ppp协议完成远程用户的认证。

    • 而IKEV2增加EAP的认证方式来完成身份认证,则可以实现远程用户的接入。防火墙上,一般V1和V2同时开启,发起协商的时候,一般使用IKEV2,接受协商的时候,同时支持V1和V2。

IPSEC VPN的应用场景

IPSec 不支持动态路由协议

IPsec在协议设计时定位便是一个点对点的协议,这个特点可以通过Ipsec SA看出:IPsecSA通过三元组来唯一标识(目的IP,SPI, 协议号),目的IP都是单播地址,因此一个SA只能对应一个VPN节点,总而言之:ipsec不支持保护组播报文和广播报文。因为ipsec只能跑单播,动态路由使用组播。

GRE虽然同样是点对点协议,却可以封装组播报文和广播报文,但是不具备机密性和源认证等特点;IPsec协议虽然具有机密性和完整性保护的优势,但是无法封装组播报文和广播报文,因此结合两个协议的优势,GRE over IPSec应运而生,这样既可以封装单播、组播、广播报文,还可以加密数据流。

IPSec VPN应用场景

  • IPSec VPN网关部署

    • VPN设备安置在内网和公网的边界位置,这种方式最为简单,就是数据来到出口后,判断是否需要走VPN隧道,匹配上的流量则通过VPN隧道安全的传输到对端私网中。(两边的私网网段需要区分开,否则将导致地址冲突)网关部署的问题:不太安全,因为边界设备将承载很多攻击行为,而VPN设备只是保证业务数据安全的设备。

    • 解决方案:

      1. 使用防火墙在边界充当VPN设备(但是,一台设备需要承担太多的功能,可能导致性能不足)

      2. VPN设备下沉到内网中 --- VPN的单臂部署(NAT下的VPN部署场景)

  • IPSec VPN单臂部署(NAT场景下的VPN部署)

    • IKE协商中的问题

      1. 我们企业一般会采用NAPT的方式来进行NAT转换。但是,在IKE协商中,要求源目端口号必须时UDP 500,否则可能导致协商失败。所以,在NAPT的环境下,则可能更改端口号,导致协商失败。

        • 解决方案:NAT - T

      2. 身份认证的问题:主模式无法通过NAT环境

        • 解决方案:使用野蛮模式。

    • 数据传输阶段的问题

      • AH在进行完整性校验的时候,会包含IP地址信息,所以,NAT如果转换了IP地址,则将导致校验失败。所以,在NAT环境下,无法使用AH协议。

        • 解决办法:使用ESP协议。但是,使用ESP协议还需要分情况来看

          • 如果ESP选择传输模式

          • 问题:如果ESP选择传输模式

            • 四层封装的时候,里面存在伪头部校验。所谓伪头部就是传输层的协议在进行封装的时候,也需要进行完整性校验,但是,这个完整性校验的时候,还需要包含三层IP头部中的部分数据一起进行校验。这些数据中,就包含了IP地址的信息。在正常的NAT中环境,数据进行NAT转换(转换IP地址或者端口号)数据包中传输层的伪头部校验也会重新计算,但是,在ESP选择传输模式的封装下,因为此时,传输层的内容已经被加密了,所以,NAT转换后也无法修改校验和,所以,导致对方在接受的时候,会出现校验和不匹配的问题,导致通信中断。所以,ESP在传输模式也时无法通过NAT环境了。

            • 解决办法:选用ESP隧道模式。

            • 在这种环境下,因为添加了新的IP头部,并且,NAT修改的也是新IP头部。这个头部的内容没有进行完整性校验,所以,可以被修改。并且,四层在进行伪头部校验时使用的数据是原始IP头部中的内容,新的IP头部内容变更,也无法影响到伪头部校验的果。所以,ESP隧道模式的封装可以通过NAT环境

          • ESP和AS协议是否支持NAT转换
  • NAT-T ---- NAT穿越技术

    • 注意

      • 边界NAT设备,开启的是easy-ip或者NAPT技术需要修改端口号,但是由于数据被加密,不能成功修改端口号。NAT-T增加UDP头部。

      • 源端口目标端口都可以是4500,但是源端口号可变,目标端口号不可变。

防火墙Web页面配置IPSec

  1. 配置页面在网络 --- IPSec --- 新建策略列表

  2. 新建IPSec策略

    • 选择场景:点到点或者点到多点

    • 虚拟系统配置

    • 基本配置:策略名称、本段接口(数据发出接口)、本段地址(NAT环境接口配置的公网地址)、对端地址、认证方式(预共享密钥,RSA签名和RSA数字信封)、本端ID和对端ID(主模式就选IP地址;野蛮模式就按照要求选择;本端ID和对端ID的类型和值要保持一致

  3. 待加密的数据流 --- 相当于手工配置的ACL列表

  4. 高级:IKE参数选取、IPSec参数选取。两端配置保持一致。

  5. 两端的安全协议放通 --- 指的是放通IKE的报文传输

    • 此数据包是设备本身发出的,设备本身所在区域是Local,所以区域选取Local到untrush。并且加上IP限制范围。

    • 放通UDP的500/4500

  6. 放通数据传输方面的安全策略

    • 不选区域,选取IP地址,匹配详细。并且不加esp服务限制

      • 因为PC2发送的数据包可以说HTTP或者FTP的协议,经过IPSec隧道经过esp服务封装,到对端防火墙(此图服务器也属于网关设备),如果数据包是找寻网关,就可以正常通信。但是如果找下层其他设备,由于到网关拆开了esp服务封装,但是由于之前放通的数据安全策略仅限制esp放通,所以此时无法正常通信,防火墙安全策略匹配到最后一条拒绝所有。

    • 并且最后要确保本地到未知目标区域的esp流量放通。

      • 和上一条不一样,本条作用是保证本地的esp数据可以通过。上一条只是保证选取的目标网段可以通过,并不是确保本地到目标区域可以通信。

    • 此时仍然数据不通。

      • 原因是:由于NAT和IPSec隧道是在同一个设备上,NAT和IPSec冲突,如果走NAT,就抓不到感兴趣流,就不能走隧道;走IPSec隧道就不能NAT转换,两者冲突。

      • 在防火墙上,NAT是上游配置,而IPSEC隧道是下游配置。所以,NAT的转换会导致数据流量无法进入到IPSEC的隧道中。解决方案:不做NAT转换。

  • 安全策略放通
  • 服务器映射500/4500
  • 模式的选择
  • NAT-T是否开启,默认开启
  • 流量引入隧道

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值