ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ gittuf Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ систСму криптографичСской Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Git

ДоступСн выпуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° gittuf 0.4, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ систСму Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ содСрТимого Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Git, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ риски Π² ситуации ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… доступ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Gittuf прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ слой бСзопасности ΠΊ Git ΠΈ Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ всСх Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… доступ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ, ΠΈ расстановки ΠΏΡ€Π°Π²ΠΈΠ» доступа ΠΊ Π²Π΅Ρ‚ΠΊΠ°ΠΌ, Ρ‚Π΅Π³Π°ΠΌ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ находится Π½Π° стадии Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ развития ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ качСство Π°Π»ΡŒΡ„Π°-выпуска, подходящСго для экспСримСнтов, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ вносимых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, хранятся Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Git Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ спСцифичном для gittuf пространствС ΠΈΠΌΡ‘Π½, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ инструмСнтами ΠΈ сСрвисами, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ GitHub ΠΈ GitLab. ΠŸΡ€ΠΈ использовании инструмСнтов Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ gittuf, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ остаётся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ доступСн, Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΅Π³ΠΎ цСлостности. АрхитСктура gittuf базируСтся Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… элСмСнтах Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° TUF (The Update Framework), примСняСмого для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ процСссов формирования ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠ°ΠΊ Docker, Fuchsia, AGL (Automotive Grade Linux) ΠΈ PyPI.

МодСль Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² gittuf основана Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ иСрархичСской систСмы распространСния довСрия. ΠšΠΎΡ€Π΅Π½ΡŒ довСрия (root of trust) ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ рСпозитория, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ для участников Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ созданныС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Gittuf позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅ Π³Ρ€Π°Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ полномочия ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ рСпозитория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния. НапримСр, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½ для создания Ρ‚Π΅Π³ΠΎΠ², внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ измСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ вносимыС ΠΈΠΌΠΈ измСнСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ подписям. Gittuf позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, бСзопасно Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΎΡ‚Π·Ρ‹Π²Π°Ρ‚ΡŒ скомпромСтированныС ΠΊΠ»ΡŽΡ‡ΠΈ, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ списками доступа (ACL) ΠΈ пространствами ΠΈΠΌΡ‘Π½ Π² Git-рСпозиториях. Gittuf Ρ‚Π°ΠΊΠΆΠ΅ выполняСт Π²Π΅Π΄Π΅Π½ΠΈΠ΅ эталонного Π»ΠΎΠ³Π° всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (RSL — Reference State Log), Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ искаТСния Π·Π°Π΄Π½ΠΈΠΌ числом Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ обСспСчиваСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структуры «Π΄Π΅Ρ€Π΅Π²ΠΎ ΠœΠ΅Ρ€ΠΊΠ»Π°» (Merkle Tree) — каТдая Π²Π΅Ρ‚ΠΊΠ° Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ всС Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΡƒΠ·Π»Ρ‹ благодаря Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΌΡƒ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (имСя ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ Π² коррСктности всСй истории ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² коррСктности ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… состояний).

Для Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… подписСй ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Ρ‚Π΅Π³ΠΎΠ² Π²Π»Π°Π΄Π΅Π»Π΅Ρ† рСпозитория Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ распространяСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ассоциированы с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. Для противодСйствия ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡŽ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, созданных послС получСния доступа ΠΊ ΠΊΠ»ΡŽΡ‡Π°ΠΌ для формирования Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… подписСй ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΎΡ‚Π·Ρ‹Π²Π° ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. ΠšΠ»ΡŽΡ‡ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ постоянного обновлСния для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ формирования подписи старыми ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru