A Delphi és a Git

Címkék

Úgy alakult, hogy cégként szükségessé vált valami verziókezelő megoldást - ha lehet szabad szoftvert, de legalábbis ingyen hozzáférhetőt - ajánlanunk Delphi-t használó fejlesztőknek. Mivel egy Delphi alatti fejlesztéshez erre a célra évekkel ezelőtt az SVN-t már használtuk, természetesen első körben az SVN Delphi-ből való használhatóságát kezdtük el újra megnézni abban a reményben, hogy sokat fejlődött 2004 óta.

Nem rossz, de nem voltunk igazán elégedettek. Szétnéztünk és előkerült az általunk Linux alatt napi szinten használt Git, amely egy gyorsan fejlődő, nagy támogatottsággal rendelkező eszköz. Valahogy jobban tetszett mint az SVN (igen ez szubjektív dolog, az objektíveket - illetve amiket annak gondolunk - nem írom ide, mert nem ez a lényeges most), s ezért úgy döntöttünk, hogy a Git-et ajánljuk. Ennek kapcsán megszületett ez a kis leírás, mely a Git használatát segít bemutatni a Delphi alatt fejlesztők számára.

Hozzászólások

Tipp: az oldalatokrol vagy szedjetek le a https-t, vagy hasznaljatok normalis certificate-et, mert nnem lesz mindenkinek turelme tizet klikkelni!

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

kicsit túl paranoidra sikerültek a mostani Firefox változatok. teljesen normális igény, hogy egy rendszergazda https kapcsolatot használjon a weboldalaihoz. számtalan ok lehet, pl nem akarja hogy a user<>server kapcsolat lehallgatható legyen. ehhez nem szükséges hivatalos Thawte, VeriSign, stb igen drága hitelesítést vásárolni. teljesen jó szolgálatot tud tenni a saját maga által elkészített titkosító kulcs is. pl jelszólopások megakadályozására ideális eszköz. ha pedig feltörik a szervert és megszerzi a támadó a privát kulcsait akkor a legtöbb esetben úgyis mindegy, mert annyi erővel már a szerveren tárolt webtartalmat is lehet manipulálni.
korábban a hup.hu is elérhető volt https kapcsolaton keresztül is.

szóval ahogy az a függetlenség napjában volt,
az anomália önmagától meg fog szűnni:)
csak tessék egyszer rákattintani a
I Understand the Risks szövegre.
sok kockázatot nem jelent számodra. egyébként onnantól zöld helyett, kék színnel jelzi azt, hogy nem hivatalos hitelesítők kulcsaival titkosított kapcsolatot használsz az oldalon.

teljesen normális igény, hogy egy rendszergazda https kapcsolatot használjon a weboldalaihoz.

Igen, de publikus statikus tartalom eseten felesleges, ahogy mar irtak.

sok kockázatot nem jelent számodra.

Igen, ez szamomra vilagos volt. De nekem nem ert meg par klikket az oldal megtekintese, igy az oldal uzemeltetoje veszitett egy latogatot, ezert javasoltam, hogy kapcsojjaki, mert 1. nincs ertelme; 3. lehet, hogy masokat is zavarni fog.

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

Az én olvasatomban minden olyan dolog, amibe egy harmadik fél is beleszólhat, kevésbé biztonságos, mint ami csak két félen múlik.
De kérdeznék is: Mennyire tartod reálisnak azt, hogy egy magán célra (teljesen magamnak), vagy pár ember által használt szervernek (kis cég, ismerősök) venni kellene adott esetben drága cert-et, még akkor is, ha néha más is odatéved?
(Bár nincs közöm az adott oldal üzemeltetéséhez és a hátteret nem ismerem, de szerintem ez a "rajtamaradt az oldalon a cert" kategória.)

Az én olvasatomban minden olyan dolog, amibe egy harmadik fél is beleszólhat, kevésbé biztonságos, mint ami csak két félen múlik.

