配置SafeNet USB HSM(密码机)

本章介绍如何配置密码验证的 HSM,本章包含以下部分:

目录

1. 概述

2. 初始化密码认证的 SafeNet USB HSM

3. 设置 SafeNet USB HSM 策略 [可选]

4. 在 SafeNet USB HSM 上创建分区

5. 设置 SafeNet USB HSM 分区策略 [可选]


1. 概述

HSM 提供 PED 认证和密码认证两种版本。请按照本章中的配置步骤配置密码认证的 HSM。

密码认证和 PED 认证的 HSM 之间没有外部可见的区别。对于已安装的 HSM,可以通过尝试登录来确定其身份验证模式。可信路径版本会将引导至 SafeNet PED。密码认证版本会提示输入密码。无法更改 SafeNet HSM 的身份验证类型。因为它是出厂配置。如果您使用的是 PED 认证(Trusted Path)版本,则无法通过密码访问 HSM 和分区(partitions )。

对于密码认证的 HSM,可以通过在计算机键盘上输入密码,向 HSM 验证的安全官(Security Officer)、用户等身份。这样做的好处是不需要任何额外的硬件——您只需记住正确的密码即可。另一方面,在计算机上输入的任何密码都很容易被他人看到,或者被恶意软件记录您的按键或以其他方式记录您输入的内容。此外,如果密码足够强以确保安全,那么它也可能足够复杂,以至于工作人员会试图将其写下来——这又是一个潜在的暴露途径。

2. 初始化密码认证的 SafeNet USB HSM

初始化会分配一个标签和安全官员(Security Officer)密码,并将 HSM 置于可供使用的状态。

如果您有带密码验证的 SafeNet USB HSM,请使用此页面上的说明。

某些 HSM 策略(HSM Policy)变更具有破坏性。破坏性策略变更是指需要重新初始化 HSM 才能使用变更。因此,如果您打算执行破坏性 HSM 策略变更,则可能需要在策略变更后再次执行此初始化步骤。

首先,以安全官员(Security Officer)身份登录

要执行 HSM 操作,您必须以安全官 (SO) 身份登录。对于新的 SafeNet USB HSM 模块,HSM 安全官密码为“default”。输入:

lunacm:> hsm login -password default
 Command Result : No Error
lunacm:> 

SafeNet USB HSM 出厂时处于默认的可初始化状态。使用之前,必须先初始化 HSM(分配名称/标签和 SO 密码)。这将确立您对当前和未来 HSM 管理的所有权。

初始化HSM

lunacm:> hsm init -label mylunaG5 -password Fu22y!00
     You are about to initialize the HSM.
The User will be deleted and all data will be erased.
Are you sure you wish to continue?
Type 'proceed' to continue, or 'quit' to quit now -> proceed
Command Result : No Error

如果您退出并重新启动 lunacm 实用程序,您将看到刚刚应用于 HSM 的新标签。

3. 设置 SafeNet USB HSM 策略 [可选]

HSM 策略是基于这些配置元素的设置,可由 HSM 安全官 (SO) 修改。如果功能已关闭(禁用),则无法通过策略设置将其打开。只有重新制造或应用安全功能更新才能将功能从关闭状态更改为打开状态(从禁用状态更改为启用状态)。如果功能已启用,则 SO 可以通过策略更改对其进行更改,但只能使其限制性更强。SO 无法降低功能的限制性。

在大多数情况下,配置和策略要么关闭,要么打开(禁用或启用,其中 0 表示关闭/禁用,1 表示打开/启用),也有一些是例外。

在此示例中,我们显示 HSM 功能及其对应策略的初始值,然后我们更改一个策略,并再次显示这些值。

1.首先,对于此示例,显示基本的 HSM 信息。

lunacm:> hsm showinfo
        HSM 
 Label -> myLunaG5
HSM Manufacturer -> SafeNet, Inc.
HSM Model -> K4Base
HSM Serial Number -> 8000001
Token Flags ->
CKF_RNG
CKF_LOGIN_REQUIRED
CKF_RESTORE_KEY_NOT_NEEDED
CKF_PROTECTED_AUTHENTICATION_PATH
CKF_TOKEN_INITIALIZED
Firmware Version -> 4.5.2
Slot Id -> 1
Session State -> CKS_RW_PUBLIC_SESSION
SO Status: Not Logged In
*** The HSM is NOT in FIPS 140-2 approved operation mode. ***
Command Result : No Error
lunacm:> 

请注意末尾的消息,指出 HSM 未处于 FIPS 140-2 认可的操作模式。为了提供示例,我们将更改此状态;除非贵组织的安全策略要求,否则您无需进行此特定更改。

2.现在显示 HSM 上当前存在的控制策略。

lunacm:> hsm showpolicies
        HSM Capabilities
0: Enable PIN-based authentication : 0
1: Enable PED-based authentication : 1
2: Performance level : 9
3: Enable MofN : 0
4: Enable domestic mechanisms & key sizes : 1
6: Enable masking : 1
7: Enable cloning : 0
8: Enable special cloning certificate : 0
9: Enable full (non-backup) functionality : 1
11: Enable ECC mechanisms : 0
12: Enable non-FIPS algorithms : 1
13: Enable MofN auto-activation : 0
15: Enable SO reset of partition PIN : 1
16: Enable network replication : 0
17: Enable Korean Algorithms : 0
18: FIPS evaluated : 0
19: Manufacturing Token : 0
20: Enable Remote Authentication : 1
21: Enable forcing user PIN change : 0
22: Enable offboard storage : 1
23: Enable partition groups : 0       
         HSM Policies
0: PIN-based authentication : 0
1: PED-based authentication : 1
3: Require MofN : 0
6: Allow masking : 0
7: Allow cloning : 0
12: Allow non-FIPS algorithms :  1 
13: Allow MofN auto-activation : 0
15: SO can reset partition PIN : 1
16: Allow network replication : 0
20: Allow Remote Authentication : 1
21: Force user PIN change after set/reset : 0
22: Allow offboard storage : 1
23: Allow partition groups : 0
        SO Capabilities
0: Enable private key cloning : 0
1: Enable private key wrapping : 0
2: Enable private key unwrapping : 1
3: Enable private key masking : 1
4: Enable secret key cloning : 0
5: Enable secret key wrapping : 1
6: Enable secret key unwrapping : 1
7: Enable secret key masking : 1
10: Enable multipurpose keys : 1
11: Enable changing key attributes : 1
14: Enable PED use without challenge : 1
15: Allow failed challenge responses : 1
16: Enable operation without RSA blinding : 1
17: Enable signing with non-local keys : 1
18: Enable raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 3
21: Enable high availability recovery : 1
22: Enable activation : 1
23: Enable auto-activation : 1
25: Minimum pin length (inverted: 255 - min) : 248
26: Maximum pin length : 255
28: Enable Key Management Functions : 1
29: Enable RSA signing without confirmation : 1
30: Enable Remote Authentication : 1
        SO Policies
0: Enable private key cloning : 0
1: Enable private key wrapping : 0
2: Enable private key unwrapping : 1
3: Enable private key masking : 0
4: Enable secret key cloning : 0
5: Enable secret key wrapping : 1
6: Enable secret key unwrapping : 1
7: Enable secret key masking : 0
10: Enable multipurpose keys : 1
11: Enable changing key attributes : 1
14: Enable PED use without challenge : 1
15: Allow failed challenge responses : 1
16: Enable operation without RSA blinding : 1
17: Enable signing with non-local keys : 1
18: Enable raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 3
21: Enable high availability recovery : 1
22: Enable activation : 0
23: Enable auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248
26: Maximum pin length : 255
28: Enable Key Management Functions : 1
29: Enable RSA signing without confirmation : 1
30: Enable Remote Authentication : 1
Command Result : No Error
lunacm:>

在此示例中,要更改 HSM 策略设置,您必须提供标识策略的编号,然后提供所需状态的值。首先登录 HSM(如果是经过 PED 认证的 HSM,请使用 SafeNet PED(登录前必须连接并准备就绪)),然后输入 hsm changeHSMPolicy 或 hsm changeSOPolicy 命令:

 lunacm:> hsm login 
Please attend to the PED

注意:  此时您必须响应SafeNet PED屏幕上的提示。

command Result : No error
 lunacm:> hsm changeHSMPolicy -policy 12 -value 0
 command Result : No error 

lunacm:> hsm showpolicies
        HSM Capabilities
0: Enable PIN-based authentication : 0
1: Enable PED-based authentication : 1
2: Performance level : 9
3: Enable MofN : 0
4: Enable domestic mechanisms & key sizes : 1
6: Enable masking : 0
7: Enable cloning : 0
8: Enable special cloning certificate : 0
9: Enable full (non-backup) functionality : 1
11: Enable ECC mechanisms : 0
12: Enable non-FIPS algorithms : 1
13: Enable MofN auto-activation : 0
15: Enable SO reset of partition PIN : 1
16: Enable network replication : 0
17: Enable Korean Algorithms : 0
18: FIPS evaluated : 0
19: Manufacturing Token : 0
20: Enable Remote Authentication : 1
21: Enable forcing user PIN change : 0       
         HSM Policies
0: PIN-based authentication : 1
1: PED-based authentication : 0
3: Require MofN : 0
6: Allow masking : 0
7: Allow cloning : 0
12: Allow non-FIPS algorithms :  0     <--
13: Allow MofN auto-activation : 0
15: SO can reset partition PIN : 1
16: Allow network replication : 0
20: Allow Remote Authentication : 1
21: Force user PIN change after set/reset : 0
        SO Capabilities
0: Enable private key cloning : 0
1: Enable private key wrapping : 0
2: Enable private key unwrapping : 1
3: Enable private key masking : 0
4: Enable secret key cloning : 0
5: Enable secret key wrapping : 1
6: Enable secret key unwrapping : 1
7: Enable secret key masking : 0
10: Enable multipurpose keys : 1
11: Enable changing key attributes : 1
14: Enable PED use without challenge : 1
15: Allow failed challenge responses : 1
16: Enable operation without RSA blinding : 1
17: Enable signing with non-local keys : 1
18: Enable raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 3
21: Enable high availability recovery : 1
22: Enable activation : 0
23: Enable auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248
26: Maximum pin length : 255
28: Enable Key Management Functions : 1
29: Enable RSA signing without confirmation : 1
30: Enable Remote Authentication : 1
        SO Policies
0: Enable private key cloning : 0
1: Enable private key wrapping : 0
2: Enable private key unwrapping : 1
3: Enable private key masking : 0
4: Enable secret key cloning : 0
5: Enable secret key wrapping : 1
6: Enable secret key unwrapping : 1
7: Enable secret key masking : 0
10: Enable multipurpose keys : 1
11: Enable changing key attributes : 1
14: Enable PED use without challenge : 1
15: Allow failed challenge responses : 1
16: Enable operation without RSA blinding : 1
17: Enable signing with non-local keys : 1
18: Enable raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 3
21: Enable high availability recovery : 1
22: Enable activation : 0
23: Enable auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248
26: Maximum pin length : 255
28: Enable Key Management Functions : 1
29: Enable RSA signing without confirmation : 1
30: Enable Remote Authentication : 1
Command Result : No Error
lunacm:>
lunacm:> hsm showinfo
        HSM Label -> myLunaG5
HSM Manufacturer -> SafeNet, Inc.
HSM Model -> K4Base
HSM Serial Number -> 8000001
Token Flags ->
CKF_RNG
CKF_LOGIN_REQUIRED
CKF_RESTORE_KEY_NOT_NEEDED
CKF_PROTECTED_AUTHENTICATION_PATH
CKF_TOKEN_INITIALIZED
Firmware Version -> 4.5.2
Slot Id -> 1
Session State -> CKS_RW_PUBLIC_SESSION
SO Status: Not Logged In
*** The HSM is in FIPS 140-2 approved operation mode. ***
Command Result : No Error
lunacm:> 

