Авторский блог от действующего девопса
Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.
Автор: Роман Шубин
Реклама: @maxgrue
MAX: https://max.ru/bashdays
Курс: @tormozilla_bot
Блог: https://bashdays.ru
Post #1362
12.5K
Продолжаем параноить. Сегодня будем создавать шифрованную капсулу времени. То есть зашифрованные данные, невозможно будет расшифровать до какой-то определенной даты.
Для реализации желаемого, воспользуемся утилитой под названием
TLock — это шифрование с отложенным доступом, которое опирается на доверенную аппаратную среду (TEE, чаще всего Intel SGX). Идея всего этого безумия до безобразия простая и красивая:
— данные шифруются сейчас
— ключ не существует в открытом виде
— расшифровка после определённого времени
— даже владелец не может ускорить процесс
ㅤ
Есть TEE (Trusted Execution Environment), работает на drand (League of Entropy) + threshold BLS + Identity-Based Encryption. Дада, Artmoney тут тебе не поможет. Внутри TEE генерируется секрет, считается время, вычисляется ключ.
Пока время не наступило, ключ не вычисляется, не извлекается, не брутфорсится. Даже если ты владелец и у тебя есть дампы памяти, у тебя нихуя не получится ничего дешифровать.
Короче это нифига не cron + sleep, timestamp и т.п. Это прям технолоджи!
Устанавливаем:
1. Качаем бинарник для своей ОС: https://github.com/drand/tlock/releases/
2. Кидаем куда удобно, я закинул в
Создаем условный файл:
Шифруем:
Этот файл можно будет расшифровать только через 10 дней. Если сейчас посмотреть файл
Попробуем расшифровать:
И получаем:иди нахуй
Пример в псевдокоде:
-
-
-
Ключей и опций у этой штуковины дофига и больше, поэтому если интересно можешь сам их поизучать. Я принес тебе интересный инструмент, а дальше ты уж сам найди ему применение.
Век живи, век учись. Кстати эта технология применяется в крипте, насколько знаю в Ethereum.
Кстати для шифрования бекапов прям прикольная штука, юморная.
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Очень удобно, если ты умер и хочешь чтобы твой отпрыск получил по наследству пароли от золотой коллекции прона, которую ты собирал 30 лет. Но ларчик должен открыться строго в 18 лет.
Для реализации желаемого, воспользуемся утилитой под названием
tlock. TLock — это шифрование с отложенным доступом, которое опирается на доверенную аппаратную среду (TEE, чаще всего Intel SGX). Идея всего этого безумия до безобразия простая и красивая:
— данные шифруются сейчас
— ключ не существует в открытом виде
— расшифровка после определённого времени
— даже владелец не может ускорить процесс
ㅤ
Есть TEE (Trusted Execution Environment), работает на drand (League of Entropy) + threshold BLS + Identity-Based Encryption. Дада, Artmoney тут тебе не поможет. Внутри TEE генерируется секрет, считается время, вычисляется ключ.
Ключ == f(секрет, время)
Пока время не наступило, ключ не вычисляется, не извлекается, не брутфорсится. Даже если ты владелец и у тебя есть дампы памяти, у тебя нихуя не получится ничего дешифровать.
Короче это нифига не cron + sleep, timestamp и т.п. Это прям технолоджи!
Устанавливаем:
1. Качаем бинарник для своей ОС: https://github.com/drand/tlock/releases/
2. Кидаем куда удобно, я закинул в
/usr/local/sbinСоздаем условный файл:
cd /tmp
echo "hello bashdays" >> bashdays.txt
Шифруем:
tle -e -D 10d -o bashdays.tlock bashdays.txt
Этот файл можно будет расшифровать только через 10 дней. Если сейчас посмотреть файл
bashdays.tlock то увидим кучу мусора:age-encryption.org/v1
-> tlock 26260588 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971
jhUpzCk/LXUTkwghwKbyGH1gZ2BEy3p47X4yf+8qrv7+BIhJvEUK6QsVZNnZupxK
CsP1d2kGQAsy6GfEc544aZURB3zK3999bQbXzuhA0u4JV0J27ZqnjKBdtx2az603
tF54aRojO3OmwC2JNTkO/ObQID2xJTTidpgP8K1AEac
--- pN0y6uBfL8KOcoXKp1U6T0gbrWrgDoCmwJxBZ7LHspw
#�4x�&V����S�&e`�S�`���
z��? �A��%
Попробуем расшифровать:
tle -d -o bashdays.txt bashdays.tlock
И получаем:
too early to decrypt: expected round 26260588 > 25972610 current round. Файл можно будет расшифровать только через 10 мать его дней. И пофигу root ты или супер ксакеп, нихуя у тебя не получится проникнуть в эту капсулу времени.Пример в псевдокоде:
# encryption
ciphertext = TLock.encrypt(
data=plaintext,
unlock_time=TIMESTAMP
)
# decryption
if now() >= TIMESTAMP:
plaintext = TLock.decrypt(ciphertext)
else:
raise Nope("слишком рано")
-
key нигде не лежит-
key нельзя украсть-
key нельзя вычислить заранееКлючей и опций у этой штуковины дофига и больше, поэтому если интересно можешь сам их поизучать. Я принес тебе интересный инструмент, а дальше ты уж сам найди ему применение.
Век живи, век учись. Кстати эта технология применяется в крипте, насколько знаю в Ethereum.
Кстати для шифрования бекапов прям прикольная штука, юморная.
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog








