ООО Топ Кросс


 
 Настройка. Модуль разграничения доступа

ДОПОЛНИТЕЛЬНЫЕ ДИРЕКТИВЫ ДЛЯ HTTP.CONF

TCTLSConfig - Директива обязательная и должна указываться только один раз и только в основном разделе конфигурационного файла http.conf. Параметром к данной директиве является полный путь к внешнему файлу с настройками Модуля.

Пример:
TCTLSConfig /usr/local/apache/tctls/tctls.cfg

TCTLSTokenConfig - Директива обязательная и должна указываться только один раз и только в основном разделе конфигурационного файла http.conf. Параметром к данной директиве является полный путь к внешнему файлу с настройками КТ. Структура файла и примеры настроек приведены в (3.3).

Пример:
TCTLSTokenConfig /usr/local/apache/tctls/pkcs11.cfg

TCTLSSetEnv* - Директива необязательная. Может быть указана произвольное количество раз в разделе описания сервера (как основного, так и виртуального). Позволяет задать переменную окружения с необходимым именем и установить ее значение содержимым произвольного элемента X.509-сертификата клиента либо соответствующего атрибутного сертификата. Директива принимает два параметра:

  • имя переменной окружения, которую необходимо установить;
  • ссылка на произвольный элемент X.509/атрибутного сертификата.

Примечание: по умолчанию Модуль устанавливает следующие переменные окружения:

  • имена указаны без префикса – см. TCTLSEnvPrefix
  • переменные кроме PEER_ADDR устанавливаются только при наличии сертификата TLS-клиента
  • помимо указанных переменных всегда выставляется переменная окружения с именем «TCTLS» и значением «yes». Префикс к этой переменной не добавляется.

PEER_ADDR – IP-адрес клиента в формате десятичное с точкой.

PEER_CERTIFICATE – X.509 сертификат клиента в виде BASE64.

PEER_SERIAL – серийный номер X.509 сертификата клиента. Если серийный номер меньше либо равен 0xfffffffe, формат – десятичное число, иначе – последовательность байт в шестнадцатеричной записи, с символом ”:” в качестве разделителя

Примеры:
	PEER_SERIAL	123
	PEER_SERIAL	0a:ff:45:44:he:09

PEER_ISSUER – имя издателя из X.509 сертификата клиента, представленное в соответствии с RFC 2253 в кодировке UTF8.

PEER_SUBJECT – имя субъекта из X.509 сертификата клиента, представленное в соответствии с RFC 2253 в кодировке UTF8.

PEER_MACL – список мандатных меток из X.509 сертификата клиента с уровнями доступа по каждой из политик доступа.

Формат:
delimiter ::=  ‘|’
label ::= OID ‘:’ LEVEL
peer_macl ::= delimiter | delimiter  label  peer_macl
Примеры:
	PEER_MACL	|1.2.3.4.5.6:100|1.2.3.4.5.14:101|1.2.34.41:1|
	PEER_MACL	|

PEER_POLICY – список идентификаторов политик применения сертификата из X.509 сертификата клиента.

Формат:
delimiter ::=  ‘|’
peer_policy ::= delimiter | delimiter  OID  peer_policy
Примеры:
	PEER_POLICY		|1.2.3.4.5.6:100|1.2.3.4.5.14:101|1.2.34.41:1|
	PEER_POLICY		|

TCTLSEnvPrefix - Директива необязательная. Может быть указана один раз и только в основном разделе конфигурационного файла http.conf. Параметром к данной директиве является префикс, добавляемый к переменным окружения, выставляемым Модулем.

Пример (значение по умолчанию):
TCTLSEnvPrefix HTTP_X_TCTLS_

TCTLSEnable - Директива необязательная. Может быть указана только один раз в разделе описания каждого сервера (как основного, так и виртуального). В зависимости от значения параметра директивы включается (либо нет) установление защищенных соединений посредством Модуля. Допустимые значения { “yes”, “no” }

Пример (значение по умолчанию):
TCTLSEnable		no

TCTLSTrustSelfIssued - Директива необязательная. Может быть указана только один раз в разделе описания каждого сервера (как основного, так и виртуального). В зависимости от значения параметра директивы самоподписанные сертификаты могут считаться доверенными. Допустимые значения { “yes”, “no” }

Пример (значение по умолчанию):
TCTLSTrustSelfIssued		no

Примечание: Распространение на рабочие места и установка в КТ сертификатов издателей доверенным образом является основой безопасности автоматизированных систем в инфраструктуре с открытым распределением ключей. Стандарт PKCS#11 предусматривает специальный атрибут (CKA_TRUSTED) которым отмечаются сертификаты установленные в КТ доверенным способом. Однако некоторые КТ (в частности NSS) не поддерживают данный атрибут. При использовании таких КТ необходимо устанавливать

