• No results found

A.3 Teori

B.2.10 Lösenordshanterare

En lösenordshanterare är en typ av programvara som kan generera starka unika lösenord och fylla i dem automatiskt på användarens begäran. De genererade lösenorden sparas vanligtvis undan i en krypterad databas. För att kunna få tillgång till funktionerna krävs en autentise- ring, vilket görs med ett huvudlösenord. Detta tillåter användaren att endast behöva bry sig om ett enda lösenord för att komma åt alla sina konton, som är säkrade med unika lösenord av hög kvalitet. Några exempel på lösenordshanterare är Lastpass [2], Sticky Password [3] och Dashlane [4].

B.2.11

Tvåfaktorsautentisering

Starka lösenord hjälper till att öka säkerheten på internet, men trots det finns alltid risken att en nätbrottsling kommer åt det lösenordet. Något som bidrar ytterligare till ökad säkerhet är tvåfaktorsautentisering, vilket inte bara kräver ”något du vet” som lösenord, utan också ”något du äger” som till exempel en telefon, för att autentiseringen ska godkännas. Efter att det korrekta lösenordet skrivits in måste inloggningen också bekräftas av en annan enhet med hjälp av en SMS-kod eller liknande för att den ska godkännas. [82]

B.3

Metod

Detta avsnitt beskriver de metoder som användes för att besvara frågeställningarna.

B.3.1

Undersökning

Frågeställningarna besvarades först och främst med hjälp av en undersökning. Studenter vid Linköpings universitet fick svara på en enkät med frågor som handlade om personlig in- ternetsäkerhet med fokus på lösenord. Enkäten konstruerades elektroniskt som ett Google- formulär och delades ut till studenter från olika program via hyperlänkar. Länkarna delades främst ut till bekanta i grupper valda för att resultatet skulle ha så bred programrepresenta- tion som möjligt. Frågorna som ställdes var enligt nedan. Svarsmöjligheterna anges i paren- teserna.

• 1. Kön?

(Man/Kvinna/Annat/Ville ej uppge) • 2. Vad studerar du?

(Fri text)

• 3. Hur många timmar spenderar du dagligen vid skärmen? (Uppskattningsvis) (0-3h/3-6h/6-9h/9-12h/Över 12h)

• 4. Hur många internetkonton har du skapat? (Uppskattningsvis) (0-5 konton/5-10 konton/10-15 konton/15-20 konton/Fler än 20 konton)

• 5. Känner du till några särskilda kvaliteter ett lösenord bör ha för att kunna klassas

som starkt? Om ja, tänker du på dessa kvaliteter när du skapar nya lösenord?

B.4. Resultat

• 6. Har du återanvänt lösenord till olika tjänster? (Ja/Nej/Vill ej uppge)

• 7. Brukar du återanvända lösenord till olika tjänster? (Ja/Nej/Vill ej uppge)

• 8. Har du som vana att spara lösenord i tjänster? (Hemsidor, appar, etc) (Ja/Nej/Vill ej uppge)

• 9. Hur förhåller du dig till att spara lösenord i tjänster gentemot att spara bankkorts-

nummer i samma tjänster?

(Jag har lättare för att spara lösenord/Jag har lättare för att spara bankkortsnum- mer/Ingen skillnad)

• 10. Har du sparat lösenord någon annanstans? (Exempelvis på en papperslapp eller

liknande)

(Ja/Nej/Vill ej uppge)

• 11. Känner du till några metoder som används för att hacka internetkonton? Vilka i

sådant fall?

(Fri text)

• 12. Vet du vad en lösenordshanterare är? (Ja/Nej)

• 13. Har du någon gång använt dig av en lösenordshanterare? (Ja/Nej)

• 14. Vidtar du några egna åtgärder för att öka din personliga säkerhet? Vilka i sådant

fall?

(Fri text)

• 15. Hur varsam är du på internet generellt?

(På en skala 1-10 där 1 motsvarar inte alls varsam och 10 motsvarar mycket varsam) Dessa frågor valdes för att den insamlade datan skulle ge bra underlag för diskussion av frågeställningarna. Syftet med introduktionsfrågorna är att få information om deltagarens förutsättningar, vilket är väsentligt i diskussionen. Exempelvis är det rimligt att en person som studerar till något inom data och spenderar mycket tid vid skärmen har mer kunskap i området än en som studerar till något annat och inte har lika mycket daglig skärmtid. Resten av frågorna är alla konstruerade för ge bra underlag för en eller flera av frågeställningarna. Efter att datan samlades in analyserades den för att undersöka hur mycket studenter vet om lösenordshantering och vilka risker som finns, samt om det går att se någon trend.

