Jurik-Phys.Net

~ Простота и ясность ~

Инструменты пользователя

Инструменты сайта


itechnology:crypto

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
itechnology:crypto [2014/06/13 20:48] – [Хранение паролей: Vim + GnuPG] jurik_physitechnology:crypto [2015/08/11 14:11] – [Генерация паролей] jurik_phys
Строка 79: Строка 79:
 Источники: [[http://wiki.gentoo.org/wiki/GnuPG/ru|раз]], [[http://blog.regolit.com/2013/03/06/understanding-gnupg|два]] Источники: [[http://wiki.gentoo.org/wiki/GnuPG/ru|раз]], [[http://blog.regolit.com/2013/03/06/understanding-gnupg|два]]
 ===== Хранение паролей: Vim + GnuPG ===== ===== Хранение паролей: Vim + GnuPG =====
-Дана машина, доступная из сети по ssh, на машине установлен криптографический пакет gpg, установлен vim с плагином vim-gnupg, а также дополнительно доступен git. \\ Задача обеспечить приватный доступ и хранение паролей на данной машине. Информация: [[http://pig-monkey.com/2013/04/4/password-management-vim-gnupg/|тыц]].+==== Общие положения ==== 
 + 
 +Дана машина, доступная из сети по ssh, на машине установлен криптографический пакет gpg, установлен vim с плагином vim-gnupg, а также дополнительно доступен git. \\ Задача обеспечить приватный доступ и хранение паролей на данной машине. **Источник**: [[http://pig-monkey.com/2013/04/4/password-management-vim-gnupg/|тыц]].
  
   - Генерируем пару ключей на целевой машине, [[itechnology:crypto#управление_ключами|тыц]]\\ //Не забываем сделать копии секретного ключа и создать сертификат отзыва//   - Генерируем пару ключей на целевой машине, [[itechnology:crypto#управление_ключами|тыц]]\\ //Не забываем сделать копии секретного ключа и создать сертификат отзыва//
Строка 90: Строка 92:
   - Открываем  vim'ом ранее зашифрованный файл<code bash>vim test.txt.gpg</code>//После ввода парольной фразы к закрытому ключу, открывается файл в расшифрованном виде, который может быть прозрачно отредактирован и сохранён.//   - Открываем  vim'ом ранее зашифрованный файл<code bash>vim test.txt.gpg</code>//После ввода парольной фразы к закрытому ключу, открывается файл в расшифрованном виде, который может быть прозрачно отредактирован и сохранён.//
   - При создании новго зашифрованного файла, vim попросит указать получателя<code bash>vim secret.gpg</code>   - При создании новго зашифрованного файла, vim попросит указать получателя<code bash>vim secret.gpg</code>
-Для большего удобства предлагается установить следующие настройки в .vimrc+==== Настройки в vimrc ==== 
 +Для большего удобства предлагается установить следующие настройки в .vimrc. Подробности используемых опций см. в первоисточнике, [[http://pig-monkey.com/2013/04/4/password-management-vim-gnupg/|тыц]].
 <code vim>" Tell the GnuPG plugin to armor new files. <code vim>" Tell the GnuPG plugin to armor new files.
 let g:GPGPreferArmor=1 let g:GPGPreferArmor=1
Строка 116: Строка 119:
     set foldopen=insert     set foldopen=insert
 endfunction </code> endfunction </code>
-Подробности используемых опций см. в первоисточнике,[[http://pig-monkey.com/2013/04/4/password-management-vim-gnupg/|тыц]].+==== Генерация паролей ==== 
 +Для генерации можно использовать утилиту pwgen прямо из vim'а<code vim>:r!pwgen -sy 12 1</code> 
 + 
 +===== Cертификат для сайта. ===== 
 +==== Получение сертификата ==== 
 + 
 +По материалам [[http://habrahabr.ru/post/249529/|habrahabr.ru]]. 
 + 
 +1. Регистрация на сайте login.wosign.com/reg.html и подтверждение электронной почты. 
 + 
 +2. Заказ бесплатного сертификата по адресу buy.wosign.com/DVSSL.html. Рядом с ценой (обозначено красным цветом) нажать на синий квадрат (получение бесплатного сертификата), ниже зелёная кнопка - продолжить оформление сертификата. 
 + 
 +3. Ввод нужных доменных имен, подтверждение владения доменом. При вводе домена в виде www.example.com, example.com выписывается сервисом автоматически. 
 + 
 +4. Создание на сервере приватного ключа: <code bash>openssl req -out mydomain.com.csr -new -sha256 -newkey rsa:2048 -nodes -keyout mydomain.com.key</code> 
 + 
 +5. Вставка содержимого файла mydomain.com.csr в форму сайта. Завершение формальностей с вводом пароля, принятием лицензионного соглашения и т.д. 
 + 
 +6. Через несколько часов на указанную ранее почту приходит ссылка на сертификат. 
 + 
 +7. После установки сертификата и сгенерированного приватного ключа на сайт, желательно проверить уровень безопасности сайта через [[https://www.ssllabs.com/ssltest/index.html|SSL-тестере]]. 
 + 
 +8. Настройка OCSP stapling на сервере для полученного сертификата. 
 + 
 +==== Настройка OCSP stapling ==== 
 + 
 +По материалам [[http://www.8host.com/blog/nastrojka-ocsp-stapling-na-serverax-apache-i-nginx/|8host.com]] и , [[http://habrahabr.ru/post/254231/|habrahabr.ru]] 
 + 
 +Получение корневого и промежуточного сертификата CA.  
 +<code bash>wget -O - https://www.startssl.com/certs/ca.pem | tee -a ca-certs.pem > /dev/null  
 +wget -https://www.startssl.com/certs/sub.class1.server.ca.pem | tee -a ca-certs.pem > /dev/null </code> 
 + 
 +Cертификаты в формате DER необходимо сконвертировать в PEM. 
 +<code bash>wget -O - http://aia.startssl.com/certs/ca.crt openssl x509 -inform DER -outform PEM | tee -a ca-certs.pem > /dev/null  
 +wget -O - http://aia1.wosign.com/ca1g2-server1-free.cer | openssl x509 -inform DER -outform PEM | tee -a ca-certs.pem > /dev/null  
 +wget -O - http://aia6.wosign.com/ca6.server1.free.cer | openssl x509 -inform DER -outform PEM | tee -a ca-certs.pem > /dev/null </code> 
 + 
 +Редактирование файла виртуальных хостов SSL. В директиву <VirtualHost></VirtualHost> добавить: 
 +<code>SSLCACertificateFile /etc/ssl/ca-certs.pem 
 +SSLUseStapling on</code> 
 + 
 +Вне директивы <VirtualHost></VirtualHost> указать кэш<code>SSLStaplingCache shmcb:/tmp/stapling_cache(128000)</code> 
 + 
 +Протестировать изменённый конфиг и перезагрузить настройки:<code>apachectl -t 
 +service apache2 reload</code> 
 + 
 +Проверка результата на [[https://www.ssllabs.com/ssltest/index.html|SSL-тестере]]. 
 +<code> 
 +Protocol Details 
 +---------------- 
 +OCSP stapling Yes</code> 
 + 
 +==== OCSP stapling итоги ==== 
 + 
 +На следующий день после удачной настройки сайт перестал открываться в ошибкой <code>sec_error_ocsp_try_server_later</code> 
 +В логах apach'а ошибка Bad gateway 502. Вероятно, что проявилась обозначенная на хабре [[http://habrahabr.ru/post/254231/#comment_8350543|проблема]]. 
 + 
 +==== Forward Secrecy по-умолчанию ==== 
 +**Способ 1. Рекомендованный:** ([[https://www.digicert.com/ssl-support/ssl-enabling-perfect-forward-secrecy.htm|digicert.com]]). \\ 
 +Использование Forward Secrecy определяется набором используемых шифров. 
 +<code> 
 +SSLProtocol all -SSLv2 -SSLv3 
 +SSLHonorCipherOrder On 
 +SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4" 
 +</code> 
 +**Способ 2. Простой, но увеличивающий нагрузку на сервер:** ([[https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html|raymii.org]]). \\ 
 + 
 +Увеличение стойкости DH-шифров. 
 +<code>#Generate the parameters 
 +cd /etc/ssl/certs 
 +openssl dhparam -out dhparam.pem 4096 
 + 
 +# Add the following to your Apache config. 
 +SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"</code> 
 + 
 +==== Turn On HSTS ==== 
 +HSTS - HTTP Strict Transport Security. Включение, согласно, [[http://itigloo.com/security/how-to-configure-http-strict-transport-security-hsts-on-apache-nginx/|itigloo.com]]. 
 +  - Enable the Apache Headers Module.<code>a2enmod headers</code>  
 +  - Add the additional header to the HTTPS VirtualHost directive. Max-age is measured in seconds.<code><VirtualHost *:443> 
 +    # Guarantee HTTPS for 1 Year including Sub Domains  
 +    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"</code>
itechnology/crypto.txt · Последнее изменение: 2022/04/10 21:08 — jurik_phys