Akkor jobb lenne, ha mindenki maga keszitenie el a sajat szemelyazonossagi igazolvanyat..? :^)

de szerintem ez a "rajtamaradt az oldalon a cert" kategória.

Epp ez az...

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

A személyazonossági igazolvány mikéntjét törvény határozza meg, ezt meg egy bizalmi háló, szóval baromira nem egy kategória. Ha valaki lelép az igazolványommal és bűntettet követ el vele, de maga az eltulajdonítása is az, akkor elvileg büntetik is érte. Ha a certem fúrják meg és ebből károm származik, akkor a kiállító megvonja a vállát és max visszavonja, ha jól gondolom, felelősséget nem vállal érte, tehát nem vagyok kisegítve vele.
Amíg én dönthetek arról, hogy kiben bízok meg ilyen dologban, vagy egyáltalán megbízok-e bárkiben is, addig szívem joga self signed cert-el rohangálni a világban.
Persze másik oldalról is igaz a dolog: nem kell elfogadjam az aláírást, ha nem tetszik, de ez nem csak a saját készítésűre igaz, hanem a "nagy tanúsító cégek" által kiállítottakra is. Használok ilyent én is, de csak azért, mert akikkel együtt dolgozunk ezt megkövetelik, mint megrendelő. Ha ez kell, ezt kapják... :)

A személyazonossági igazolvány mikéntjét törvény határozza meg, ezt meg egy bizalmi háló, szóval baromira nem egy kategória.

A szemelyazonossagi a harmadik fel (allam) miatt olyan, amilyen...

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

Én itt nem látok harmadik felet:
A személyazonossági igazolványomat csak az állam képviselői kérhetik el tőlem, akik a saját "tanúsítványukat" ellenőrzik ebben az esetben.
Neked, mint harmadik személynek nem vagyok köteles ezen adataimat átadni. Ha azt mondom neked hogy I. Erzsébet vagyok, akkor vagy elhiszed nekem, vagy nem, de a kör itt le is zárult.

"Az én olvasatomban minden olyan dolog, amibe egy harmadik fél is beleszólhat, kevésbé biztonságos, mint ami csak két félen múlik."

Pedig ezen alapul a HTTPS, hogy egy harmadik, megbízható fél hitelesíti a kapcsolatod, hogy igen, valóban azzal beszélsz, akivel gondolod.

----------------
Lvl86 Troll

ha felnyomják az egész szervert, akkor ugyanúgy nem lehetsz biztos abban, hogy kivel beszélsz. hiába a harmadik megbízható fél.
igaz, ez igen ritka esetben fordul csak elő. de hivatalos certificate céges titkosításra is csak ritkán van szükség. jellemzően pénzforgalommal kapcsolatban álló webszolgáltatásoknál, ott valóban tessék megfizetni, ha már pénzről van szó.
de egy weblevelezőnél teljesen felesleges. 99.9% biztonság elérhető saját kulcsos https használatával, tekintve hogy a támadások túlnyomó része a forgalom sniffelgetéséből adódik. nem kell mindenhol 99.999% biztonság, viszont a 99.9% biztonság is több, mint a 0% biztonság.

"a HTTPS protokol használata során kötelező egy harmadik felet használni, mint egy megbízott hitelesítőt"

Dehogy kotelezo, az x509 pki megadja mindenkinek a lehetoseget, hogy annyira legyen hulye, amennyire csak akar.
Viszont ha valamire hasznalni is szeretned ezt az egeszet, akkor valahogy meg kell kulonboztetned a szervered "igazi" certificate-jet attol, amit en 2 perccel ezelott generaltam kizarolag azzal a cellal, hogy egy jol iranyzott mitm-el szanaszethaxoljam az egeszet. Az innentol kezdve tokmindegy, hogy te megjegyzed generalaskor az osszes certificate fingerprintjet (bar akkor javaslom a sajtreszelovel rejszolast is, hasonlo lehet a felhasznaloi elmeny), csinalsz egy sajat, hazi ca-t, es korbejarod vele az osszes szobajoheto kliensgepet, vagy alairatod pl. a verisign-al. De valamelyiket meg kell tenned, kulonben az egesz semmit sem er.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

