DOU Проектор: encrypt.one — сервіс безпечної передачі даних
У рубриці DOU Проектор всі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо взяти участь. Якщо ні — можливо, серія надихне на створення власної made in Ukraine продукту. Питання і заявки на участь надсилайте на [email protected] .
Доброго дня! Мене звуть Максим Хомутін, і останні 4 роки я працюю IT-стартапером. Раніше я працював акціонером і директором порталу I.UA . Разом зі мною тягнуть соху мої колеги і брати по зброї — Денис Місько, Віталій Хранивский і Ярослав Слободянюк. Все — ключові члени команди творців I.UA та що там I.UA — ми навіть Bigmir.net ще разом робили. Наша компанія називається Final Level, що символізує складність і епічність розв'язуваних завдань. :)
Хочемо представити поважної аудиторії DOU нашу останню розробку — сервіс безпечної передачі даних encrypt.one .
Ідея
Все, як це часто буває, почалося з проблеми. У переговорах по одному з проектів нам часто доводилося обмінюватися конфіденційними документами і даними, а оскільки у нас був підписаний дуже злий NDA — нас цей процес дуже хвилювало. Ми стали шукати на ринку рішення, які б повністю виключали будь-які можливості доступу третіх осіб, і не змогли знайти такі рішення.
Передача паролів через популярні месенджери, флешки або сервісів зберігання файлів Google Drive або Dropbox — небезпечна. Месенджер або акаунт одного з ланок передачі інформації можуть зламати і приватні дані потраплять до зловмисників. Крім того, існуючі сервіси передачі паролів зразок OneTimeSecret з-за відсутності шифрування на стороні користувача схильні ризикам злому і не надають можливості передавати файли.
Ну а так як в наш час спокійно себе почувати не може навіть президент США (російські хакери не дрімають), ми вирішили опікуватися вирішенням проблеми абсолютно невзламываемого сервісу передачі секретних даних. Так з'явився encrypt.one.
Основне завдання сервісу — пересилання будь-якої секретної текстової інформації (паролів від сервісів, даних кредитних карток, а також невеликих файлів до 5 Мб, при цьому бонусом encrypt.one пропонує впевненість, що пересилаються дані не потраплять до третьої сторони.
Реалізація
Реалізація проекту зайняла близько чотирьох тижнів, з них півтори тижні пішло на backend development, решту часу витратили на розробку сайту, тести інтерфейсу і т. д.
Backend написаний на Go, для шифрування на стороні браузера використовувалася бібліотека github.com/brix/crypto-js для генерації паролів і ключів використовується crypto API браузера. Зберігання написано як інтерфейс, відповідно можна використовувати будь-які системи зберігання. На даний момент реалізовано зберігання в пам'яті і на диску.
Для збереження файлів на стороні користувача використовувалися blob URL за коштами URL.createObjectURL(), що дозволило розшифровувати дані на стороні користувача і зберігати файли великого розміру.
Саме шифрування організовано за стандартом AES-256 (Advanced Encryption Standard), який Агентство Національної Безпеки США відносить до рівня «Цілком Таємно». Для злому AES-256 методом підбору сучасного комп'ютера знадобиться кілька мільярдів років, цей стандарт використовується в банківських системах і не був зламаний жодного разу за всю історію криптографії.
Для шифрування використовується або введений пароль, або випадково згенерований ключ який поміщається в хеш-частина посилання і не передається на сервер. Браузер одержувача посилання розшифровує інформацію безпосередньо на комп'ютері за допомогою введеного пароля або ключів з хеш-частини посилання. Після першого перегляду інформація видаляється з сервера.
Вихідний код encrypt.one доступний на Github .
Зараз над проектом працюють: Денис Місько — основний ідеолог та розробник проекту, Ярослав Слободянюк — дизайн, верстка, Віталій Хранивский — фронтенд розробка, ну і я займаюся нудними питаннями маркетингу та загального менеджменту.
Максим Хомутін, CEO Final Level Денис Місько, CTO Final LevelРезультати
У результаті у нас вийшов компактний і лаконічний сервіс, основна особливість якого полягає в тому, що всі дані шифруються ключем на стороні браузера і тільки після цього передаються на сервер. Як результат, на сервер передається зашифрована інформація, яку не зможуть ні розшифрувати співробітники сервісу, ні російські хакери, які теоретично можуть отримати доступ до бази даних, так як у них немає ключа для розшифровки.
Оскільки проект стартував зовсім недавно, похвалитися мільйонними аудиторіями ми, на жаль, поки не можемо. В середньому, на добу сервісом користується близько 1000 осіб. Збільшувати цю цифру з допомогою маркетингу або PR плануємо пізніше. Наш основний план на сьогодні — отримати зворотний зв'язок від користувачів та зрозуміти, в якому напрямку варто розвивати encrypt.one надалі, адже зупинятися на поточному функціоналі ми не хочемо.
Що стосується монетизації, бачимо один із шляхів розвитку в корпоративному сегменті, хочемо довести продукт до «коробки», щоб компанії могли піднімати його на своєму обладнанні і вирішувати питання внутрішнього обміну конфіденційною інформацією.
Будемо дуже вдячні відгуками та коментарями читачів, спасибі за увагу!
Опубліковано: 07/02/17 @ 11:00
Розділ Сервіси
Рекомендуємо:
MaxTarget — медійна мережа нового покоління
Де взяти стартовий екран для відео - 3 способу
Підсумки Січня 2017 — довелося реально поглянути на ситуацію
Front-Еnd дайджест #21: довгоочікуваний Webpack 2, майбутнє ітерації React і яка бібліотека найшвидша
Кар'єра в Штатах: з Google в Amazon