Инфраструктура открытых ключей

В EcoRouterOS для обеспечения безопасности соединения пользователей используется протокол TLS (Transport Layer Security — безопасность транспортного уровня) на основе инфраструктуры открытых ключей (PKI) и сертификатов X.509. Установка безопасного соединения между сервером и клиентом происходит совместно с процессом аутентификации клиента на сервере. EcoRouter при этом выполняет роли Центра сертификации (Certificate Authority — CA) и сервера.

Таким образом при подключении к EcoRouter устройство отправляет пользователю сообщение, содержащее сертификат маршрутизатора и запрос сертификата пользователя. Пользователь, в свою очередь, отправляет сообщение, содержащее его сертификат, после чего устанавливается безопасное соединение. При таком соединении вся информация, передающаяся между пользователем и устройством, шифруется при помощи закрытого ключа (Private Key). При передаче сообщения маршрутизатором сообщение шифруется закрытым ключом маршрутизатора таким образом, что расшифровать его пользователь может при помощи имеющегося у него открытого ключа (сертификата маршрутизатора). И наоборот, пользователь отправляет сообщения, зашифрованные при помощи закрытого ключа пользователя, которые EcoRouter расшифровывает при помощи переданного ему в начале сессии сертификата пользователя. Для того чтобы организовать этот процесс, у пользователя и EcoRouter должен быть идентичный набор сертификатов и специфический набор закрытых ключей.

Закрытый ключ и сертификат сервера автоматически генерируются в прошивке EcoRouter.

Закрытый ключ и сертификат пользователя генерируются EcoRouter при создании пользователя. При этом EcoRouter выступает в качестве CA, то есть сервера, отвечающего за регистрацию пользователей, обеспечивающего выпуск ключей, хранение реестра выданных ключей и проверку их статуса.

Таким образом для взаимодействия с маршрутизатором по защищённому соединению у пользователя должны храниться: сертификат EcoRouter (CA), сертификат пользователя, закрытый ключ пользователя.

Для просмотра пользовательских сертификатов в EcoRouter есть несколько команд, по умолчанию доступных только пользователям с ролью admin.

Для просмотра пользовательских сертификатов используется команда административного режима crypto certificate export. Для нее доступны модификаторы, при помощи которых можно отфильтровать вывод по конкретным пользователям.

В приведённом ниже примере сокращен вывод самих сертификатов. Все сертификаты хранятся и выводятся на консоль в кодировке Base64.

ecorouter#crypto certificate export
User: admin
Certificate: Valid
-----BEGIN CERTIFICATE-----
ESTCCA...gAyhj
-----END CERTIFICATE-----
User: radius
Certificate: Valid
-----BEGIN CERTIFICATE-----
ESzC...l0lBt18=
-----END CERTIFICATE-----
User: tacacs
Certificate: Valid
-----BEGIN CERTIFICATE-----
E...j7tDSM=
-----END CERTIFICATE-----

  Для экспорта (вывода на экран) закрытого ключа пользователя используется команда административного режима crypto key export. Данная команда выводит закрытый ключ того пользователя, который аутентифицирован в системе на данный момент.

В приведённом ниже примере сокращён вывод самого ключа. Все ключи хранятся и выводятся на консоль в кодировке Base64. Закрытые ключи должны передаваться на пользовательские компьютеры безопасным образом, исключающим возможность их получения третьими лицами.

ecorouter#crypto key export
User: admin
-----BEGIN RSA PRIVATE KEY-----
IEp...kjUcAQLyrg==
-----END RSA PRIVATE KEY-----

  Для экспорта (вывода на экран) сертификата EcoRouter (CA) используется команда административного режима crypto ca export. Данная команда выводит сертификат сервера вместе с представленными в явном виде полями, такими как поле имени сервера — Subject: CN=ecorouter, подписью сервера и самим сертификатом.

В приведённом ниже примере сокращен вывод самого сертификата и подписи сервера. Сертификат CA хранится в базе данных на маршрутизаторе и выводится на консоль в кодировке Base64, а информация о нем — в текстовом виде.

ecorouter#crypto ca export
Certificate:
  Data:
    Version: 3 (0x2)
    Serial Number:
      9a:14:57:6d:84:76:e9:31
  Signature Algorithm: sha256WithRSAEncryption
    Issuer: CN=ecorouter
    Validity
      Not Before: Oct  4 08:17:55 2016 GMT
      Not After : Oct  5 08:17:55 2026 GMT
    Subject: CN=ecorouter
    Subject Public Key Info:
      Public Key Algorithm: rsaEncryption
        Public-Key: (4096 bit)
        Modulus:
          00:c3:db:b8:b1:a7:a1:4b:34:82:af:1b:df:6a:2e:
...
          0b:49:95
        Exponent: 65537 (0x10001)
    X509v3 extensions:
      X509v3 Subject Key Identifier:
        EA:DC:87:08:D8:03:AB:BB:44:C4:80:A1:58:38:91:45:16:E8:53:0A
      X509v3 Authority Key Identifier:
        keyid:EA:DC:87:08:D8:03:AB:BB:44:C4:80:A1:58:38:91:45:16:E8:53:0A
      X509v3 Basic Constraints:
        CA:TRUE
  Signature Algorithm: sha256WithRSAEncryption
     ac:57:98:1f:5f:00:fa:80:d1:cc:fe:c6:e5:50:06:ff:14:d6:
...
     37:a7:ad:8f:2d:99:1a:0c
-----BEGIN CERTIFICATE-----
MIIE+z...kaDA==
-----END CERTIFICATE-----

Для того чтобы экспортировать выведенные на экран сертификаты и ключ, необходимо скопировать их в файлы с соответствующими названиями:

  • cacert.pem — сертификат EcoRouter (CA),
  • clientcert.pem — сертификат пользователя,
  • clientkey.pem — закрытый ключ пользователя.

Копировать вывод закрытого ключа и сертификата открытого ключа пользователя необходимо от символов “-----BEGIN” до последнего дефиса в строке “-----END CERTIFICATE-----” (или “-----END RSA PRIVATE KEY-----”). Копировать сертификат CA необходимо, начиная с строки “Certificate:“.

На пользовательском устройстве эти файлы должны быть размещены в директориях, используемых клиентским программным обеспечением. Для Unix/Linux по умолчанию это:

  • /etc/pki/CA/cacert.pem     
  • /etc/pki/libvirt/private/clientkey.pem  
  • /etc/pki/libvirt/clientcert.pem