Szerintem teljesen elbeszélünk egymás mellett.
De ezen felállásban igazad van és a nézőpontból ez így áll.

Én azt vonom kétségbe, hogy attól hogy egy harmadik fél hitelesíti a szerveremet az attól még biztonságos, mint szerver.
Én, mi saját CA-val oldottam, oldottuk meg ezt a kérdést. De itt megint csak a szokásos kérdésem jön: kiben bízhatok és én ettől biztonságban vagyok? PHP okosságon keresztül törik a web host-om, a tanúsítványhoz hozzá sem piszkál senki, de a tartalom megváltozik, a külalak sem feltétlenül. Ettől én biztonságban vagyok?
Törik az aláírt mail szerverem és minden levélről automatikus másolatot csinálnak a sokcsillió forintos tanúsítvány mellett senki, semmit nem fog ebből észrevenni. Itt jelent bármit is, hogy ki, mivel és hogyan írt alá?
A felhasználók azt látják, hogy "megbízható a szerver". Megbízható? Kell benne bízzak?
Azon szerverben bízok csak, amit magam felügyelek és még a linkjét is én adom. Sőt, csak házon belül használom, azon tartományon belül, amit én felügyelek. Itt nem mindegy, hogy ki írja alá?

Remélem így már érthetőbb a "kötekedésem" és a véleményem!
Tehát nem a tanúsítványban kell bízzak, hanem az üzemeltetőben inkább.

ez egy régi messzemenő vita, mennyire bízhatunk a Certificate Authority szervezetekben. sok okot eddig nem adtak a bizalmatlanságra.
arra mindenképp jónak tartom, hogy ha Joe, aki először használja bankja webes rendszerét megbizonyosodhasson róla, hogy valóban FOO bank szerverét használja. akár pendriveon vagy cdn is odaadhatnák neki a kulcsokat, amikor aláírja a szerződést a webbankingra, de így sokkal kényelmesebb CAt használva.
a többiben egyet értek veled, természetesen ez sem jelent teljes biztonságot, de a szokásos adathalászok ellen jó.
millió célra pedig tökéletes a saját aláírás is.

"Szerintem teljesen elbeszélünk egymás mellett."

Ja, akkor csak a fogalmakat hasznaljatok rosszul. :)
Egy kriptografiai protokollban egy ca mindig harmadik fel, fuggetlenul attol, hogy egy masik ceg generalta, vagy csak a cegen belul egy masik osztaly. Pl. egy kerberos kdc is harmadik fel, pedig az altalaban szervezeten belul van.
A self-signed certificate meg az, amikor nincs ca, egyelemu a tanusitvanylanc, es csak ugy log a levegoben. Erre irtuk, hogy semmi ertelme. Amit te csinaltal, az nem self-signed.
Az meg sosem volt az ssl feladata, hogy azt bizonyitsa, hogy a szerver/a webapp/az admin/a ceg/a fonok csaja megbizhato-e, csak az, hogy tudd, hogy tenyleg azzal beszelsz-e, akivel kellene.

Persze ettol meg a tamadasok tulnyomo tobbseget nem fogja kitenni a sniffeles (ami azt illeti, eleg ritka, mert celzottsagot igenyel, es mert nehezen automatizalhato), es szazalekokat szamolgatni is tok felesleges, ha minden egyes kliensre feltetted a ca-d certjet, akkor protokoll szinten egyenerteku a biztonsag akarmelyik fizetos ca-val*, ha meg nem, akkor nem 99% a biztonsag (protokoll szinten), hanem 0.
Es persze ez sem igaz, ahol a bongeszo sikit, az lehallgathato, csak mitm kell hozza (amit igazabol kb. minden scenarioban meg lehet tenni, ahol a lehallgatas mar megy), ha meg beimportaltad a sajat ca-dat, akkor ugyanugy nem fog sikitani, mint barmi masnal.
Azt meg hogy honnan kerult elo a szerver megtores, amikor kriptografiai protokollrol van szo, meg most sem ertem (meg amugysem igaz, ha ott a hsm).