TCTLSTrustSelfIssued		yes

TCTLSSlotIndex - Директива необязательная. Может быть указана только один раз в разделе описания каждого сервера (как основного, так и виртуального). Принимает один или два численных параметра – номера КТ в соответствии с конфигурацией указанной в файле TCTLSTokenConfig.

  1. Первый параметр позволяет указать, какой из присутствующих в системе КТ необходимо использовать для установления защищенных соединений. В данном КТ должен содержаться сертификат сервера и соответствующий ему приватный ключ. Значение первого параметра по умолчанию [ 0 ].
  2. Необязательный второй параметр, указывает, хранилище какого из присутствующих в системе КТ необходимо открыть с доступом на запись – в данное хранилище будут добавляться сертификаты, полученные из LDAP в процессе построения цепочки сертификации.

Примечание 1: По умолчанию хранилища всех КТ открываются с доступом только на чтение, что позволяет, в частности, располагать хранилища программных КТ на защищенных от записи отчуждаемых носителях – например на компакт-дисках.

Примечание 2: Из соображений безопасности, не рекомендуется устанавливать оба параметра в одно и то же значение. Особенно в случае если соответствующий КТ не поддерживает атрибут (CKA_TRUSTED) - как КТ NSS.

Примеры:
TCTLSSlotIndex		3
TCTLSSlotIndex		1  3

Примечание 3: Хранилище КТ, открытое на запись не используется для загрузки доверенных сертификатов, за исключением случая, когда этот же КТ используется для организации защищенных соединений.

TCTLSValidationMode - Директива необязательная. Может быть указана только один раз в разделе описания каждого сервера (как основного, так и виртуального). Определяет режим проверки сертификата TLS-клиента. Принимает от одного до трех параметров. Допустимые значения: (через запятую указаны синонимы)

  • «fast», «no_crls» Является значением по умолчанию для первого и второго параметров. Производится построение и проверка цепочки сертификации без поиска проверки информации о статусе сертификата
  • «crl», «crls», «regular», «use_crls» Производится построение и проверка цепочки сертификации. Статус сертификата оценивается только по регулярным СОС (CRL). В случае отсутствия регулярного СОС на каком-либо шаге цепочки сертификации сертификат клиента признается недействительным.
  • «delta», «deltas», «use_delta», «use_deltas» Производится построение и проверка цепочки сертификации. Статус сертификата оценивается как по регулярным СОС (CRL), так и по дополнительным СОС (delta-CRL). Также как и для «crl» критичным является наличие регулярных СОС для всей цепочки сертификации.
  • «forced», «forced_deltas», «require_deltas» Производится построение и проверка цепочки сертификации. Статус сертификата оценивается как по регулярным СОС (CRL), так и по дополнительным СОС (delta-CRL). В случае отсутствия регулярного либо дополнительного СОС на каком-либо шаге цепочки сертификации сертификат клиента признается недействительным.
  • «ocsp» Статус сертификата определяется по результату запроса к OCSP-серверу. Необязательный второй параметр директивы определяет порядок проверки сертификата автора ЭЦП в ответе OCSP-сервера (ЭЦП в ответе OCSP-сервера проверяется всегда) Необязательный третий параметр определяет порядок проверки сертификата клиента в случае, если OCSP-сервер не обладает информацией о статусе сертификата клиента. Значение «ocsp» недопустимо для второго и третьего параметров.
  • «always_valid», «valid» Сертификат клиента признается действительным без проверок. Срок действия сертификата не учитывается.
  • «always_invalid», «invalid» Является значением по умолчанию для третьего параметра. Сертификат клиента признается недействительным без проверок.
	
	Примеры:
TCTLSValidationMode fast					(1)
TCTLSValidationMode ocsp					(2)
TCTLSValidationMode ocsp fast invalid			(3)
TCTLSValidationMode ocsp fast forced			(4)
TCTLSValidationMode ocsp valid invalid			(5)

Примеры (2) и (3) эквивалентны: в обоих случаях проверка ответа OCSP-сервера будет производиться без проверки статуса сертификата автора ЭЦП в ответе.
Пример (4) можно использовать в корпоративной автоматизированной системе, к которой могут обращаться клиенты с сертификатами от издателей, не обслуживающихся выбранным OCSP-сервером.
Пример (5) можно использовать в корпоративной автоматизированной системе с высоким уровнем доверия к выбранному OCSP-серверу и явным запретом на доступ для клиентов с сертификатами от издателей им не обслуживающихся.

