选择区域语言: EN CN HK

10-安全配置指导

03-公钥管理配置

本章节下载  (223.52 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S12500/S12500/Configure/Operation_Manual/H3C_S12500_CG-R7374-6W732/10/201505/868932_30005_0.htm

03-公钥管理配置


1 公钥管理

说明

设备运行于FIPS模式时,本特性的相关配置相对于非FIPS模式有所变化,具体差异请见本文相关描述。有关FIPS模式的详细介绍请参见“安全配置指导”中的“FIPS”。

 

1.1  简介

图1-1所示,为了保证数据在网络中安全传输、不被攻击者非法窃听和恶意篡改,发送方在发送数据之前需要对数据进行加密处理,即通过一定的算法,利用密钥将明文数据变换为密文数据;接收方接收到密文数据后,需要对其进行解密处理,即通过一定的算法,利用密钥将密文数据恢复为明文数据,以获得原始数据。其中,密钥是一组特定的字符串,是控制明文和密文转换的唯一参数,起到“钥匙”的作用。

图1-1 加密和解密转换关系示意图

 

如果数据加密和解密时使用不同的密钥,则该加/解密算法称为非对称密钥算法。在非对称密钥算法中,加密和解密使用的密钥一个是对外公开的公钥,一个是由用户秘密保存的私钥,从公钥很难推算出私钥。公钥和私钥一一对应,二者统称为非对称密钥对。通过公钥(或私钥)加密后的数据只能利用对应的私钥(或公钥)进行解密。

说明

·     如果数据加密和解密时使用相同的密钥,则该加/解密算法称为对称密钥算法。使用对称密钥算法时,接收方和发送方需要获得相同的密钥,存在密钥分发的安全性问题。使用非对称密钥算法时,不存在该问题。

·     非对称密钥算法的安全性与密钥模数的长度相关。密钥模数越长,安全性越好,但是生成密钥所需的时间越长。

 

非对称密钥算法包括RSA(Rivest Shamir and Adleman)、DSA(Digital Signature Algorithm,数字签名算法)和ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)等。

非对称密钥算法主要有两个用途:

·     对发送的数据进行加/解密:发送者利用接收者的公钥对数据进行加密,只有拥有对应私钥的接收者才能使用该私钥对数据进行解密,从而可以保证数据的机密性。目前,只有RSA算法可以用来对发送的数据进行加/解密。

·     对数据发送者的身份进行认证:非对称密钥算法的这种应用,称为数字签名。发送者利用自己的私钥对数据进行加密,接收者利用发送者的公钥对数据进行解密,从而实现对数据发送者身份的验证。由于只能利用对应的公钥对通过私钥加密后的数据进行解密,因此根据解密是否成功,就可以判断发送者的身份是否合法,如同发送者对数据进行了“签名”。例如,用户1使用自己的私钥对数据进行签名后,发给用户2,用户2利用用户1的公钥验证签名,如果签名是正确的,那么就能够确认该数据来源于用户1。目前,RSA、DSA和ECDSA都可以用于数字签名。

非对称密钥算法应用十分广泛,例如SSH(Secure Shell,安全外壳)、SSL(Secure Sockets Layer,安全套接字层)、PKI(Public Key Infrastructure,公钥基础设施)中都利用了非对称密钥算法进行数字签名。SSH、SSL和PKI的介绍,请参见“安全配置指导”中的“SSH”、“SSL”和“PKI”。

1.2  公钥管理配置任务简介

本章主要介绍如何管理非对称密钥对,包括:

·     本地非对称密钥对的管理:即管理设备自身的非对称密钥对,包括本地密钥对的生成、销毁、本地主机公钥的显示和导出。

·     远端主机公钥的管理:即将远端主机的主机公钥保存到本地设备。

完成本章中的配置后,并不能实现利用非对称密钥算法进行加/解密和数字签名,只是为其提供了必要的准备。本章中的配置只有与具体的应用(如SSH、SSL)配合使用,才能实现利用非对称密钥算法进行加/解密或数字签名。

表1-1 公钥管理配置任务简介

配置任务

说明

详细配置

配置本地非对称密钥对

生成本地非对称密钥对

根据实际情况选择需要的配置

1.3.1 

显示或导出本地非对称密钥对中的主机公钥

1.3.2 

销毁本地非对称密钥对

1.3.3 

配置远端主机的公钥

1.4 

 

1.3  配置本地非对称密钥对

1.3.1  生成本地非对称密钥对

本地非对称密钥对分为如下几种:

·     RSA:非FIPS模式下,生成默认名称的本地RSA密钥对时,将同时生成两个密钥对——服务器密钥对和主机密钥对,二者都包括一个公钥和一个私钥;生成非默认名称的本地RSA密钥对时,只生成一个主机密钥对。生成RSA密钥对时会提示用户输入密钥模数的长度,建议密钥模数的长度大于或等于768比特,以提高安全性。目前,只有SSH1.5中应用了RSA服务器密钥对;FIPS模式下,生成默认名称的本地RSA密钥对时,将只生成1个密钥对——主机密钥对,包括一个公钥和一个私钥。RSA密钥模数的长度为2048比特。

·     DSA:非FIPS模式下,生成本地DSA密钥对时,只生成一个主机密钥对。生成DSA密钥对时会提示用户输入密钥模数的长度,建议密钥模数的长度大于或等于768比特,以提高安全性;FIPS模式下,DSA密钥模数的长度为2048比特。

·     ECDSA:生成本地ECDSA密钥对时,只生成一个主机密钥对。ECDSA主机密钥的长度为192比特或256比特。

生成本地非对称密钥对时,需要注意:

·     生成密钥对时,通过name key-name参数指定的密钥对名称可以与密钥对的默认名称相同,该密钥对与不指定name key-name参数生成的默认名称的密钥对被视为两个不同的密钥对,可以在设备上同时存在这两个密钥对。

·     非默认名称密钥对的密钥类型和名称不能完全相同,否则需要用户确认是否覆盖原有的密钥对。不同类型的密钥,名称可以相同。

·     执行public-key local create命令后,生成的密钥对将保存在设备中,设备重启后密钥不会丢失。

表1-2 生成本地非对称密钥对

操作

命令

说明

进入系统视图

system-view

-

生成本地非对称密钥对

非FIPS模式下:

public-key local create { dsa | ecdsa { secp192r1 | secp256r1 } | rsa } [ name key-name ]

FIPS模式下:

public-key local create { dsa | ecdsa secp256r1 | rsa } [ name key-name ]

缺省情况下,不存在任何本地非对称密钥对

 

1.3.2  显示或导出本地非对称密钥对中的主机公钥

在某些应用(如SSH)中,为了实现远端主机采用数字签名方法对本地设备进行身份验证,用户需要将本地的主机公钥保存到远端主机上。

将本地的主机公钥保存到远端主机上,有以下三种方法:

·     如表1-3所示,在本地设备上执行public-key local export命令按照指定格式将本地主机公钥导出到指定文件(执行命令时指定filename参数),并将该文件上传到远端主机上。如表1-7所示,在远端主机上,通过从公钥文件中导入的方式将本地的主机公钥保存到远端设备上。

·     如表1-4所示,在本地设备上执行public-key local export命令按照指定格式显示本地主机公钥(执行命令时不指定filename参数),通过拷贝粘贴等方式将显示的主机公钥保存到文件中,并将该文件上传到远端主机上。如表1-7所示,在远端主机上,通过从公钥文件中导入的方式将本地的主机公钥保存到远端设备上。

·     如表1-5所示,在本地设备上执行display public-key local public命令显示非对称密钥对中的公钥信息,并记录主机公钥数据。如表1-8所示,在远端主机上,通过手工配置的方式将记录的本地主机公钥保存到远端设备上。

远端主机上的配置方法,请参见“1.4  配置远端主机的公钥”。

表1-3 按照指定格式导出本地非对称密钥对中的主机公钥

操作

命令

说明

进入系统视图

system-view

-

按照指定格式将本地RSA主机公钥导出到指定文件

非FIPS模式下:

public-key local export rsa [ name key-name ] { openssh | ssh1 | ssh2 } filename

FIPS模式下:

public-key local export rsa [ name key-name ] { openssh | ssh2 } filename

二者至少选其一

按照指定格式将本地ECDSA主机公钥导出到指定文件

public-key local export ecdsa [ name key-name ] { openssh | ssh2 } [ filename ]

按照指定格式将本地DSA主机公钥导出到指定文件

public-key local export dsa [ name key-name ] { openssh | ssh2 } filename

 

表1-4 按照指定格式显示本地非对称密钥对中的主机公钥

操作

命令

说明

进入系统视图

system-view

-

按照指定格式显示本地RSA主机公钥

非FIPS模式下:

public-key local export rsa [ name key-name ] { openssh | ssh1 | ssh2 }

FIPS模式下:

public-key local export rsa [ name key-name ] { openssh | ssh2 }

二者至少选其一

按照指定格式将本地ECDSA主机公钥导出到指定文件

public-key local export ecdsa  [ name key-name ] { openssh | ssh2 } [ filename ]

按照指定格式显示本地DSA主机公钥

public-key local export dsa [ name key-name ] { openssh | ssh2 }

 

表1-5 显示本地非对称密钥对中的公钥信息

操作

命令

说明

显示本地RSA密钥对中的公钥信息

display public-key local rsa public [ name key-name ]

二者至少选其一

可以在任意视图下执行这两条命令

若执行display public-key local rsa public命令时,同时显示了RSA服务器密钥对和主机密钥对的公钥信息,用户只需记录主机密钥对的公钥信息

显示本地ECDSA密钥对中的公钥信息

display public-key local ecdsa public [ name key-name ]

显示本地DSA密钥对中的公钥信息

display public-key local dsa public [ name key-name ]

 

1.3.3  销毁本地非对称密钥

在如下几种情况下,建议用户销毁旧的非对称密钥对,并生成新的密钥对:

·     本地设备的私钥泄露。这种情况下,非法用户可能会冒充本地设备访问网络。

·     保存密钥对的存储设备出现故障,导致设备上没有公钥对应的私钥,无法再利用旧的非对称密钥对进行加/解密和数字签名。

·     本地证书到达有效期,需要删除对应的本地密钥对。本地证书的详细介绍,请参见“安全配置指导”中的“PKI”。

表1-6 销毁本地非对称密钥对

操作

命令

说明

进入系统视图

system-view

-

销毁本地非对称密钥对

public-key local destroy { dsa | ecdsa | rsa } [ name key-name ]

-

 

1.4  配置远端主机的公钥

在某些应用(如SSH)中,为了实现本地设备对远端主机的身份验证,需要在本地设备上配置远端主机的RSA、DSA、ECDSA主机公钥。

配置远端主机公钥的方式有如下两种:

·     从公钥文件中导入:用户事先将远端主机的公钥文件保存到本地设备(例如,通过FTP或TFTP,以二进制方式将远端主机的公钥文件保存到本地设备),本地设备从该公钥文件中导入远端主机的公钥。导入公钥时,系统会自动将远端主机的公钥文件转换为PKCS(Public Key Cryptography Standards,公共密钥加密标准)编码形式。

·     手工配置:用户事先在远端主机上查看其公钥信息,并记录远端主机公钥的内容。在本地设备上采用手工输入的方式将远端主机的公钥配置到本地。手工输入远端主机公钥时,可以逐个字符输入,也可以一次拷贝粘贴多个字符。

远端主机公钥信息的获取方法,请参见“1.3.2  显示或导出本地非对称密钥的主机公钥”。

说明

手工配置远端主机的公钥时,输入的主机公钥必须满足一定的格式要求。通过display public-key local public命令显示的公钥可以作为输入的公钥内容;通过其他方式(如public-key local export命令)显示的公钥可能不满足格式要求,导致主机公钥保存失败。因此,建议选用从公钥文件导入的方式配置远端主机的公钥。

 

表1-7 从公钥文件中导入远端主机的公钥

操作

命令

说明

进入系统视图

system-view

-

从公钥文件中导入远端主机的公钥

public-key peer keyname import sshkey filename

缺省情况下,设备上不存在任何远端主机公钥

 

表1-8 手工配置远端主机的公钥

操作

命令

说明

进入系统视图

system-view

-

指定远端主机公钥的名称,并进入公钥视图

public-key peer keyname

缺省情况下,设备上不存在任何远端主机公钥

配置远端主机的公钥

逐个字符输入或拷贝粘贴公钥内容

在输入公钥内容时,字符之间可以有空格,也可以按回车键继续输入数据。保存公钥数据时,将删除空格和回车符

退回系统视图

peer-public-key end

退出公钥视图时,系统自动保存配置的主机公钥

 

1.5  公钥管理显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后公钥管理的信息,通过查看显示信息验证配置的效果。

表1-9 公钥管理显示和维护

操作

命令

显示本地非对称密钥对中的公钥信息

display public-key local { dsa | ecdsa | rsa } public [ name key-name ]

显示保存在本地的远端主机的公钥信息

display public-key peer [ brief | name publickey-name ]

 

1.6  公钥管理典型配置举例

1.6.1  手工配置远端主机的公钥

说明

此例中的设备运行于非FIPS模式下。若设备运行于FIPS模式下,支持的密钥对的模数只能为2048比特,因此相关的配置和显示信息也有所变化,请以设备的实际情况为准。

 

1. 组网需求

图1-2所示,为了防止非法用户访问,Switch B(本地设备)采用数字签名方法对访问它的Switch A(远端设备)进行身份验证。进行身份验证前,需要在Switch B上配置Switch A的公钥。

本例中要求:

·     Switch B采用的非对称密钥算法为RSA算法。

·     采用手工配置方式在Switch B上配置Switch A的主机公钥。

2. 组网图

图1-2 手工配置远端主机的公钥组网图

 

3. 配置步骤

(1)     配置Switch A

# 在Switch A上生成默认名称的本地RSA非对称密钥对,密钥模数的长度采用缺省值1024比特。

<SwitchA> system-view

[SwitchA] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.................++++++

......................................++++++

.....++++++++

..............++++++++

Create the key pair successfully.

# 显示生成的本地RSA密钥对的公钥信息。

[SwitchA] display public-key local rsa public

 

=============================================

Key name: hostkey (default)

Key type: RSA

Time when key pair created: 16:48:31 2011/05/12

Key code:

   30819F300D06092A864886F70D010101050003818D0030818902818100DA3B90F59237347B

   8D41B58F8143512880139EC9111BFD31EB84B6B7C7A1470027AC8F04A827B30C2CAF79242E

   45FDFF51A9C7E917DB818D54CB7AEF538AB261557524A7441D288EC54A5D31EFAE4F681257

   6D7796490AF87A8C78F4A7E31F0793D8BA06FB95D54EBB9F94EB1F2D561BF66EA27DFD4788

   CB47440AF6BB25ACA50203010001

=============================================

Key name: serverkey (default)

Key type: RSA

Time when key pair created: 16:48:31 2011/05/12

Key code:

   307C300D06092A864886F70D0101010500036B003068026100C9451A80F7F0A9BA1A90C7BC

   1C02522D194A2B19F19A75D9EF02219068BD7FD90FCC2AF3634EEB9FA060478DD0A1A49ACE

   E1362A4371549ECD85BA04DEE4D6BB8BE53B6AED7F1401EE88733CA3C4CED391BAE633028A

   AC41C80A15953FB22AA30203010001

(2)     配置Switch B

# 在Switch B上配置Switch A的主机公钥:在公钥视图输入Switch A的主机公钥,即在Switch A上通过display public-key local rsa public命令显示的主机公钥hostkey内容。

<SwitchB> system-view

[SwitchB] public-key peer switcha

Enter public key view. Return to system view with "peer-public-key end" command.

[SwitchB-pkey-public-key-switcha]30819F300D06092A864886F70D010101050003818D003081890

2818100DA3B90F59237347B

[SwitchB-pkey-public-key-switcha]8D41B58F8143512880139EC9111BFD31EB84B6B7C7A1470027A

C8F04A827B30C2CAF79242E

[SwitchB-pkey-public-key-switcha]45FDFF51A9C7E917DB818D54CB7AEF538AB261557524A7441D2

88EC54A5D31EFAE4F681257

[SwitchB-pkey-public-key-switcha]6D7796490AF87A8C78F4A7E31F0793D8BA06FB95D54EBB9F94E

B1F2D561BF66EA27DFD4788

[SwitchB-pkey-public-key-switcha]CB47440AF6BB25ACA50203010001

# 从公钥视图退回到系统视图,并保存用户输入的公钥。

[SwitchB-pkey-public-key-switcha] peer-public-key end

4. 验证配置

# 显示Switch B上保存的Switch A的主机公钥信息。

[SwitchB] display public-key peer name switcha

 

=============================================

Key name: switcha

Key type: RSA

Key modulus: 1024

Key code:

   30819F300D06092A864886F70D010101050003818D0030818902818100DA3B90F59237347B

   8D41B58F8143512880139EC9111BFD31EB84B6B7C7A1470027AC8F04A827B30C2CAF79242E

   45FDFF51A9C7E917DB818D54CB7AEF538AB261557524A7441D288EC54A5D31EFAE4F681257

   6D7796490AF87A8C78F4A7E31F0793D8BA06FB95D54EBB9F94EB1F2D561BF66EA27DFD4788

   CB47440AF6BB25ACA50203010001

通过对比可以看出,Switch B上保存的Switch A的主机公钥信息与Switch A实际的主机公钥信息一致。

1.6.2  从公钥文件中导入远端主机的公钥

说明

此例中的设备运行于非FIPS模式下。若设备运行于FIPS模式下,支持的密钥对的模数只能为2048比特,因此相关的配置和显示信息也有所变化,请以设备的实际情况为准。

 

1. 组网需求

图1-3所示,为了防止非法用户访问,Switch B(本地设备)采用数字签名方法对访问它的Switch A(远端设备)进行身份验证。进行身份验证前,需要在Switch B上配置Switch A的公钥。