*: egyebkent meg lehet jobb, ha a tobbi ca-t kiirtod a kliensekbol, pl. meg vannak validkent elfogadott osregi algoritmusokat hasznalo ca certek, vannak intermediate ca-kent hasznalhato server certek, meg alairast bemondasra ado rapid ca-k, stb. Meg persze lehet rosszabb is, ha rosszul tarolod a ca privat kulcsat.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

könyörgöm, nem az iszlám hamász parancsnoki rendszerének titkos kommunikációját kell kiépíteni:) nem erről volt szó. atomheart nem akarta elolvasni a linket cikket. akkor most ne olvassa el a cikket, soha nem realizálódó elméleti okoskodás miatt?! esetleg vágja magát taxiba és éjjel csöngessen be a mail.mithrandir.hu rendszergazdájához a kezében egy usbdriveal, hogy elkérje a certet?!:) milyen kockázatot jelent az a pár kattintás a böngészőben egy olyan oldal esetében, ahol csak cikket olvas valaki?
a százalékok nyilvánvalóan csak érzékeltetést szolgáltak, nincs mérés/statisztika mögöttük.
a szarul titkosított magán wifi hálózatok, vagy teljesen open vendégcsábító kávéházi/kocsma wifik ma már eléggé elterjedtek. ezeknél igenis jó védelmet jelent https, akkor is ha csak self signed certes. a semminél meg pláne többet jelent.

"pl. Kozos hub / arp poisoning eseteben is meg teheted ?"

Arp poisoning eseten nem is tudod nem megtenni, ott a csomagok hozzad jonnek, ha nem routolod oket tovabb, akkor nem megy a forgalom. Kozos hubnal meg egyreszt mehet az arp poisoning, vagy ha az nem, akkor dns cache poisoning.

"Milyen gyakori scenario-knal lehet mitm csinalni ?"

Pl. open wifi.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

+1, ahogy a nagyok csinálják
Én self signed certificate-et sokszor csak azért csinálok, hogy nehezebben lehallgatható legyen a szerver és a kliens közti kommunikáció.
Azt, hogy más megbízik-e bennem és a tanúsítványomban, nagy ívben lesajnálom. Akinek kell, az használja, mert sokan meg bennem bíznak meg és nem egy sokadik félben.

ehhem:) vannak bizonyos betűszavak, amelyek adott nyelvterületeken igen erős default jelentéssel bírnak. ilyen magyarul az OTP, ami elsődlegesen egy pénzintézetet jelent. linket meg nem írtál elsőre.
ha ma valaki GITről ír, az alapból a git elosztott verziókövető rendszert jelenti, közben jelentheti a GIT a Gnu Interactive nevű mc szerű fájlkezelőt is. sőt ez a git jóval korábban létezett, mint a verziókövető git.
vagy a Microsoft is alapból a redmondi szoftvercég, de lehet akár a
Massachusetts Intercontinental Control Rocketry Operation Spaceattack Orbital Forces Team nevű, ufó elhárító amatőr rakétavédelmi szövetség fiókszervezete is:D

Valahol anno találtam egy PAM modult és egy JAVA alapú mobilra szánt programot, amik BlueTooth-on elbeszélgettek egymással, szép egyszeri kulcsokat csináltak ssh/közvetlen belépéshez és nézte az eszköz ID-t is.
Talán még a mai napig üzemel, de erre nem esküdnék meg. Szóval lehet és érdemes feszegetni a határokat. :)
Meg olcsóbb is, mint a kereskedelmi megoldások. De ez már baromi messzire ment az induló témától...