注意:  请注意,在上面的示例中,HSM Capability 12: Enable non-FIPS algorithms : 1”的值仍然为 1(表示保持启用状态),但关联的策略“12: Allow non-FIPS algorithms :  0”的值现在为 0(表示已被 SO 禁止)。另请注意,“show”信息顶部的消息现在显示为"*** The HSM is in FIPS 140-2 approved operation mode. *** "(“*** HSM 处于 FIPS 140-2 认可的操作模式。***”),因为 HSM 现在被限制只能使用 FIPS 认可的算法。

4. 在 SafeNet USB HSM 上创建分区

本节介绍如何使用密码验证功能为 SafeNet USB HSM 设置 HSM 分区。本节中的操作在两种情况下需要完成。

如果您刚刚在 SafeNet USB HSM 上首次准备 HSM,并且现在必须创建您的第一个 HSM 分区,或者

如果您已删除或清零 HSM 分区并希望创建一个新的分区来替换它。

关于已初始化 HSM 上的 HSM 分区

此时,SafeNet USB HSM 应该已经通过初始化 HSM分配了其安全官。  

在 HSM 中,必须创建一个单独的加密工作区。工作区(或分区)及其所有内容均受加密保护,该加密部分源自其身份验证。只有提供正确身份验证的用户才允许查看该分区并使用其内容。该用户和身份验证可以与安全官员身份区分开来。

在本节中,您将:

创建 HSM 分区

设置 HSM 分区策略(可选)

首先,以安全官员身份登录

要创建 HSM 分区,您必须以安全官员身份登录 SafeNet USB HSM。在 lunacm:> 提示符下,键入:

lunacm:> hsm login -password <你的密码>

通过提供相应的 SO 密码进行安全官员身份验证。密码必须与 HSM 的初始化时设置的完全一致,包括正确使用大小写。

注意:  如果您以安全官员身份连续三次登录失败,HSM 将被清零,无法使用——必须重新初始化。清零操作会销毁所有密钥材料。请注意,SafeNet HSM 在记录登录失败之前必须实际接收一些信息,因此如果您只按 [Enter] 键而不输入密码,则不会记录登录失败。此外,当您成功登录时,计数器将重置为零。

如果您不确定您当前是否以安全官员身份登录,请执行“ hsm login ”。

二、创建分区

在 lunacm:> 提示符下,输入:

lunacm:> partition create -password <a_partition_password>

SafeNet USB HSM 回复“命令结果:无错误”(Command Result : No Error

如果出现错误,可能是您请求的密码太短。除非 SO 设置了其他最小长度,否则密码长度必须至少为 8 个字符。

第三步 设置/更改分区策略[可选]

查看分区信息(包括功能和策略),看看是否需要更改任何内容。输入:

lunacm:> partition showpolicies
 
        
        Partition Capabilities
0: Enable private key cloning : 0
1: Enable private key wrapping : 0
2: Enable private key unwrapping : 1
3: Enable private key masking : 0
4: Enable secret key cloning : 0
5: Enable secret key wrapping : 1
6: Enable secret key unwrapping : 1
7: Enable secret key masking : 0
10: Enable multipurpose keys : 1
11: Enable changing key attributes : 1
14: Enable PED use without challenge : 1
15: Allow failed challenge responses : 1
16: Enable operation without RSA blinding : 1
17: Enable signing with non-local keys : 1
18: Enable raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 10
21: Enable high availability recovery : 1
22: Enable activation : 0
23: Enable auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248
26: Maximum pin length : 255
28: Enable Key Management Functions : 1
29: Enable RSA signing without confirmation : 1
30: Enable Remote Authentication : 1
        Partition Policies
0: Allow private key cloning : 0
1: Allow private key wrapping : 0
2: Allow private key unwrapping : 1
3: Allow private key masking : 0
4: Allow secret key cloning : 0
5: Allow secret key wrapping : 1
6: Allow secret key unwrapping : 1
7: Allow secret key masking : 0
10: Allow multipurpose keys : 1
11: Allow changing key attributes : 1
14: Challenge for authentication not needed : 1
15: Ignore failed challenge responses : 1
16: Operate without RSA blinding : 1
17: Allow signing with non-local keys : 1
18: Allow raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 10
21: Allow high availability recovery : 1
22: Allow activation : 0
23: Allow auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248
26: Maximum pin length : 255
28: Allow Key Management Functions : 1
29: Perform RSA signing without confirmation : 1
30: Allow Remote Authentication : 0
Command Result : No Error
lunacm:> 

作为更改的示例,您可以输入:

lunacm:> partition changePolicy -policy 16 -value 0

这将会起到关闭 RSA blinding的效果。

5. 设置 SafeNet USB HSM 分区策略 [可选]

分区功能(Partition Capabilities )代表创建分区时生效的出厂默认配置。分区策略(Partition Policies)是基于这些配置元素的设置,可由 HSM 安全官 (SO) 修改。如果功能已关闭(禁用),则无法通过策略设置将其打开。只有重新创建或应用安全功能更新才能将功能从关闭状态更改为打开状态(从禁用状态更改为启用状态)。如果功能已启用,则 SO 可以通过策略更改对其进行更改,但只能使其限制性更强。SO 无法降低功能的限制性。

例如,如果某个功能设置要求分区密码的最小长度必须为(假设)七个字符,则 SO 可以使用策略更改来要求密码的最小长度为八个、九个、十个或更多字符(最多 255 个)。要求密码长度更长被视为更严格的安全设置。SO 不能使用策略更改将密码的最小长度设置为六个或更少字符,因为这比要求至少七个字符的原始功能的限制性更低。

在大多数情况下,配置和策略要么关闭,要么打开(禁用或启用,其中 0 [零] 等于关闭/禁用,1 [一] 等于打开/启用),但有些例外,如下例所示。

在这个例子中,我们展示了分区功能的初始值和它们对应的策略,然后我们改变一个策略,并再次显示这些值。

lunacm:> partition showPolicies
        HSM Serial Number -> 65130
Token Flags ->
CKF_RNG
CKF_LOGIN_REQUIRED
CKF_USER_PIN_INITIALIZED
CKF_RESTORE_KEY_NOT_NEEDED
CKF_EXCLUSIVE_EXISTS
        Slot Id -> 3
Session State -> CKS_RW_PUBLIC_SESSION
        MofN Status ->
MofN Not Generated
 *** The HSM is NOT in FIPS 140-2 approved operation mode. ***
        Partition Capabilities
0: Enable private key cloning : 0
1: Enable private key wrapping : 0
2: Enable private key unwrapping : 1
3: Enable private key masking : 0
4: Enable secret key cloning : 0
5: Enable secret key wrapping : 1
6: Enable secret key unwrapping : 1
7: Enable secret key masking : 0
10: Enable multipurpose keys : 1
11: Enable changing key attributes : 1
14: Enable PED use without challenge : 1
15: Allow failed challenge responses : 1
16: Enable operation without RSA blinding : 1
17: Enable signing with non-local keys : 1
18: Enable raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 10
21: Enable high availability recovery : 1
22: Enable activation : 0
23: Enable auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248 
26: Maximum pin length : 255
27: Enable RA-type wrapping : 0
28: Enable Key Management Functions : 1
29: Enable RSA signing without confirmation : 1
30: Enable Remote Authentication : 1
 Partition Policies
0: Allow private key cloning : 0
1: Allow private key wrapping : 0
2: Allow private key unwrapping : 1
3: Allow private key masking : 0
4: Allow secret key cloning : 0
5: Allow secret key wrapping : 1
6: Allow secret key unwrapping : 1
7: Allow secret key masking : 0
10: Allow multipurpose keys : 1
11: Allow changing key attributes : 1
14: Challenge for authentication not needed : 1
15: Ignore failed challenge responses : 1
16: Operate without RSA blinding : 1
17: Allow signing with non-local keys : 1
18: Allow raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 10  <--
21: Allow high availability recovery : 1
22: Allow activation : 0
23: Allow auto-activation : 0
25: Minimum pin length (inverted: 255 - min) :  248 
 
26: Maximum pin length : 255
27: Allow RA-type wrapping : 0
28: Allow Key Management Functions : 1
29: Perform RSA signing without confirmation : 1
30: Allow Remote Authentication : 0
Command Result : No Error
lunacm:> 
lunacm:> hsm login -password mySOpa55word!
Command Result : No Error
lunacm:> partition changePolicy -policy 20 -value 9
 
Command Result : No Error
lunacm:>

注意:  在上面的例子中,我们更改了分区允许的连续登录失败的最大次数(20: Max failed user logins allowed)。默认最大值为 10。您可以将最大值更改为小于 10,但不能大于 10。

lunacm:> partition showPolicies
        HSM Serial Number -> 65130
Token Flags ->
CKF_RNG
CKF_LOGIN_REQUIRED
CKF_USER_PIN_INITIALIZED
CKF_RESTORE_KEY_NOT_NEEDED
CKF_EXCLUSIVE_EXISTS
        Slot Id -> 3
Session State -> CKS_RW_PUBLIC_SESSION
        MofN Status ->
MofN Not Generated
 *** 
 The HSM is NOT in FIPS 140-2 approved operation mode. ***
        Partition Capabilities
0: Enable private key cloning : 0
1: Enable private key wrapping : 0
2: Enable private key unwrapping : 1
3: Enable private key masking : 0
4: Enable secret key cloning : 0
5: Enable secret key wrapping : 1
6: Enable secret key unwrapping : 1
7: Enable secret key masking : 0
10: Enable multipurpose keys : 1
11: Enable changing key attributes : 1
14: Enable PED use without challenge : 1
15: Allow failed challenge responses : 1
16: Enable operation without RSA blinding : 1
17: Enable signing with non-local keys : 1
18: Enable raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 10
21: Enable high availability recovery : 1
22: Enable activation : 0
23: Enable auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248 
26: Maximum pin length : 255
27: Enable RA-type wrapping : 0
28: Enable Key Management Functions : 1
29: Enable RSA signing without confirmation : 1
30: Enable Remote Authentication : 1
 Partition Policies
0: Allow private key cloning : 0
1: Allow private key wrapping : 0
2: Allow private key unwrapping : 1
3: Allow private key masking : 0
4: Allow secret key cloning : 0
5: Allow secret key wrapping : 1
6: Allow secret key unwrapping : 1
7: Allow secret key masking : 0
10: Allow multipurpose keys : 1
11: Allow changing key attributes : 1
14: Challenge for authentication not needed : 1
15: Ignore failed challenge responses : 1
16: Operate without RSA blinding : 1
17: Allow signing with non-local keys : 1
18: Allow raw RSA operations : 1
19: Max non-volatile storage space : 3
20: Max failed user logins allowed : 9   <--
21: Allow high availability recovery : 1
22: Allow activation : 0
23: Allow auto-activation : 0
25: Minimum pin length (inverted: 255 - min) : 248 
26: Maximum pin length : 255
27: Allow RA-type wrapping : 0
28: Allow Key Management Functions : 1
29: Perform RSA signing without confirmation : 1
30: Allow Remote Authentication : 0
Command Result : No Error
lunacm:> 

注意:  请注意,在上面的示例中,HSM 功能“20: Max failed user logins allowed : 10”的值仍然为 10(这意味着 10 是分区允许的最大失败登录次数),但关联的策略“20: Max failed user logins allowed : 9”现在的值是 9(这意味着 SO 认为分区上 10 次失败登录尝试次数过多)。SO 使用该策略施加了比功能要求更高的限制。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值