Раздел “Ваши ссылки” – первый и основной раздел сайта linkin.link. Сайт linkin.link – это ваш собственно формируемый каталог ссылок. Каталог делится на группы и подгруппы. Все действия сведены к минимуму. Добавление ссылки в каталог – это копирования новой ссылки в поле ввода и нажать кнопку “добавить”. Всё. Все остальные действия берёт на себя сайт linkin.link. Ссылка проверяется на работоспособность. Корректируется при редиректе. При необходимости производится трансляция cookies между запросами. Для ссылки выкачивается её название. И конечный результат уже помещается в каталог.
Каталог имеет широчайшие возможности по настройке отображения и управления добавленными ссылками.
Более подробно предоставляемые возможности описаны в текущем описании в разделе “Ссылки”.
Если вы хотите чтобы ваши ссылки не были видны администраторам сайта. А так же пользователям, которые по тем или иным причинам зашли на сайт linkin.link под вашим логином – но которые не знаю специальный пароль, то этот раздел для вас.
Раздел по предоставляемым функциям аналогичен разделу “Ваши ссылки”. Но ссылки хранятся на сервере в зашифрованном виде.
Для этого при добавленнии новой ссылки пользователем - ссылка шифруются на стороне клиента (в браузере) и передаётся и хранятся на стороне сервера только в зашифрованном виде.
При просмотре ссылок пользователем – скаченные зашифрованные ссылки с сервера расшифровываются на стороне клиента. Т.е. данные в незашифрованном виде находятся только на стороне клиента. На стороне сервера - данные находятся только в зашифрованном виде. Крипто операции происходят только на стороне клиента. Крипто ключ никогда не покидает сторону клиента.
Т.к. серверу не доступны ваши ссылки в открытом виде то раздел "Шифрованные ссылки" имеет некоторые ограничения по сравнению с разделом "Ваши ссылки". Например, сервер не может скачивать заглавие ссылки или для иконки лого или скриншот сайта. Это придётся делать вручную.
Алгоритм
В качестве крипто алгоритма выбран
AES256 CBC mode На сегодняшний день этот крипто алгоритм не имеет уязвимостей и принят в качестве стандарта во всём мире. Подбор ключа
AES256 займёт примерно 3.31x10
56 лет, т.е. время большее, чем возможное существование вселенной до тепловой смерти. Алгоритм шифрования
AES256 находится в файле
aes256.jsОписание криптосистемы
При первом входе в раздел
“Шифрованные ссылки” или после удаления ключа, вас ждёт следующaя страница.
Это означает, что в браузер не введён ключ.
Пользователь придумывает крипто-ключ. Ключ может состоять из любых символов и иметь длину не менее 10 символов. Расширяется до 32 байт путём хеширования SHA512. Далее крипто-ключ записывается на бумажный носитель для храненения. Либо запоминается пользовотелем. Потеря ключа грозит невозможностью расшифровки данных!
Далее крипто-ключ вводится в браузер. И нажимается кнопка ввод. Генерируется хеш ключа и отправляется на сервер. Хеш ключа - это подпись вашего ключа. Она определяет ваш ключ, но с помощью неё нельзя шифровать или расшифровать данные. Для хеша используетяс современный алгоритм SHA512. Далее в зависимости от текущего режима сервера возможны два сценария.
Режим работы сервера
Сервер может находится в двух режимах:
- Режим приёма хеша ключа
- Рабочий режим
Есле на сервере никогда не сохранялся хеш ключа или хеш ключа был удалён, то сервер находится в режиме “приёма хеша ключа”. В этом режиме новый принятый хеш ключа сохраняется и сервер переходит в рабочий режим.
Есле сервер находится в рабочем режиме - то новый принятый хеш ключа сравнивается с существующим. Если хеши совпадают то пользователю отправляется сообщение что ключ валидный. В противном случае отправляется сообщение что введёный ключ невалидный.
Зачем это сделано?
Это защитная система предотвращающая ввода различных ключей на стороне клиента и сохранение ссылок с разными ключами. И как результат невозможность последующей расшифровки данных. Так же это система работает при сохранение ссылок.
Ключ введён успешно
Есле от сервера прходит сообщение что ключ введён успешно, то введёный ключ сохоаняется в локальной памяти браузера, а раздел “Шифрованные ссылки” станет выглядеть как раздел “Ваши ссылки”. Т.е. можно сохранять шифрованные ссылки.
Ключ сохраняется посредством javascript в локальной памяти браузера – объект window.localStorage. Эта память хранит переменные браузера даже после перезагрузки. Внимание – если выбрать очистку кеша браузера или нажать кнопку Выход, то ключ будет стёрт из памяти! Для просмотреа шифрованных ссылок необходимо будет заново ввести и сохранить ключ в локальную память браузера.
Есле ключ на сервере изменён в другом браузере то существуте защитный механиз предотвращения сохранения ссылок зашифрованных старым ключом. Вместе с ссылкой на сервер передаётся хеш текущего ключа. И если ваш переданный хеш не совпадает с тем который хранится на сервере – будет выведено предупреждение что ключи не совпадаю!
Для просмотра шифрованных ссылок в другом браузере так же необходимо будет ввести ключ. Есле вы хотите изменить ключ, в профиле пользователя (ссылка в верхнем правом углу в виде имени или email пользователя) в пункте Шифрование введите новый ключ и подтвердите выбор. Все ссылки будут скачены в браузер - перешифрованы и закачаны обратно на сервер.
Генерация ключа
Если вам лень придумывать ключ – то есть кнопка генерации случайного ключа в виде игрального кубика. При нажатии на кубик в поле ввода ключа будет помещено случайно сгенерированная строка. Однако такой ключ надо сохранять в файл или на бумажный носитель. Вряд ли вы запомните это строку. Кубик можно нажимать множественное число раз.