Інструменти розробника · SHA калькулятор хешу
Адреса електронної пошти: Як Git, Docker і npm Використовуйте SHA Дайджест як імена
· Підземелля
Опубліковано ToolAcre · Редакція журналу
шемале256 шемале криптографія розробник-workflow

Git комітує, контейнерні зображення травлення та фіксуючі рядки цілісності фіксаторів є все одною ідеєю: нагадування даних її хеш. Цей пост пояснює адресність контенту та те, що кожен з них отримує екосистему.
The sha256: у вашому docker Pull — що рядок і чому він ніколи не змінює для одного образу
Системи керування версіями, контейнерні режими та менеджери пакетів все використовують одну і ту ж ідею: файл або збір байтів названий його SHA травлення. У Git, коміт 40-характер SHA-1 ідентифікатор (або 64-характер SHA-256 в сучасних репозиторійах, складених з змісту комітента — дерева, автора, часової пам'яті та повідомлення. Зміна одного байта і SHA зміни. У докері кожен шаровий травлення є SHA-256 хеш вмісту шару, а засвоюється перетравлення зображення з проявляється. У npm та інших менеджерів пакету, зберігання цілісності SHA-512 Перетрави тарболів для перевірки завантаження. Контент-адресація означає, що ім'я залежить тільки від байтів, не від центральної бази або часу.
Користь є неприпустимою в кожній системі. git комітувати SHA-256:abc ... завжди відноситься до того ж дерева і повідомлення, оскільки хеш визначає ідентичність. Якщо хтось стверджує, що у кого-небудь інший комісію з тим самим SHA, вони претендують на ті ж байти виробляють два різні хеши, які розбиває криптографію. Deduplication стає автоматичним: два файли з ідентичними байтами виробляють ті ж перетравлення, тому системи зберігання можуть зберігати байти один раз і посилювати їх двічі. Перевірка доброчесності стає настільки простим, як переведення трави і порівняння: якщо байти були модифіковані в транзиті або в іншому випадку, перетравлення більше не відповідає.
Наміння даних за допомогою свого хешу — ідея, яку він робить дедуплікацію та цілісність безкоштовно
Git зберігає об'єкти - комміти, дерева, бобові та теги - підібрані їх SHA травлення. Про нас `git cat-file` команда приймає ідентифікатор об'єкта і отримує байти. Магазин об'єкта - контент-адресація: ви запитуєте за допомогою перетравлення, а не за місцем розташування або ім'ям. Коли ви клоните репозиторію, git перевіряє кожен об'єкт шляхом переведення його перетравлення та перевірки на перетравку, упакований в передачу. Перехід з SHA-1 до SHA-256 є поступовим; репозиторії можуть підтримувати як для сумісності. Формат на диску зберігає тип об'єкта, розмір і стиснені байти. Засвоюється перетравлення на канонічну некомпресовану форму.
Головна Git репозиторії можуть використовувати SHA-256, і перехід триває, оскільки SHA-1 Зіткнення тепер практичні (демонстровані в 2017 і вишуканий 2020). Виконувати в репозиторію за допомогою SHA-256 має 64-характеризатор шестигранної форми замість 40. У `git hash-object` командний склад SHA не зберігаючи його; `git commit-tree` розмістити SHA структури дерева та повідомлення. Обидві операції є детерміналістичною: ті ж байти завжди виробляють той же перетравень. Це те, як GitHub і інші корми можуть відображати комбінацію SHAs, послідовно — це те ж саме перетравити клон автора, що відповідає.
Git використовує об'єкти, що містяться в контенті, і цей інструмент може відтворювати текстові трави; деталі міграції вимагають Git-специфічних джерел
Знімки докера будуються в шарах, де кожен шар є файловою системою delta (зміни від попереднього шару). Про нас OCI Вид зображення визначає, як скласти перетравлення шару і перетравлення зображення проявляється. Шаровий дайджест - це шар SHA-256 стисненого зубного файлу, що містить файли шару. Проявляється JSON Списання документів шарів, їх перетравень та метаданих. Засвоюється зображення SHA-256 проявляється JSON сам. Коли ви натягуєте зображення за допомогою тега `latest`, реєстр виглядає тег і повертає проявляється травлення. Після того, як ви натягуєте за допомогою дайвінгу безпосередньо, забезпечивши вам точно такі ж байти — всі шари та метадані.
Про нас `docker inspect` Команда на локальному зображенні показує його дайвінг. Виконуючи той же образ з того ж тегу на двох машинах, виробляє той же травень, якщо реєстр все ще тримає те, що тег вказує на той же проявляється. Контент-адресація робить ланцюги передачі зображень: CI/CD Контролер може переконатися, що зображення, яке він розгортається, відповідає травленню в журналі збірки, а сканер безпеки може повідомити про всі зображення, відомі для того, щоб мати певну вразливість за допомогою їх травлення, а не тегом, який може переміщатися.
Контейнери — OCI проявляється і шар травлення, і чому тег може переходити, але травлення не може
Менеджери пакетів використовують дайджести для перевірки завантаження проти тамперажу або корупції. У пнм, `package-lock.json` файл містить `integrity` поле для кожної залежності, що містить хеш (зазвичайно) SHA-512) і кодування (зазвичайно base64). Коли npm завантажує tarball, він перетворює хеш і порівнює. Якщо хеш не відповідає, встановити не вдасться. За допомогою `go.sum` файл з аналогічною структурою: шлях модуля, версія та SHA-256 джерела модуля. Вантаж використовує чекуми в `Cargo.lock`. Принцип ідентичний: дайджест комп'ютерний один раз, коли залежність спочатку вирішується, і перевіряється на кожну наступну установку.
Перевірка доброчесності не вимагає завантаження пакету до реєстраційного органу або зберігання підписів окремо. Засвоюється перевірка цілісності. Для максимального забезпечення використання проектів `go.sum` яка підписана системою прозорості проекту Go, або npm, поєднаною з іншою перевіркою, але базовий випадок простий: видавець обчислює перетравлення один раз, записує його в файлі блокування, а інструменти на стороні споживача перевіряють, що завантажений байт матч.
Кодування цілісності пакетів варіюватися; тільки цей калькулятор підтримується SHA виводяться тут
Те ж саме байти за допомогою того ж алгоритму завжди виробляють однакові перетрави, незалежно від того, куди приходять байти. Місцеве будівництво коміту розробника SHA-256 як CI/CD система, що перевіряє однакову версію з тієї ж репозиторії. Ця відтворюваність полягає в тому, що робота з адресуванням контенту: ви можете перевірити артефакт без довіри до механізму доставки. Засвоюється криптографічним зобов’язанням: зміна навіть одного шляхом
Розгортання дайджету окремо (до розподілу артефакту) захищає від модифікації світла. Веб-сторінка, опублікована до релізу, може відображатися "експерт" SHA-256:abc ..." і потім користувачі можуть перевірити завантаження проти нього. Репозиторій git, опублікований в публічному репозиторію, є прихильністю до байтів; травлення доводить його.
Зароблений приклад — наступний один блобіт з байтів, щоб перетравити на ім'я інструмент використовує для нього
Різні системи зашифрують свої трави по-різному. Git використовує нижню шістнадцяткову клітинку за замовчуванням (40 або 64 гекс символи. Docker використовує формат `sha256:` за допомогою шестигранної. npm і Go використовувати base64 в полях цілісності. байти однакові; тільки уявлення відрізняється. Р SHA-256 Засвоюється перетравленням над «абком» завжди таким же 256 bits, але ви можете бачити його як 64-character шестигранний рядок, a 44-character base64 string або етикетка, як `sha256:` або ж Перетворення між кодуваннями без втрат; травлення є однаковим значенням в кожному представленні.
Розуміння питань кодування при порівнянні перетравень по інструментам. Якщо Git друкує шестигранний дайджест і інструмент показує base64, ви повинні конвертувати одне представлення іншим, щоб переконатися, що вони відповідають. ToolAcreР SHA hh калькулятор відображає як шестигранний, так і базовий64 для кожного перетравлення, що дозволяє легко перетворювати або перевернути інші системи.
Що це не обкладинка — специфічні кодування кожного інструменту використовує (hex versus base64), покриті окремою поштою
Контент-адресація не є специфічним для криптографії, хоча криптографічні хеші роблять це безпечною. Р CRC32 checksum також дані про вміст, але CRC32 Зіткнення є загальними і зіткненьами можуть бути виготовлені; цей репозиторій не позначається SHA-256 як розбити, CRC32 не пропонується в якості примітивної цілісності. Вибір алгоритмів хешу для безпеки: SHA-256 є сучасним стандартом для систем, які потребують захисту цілісності від рекламних оголошень. SHA-1 є спадщина тільки (Git і інші, що миються. Вибір правого алгоритму – окреме рішення від вибору адресування вмісту як схеми нагадування.
Контент-адресація в поєднанні з криптографічними хешами є основою цілісності постачання в сучасному програмному забезпеченні. Кожен пакет, який ви встановите, кожен контейнер, який ви працюєте, і кожен комітує, ви можете перевірити, щоб бути байтами оригінального видавця, призначеного без перекриття на захищеному носінні (хоча безпечна передача все ще хороша практика).
Поруч: хеш — ідентичність — ToolAcre SHA Калькулятор хешу дозволяє зрозуміти ті ж самі перетрави ці системи спираються на
Контент-адресація є незалежно від кодування, розташування зберігання або механізму передачі. Те ж байти виробляють той же травлення, чи зберігають локально, в CDN, в реєстрі або передається над HTTP чи безпечно HTTPS. Засвоюється криптографічна прихильність до байтів, а також перевірка його вимагає тільки байтів і алгоритму, не будь-який зовнішній сервіс. Ось чому адреса контенту дозволяє в автономному режимі перевірити: ви можете завантажити файл над ненадійним каналом, перевірити дайджест і дізнатися, чи є байти автентичні.
Про нас ToolAcre SHA Калькулятор хешу дозволяє зрозуміти ті ж самі перетрави цих систем, спираючись на. Вставити рядок або дивитися файл, запустити калькулятор і подивитися SHA-256, SHA-384 і SHA-512 Перетрави, які використовуються в внутрішньому режимі. Порівняйте ваш комп'ютерний дайджест з одним з оригінальних джерел для перевірки байтів не було змінено. Калькулятор хеш UTF-8 текст, який ви вставляєте; він не має файлів або ключового матеріалу, тому межа між тим, що він може хеш (текстовий вхід) і що він не може (бінарні файли, криптографічні ключі у своїх кодованих формах) є чітким і документальним.