09-公钥管理配置
本章节下载: 09-公钥管理配置 (231.38 KB)
如图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”。
· 本地非对称密钥对的管理:即管理设备自身的非对称密钥对,包括本地密钥对的生成、销毁、本地主机公钥的显示和导出。
· 远端主机公钥的管理:即将远端主机的主机公钥保存到本地设备。
完成本章中的配置后,并不能实现利用非对称密钥算法进行加/解密和数字签名,只是为其提供了必要的准备。本章中的配置只有与具体的应用(如SSH、SSL)配合使用,才能实现利用非对称密钥算法进行加/解密或数字签名。
· 生成RSA密钥对时,将同时生成两个密钥对——服务器密钥对和主机密钥对,二者都包括一个公钥和一个私钥。RSA服务器密钥和主机密钥模数的最小长度均为512比特,最大长度为2048比特,缺省长度为1024比特。生成RSA密钥对时会提示用户输入密钥模数的长度,建议密钥模数的长度大于或等于768比特,以提高安全性。
目前,只有SSH1.5中应用了RSA服务器密钥对。
· 执行该命令后,当本地非对称密钥对类型为DSA或RSA时,会提示输入密钥模数的长度。密钥模数的最小长度为512比特,最大长度为2048比特,缺省长度为1024比特。如果已存在相应类型的密钥对,则需要用户确认是否覆盖原有密钥对。
· 生成ECDSA密钥对时,只生成一个主机密钥对。ECDSA主机密钥的长度为192比特或256比特。
· 在FIPS模式下执行此命令后,当本地非对称密钥对类型为DSA和RSA时,密钥模数的长度必须为2048比特;当本地非对称密钥对类型为ECDSA时,密钥模数的长度只能为256比特。
public-key local create { dsa | ecdsa { secp192r1 | secp256r1 } | rsa } |
在FIPS模式下,不支持secp192r1参数 |
执行public-key local create命令后,生成的密钥对将保存在设备中,设备重启后密钥不会丢失。
在某些应用(如SSH)中,为了实现远端主机采用数字签名方法对本地设备进行身份验证,用户需要将本地的主机公钥保存到远端主机上。
· 如表1-3所示,在本地设备上执行display public-key local public命令显示非对称密钥对中的公钥信息,并记录主机公钥数据。如表1-8所示,在远端主机上,通过手工配置的方式将记录的本地主机公钥保存到远端设备上。
· 如表1-4所示,在本地设备上执行public-key local export命令按照指定格式显示本地主机公钥(执行命令时不指定filename参数),通过拷贝粘贴等方式将显示的主机公钥保存到文件中,并将该文件上传到远端主机上。如表1-7所示,在远端主机上,通过从公钥文件中导入的方式将本地的主机公钥保存到远端设备上。
· 如表1-5所示,在本地设备上执行public-key local export命令按照指定格式将本地主机公钥导出到指定文件(执行命令时指定filename参数),并将该文件上传到远端主机上。如表1-7所示,在远端主机上,通过从公钥文件中导入的方式将本地的主机公钥保存到远端设备上。
远端主机上的配置方法,请参见“1.4 配置远端主机的公钥”。“1.4 配置远端主机的公钥”中描述了如何将远端主机的公钥配置到本地主机上,将本地主机公钥配置到远端主机上的过程与此类似,只不过前者需要在本地主机上执行“1.4 配置远端主机的公钥”中的配置,后者需要在远端主机上执行该配置。
显示本地RSA密钥对中的公钥信息 |
display public-key local rsa public [ | { begin | exclude | include } regular-expression ] |
|
显示本地DSA密钥对中的公钥信息 |
display public-key local dsa public [ | { begin | exclude | include } regular-expression ] |
|
显示本地ECDSA密钥对中的公钥信息 |
display public-key local ecdsa public [ | { begin | exclude | include } regular-expression ] |
执行display public-key local rsa public命令后,会同时显示RSA服务器密钥对和主机密钥对的公钥信息。用户只需记录主机密钥对的公钥信息。
按照指定格式显示本地RSA主机公钥 |
非FIPS模式:public-key local export rsa { openssh | ssh1 | ssh2 } FIPS模式:public-key local export rsa { openssh | ssh2 } |
|
按照指定格式显示本地DSA主机公钥 |
||
按照指定格式显示本地ECDSA主机公钥 |
public-key local export ecdsa { openssh | ssh2 } |
按照指定格式将本地RSA主机公钥导出到指定文件 |
非FIPS模式:public-key local export rsa { openssh | ssh1 | ssh2 } filename FIPS模式:public-key local export rsa { openssh | ssh2 } filename |
|
按照指定格式将本地DSA主机公钥导出到指定文件 |
||
按照指定格式将本地ECDSA主机公钥导出到指定文件 |
public-key local export ecdsa { openssh | ssh2 } filename |
在如下几种情况下,建议用户销毁旧的非对称密钥对,并生成新的密钥对:
· 本地设备的私钥泄露。这种情况下,非法用户可能会冒充本地设备访问网络。
· 保存密钥对的存储设备出现故障,导致设备上没有公钥对应的私钥,无法再利用旧的非对称密钥对进行加/解密和数字签名。
· 本地证书到达有效期,需要删除对应的本地密钥对。本地证书的详细介绍,请参见“安全配置指导”中的“PKI”。
在某些应用(如SSH)中,为了实现本地设备对远端主机的身份验证,需要在本地设备上配置远端主机的RSA或DSA主机公钥。
· 从公钥文件中导入:用户事先将远端主机的公钥文件保存到本地设备(例如,通过FTP或TFTP,以二进制方式将远端主机的公钥文件保存到本地设备),本地设备从该公钥文件中导入远端主机的公钥。导入公钥时,系统会自动将远端主机的公钥文件转换为PKCS(Public Key Cryptography Standards,公共密钥加密标准)编码形式。
· 手工配置远端主机的公钥时,输入的主机公钥必须满足一定的格式要求。通过display public-key local public命令显示的公钥可以作为输入的公钥内容;通过其他方式(如public-key local export命令)显示的公钥可能不满足格式要求,导致主机公钥保存失败。因此,建议选用从公钥文件导入的方式配置远端主机的公钥。
· 远端主机公钥信息的获取方法,请参见“1.3.2 显示或导出本地非对称密钥对中的主机公钥”。
· 设备上最多可以配置20个远端主机的公钥。
public-key peer keyname import sshkey filename |
public-key peer keyname |
||
在完成上述配置后,在任意视图下执行display命令可以显示配置后公钥管理的信息,通过查看显示信息验证配置的效果。
如图1-2所示,为了防止非法用户访问,AC(本地设备)采用数字签名方法对访问它的Device(远端设备)进行身份验证。进行身份验证前,需要在AC上配置Device的公钥。
· AC采用的非对称密钥算法为RSA算法。
· 采用手工配置方式在AC上配置Device的主机公钥。
# 在Device上生成本地RSA非对称密钥对,密钥模数的长度采用缺省值1024比特。
[Device] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++
++++++
++++++++
++++++++
# 显示生成的本地RSA密钥对的公钥信息。
[Device] display public-key local rsa public
=====================================================
Time of Key pair created: 09:50:06 2007/08/07
Key name: HOST_KEY
Key type: RSA Encryption Key
=====================================================
Key code:
30819F300D06092A864886F70D010101050003818D0030818902818100D90003FA95F5A44A2A2CD3F814F9854C4421B57CAC64CFFE4782A87B0360B600497D87162D1F398E6E5E51E5E353B3A9AB16C9E766BD995C669A784AD597D0FB3AA9F7202C507072B19C3C50A0D7AD3994E14ABC62DB125035EA326470034DC078B2BAA3BC3BCA80AAB5EE01986BD1EF64B42F17CCAE4A77F1EF999B2BF9C4A10203010001
=====================================================
Time of Key pair created: 09:50:07 2007/08/07
Key name: SERVER_KEY
Key type: RSA Encryption Key
=====================================================
Key code:
307C300D06092A864886F70D0101010500036B003068026100999089E7AEE9802002D9EB2D0433B87BB6158E35000AFB3FF310E42F109829D65BF70F7712507BE1A3E0BC5C2C03FAAF00DFDDC63D004B4490DACBA3CFA9E84B9151BDC7EECE1C8770D961557D192DE2B36CAF9974B7B293363BB372771C2C1F0203010001
# 在AC上配置Device的主机公钥:在公钥编辑视图输入Device的主机公钥,即在Device上通过display public-key local rsa public命令显示的主机公钥HOST_KEY内容。
[AC] public-key peer device
Public key view: return to System View with "peer-public-key end".
[AC-pkey-public-key] public-key-code begin
Public key code view: return to last view with "public-key-code end".
[AC-pkey-key-code]30819F300D06092A864886F70D010101050003818D0030818902818100D90003FA95F5A44A2A2CD3F814F9854C4421B57CAC64CFFE4782A87B0360B600497D87162D1F398E6E5E51E5E353B3A9AB16C9E766BD995C669A784AD597D0FB3AA9F7202C507072B19C3C50A0D7AD3994E14ABC62DB125035EA326470034DC078B2BAA3BC3BCA80AAB5EE01986BD1EF64B42F17CCAE4A77F1EF999B2BF9C4A10203010001
[AC-pkey-key-code] public-key-code end
[AC-pkey-public-key] peer-public-key end
# 显示AC上保存的Device的主机公钥信息。
[AC] display public-key peer name device
=====================================
Key Name : device
Key Type : RSA
Key Module: 1024
=====================================
Key Code:
30819F300D06092A864886F70D010101050003818D0030818902818100D90003FA95F5A44A2A2CD3F814F9854C4421B57CAC64CFFE4782A87B0360B600497D87162D1F398E6E5E51E5E353B3A9AB16C9E766BD995C669A784AD597D0FB3AA9F7202C507072B19C3C50A0D7AD3994E14ABC62DB125035EA326470034DC078B2BAA3BC3BCA80AAB5EE01986BD1EF64B42F17CCAE4A77F1EF999B2BF9C4A10203010001
通过对比可以看出,AC上保存的Device的主机公钥信息与Device实际的主机公钥信息一致。
如图1-3所示,为了防止非法用户访问,AC(本地设备)采用数字签名方法对访问它的Device(远端设备)进行身份验证。进行身份验证前,需要在AC上配置Device的公钥。
· AC采用的非对称密钥算法为RSA算法。
· 采用从公钥文件中导入的方式在AC上配置Device的主机公钥。
(1) 在Device上生成密钥对,并导出公钥
# 在Device上生成本地RSA非对称密钥对,密钥模数的长度采用缺省值1024比特。
[Device] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++
++++++
++++++++
++++++++
# 显示生成的本地RSA密钥对的公钥信息。
[Device] display public-key local rsa public
=====================================================
Time of Key pair created: 09:50:06 2007/08/07
Key name: HOST_KEY
Key type: RSA Encryption Key
=====================================================
Key code:
30819F300D06092A864886F70D010101050003818D0030818902818100D90003FA95F5A44A2A2CD3F814F9854C4421B57CAC64CFFE4782A87B0360B600497D87162D1F398E6E5E51E5E353B3A9AB16C9E766BD995C669A784AD597D0FB3AA9F7202C507072B19C3C50A0D7AD3994E14ABC62DB125035EA326470034DC078B2BAA3BC3BCA80AAB5EE01986BD1EF64B42F17CCAE4A77F1EF999B2BF9C4A10203010001
=====================================================
Time of Key pair created: 09:50:07 2007/08/07
Key name: SERVER_KEY
Key type: RSA Encryption Key
=====================================================
Key code:
307C300D06092A864886F70D0101010500036B003068026100999089E7AEE9802002D9EB2D0433B87BB6158E35000AFB3FF310E42F109829D65BF70F7712507BE1A3E0BC5C2C03FAAF00DFDDC63D004B4490DACBA3CFA9E84B9151BDC7EECE1C8770D961557D192DE2B36CAF9974B7B293363BB372771C2C1F0203010001
# 将生成的RSA主机公钥HOST_KEY导出到指定文件device.pub中。
[Device] public-key local export rsa ssh2 device.pub
(2) 在Device上启动FTP服务器功能
# 启动FTP服务器功能,并创建FTP用户,用户名为ftp,密码为123,用户级别为3(以便FTP用户具有足够的权限执行FTP操作)。
[Device] local-user ftp
[Device-luser-ftp] password simple 123
[Device-luser-ftp] service-type ftp
[Device-luser-ftp] authorization-attribute level 3
[Device-luser-ftp] quit
(3) AC获取Device的公钥文件
# AC通过FTP以二进制方式从Device获取公钥文件device.pub。
Trying 10.1.1.1 ...
Press CTRL+K to abort
Connected to 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.
[ftp] binary
200 Type set to I.
[ftp] get device.pub
227 Entering Passive Mode (10,1,1,1,5,148).
125 BINARY mode data connection already open, transfer starting for /device.pub.
226 Transfer complete.
FTP: 299 byte(s) received in 0.189 second(s), 1.00Kbyte(s)/sec.
[ftp] quit
221 Server closing.
(4) AC从公钥文件中导入公钥
# AC从公钥文件中导入Device的主机公钥。
[AC] public-key peer device import sshkey device.pub
# 显示AC上保存的Device的主机公钥信息。
[AC] display public-key peer name device
=====================================
Key Name : device
Key Type : RSA
Key Module: 1024
=====================================
Key Code:
30819F300D06092A864886F70D010101050003818D0030818902818100D90003FA95F5A44A2A2CD3F814F9854C4421B57CAC64CFFE4782A87B0360B600497D87162D1F398E6E5E51E5E353B3A9AB16C9E766BD995C669A784AD597D0FB3AA9F7202C507072B19C3C50A0D7AD3994E14ABC62DB125035EA326470034DC078B2BAA3BC3BCA80AAB5EE01986BD1EF64B42F17CCAE4A77F1EF999B2BF9C4A10203010001
通过对比可以看出,AC上保存的Device的主机公钥信息与Device实际的主机公钥信息一致。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!