• Безопасность смарт-карт

    Maximus43
    @Maximus43
    1. Никак. Обращение к смарт-карте идет через API, который предоставляет драйвер. Если вредоносное ПО перехватило PIN, то оно с таким же успехом может производить операции со смарт-картой через API. Все можно реализовать в фоне.
    2. Никак. Смарт-карта не знает, правильный документ или нет. Ей передают хеш документа, она шифрует его своим закрытым ключом и отдает результат обратно. Если передать хеш левого документа, то смарт-карта его без дополнительных вопросов зашифрует.
    Вывод: плюс смарт-карты только в том, что из нее нельзя извлечь закрытый ключ (если все правильно настроено) и в том, что когда ее нет в ридере, то подписать ничего не возможно физически. А если рабочая среда скомпрометирована и у вредоносной программы есть PIN и доступ к API, то тут уж как говорится: «Против лома нет приема».
    Все сказанное касается обычных смарт-карт, для Java карт можно добавить аплет с хитрой логикой, тогда просто API может быть недостаточно для подписания. Это вариант защиты, но требует дополнительных действий со стороны разработчиков и со стороны клиентского ПО.
    Ответ написан
    Комментировать
  • Postfix - как отправлять почту локальных пользователей на внешний SMTP сервер?

    Maximus43
    @Maximus43
    Речь об использовании MX, это значит, что Postfix работает в режиме полноценного MTA, а не как простой relay.
    Следовательно параметр relayhost надо писать так:
    relayhost =

    Пропишите параметр mydestination для локальных доменов.
    Проверьте, что inet_interfaces не настроен исключительно на localhost.
    Ответ написан
    Комментировать
  • HTTP заголовок Expires. Почему браузер тем не менее обращается к серверу?

    Maximus43
    @Maximus43
    Вот что говорит гугл:
    If a user agent sends a request with «Cache-Control: max-age=0» (aka. «end-to-end revalidation»), then each cache along the way will revalidate its cache entry (eg. with the «If-Not-Modified» header) all the way to the origin server. If the reply is then 304 (Not Modified), the cached entity can be used.

    У вас запрос как раз с Cache-Control: max-age=0, похоже вы жмете Ctrl-F5 или браузер так обрабатывает обновление страницы.
    Ответ написан
  • Как создать хранилище сертификатов VeriSign с помощью OpenSSL?

    Maximus43
    @Maximus43
    А вам именно JKS надобно? Или цель просто настроить SSL под Apache? Просто для SSL не обязательно использовать JKS.
    И вообще проблема лежит несколько в другой плоскости. Для сопоставления издателя и конечного сертификата используют раздичные способы: Exact match, Key match, Name match. Первые два способа требуют расширение Authority Key Identifier. Значит остается только Name match. Похоже, что keytool строить цепочки в режиме Name match не умеет. Следовательно от JKS ничего не зависит, надо подкручивать клиета, использующего JKS таким образом, чтобы он смог построить всю цепочку от начала до конца.
    Ответ написан
  • Как создать хранилище сертификатов VeriSign с помощью OpenSSL?

    Maximus43
    @Maximus43
    Походу это из-за отсутствия расширения Authority Key Identifier. keytool просто не может связать конечный сертификат с выпускающим CA. В Windows CryptoAPI есть несколько типов сопоставления издателя: через Authority Key Identifier, через Issuer's DN и т.п. Поэтому в Windows такой сертификат может и заработает, но нет гарантии. Вот что пишет по поводу Authority Key Identifier стандарт RFC 5280:

    The keyIdentifier field of the authorityKeyIdentifier extension MUST
    be included in all certificates generated by conforming CAs to
    facilitate certification path construction. There is one exception;
    where a CA distributes its public key in the form of a «self-signed»
    certificate, the authority key identifier MAY be omitted. The
    signature on a self-signed certificate is generated with the private
    key associated with the certificate's subject public key. (This
    proves that the issuer possesses both the public and private keys.)
    In this case, the subject and authority key identifiers would be
    identical, but only the subject key identifier is needed for
    certification path building.

    У вас сертификат содержит следующие расширения:

    X509v3 extensions:
    X509v3 Basic Constraints:
    CA:FALSE
    X509v3 Key Usage:
    Digital Signature, Key Encipherment
    X509v3 CRL Distribution Points:

    Full Name:
    URI:http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl

    X509v3 Certificate Policies:
    Policy: 2.16.840.1.113733.1.7.23.3
    CPS: www.verisign.com/rpa

    X509v3 Extended Key Usage:
    Netscape Server Gated Crypto, TLS Web Server Authentication, TLS Web Client Authentication
    Authority Information Access:
    OCSP - URI:http://ocsp.verisign.com
    CA Issuers - URI:http://SVRIntl-G3-aia.verisign.com/SVRIntlG3.cer

    1.3.6.1.5.5.7.1.12:
    0`.^.\0Z0X0V..image/gif0!0.0...+......Kk.(.....R8.).K..!..0&.$http://logo.verisign.com/vslogo1.gif


    Не хватает

    X509v3 Authority Key Identifier:
    keyid:D7:9B:7C:D8:22:A0:15:F7:DD:AD:5F:CE:29:9B:58:C3:BC:46:00:B5

    Вот такие у меня мысли.
    Ответ написан
  • Как создать хранилище сертификатов VeriSign с помощью OpenSSL?

    Maximus43
    @Maximus43
    Все просто. В PKCS12 не надо вставлять цепочку сертификатов. Это можно сделать на этапе формирования JKS.
    Создать PKCS12:
    openssl pkcs12 -export -in webserver.cer -inkey webserver.pem -out webserver.p12
    Создаем хранилище сертификатов JKS и импортируем туда наши данные
    # keytool -v -importkeystore -srckeystore webserver.p12 -srcstoretype PKCS12 -destkeystore tomcat.jks -deststoretype JKS
    Копируем сертификат внешнего CA (назовем его CA_cert.cer)
    # scp<источник>:CA_cert.cer .
    Устанавливаем его в оба локальных хранилища
    # keytool -import -alias cacert-file CA_cert.cer -keystore tomcat.jks
    # keytool -import -trustcacerts -file CA_cert.cer -keystore truststore.jks -storepass <пароль для JKS> -alias externalca

    Присваиваем права доступа
    # chmod +x *.jks

    Все.
    Ответ написан
  • Закэшировался index.html

    Maximus43
    @Maximus43
    Чудес не бывает. Скорей всего в прокси (если есть) или на клиенте у вас закешировалось.
    Ответ написан
    7 комментариев
  • Nginx: как получить filename из запроса?

    Maximus43
    @Maximus43
    Попробуйте использовать переменную $fastcgi_script_name
    Ответ написан
    Комментировать
  • Приказ ФСБ РФ № 795 от 27 декабря 2011 года

    Maximus43
    @Maximus43
    Содержимое приказа похоже на требования к EV SSL сертификату, за исключением пунктов 18, 29 и 30. Там описаны очень специфичные для PKI расширения, с заполнением которых могут быть сложности.
    По п.2. Надо сгенерить запрос на сертификат с учетом требований приказа. Сама генерация запроса (PKCS10) возможна в OpenSSL при правильном конфиге. А подписывать сертификат придется у авторизованных ЦС. После этого сертификат можно использовать о назначению.
    Ответ написан
    Комментировать
  • Оптимизация url?

    Maximus43
    @Maximus43
    Не забудьте поставить 301 редирект с www.site.ru на site.ru (или наоборот, тут дело вкуса)
    Ответ написан
    2 комментария
  • MySQL: Узнать количество "пройденных" SELECT`ом строк

    Maximus43
    @Maximus43
    Если поле system_name в индекс не попадает, то такой запрос будет full scan, т.е. будет пройдено 100% записей в таблице. Посчитать количество записей в таблице можно с помощью оператора count.
    Ответ написан
    Комментировать
  • Как правильно заполнить таможенную декларацию на ShipITo.com?

    Maximus43
    @Maximus43
    Мой личный опыт: я всегда ставлю Merchandise, прошу сотрудников Шипито убрать все докуметы из посылки (услуга стоит 8,5 баксов) и после этого указываю разумную цену ниже предела растаможки. Работает 100%. Тип посылки не привлекает внимания таможенников, отсутсвие платежных документов не дает оснований увидеть расхождения декларированной цены и реальной.
    Для айфона советую написать «Portable communication unit» и цену около 100 долларов. Если будут спрашивать, можно сказать, что купил при супер-распродаже, хотя, конечно, лучше внимание таможни не привлекать.
    Ответ написан
    4 комментария