valóban igen messze ment a témából:)
nem rossz módszer a mai okosmobilok "bevetése". de a tömeguserek számára továbbra csak a https emészthető. a uhulinux boltját is az ojjektum.uhulinux.hu hitelesíti, nem egy VeriSign, de a Tanács részirül biztosan megkapják a zengedélyt:D
a semmi titkosításnál az is azért lényegesen több.

Eves szinten kb. 6E forint egy certificate, azaz havi szinten 500 penz. Ha valakinek sajat domainje van, es azert persze fizet a DNS regisztratornal (meg fizet a hosztingert), akkor ez mar ferjen bele a koltsegvetesbe, ha ennyire fontos az adatok titkossaga.
Nagy szervzeet meg vehet wildcard ssl certet (*.domain.tld jelegut), meg az se nagyon draga.

OFF
Előre is bocs.
Én is "foswiki" kulcsszó-t tartalmazó url-ekre fogok ezentúl tartalmat tenni.
És utólag is bocs.

Az angol "dolgok" már csak ilyenek, tesznek rá, hogy más nyelven pláne magyarul esetleg negatív jelentése van annak amit használnak. Gyanítom te sem tudod, mely magyar szónak, rövidítésnek van más nyelven negatív csengése.
OFF
Javaslom, azon se lepődj meg a, ha valaki felhasználónévként az írja be, hogy "root" bár jelenti azt is, hogy gyökér, azért még az illető nem feltétlenül növény vagy buta.
Így utólag sem bocs.

"Foswiki is the free and open source enterprise collaboration platform"

Nem rossz leírás, bár mást vártam, és azt hiányoltam is belőle: Hogyan lehet a Git-et könnyen elérhetővé tenni Delphi-ből. A fejlesztők többsége nem igazán fog konzolos parancsokkal bíbelődni (személyes tapasztalat), és elég sok Git leírás is elérhető.
Arról viszont nagyon kevés szó esik, hogyan lehetne a Git-et integrálni a Delphi környezetébe, akár a főmenübe, akár valami toolbar, vagy hasonló, ami kéznél van, és ezért valóban használják is.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

Igen, ilyesmire. Egy ismerősöm használ Delphi-t fejlesztésre, oda kellett volna, hogy rávezessem a verziókezelés hasznosságára. (Jelenleg egyedül fejleszt egy kisebb dolgot, és nem használ verziókezelést.)

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

Mi CVS-t használunk, tortoisecvs-el. Szerintem nincs nagy jelentősége, hogy integrálva van-e, mivel általában a munkanap elején és végén kell csak használni (általában). Egyébként valamilyen cvs-re akkor is szükség lehet/van, ha valaki egyedül fejlesz, pl. ha otthon folytatni szeretnéd a munkát, ...

mivel általában a munkanap elején és végén kell csak használni

Meg a kommitoknál, illetve minden ilyen műveletnél.

Egyébként valamilyen cvs-re akkor is szükség lehet/van, ha valaki egyedül fejleszt

Gondolom VCS-t (verziókezelőt) szerettél volna írni.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

"mivel általában a munkanap elején és végén kell csak használni "

Munkafolyamat függő. Nálunk pl. az a szabály, hogy akkor commitolunk, ha egy feladat vagy egy feladat önálló része kész van. Az lehet 10 perces gyorsjavítástól néhány 1-2 nagyobb fejlesztés is. Persze, csak működő kód lehet a repóban.

----------------
Lvl86 Troll

Csak csendesen jegyzem meg, hogy a feltételekben ingyenes lehetőleg szabad megoldás volt megjelölve.

"ha lehet szabad szoftvert, de legalábbis ingyen hozzáférhetőt"

Innentől kezdve még a zseniális fizetősek, a jók és az átlagosak meg pláne, sem jöhetnek szóba, ha komolyan veszed a kiindulási feltételeket. Az, hogy valamit el lehet lopni, nem jelenti azt, hogy az szabad vagy ingyenes, csak azt, hogy el lehet lopni.