TCTLSDeltaSecons - Директива необязательная и может указываться только один раз и только в основном разделе конфигурационного файла http.conf. Определяет интервал времени в секундах, с момента получения дополнительного СОС (delta-CRL) в течении которого дополнительный СОС считается актуальным и не обновляется. Значение по умолчанию [ 90 ].

TCTLSRequireExpression* - Директива необязательная и может указываться только по одному разу и только в разделах . Единственный параметр - логическое выражение, на основе переменных окружения и параметров соединения. Для успешной обработки запроса клиента к содержимому директории необходимо чтобы результатом вычисления выражения было {TRUE}.

КОНФИГУРАЦИОННЫЙ ФАЙЛ МОДУЛЯ

Конфигурационный файл является текстовым (XML) представлением ASN.1 структуры описанной ниже. Преобразование ASN.1 => XML основано на Basic XML encoding rules (ITU.T Rec. 693), но не тождественно ему.

TCTLSLicensedConfig ::= SEQUENCE {
   config     TCTLSConfig,
   license    OCTET STRING
}

config – содержит список настраиваемых параметров
license – содержит лицензионную информацию, заверенную ЭЦП производителя
	
TCTLSConfig ::= SEQUENCE {
   hashList        [ 0 ] TCTLSDigestList,
   p11PIN          [ 1 ] TCTLSP11PIN,
   cRLCache        [ 2 ] IA5String, OPTIONAL
   cRLURI          [ 3 ] IA5String, OPTIONAL
   deltaURI        [ 4 ] IA5String, OPTIONAL
   cRLFile         [ 5 ] IA5String, OPTIONAL
   deltaFile       [ 6 ] IA5String, OPTIONAL
   lDAPs           [ 7 ] GenericServices, OPTIONAL
   oCSP            [ 8 ] GenericService, OPTIONAL
   aAdefinitions   [ 9 ] AttributeModules, OPTIONAL
}
hashList – содержит список полных путей к файлам с дополнительной информацией 
для встроенных механизмов контроля целостности по каждому из файлов.

TCTLSDigestList ::= SEQUENCE OF TCTLSDigest SIZE(0..MAX)

TCTLSDigest ::= SEQUENCE {
   fileName    UTF8String,
   algId       AlgorithmIdentifier
   digest      OCTET STRING
}

Пример:
<TCTLSDigestList>
<TCTLSDigest>
<UTF8String>/usr/local/apache/bin/httpd</UTF8String>
<AlgorithmIdentifier>
<AlgId>1.2.643.2.2.19</AlgId>
<gostR3410EC_CryptoPro>
                        <OBJECT_IDENTIFIER>
                            1.2.643.2.2.35.1
                        </OBJECT_IDENTIFIER>
                        <OBJECT_IDENTIFIER>
                            1.2.643.2.2.30.1
                        </OBJECT_IDENTIFIER>
</gostR3410EC_CryptoPro>
</AlgorithmIdentifier>
<DigestValue>00:00:00:00 </DigestValue>
</TCTLSDigest>
</TCTLSDigestList>

p11PIN – обязательный элемент. Задает либо способ получения PIN 
для авторизации в КТ, либо сам PIN:

TCTLSP11PIN ::= CHOICE {
   pinValue    [ 0 ] IA5String
   pinFile     [ 1 ] IA5String
   pinFeeder   [ 2 ] IA5String
}

При задании PIN возможны следующие варианты:

  • pinValue – значение PIN
  • pinFile – имя файла, содержащего PIN
  • pinFeeder – имя программы, при помощи которой можно получить PIN.
Выбор конкретного варианта задания PIN лежит на пользователе.

Примечание: Указанный данным элементом PIN используется для авторизации во всех КТ, подключаемых Модулем.

Примеры:

<TCTLSPIN> <pinValue>123456</pinValue> </TCTLSPIN>

<TCTLSPIN> <pinFile>/cdrom/smena-00-08/pin.txt</pinFile> </TCTLSPIN>

<TCTLSPIN>
<pinFeeder>/usr/local/apache/tctls/demo_pin_feeder</pinFeeder>
</TCTLSPIN>

cRLCache – необязательный элемент. Задает директорию на файловой системе, которая будет использоваться для локального хранения СОС (CRL), полученных различными способами в процессе проверки клиентских сертификатов. Использование кэша СОС дает существенный выигрыш в производительности системы, особенно в режимах проверки использующих обновления к СОС (delta-CRL).

cRLURI, deltaURI – необязательныe элементы. Задают HTTP-URL, которые будут использоваться соответственно для получения регулярных СОС и обновлений к ним в случае если не задан кэш СОС, либо в нем отсутствуют актуальные СОС.

