Поговоримо трохи про засоби електронного підпису (ЕП) з використанням вітчизняних ГОСТ-алгоритмів в Linux. Незважаючи на те, що різні засоби і інтерфейси по роботі з ЕП в Linux розвинені навіть краще, ніж в Windows, використовувати їх не так просто.

Такий стан речей зберігався останні кілька років. Але з кінця 2016 року ситуація змінилася в кращу сторону. З'явилося відразу два продукти, які дозволяють працювати з електронним підписом за стандартом ГОСТ і шифруванням без використання консолі – це Rosa Crypto Tool і Trusted eSign. Обидва ці продукту для роботи з криптографією використовують «Кріптопро CSP» для Linux. Тому, перед тим як звернутися до опису самих продуктів, поговоримо трохи про «Кріптопро CSP».
Читати далі →

Витяг ключа сертифіката з неизвлекаемым ключем



Досить часто при оформленні сертифікатів ключів електронного підпису можна спостерігати нав'язливий піар токенів з неизвлекаемым ключем. Продавці з засвідчують центрів запевняють, що, купивши у них ЗКЗІ КриптоПРО CSP токен з неизвлекаемым ключем (Рутокен ЕЦП або JaCarta ГОСТ), ми отримаємо сертифіковані ЗКЗІ, що забезпечують 100% захист від крадіжки ключів з токена. Але чи так це насправді? Для відповіді на це питання проведемо простий експеримент…
Читати далі →

Електронний підпис довіреної середовищі на базі завантажувального Ubuntu 14.04 LTS і Рутокен ЕЦП Flash

Процедура накладання електронного підпису, покликана забезпечити підтвердження цілісності підписаного документа і його авторства, сама по собі може бути небезпечною.
Основні атаки на ЕП — це крадіжка ключа і підміна підписаній інформації, а також несанкціонований доступ до засобу ЕП (наприклад, USB-токена) за допомогою крадіжки його PIN-коду.

Реалізуються дані атаки різними способами і на різних рівнях. На рівні ОС це впровадження шкідливого ПО (віруси, програми-шпигуни, руткіти тощо), яке здатне викрадати ключі, PIN-коди і робити підміну документів за допомогою читання і/або підміни даних в пам'яті системного процесу, використовуючи різні механізми «хака», закладені в ОС.
Якщо ми говоримо про підписи в браузері, то до даних атак додається можливість проведення атаки man-in-the-middle, спрямованої на модифікацію підписуються даних на web-сторінці або на крадіжку PIN-коду або на перехоплення secure token для можливості зловмиснику прикинутися абонентом системи. Крім того, на сайтах можлива атака типу CSS, обумовлена нехлюйством розробників сайту.

Очевидно, що максимально захистити клієнта при проведенні процедури ЕП можливо лише комплексом заходів.
До даних заходів можна віднести:
  • для застосування електронного підпису криптографічних смарт-карт/USB-токенів з незнімний ключами
  • використання правильної реалізації протоколу TLS на сайті
  • правильну конфігурацію цієї правильної реалізації протоколу TLS
  • використання спеціальних апаратних засобів для візуалізації підписуються даних перед накладенням підпису (trustscreen)
  • коректна реалізація браузерних плагінів і розширень, які забезпечують ЕП у браузері
  • регламентування процедури підпису для користувача з урахуванням вбудованих в браузер механізмів безпеки
    • перевірка сертифіката TLS-сервера користувачем перед ЕП
    • запуск браузерних плагінів і розширень тільки на надійному сайті (зараз правильно налаштовані браузери попереджають користувача про запуск)

    • введення PIN-коду сертифіката за запитом тільки довіреної сайту
  • захист ОС від шкідливого ПЗ (створення довіреної середовища)


Деякий час тому наша компанія випустила новий Рутокен ЕЦП Flash. Це пристрій «два в одному» — криптографічний токен і керована FLASH-пам'ять в єдиному корпусі. При цьому контролер дозволяється налаштувати ФЛЕШ-пам'ять таким чином, що атрибути налаштування можна змінити без знання PIN-коду до пристрою.

У даній статті ми зробимо кастомний Ubuntu 14.04 LTS, в яку «упакуємо» смарткарточные драйвера і Рутокен Плагін. Цю ОС запишемо на FLASH-пам'ять Рутокен ЕЦП Flash (USB-live) і спеціальними засобами зробимо її read-only, так, що без знання PIN-коду зловмисник не зможе зняти цей атрибут.

Таким чином, отримаємо завантажувальний пристрій, при завантаженні з якого користувач відразу отримає можливість підпису документів в браузері на неизвлекаемых ключах у довіреної середовищі, цілісність якої гарантується керуючим контролером USB-токена.

Читати далі →

Конструюємо локальний криптографічний TLS-проксі HTTP c API електронного підпису



Електронні торги, держпослуги, системи корпоративного електронного документообігу, дистанційного банківського обслуговування та інші подібні системи перебувають у сфері інтересів регуляторів і змушені використовувати російські криптосредства для забезпечення конфіденційності та юридичної значимості.

Основним засобом взаємодії користувача та інформаційної системи повільно, але вірно стає браузер.
Якщо уважно розглянути питання інтеграції популярних браузерів і російських криптосредств, то вимальовуються наступні проблеми:
  • Браузери використовують абсолютно різні криптографічні бібліотеки (MS Crypto API, NSS, openssl). Універсального криптосредства, яка «додає» Гости у всі ці бібліотеки немає
  • Механізми вбудовування багатьох криптосредств в операційну систему і в браузер «зав'язані» на версію ОС. З виходом оновлення ОС працездатність криптосредства може скінчитися
  • Google Chrome відмовляється від підтримки плагінів, які працюють через NPAPI. А багато російські вендори криптосредств розробили плагіни, використовуючи саме цей механізм
  • На мобільних платформах браузери не підтримують плагіни


В даній ситуації найбільш універсальним рішенням представляється винести реалізацію TLS-ГОСТ і функцій ЕЦП в окреме мережне додаток, яке приймає запити від браузера на localhost дозволяє «тунелювати» з'єднання між браузером і віддаленими web-серверами (real proxy), а також надає HTTP API для функціоналу ЕЦП, роботи з сертифікатами, токенами і т. п.
Не скажу, що ідея є новою, але давайте спробуємо зробити деякий конструктор для її реалізації.

Деталями конструктора будуть:


Любителі модульних архітектурних экпериментальных рішень запрошуються під кат.


Читати далі →

Бібліотека для вбудовування електронного підпису в додатку С++



Наша компанія продовжує розвивати лінійку бібліотек, які дозволяють вбудовувати електронний підпис з використанням російських криптоалгоритмов в інформаційні системи різного типу.

Деякий час тому ми підтримали Рутокен ЕЦП в openssl, потім випустили багатоплатформовий плагін для браузера, а тепер зробили високорівневу криптобиблиотеку для вбудовування в С++ програми.

Концептуально ці рішення виконані ідентично: використовується апаратна реалізація російських криптоалгоритмов на чіпі Рутокен ЕЦП, забезпечується підтримка цифрових сертифікатів X. 509, запитів на сертифікати PKCS#10, підписаних і зашифрованих повідомлень CMS.

Нова бібліотека стане в нагоді тим, хто пише «товсті клієнти», десктопні програми, свої браузерні плагіни і т. п.

Підтримувані пристрої:
  • USB-токен Рутокен ЕЦП
  • Смарт-карта Рутокен ЕЦП
  • Bluetooth-токен Рутокен ЕЦП
  • Trustscreen-пристрій Рутокен PINPad
  • USB-токен Рутокен WEB (HID)


Основні сценарії застосування бібліотеки з прикладами коду під катом.

Читати далі →

Вбудовування електронного підпису системи з WEB-інтерфейсом за допомогою браузерного плагіна і openssl



Кілька років тому нашою компанією був зроблений продукт Рутокен Плагін, який призначений для вбудовування ЕЦП системи з web-інтерфейсом. Базуючись на отриманому досвіді інтеграції продукту в реальні проекти мені хочеться відзначити, що нерідко розробники для реалізації серверної частини воліють використовувати підтримує російські криптоалгоритми openssl.

У даній статті буде розписана типова схема подібної інтеграції, заснована на наступних сценаріях використання плагіна:

  • Реєстрація на порталі (з видачею сертифіката або по наявному сертифікату)
  • Сувора аутентифікація на порталі
  • Електронний підпис даних та/або файлів у форматі CMS
  • Шифрування даних і/або файлів у форматі CMS


Дані сценарії припускають клієнт-серверне взаємодія, написання клієнтських скриптів на JavaScript і відповідних їм серверних викликів openssl.

Подробиці під катом.

Читати далі →

YotaPhone, Android і трохи криптографії

  Привіт, Хабр!
 
За акції YotaDevices до нас в компанію потрапив той самий Йотафон для дослідів.
Оглядів по дизайну / продуктивності / якістю камери / зачем_вообще_ето_сделалі було досить багато, та й ми, власне, не мали на меті написати черговий.
Цікаво було інше — показати можливість інтеграції сучасного смартфона на базі Android з сучасними засобами криптографічного захисту інформації.
 
 
 
Подробиці під катом
 
Читати далі →

Авторизація на порталі держпослуг за допомогою Рутокен ЕЦП

  Одному зі співробітників нашої компанії знадобилося зареєструватися на порталі держпослуг. Як відомо, на порталі зараз є можливість входити в особистий кабінет за логіном / паролем, або електронною підпису. Варіант з логіном / паролем був відкинутий в силу професійної параної, і поїхав співробітник в УЦ Ростелекома — оператора системи — отримувати сертифікат. У УЦ йому як носій електронного підпису / апаратного СКЗИ не запропонували Рутокен ЕЦП. В силу корпоративного патріотизму співробітник вирішив не форсувати події, а спробувати-таки зайти на Держпослуги, використовуючи для електронного підпису Рутокен ЕЦП.
Що з цього вийшло, описано під катом.
 
 
 
 
Читати далі →