Этот сайт автоматически переводится на несколько языков с помощью программного обеспечения, разработанного Коэем Коянаги. Для точности см. оригинал на английском .

Почему Splync использует SSH — невидимый ключ для защиты серверов

Что действительно делает SSH

Хотя Splync использует HTTPS для защиты маршрута между вашим смартфоном и нашим сервером, мы все равно должны защищать сам сервер, чтобы обеспечить безопасность пользовательских данных. Разработчикам приложений и системным администраторам нужен способ попасть на этот сервер для поддержания и развертывания обновлений — безопасно. Здесь на помощь приходит SSH (Secure Shell). Это протокол, который позволяет авторизованным пользователям безопасно входить в удаленные компьютеры, даже через ненадежные сети. SSH заменяет старые, небезопасные методы, такие как Telnet, которые отправляли имена пользователей и пароли в открытом виде.

Идея «ключей»

SSH не полагается на обычный пароль. Вместо этого он использует криптографические ключи — соответствующую пару открытого и закрытого ключей. Представьте их как замок и ключ, которые подходят только друг к другу. Открытый ключ находится на сервере, а закрытый — у пользователя. Когда вы подключаетесь, сервер предлагает вам доказать, что вы владеете закрытым ключом, не раскрывая его. Это делает практически невозможным для кого-либо подслушивающего выдать себя за вас. В отличие от традиционных паролей, которые можно угадать, утечь или использовать повторно, SSH-ключи — это длинные, случайные криптографические строки, которые практически невозможно угадать. Даже если кто-то сможет перехватить соединение, все, что он увидит, — это зашифрованный шум. И поскольку SSH-ключи никогда не отправляются по сети, в пути нечего украсть.

Как выглядит SSH-ключ

Если вы никогда не видели SSH-ключ, он может показаться абстрактным — но это всего лишь длинный блок зашифрованного текста. Открытый ключ обычно состоит из нескольких сотен символов, а закрытый может достигать более тысячи. Оба хранятся как текстовые файлы, но их содержание выглядит как случайный шум — смесь букв, цифр и символов. Открытый ключ можно безопасно передать; это как будто вы ставите свой замок на сервер. Закрытый ключ, с другой стороны, — это ваша уникальная цифровая идентичность, и его никогда нельзя передавать. Он хранится локально на вашем компьютере и используется только для доказательства вашей личности — без раскрытия самого ключа.

Открытый и закрытый ключи

Открытый ключ — это как замок на вашем доме. Любой может увидеть его с улицы, как замок на входной двери. Но глядя на замок, никто не узнает, как его открыть. Иными словами, его может видеть любой, но только правильный ключ может его открыть. С другой стороны, закрытый ключ — это тот самый ключ, который открывает замок, и он надежно хранится у вас. Если кто-то другой завладеет вашим закрытым ключом, он сможет войти в ваш дом как будто бы это вы. Вот почему его всегда нужно держать в секрете.

Механизм SSH

Каждая пара открытого и закрытого ключей образует уникальную пару один к одному. Они создаются вместе математическим процессом, так что только этот конкретный закрытый ключ может соответствовать своему открытому ключу. Вы можете представить их как сделанные на заказ замок и ключ — они созданы вместе, и никакой другой ключ в мире не подходит к этому замку. Даже если вы создадите другую пару с использованием того же алгоритма (например, RSA или Ed25519), числа внутри будут совершенно разными. Математика, связывающая их, односторонняя: вы можете легко вывести открытый ключ из закрытого, но практически невозможно выполнить обратный процесс и найти закрытый ключ из открытого. Вот почему каждая пара SSH-ключей уникальна и безопасна.

Как SSH доказывает вашу личность

Когда вы входите на сервер с помощью SSH, ваш закрытый ключ никогда не покидает ваш компьютер. Вместо этого сервер отправляет вам случайную задачу — как одноразовую головоломку — которую может решить только ваш закрытый ключ. Ваш компьютер подписывает эту задачу математически, создавая короткий ответ, который сервер может проверить с помощью вашего открытого ключа. Если ответ совпадает, сервер знает, что у вас правильный закрытый ключ — не видя его. Это магия современной криптографии: вы можете доказать свою личность, не раскрывая свой секрет. Аутентификация SSH работает, потому что ваш закрытый ключ содержит всю информацию для вывода открытого ключа, но обратный процесс практически невозможен.

Как разработчики используют SSH на практике

Каждый раз, когда разработчики развертывают код, обновляют базу данных или перезапускают службу, они часто подключаются к своим удаленным серверам через SSH. После аутентификации они получают защищенное подключение к серверу с командной строкой. Оттуда они могут управлять файлами, перезапускать службы или просматривать логи — все это зашифровано от начала до конца. В случае Splync SSH — это то, как мы безопасно управляем нашим облачным сервером. Каждое административное действие — развертывание обновлений, проверка журналов, резервное копирование данных — выполняется через SSH-соединения, защищенные криптографическими ключами. Никто не может получить доступ к серверу без правильного закрытого ключа. Даже если кто-то знает наш IP-адрес, без этого ключа дверь просто не откроется.

Далее: шифрование внутри сервера

SSH защищает вход на сервер, а HTTPS защищает данные в пути. Но как мы защищаем данные внутри базы данных? Здесь вступают в дело хеширование и шифрование — последний слой защиты.