cRLFile, deltaFile – необязательные элементы. Задают полные пути на файловой системе к файлам с СОС и обновлениями к СОС. Файлы должны быть в формате PEM и могут содержать по нескольку СОС и обновлений к ним (например от разных издателей).

Доставка СОС в систему указанием URL или пути к файлу с СОС актуальна для корпоративных систем, локальная сеть которых не имеет доступа к online-сервисам распространения информации о статусе сертификатов поддерживаемых системой издателей. К online-сервисам по распространению информации о статусе сертификатов относятся:

  • точки распространения СОС и обновлений к ним – указываются в теле сертификатов соответствующими расширениями – CRLDistributionPoints и FreshestCRL;
  • распространение СОС и обновлений к ним через LDAP;
  • протокол OCSP.
Для задания LDAP и OCSP серверов в конфигурационном файле используются следующие структуры:

GenericService ::= SEQUENCE  {
    dnsName  IA5String, OPTIONAL
    port     INTEGER (1..65535)
    ipAddress OCTET_STRING, SIZE=4, OPTIONAL
    -- one and only one of ipAddress and dnsName must be present
}

GenericServices ::= SEQUENCE OF GenericService

lDAPs – необязательный элемент. Задает список LDAP-серверов, которые будут использоваться при построении цепочки сертификации и поиска СОС и обновлений к ним.

oCSP – необязательный элемент. Задает адрес OCSP-сервера, который будет использоваться для получения информации о статусе сертификата клиента (если выбран соответствующий режим проверки – см. описание директивы TCTLSValidationMode)

Пример: заданы два LDAP-сервера: {DNS-имя; порт}
и OCSP-сервер: {ip адрес; порт}
        <LDAPServers>
            <GenericService>
                <DNSName>ldap.myorg.ru</DNSName>
                <Port>389</Port>
            </GenericService>
            <GenericService>
                <DNSName>ldap.friendly-org.ru</DNSName>
                <Port>555</Port>
            </GenericService>
        </LDAPServers>
        <OCSPServer>
            <Port>85</Port>
		<IPAddress>7f:00:00:01</IPAddress>
        </OCSPServer>

aAdefinitions – необязательный элемент. Задает список разделяемых библиотек, содержащих описания ASN.1-типов специфичных да данной автоматизированной системы. Может передавать описания произвольных типов для использования в атрибутных сертификатах. Элементами списка являются полные пути к файлам разделяемых библиотек.

TCTLSAttributeModules ::= SEQUENCE OF TCTLSAttributeModule
TCTLSAttributeModule ::= UTF8String
	
	Пример:
<TCTLSAttributeModules>
<TCTLSAttributeModule>
/usr/local/apache/tctls/aa/aa_0.so
</TCTLSAttributeModule>
<TCTLSAttributeModule>
/usr/local/apache/tctls/aa/aa_1.so
</TCTLSAttributeModule>
</TCTLSAttributeModules>

Пример полного конфигурационного файла:

<TCTLSLicensedConfig>
    <TCTLSConfig>
        <TCTLSDigestList>
            <TCTLSDigest>
                <UTF8String>/usr/local/apache/bin/httpd</UTF8String>
                <AlgorithmIdentifier>
                    <AlgId>1.2.643.2.2.19</AlgId>
                    <gostR3410EC_CryptoPro>
                        <OBJECT_IDENTIFIER>
                            1.2.643.2.2.35.1
                        </OBJECT_IDENTIFIER>
                        <OBJECT_IDENTIFIER>
                            1.2.643.2.2.30.1
                        </OBJECT_IDENTIFIER>
                    </gostR3410EC_CryptoPro>
                </AlgorithmIdentifier>
                <DigestValue>00:00:00:00 </DigestValue>
            </TCTLSDigest>
        </TCTLSDigestList>
        <TCTLSPIN>
            <pinValue>123456</pinValue>
        </TCTLSPIN>
        <CRLCache>/usr/local/apache/tctls/crlcache</CRLCache>
        <LDAPServers>
            <GenericService>
                <DNSName>XXX.XXX.ru</DNSName>
                <Port>389</Port>
            </GenericService>
        </LDAPServers>
        <OCSPServer>
            <DNSName>YYY.YYY.ru</DNSName>
            <Port>85</Port>
        </OCSPServer>
        <AttributeModules>
            <AttributeModule>
                /usr/local/apache/tctls/aa/aa_0.so
            </AttributeModule>
        </AttributeModules>
    </TCTLSConfig>
    <License>
        00:00:00:00:00
    </License>
</TCTLSLicensedConfig>


Настройка
Модуль разграничения доступа
© 2005-2012
LLC Top Cross
All Rights Reserved
 
 поиск
Google

 Цифровой Секретарь
клиентское программное обеспечение

на технологиях открытых ключей