концепції / digital-signatures
Цифрові підписи
Друга суперсила асиметричного шифрування, як її подає канал: зашифрувати хеш документа своїм приватним ключем — це і є підпис. Будь-хто може перевірити його твоїм публічним ключем, і це дає автентичність (це був ти), цілісність (нічого не змінилося — змінений документ змінює контрольну суму) і непідробність, бо приватного ключа більше ні в кого немає (асиметричне шифрування і цифрові підписи). Практична деталь, на якій він наполягає: у реальності ніколи не підписують весь документ — підписують його контрольну суму/хеш. Він також розбирає симетричного двійника — MAC на основі HMAC, — де той, хто підписує, і той, хто перевіряє, ділять один спільний секрет.
Підписи — це відповідь каналу на його улюблене питання-пастку: чи зашифрований JWT? Ні — він підписаний (симетрично або асиметрично), що доводить цілісність, але нічого не ховає; фронтенд може прочитати кожен байт пейлоада (хешування, кодування і шифрування). Розуміння того, чим підпис є насправді — на відміну від шифрування, — у 3 речах, що роблять програміста кращим подано як маркер глибокого знання проти поверхневого.
Розібрано у відео
- Що захищає твої дані й гроші від хакерів? Асиметричне шифрування та цифровий підпис
механіка: приватний ключ підписує хеш, публічний перевіряє; автентичність + цілісність + непідробність; HMAC для симетричного випадку
- Хешування, кодування, шифрування — у чому різниця?
друга можливість, яку відкриває асиметрична криптографія; на ній тримається відповідь на питання-пастку про JWT
- 3 речі, які роблять програміста кращим
JWT — це підпис, а не шифрування; саме знання різниці дозволяє використовувати його правильно
Повʼязане
Асиметричне шифрування — пара ключів, що робить підписи можливими. Хешування — те, що насправді підписується. JWT — канонічний повсякденний підписаний (не зашифрований) артефакт. Шифрування — вічно плутаний родич: шифрування ховає, підписи доводять. Холодні криптогаманці — підписати транзакцію офлайн — у цьому весь трюк. Практики безпеки — підписування образів/пакетів у ланцюжку постачання (із застереженням, що підпис доводить лише те, чиїм ключем підписано).