B.3.2

Litteraturstudie

För att kunna analysera datan som samlades in i undersökningen på ett bra sätt har även en liten litteraturstudie gjorts. Information relevant för frågeställningarna har samlats från ma- terial mestadels från internet. Några exempel på använda hemsidor är ieeexplore.ieee. org/, us.norton.com/, och haveibeenpwned.com/. Exempel på sökord som användes är ”password”, ”strong”, ”safe” och ”security”.

B.4

Resultat

Totalt 35 personer svarade på enkäten. Svaren har analyserats och den viktigaste informa- tionen har sammanställts och presenteras i detta avsnitt. Två personer svarade att de inte studerade någonting, och eftersom att studien endast ämnade att undersöka studenter har dessa svar tagits bort.

B.4. Resultat

B.4.1

Undersökning

Det var totalt 23 män, 9 kvinnor, och en person som ej ville uppge sitt kön som svarade på enkäten. Antalet deltagande från de olika programmen kan ses i tabell B.1. Antal timmar deltagarna spenderar dagligen framför skärmen presenteras i figur B.1 och antalet internet- konton de har skapat presenteras i figur B.2.

Tabell B.1: Deltagarnas programspridning.

Program Antal deltagare

Civilingenjör Datateknik 15

Civilingenjör Mjukvaruteknik 3

Civilingenjör Industriell ekonomi 7

Civilingenjör Teknisk fysik 3

Ämneslärare 2

Civilingenjör Design och produktutveckling 1

Högskoleingenjör Elektronik 1

Läkare 1

Figur B.1: Svaren på fråga 3. Figur B.2: Svaren på fråga 4.

Svaren från ja- och nejfrågorna redovisas i tabell B.2. Resterande svar har sammanställts och sammanfattas i punktform nedan.

Tabell B.2: Svaren på ja/nej-frågorna.

Fråga Ja Nej Vill ej uppge

6. Har du återanvänt samma lösenord till olika tjänster? 28 3 2 7. Brukar du återanvända samma lösenord till olika tjänster? 17 12 3 8. Har du som vana att spara lösenord i tjänster? 18 15 0 10. Har du sparat lösenord någon annanstans? 14 18 1

12. Vet du vad en lösenordshanterare är? 23 10 -

13. Har du någon gång använt dig av en lösenordshanterare? 9 24 -

• 5. Känner du till några särskilda kvaliteter ett lösenord bör ha för att kunna klassas

som starkt? Om ja, tänker du på dessa kvaliteter när du skapar nya lösen ord?

De flesta deltagare känner till ett antal kvaliteter som gör ett lösenord starkare. Flera nämnde att ett lösenord bör vara långt och ha många olika typer av tecken och speci- altecken. En deltagare nämnde att det bör vara unikt. En annan deltagare nämnde att om det innehåller riktiga ord så bör dessa vara slumpade. Flera deltagare nämnde dock att de inte brukar tänka på detta, några av dem med motivationen att de vill skapa lö-

B.5. Diskussion

senord som är enklare att komma ihåg. Endast ett fåtal kunde inte komma på något alls.

• 9. Hur förhåller du dig till att spara lösenord i tjänster gentemot att spara bankkorts-

nummer i samma tjänster?

28 deltagare har lättare för att spara lösenord och fem deltagare upplever ingen skill- nad. Ingen deltagare har lättare för att spara bankkortsnummer.

• 11. Känner du till några metoder som används för att hacka internetkonton? Vilka i

sådant fall?

Den vanligaste metoden deltagarna kände till var brute force. En del skrev också att de kände till vad social engineering är, i synnerhet phishing. En del beskrev hur det går till och vad det är utan att benämna det som just phishing. Enstaka tog upp SQL-injections, keyloggers, rootkits och wifi-spoofing. En deltagare nämnde cross site scripting och man in the middle. Många svarade att de inte känner till några metoder alls.

• 14. Vidtar du några egna åtgärder för att öka din personliga säkerhet? Vilka i sådant

fall?

Ungefär hälften av deltagarna uppger att de inte vidtar några särskilda egna åtgärder förutom att försöka konstruera bra lösenord, hålla dem hemliga, samt agerar efter sunt förnuft. Enstaka använder någon form av lösenordshanterare. Några stycken svarade att de ej klickar på okända länkar. En hel del svarade att de inte aktivt vidtar några särskilda åtgärder.