本例中要求:

·     Switch B采用的非对称密钥算法为RSA算法。

·     采用从公钥文件中导入的方式在Switch B上配置Switch A的主机公钥。

2. 组网图

图1-3 从公钥文件中导入远端主机的公钥组网图

 

3. 配置步骤

(1)     在Switch A上生成密钥对,并导出公钥

# 在Switch A上生成默认名称的本地RSA非对称密钥对,密钥模数的长度采用缺省值1024比特。

<SwitchA> system-view

[SwitchA] public-key local create rsa

The range of public key modulus is (512 ~ 2048).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:

Generating Keys...

.................++++++

......................................++++++

.....++++++++

..............++++++++

Create the key pair successfully.

# 显示生成的本地RSA密钥对的公钥信息。

[SwitchA] display public-key local rsa public

 

=============================================

Key name: hostkey (default)

Key type: RSA

Time when key pair created: 16:48:31 2011/05/12

Key code:

   30819F300D06092A864886F70D010101050003818D0030818902818100DA3B90F59237347B

   8D41B58F8143512880139EC9111BFD31EB84B6B7C7A1470027AC8F04A827B30C2CAF79242E

   45FDFF51A9C7E917DB818D54CB7AEF538AB261557524A7441D288EC54A5D31EFAE4F681257

   6D7796490AF87A8C78F4A7E31F0793D8BA06FB95D54EBB9F94EB1F2D561BF66EA27DFD4788

   CB47440AF6BB25ACA50203010001

=============================================

Key name: serverkey (default)

Key type: RSA

Time when key pair created: 16:48:31 2011/05/12

Key code:

   307C300D06092A864886F70D0101010500036B003068026100C9451A80F7F0A9BA1A90C7BC

   1C02522D194A2B19F19A75D9EF02219068BD7FD90FCC2AF3634EEB9FA060478DD0A1A49ACE

   E1362A4371549ECD85BA04DEE4D6BB8BE53B6AED7F1401EE88733CA3C4CED391BAE633028A

   AC41C80A15953FB22AA30203010001

# 将生成的默认名称的RSA主机公钥导出到指定文件switcha.pub中。

[SwitchA] public-key local export rsa ssh2 switcha.pub

[SwitchA] quit

(2)     在Switch A上启动FTP服务器功能

# 启动FTP服务器功能,创建FTP用户(用户名为ftp,密码为123),并配置FTP用户的用户角色为network-admin。

[SwitchA] ftp server enable

[SwitchA] local-user ftp

[SwitchA-luser-manage-ftp] password simple 123

[SwitchA-luser-manage-ftp] service-type ftp

[SwitchA-luser-manage-ftp] authorization-attribute user-role network-admin

[SwitchA-luser-manage-ftp] quit

(3)     Switch B获取Switch A的公钥文件

# Switch B通过FTP以二进制方式从Switch A获取公钥文件switcha.pub。

<SwitchB> ftp 10.1.1.1

Connected to 10.1.1.1 (10.1.1.1).

220 FTP service ready.

User (10.1.1.1:(none)): ftp

331 Password required for ftp.

Password:

230 User logged in.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> binary

200 TYPE is now 8-bit binary

ftp> get switcha.pub

227 Entering Passive Mode (10,1,1,1,118,252)

150 Accepted data connection

226 File successfully transferred

301 bytes received in 0.003 seconds (98.0 kbyte/s)

ftp> quit

221-Goodbye. You uploaded 0 and downloaded 1 kbytes.

221 Logout.

(4)     Switch B从公钥文件中导入公钥

# Switch B从公钥文件中导入Switch A的主机公钥。

<SwitchB> system-view

[SwitchB] public-key peer switcha import sshkey switcha.pub

4. 验证配置

# 显示Switch B上保存的Switch A的主机公钥信息。

[SwitchB] display public-key peer name switcha

 

=============================================

Key name: switcha

Key type: RSA

Key modulus: 1024

Key code:

   30819F300D06092A864886F70D010101050003818D0030818902818100DA3B90F59237347B

   8D41B58F8143512880139EC9111BFD31EB84B6B7C7A1470027AC8F04A827B30C2CAF79242E

   45FDFF51A9C7E917DB818D54CB7AEF538AB261557524A7441D288EC54A5D31EFAE4F681257

   6D7796490AF87A8C78F4A7E31F0793D8BA06FB95D54EBB9F94EB1F2D561BF66EA27DFD4788

   CB47440AF6BB25ACA50203010001

通过对比可以看出,Switch B上保存的Switch A的主机公钥信息与Switch A实际的主机公钥信息一致。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!