Мене мемують за те, що я кажу людям, що приватні ключі відкритого тексту — це погано. Але ось ми в 2026 році, і я досі борюся з тими, хто каже, що це нормально, хоча ключові витоки були #1 джерелом зломів минулого року. Дозвольте пояснити поширені заперечення, які я отримую, і чому вони неправильні. 👇
1. «Це просто мій ключ розгортання, а не адміністративний» Найкращою практикою розробки смарт-контрактів є передача права власності на смарт-контракт на інший гаманець, ніж той, з яким ви розгорнули. Рекомендуємо включати скрипти розгортання в рамках аудиту для перевірки цього.
Мати такий одноразовий гаманець — це добре, але воно все одно залишає тебе відкритим: - адреси розгортання часто позначаються на дослідниках для надання достовірності - У тебе ще є гроші, які можуть бути вкрадені. - ми бачили БАГАТО атак, коли хтось забув передати право власності
Я був на дзвінках у Warroom, де відповідь була: «ключ для розгортання був адміністратором, і він був злитий». Більшість проєктів не проходять аудит своїх скриптів розгортання. Тож коли ви кажете «це просто мої ключі розгортання», я відповідаю: «ви не перевіряли своє розгортання, ви все зіпсувате».
І нарешті, якщо ви використовуєте ключі розгортання в .env, ви вже звикли добре користуватися відкритими клавішами. Запам'ятайте це: "Те, що ти практикуєш у розробці, ти робитимеш і в продакшені" І якщо у вас є приватні ключі з відкритим текстом, то, мабуть, ви й так не обережні.
2. «Я використовую .gitignore, не буду тиснути на джерело» Жахлива відповідь. React, solana/web3js і npm були зламані минулого року, і деякі хакери переглядали ваші файли на наявність конфіденційної інформації у .env. Якщо ви запустили "npm install" — це могло бути підроблено.
Не кажучи вже про шкідливі розширення IDE та інше шкідливе ПЗ, яке можна встановити і яке також проходить через ваші файли. Люди з таким запереченням зазвичай кажуть: «Я не новачок, буду обережним», але очевидно, що вони не розуміють, як працює ланцюг постачання програмного забезпечення.
3. «Це надто клопітно, просто зручніше використовувати відкриті клавіші» Життя зручніше, коли у тебе 0 доларів, не треба турбуватися про безпеку грошей, коли їх немає. Тож, мабуть, це слушне зауваження.
Але серйозно, є речі, які можна зробити. Більшість фреймворків для розробки смарт-контрактів мають інструменти шифрування, такі як foundry, moccasin і hardhat. Усі вони дозволяють шифрувати ключі однією командою та розшифровувати їх паролем під час запуску скрипту. Це дуже зручно.
Все, чого я прошу — щоб ми не нормалізували приватні ключі відкритого тексту. Ви не отримаєте таких майстрів, які я і SEAL отримуємо від тих, хто втратив усе це. Біль реальний, не нормалізуйте його. LLM навчені цій поганій практиці і все одно рекомендують її, ми повинні зупинитися, щоб LLM припинили.
458