• 15. Hur varsam är du på internet generellt? Resultatet illustreras i figur B.3.

Figur B.3: Stapeldiagram för svaren på frågan om varsamhet på internet.

B.4.2

Litteraturstudie

Resultatet på litteraturstudien är den information som hittas i avsnitt B.2.

B.5

Diskussion

Till att börja med tyder svaren på att den genomsnittliga deltagaren en relativt frekvent an- vändare av datorer, telefoner och internet. Fler än hälften uppskattar sin dagliga skärmtid till över 6 timmar. Två tredjedelar uppskattar att de har skapat fler än 20 internetkonton, vilket var det högsta antalet som gick att välja på den frågan. Utöver detta utgörs majoriteten av deltagarna studenter på någon form av datainriktat program, vilket pekar mot att de har ett intresse för datorer.

En teori som fanns innan undersökningen utfördes var att människor i allmänhet är väl- digt dåligt informerade gällande säkerhet på internet. När det kommer till skapandet och

B.5. Diskussion

hanteringen av egna lösenord finns det mycket som förbättrar lösenordets styrka och mins- kar risken för att användarens konton skulle äventyras. De flesta deltagarna kände åtminsto- ne till några av dessa, särskilt lösenordslängd och teckenvariation, men det var också många som inte brydde sig särskilt mycket. Inte en enda nämnde något om lösningsfraser, vilket tyder på att ingen läst universitets lösenordspolicy. Problemet verkar i många fall vara ren lathet och brist på respekt för riskerna som finns, vilket också kan ses på hur många det är som känner till vad en lösenordshanterare är jämfört med hur många som faktiskt använder en. Dessa genererar utmärkta lösenord både vad gäller entropi och längd, och kan dessutom vara bekvämt i det långa loppet då de endast kräver att användaren memorerar ett enda lö- senord. Detta är dock tydligen inte tillräckligt för att övertyga fler studenter att använda en lösenordshanterare.

På fråga 6 och 7 svarade drygt fyra femtedelar av deltagarna att de någon gång återanvänt ett lösenord och fler än hälften svarade att de faktiskt regelbundet gör det. Den största risken med återanvändning är uppenbart att flera konton kan utsättas för fientlig aktivitet om ett konto äventyras. Att det återanvända lösenordet är starkt spelar ingen roll om det till exem- pel skulle finnas med i en dataläcka likt den LinkedIn utsattes för. Detta skulle innebära att en person med onda avsikter relativt lätt kan få åtkomst till dennes konton som endast skyddas av det återanvända lösenordet. Inte lika många har sparat undan sitt lösenord någon annan- stans, men fortfarande ett betydande antal. Flera nämnde att de försöker använda lösenord som är lätta att komma ihåg, vilket pekar mot att det mänskliga minnets begränsningar kan vara en förklaring på båda dessa beteenden. Även i detta fall skulle en lösenordshanterare vara en bra lösning.

Relativt många olika typer av metoder och verktyg ämnade för fientlig aktivitet togs upp, dock bara av ett fåtal personer. Många kände inte till några alls. Brute force och phishing var de mest kända även om de inte benämndes med just dessa termer, men det spelar ingen större roll för studiens ändamål. Syftet med undersökningen av just detta var att det skulle kunna jämföras med vilka åtgärder mot dem som vidtas. På fråga 15 angav de allra flesta att de är varsamma när de använder internet, och detta stärks av att många vet att okända länkar kan leda till fientlig aktivitet och därmed undviker att klicka på dem. Huruvida detta faller under sunt förnuft kan diskuteras ytterligare, men det visar åtminstone på viss vetskap om internet och dess risker.

Sammanfattningsvis kan resultaten tolkas som att trots att en hel del verkar förstå åt- minstone delvis hur ett starkt lösenord konstrueras och hur en användare bör agera för att öka sin personliga säkerhet är det få som aktivt anstränger sig. Att använda sig av en lö- senordshanterare är exempelvis väldigt sällsynt, och endast en person nämnde något om tvåfaktorsautentisering vilket också är ett mycket bra verktyg att ha i sin arsenal av skydds- åtgärder mot nätbrottslingar.

Eventuella skillnader mellan kvinnor och män analyserades aldrig, vilket gjorde fråga 1 i enkäten helt onödig för denna rapport. Den insamlade datan om det finns dock kvar ifall det skulle vara av intresse för framtida arbeten.

Metod

En risk som finns med anonyma enkäter likt den studien baseras på är att deltagare kan ljuga helt fritt utan att det märks. Den risken bedömdes dock vara tillräckligt liten för att enkäten skulle ge bra underlag. Många andra studenter har bedrivit liknande undersökningar och förstår vikten av att datan som samlas in är riktig.

Planen var från början att dela ut enkäten fysiskt till slumpmässigt utvalda studenter på olika områden av Campus Valla, där samtliga fakulteter på Linköpings universitet utom den medicinska fakulteten håller till. På detta sätt hade dels fler olika program kunnat represen- teras i undersökningen och dels ett större antal deltagare uppnåtts. Med detta relativt lilla antalet deltagare i undersökningen bör resultatet tolkas som en antydan till en viss trend, ej som ett fastställande av den.

B.6. Slutsatser

B.6

Slutsatser

Hur bra kunskap har studenter om lösenord generellt?

Studenter har i allmänhet lite kunskap om lösenord. De flesta vet att ett lösenord bör vara långt och innehålla många olika typer av tecken, men inte särskilt många vet varför.

Vilka risker med internetaktivitet är de mest kända bland studenter?

Den vanligaste risken studenter känner till är att okända länkar kan leda till fientliga sidor, och brute force är den mesta kända angreppsmetoden. Endast fåtal känner till lite mer avan- cerade och okända tekniker som till exempel evil twin attack.

Vilka egna säkerhetsåtgärder vidtas?

Det är mycket få studenter som vidtar några särskilda säkerhetsåtgärder, men en del försöker åtminstone tänka till när de konstruerar lösenord samt inser vikten av att hålla dem hemliga. Användning av lösenordshanterare och tvåfaktorsautentisering är dock väldigt sällsynt trots det utmärkta skyddet det erbjuder mot många olika typer av attacker. Detta implicerar att inställningen som råder bland studenter vid Linköpings universitet till internetsäkerhet är relativt likgiltig.

C

Påverkan av olika arbetsflöden i

Git under ett mindre

mjukvaruprojekt av David

Jungmalm

C.1

Inledning

Kollaborativ utveckling och öppen källkod är på frammarsch. Med stora projekt som exem- pelvis Android Open Source Project [11], Visual Studio Code [92] och React Native [62] är versionshantering en nödvändighet. Versionshantering möjliggör bland annat kollaborativt arbete, historik och kodgranskning med så kallade merge requests. Pull Request Driven Deve- lopment som är en benämning för utveckling med hjälp av merge requests är populärt inom just öppen källkodsprojekt. Denna rapport kommer att utreda hur olika strategier i Git på- verkar ett mindre mjukvaruprojekt.

C.1.1

Syfte

Syftet med denna rapport är att undersöka hur arbetet i ett mindre mjukvaruprojekt påverkas av olika arbetsflöden i Git. Rapporten avser att undersöka hur modellen Gitflow tillsammans med merge reguests som gruppen valt att arbeta efter har fungerat, samt hur vilka för- och nackdelar modellen har jämfört med Oneflow och Centralized workflow. Modellerna presen- teras närmare i avsnitt C.3.5, C.3.6 respektive C.3.7. Det är även av intresse att undersöka hur detta relaterar till större projekt och vad gruppen har för tankar om hur detta projekt skulle kunna vara till hjälp för framtida arbeten.

C.1.2

Frågeställning

1. Hur påverkar Gitflow ett mindre mjukvaruprojekt? 2. Hur påverkas historiken i Git av att använda Gitflow?

3. Vilka fördelar och nackdelar har Gitflow jämfört med andra metoder såsom Oneflow och Centralized workflow?

C.1.3

Ordlista

Merge request En förfrågan om att få kod sammanfogad i Git

C.2. Bakgrund

Commit Ett kommando i Git för att fastställa sina ändringar

Branch Ett kommando i Git för att skapa en pekare till nuvarande commit

Merge Ett kommando i Git för att sammanfoga två eller flera grenar

Webbhotell En extern plats som tillhandahåller servrar med Git där en distribution av pro- jektet kan sparas

C.2

Bakgrund

I moderna mjukvaruprojekt är Git ett populärt val för versionshantering av kod. i en under- sökning från Stack Overflow 2018 där 74298 utvecklare svarade på frågan om vilket verktyg de använder för versionshantering, svarade 87.2% att de använder Git [58]. Git är i grunden väldigt enkelt och lätt att komma igång med om man frågar dess grundare Linus Torvalds, men det finns även stöd för väldigt komplexa operationer [78]. På grund av sin flexibilitet och popularitet har det utvecklats flera sätt att jobba på i Git. När det kommer till vilken strategi som är bäst går meningarna isär, och en del studenter hävdar att en enda gren fungerar precis lika bra som att använda flera grenar.

C.3

Teori

I detta avsnitt behandlas teori kring Git samt de olika funktionerna som krävs vid användan- det av Gitflow med merge requests.

C.3.1

Git

Git som startades av Linus Torvalds är en distribuerat versionshanteringssystem. Det innebär att varje användare har en lokal kopia av hela projektet och kan sedan göra lokala ändringar innan dessa eventuellt skickas till den gemensamma kodbasen som finns på någon server. På grund av sin utformning så finns egentligen inget behov av en gemensam kodbas, men eftersom detta underlättar arbetet genom att projektgruppen slipper dra ner ändringar från varandra är detta något som ofta används. Git presenteras utförligare i avsitt 2.2.3.

C.3.2

Git kommandon

Git merge är ett kommando för att sammanfoga två grenar till en gemensam gren. Genom att kalla på kommandot git merge branch så sammanfogar man den nuvarande grenen med branch. Oftast sköter Git sammanfogningen automatiskt, men ibland kan två filer vara änd- rade på samma rad, vilket medför att Git inte vet hur detta ska hanteras och det sker en konflikt som måste lösas manuellt av användaren.

Git branch skapar en ny gren, med en pekare till nuvarande senaste commit. Detta innebär att en användare kan arbeta på den nyskapade grenen utan att påverka historiken för grenen användaren grenade ifrån.

Git rebase innebär att flytta sin nuvarande commit till en annan ända av historiken. Detta illustreras i figur C.1.

C.3.3

Subversion

Subversion, SVN, är en versionshanteringssystem som bygger på ett centralt förvar på en server. Användare jobbar mot denna server och skickar upp kod till servern när de har gjort en ändring. [19]

C.3. Teori C B A D C B A D

Figur C.1: Visualisering av Git rebase.

C.3.4

Merge request

Merge request är en term som används av webbhotellet GitLab 2.2.4. Termen är synonym med pull request som används av bland annat GitHub. Eftersom projektgruppen har använt sig av GitLab kommer termen merge request att användas i denna rapport. Termen innebär att man gör en förfrågan om att få sammanfoga sin kod med en annan gren. För att förfrågan ska godkännas måste en annan deltagare i projektet granska och godkänna koden.

C.3.5

Gitflow

Gitflow är en strategi för versionshantering i Git, publicerad av Vincent Driessen år 2010. Metoden bygger på att det alltid ska finnas en stabil gren i projektet, oftast kallad master. Uti- från denna sker sedan utveckling på en utvecklingsgren, i detta fall kallad development. Från development grenar sedan användare för varje ny funktion. Tanken är att varje ny funktion ska gå relativt snabbt att utveckla. Efter att funktionen är klar ska grenen sammanfogas med development genom en merge request. Arbetsflödet kan ses i figur C.2. [27]

Feature

branch Development Master

Figur C.2: Visualisering av Gitflowmodellen.

C.3.6

Oneflow

Oneflow påminner om Gitflow men med skillnaden att man istället för att ha två utveck- lingsgrenar, master och development, bara har en gren. Denna kan namnges godtyckligt, men förslagsvis master, och istället för att använda två grenar så används taggar i Git för att markera färdiga versioner i master. I övrig fungerar metoden identiskt med Gitflow. Model- len åskådliggörs i figur C.3. Modellen skapades av Adam Ruka och den kan liknas vid en typ av funktionsutveckling. [67]

C.4. Metod

Feature

branch Master

Figur C.3: Visualisering av Oneflowmodellen.

C.3.7

Centralized workflow

Centralized workflow är en lämplig metod för användare som tidigare har använt SVN (Sub- version). Den bygger på att man har ett centralt förvar på en server som man kopierar innan man börjar jobba. Sedan gör man ändringar lokalt och skickar sina ändringar till det centrala förvaret. Arbetsflödet använder sig därmed inte av några grenar, utan all kod förvaras på en enda gren. [14]

C.4

Metod

För att undersöka hur strategin Gitflow har påverkar ett mindre mjukvaruprojekt kommer

Related documents