Հասանելի է 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 ստուգման մոդելը հիմնված է հիերարխիկ վստահության տարածման համակարգի վրա: Վստահության արմատը պատկանում է պահեստի տիրոջը, ով կարող է ստեղծել բանալիներ զարգացման մասնակիցների համար և սահմանել այն կանոնները, որոնց համաձայն գեներացված բանալիները կարող են օգտագործվել։ Gittuf-ը թույլ է տալիս ստեղծել ճկուն հատիկավոր կանոններ, որոնք սահմանում են յուրաքանչյուր մշակողի թույլտվությունները և պահեստի տարածքը, որտեղ նա կարող է փոփոխություններ կատարել: Օրինակ, մշակողը կարող է լիազորված լինել ստեղծելու պիտակներ, փոփոխություններ կատարել կոնկրետ մասնաճյուղերում կամ փոխել միայն առանձին ֆայլերը պահոցում:
Մշակողները և նրանց կատարած փոփոխությունները ճանաչվում են բանալիների և թվային ստորագրությունների միջոցով: Gittuf-ը թույլ է տալիս ստեղծել նոր բանալիներ, ապահով կերպով բաշխել բանալիները, կատարել ստեղների պարբերական ռոտացիա, չեղարկել վտանգված ստեղները, կառավարել մուտքի ցուցակները (ACL) և անվանատարածքները Git-ի պահոցներում: Gittuf-ը նաև պահպանում է բոլոր փոփոխությունների հղման վիճակի մատյան (RSL - Reference State Log), որի ամբողջականությունն ու պաշտպանությունը հետադարձ աղավաղումից ապահովվում է Merkle Tree ծառի կառուցվածքի միջոցով. վերջնական հեշը, օգտվողը կարող է ստուգել գործողությունների ողջ պատմության ճիշտությունը, ինչպես նաև անցյալ վիճակների ճշգրտությունը):
Պարտավորությունների և պիտակների թվային ստորագրությունները ստուգելու համար պահեստի սեփականատերը ստեղծում և բաշխում է հանրային բանալիներ, որոնք ուղղակիորեն կապված են պահեստի հետ: Որպեսզի հարձակվողները խթանեն փոփոխությունները, որոնք ստեղծվել են առանձին ծրագրավորողների թվային ստորագրություններ ստեղծելու բանալիների հասանելիությունից հետո, օգտագործվում են բանալիները չեղարկելու և փոխարինելու մեխանիզմներ: Բանալիներն ունեն սահմանափակ ժամկետ և պահանջում են մշտական թարմացում՝ հին ստեղներով ստորագրելուց պաշտպանվելու համար:
Source: opennet.ru
