Forståelse av OSI-modellen for sikker og interoperabel programvare
Open System Interconnect-modellen (OSI) tjener som en veiledning for utviklere og leverandører, og gir et rammeverk for å konstruere programvareløsninger som er både interoperable og sikre. Denne modellen gir en oversikt over kompleksiteten i dataflyt i et nettverk, inkludert kommunikasjonsprotokoller som TCP, og de ulike verktøyene og teknologiene som brukes.
Til tross for debatten rundt relevansen av de ulike lagene i OSI-modellen, er den utvilsomt relevant i dagens cybersikkerhetsfokuserte landskap. Kunnskap om disse lagene er essensielt for å evaluere tekniske sårbarheter og risikoer knyttet til applikasjoner og systemer. Videre hjelper det team med å identifisere datalokasjoner, fysisk tilgang, og etablere hensiktsmessige sikkerhetspolitikker.
Denne artikkelen gir en grundig analyse av OSI-modellens lag, og utforsker deres betydning for både brukere og virksomheter.
Hva er Open System Interconnect (OSI)-modellen?
Open System Interconnect (OSI)-modellen er en referansemodell som består av syv lag. Disse lagene er ment for å lette kommunikasjonen mellom datasystemer og applikasjoner over et nettverk. Modellen deler opp dataoverføringsprosesser i standardiserte lag, hvor hver enkelt har spesifikke funksjoner knyttet til overføring og mottak av data.
OSI-modellen ble utviklet av International Organization for Standardization (ISO) i 1984 og ble raskt den primære standarden for hvordan systemer kommuniserer i et nettverk. Denne standarden ble tatt i bruk av alle ledende telekommunikasjons- og dataselskaper.
Modellen er visuelt representert som en rekke lag plassert oppå hverandre. I OSI-arkitekturen betjener hvert lavere lag det overliggende laget. Når brukere interagerer med et system, går dataene nedover gjennom lagene i nettverket fra kildeenheten, og deretter oppover lagene for å nå mottakerenheten.
OSI-modellen integrerer ulike applikasjoner, nettverksmaskinvare, protokoller og operativsystemer, noe som muliggjør at systemer kan overføre signaler gjennom fysiske medier som fiberoptikk, tvunnet kobber, Wi-Fi og andre.
Dette rammeverket er utformet for å øke forståelsen av samspillet mellom systemer og gi utviklere og leverandører veiledning i hvordan de kan skape interoperable programvareapplikasjoner og produkter. Modellen presenterer også et rammeverk som beskriver funksjonene til telekommunikasjons- og nettverkssystemer som er i bruk.
Hvorfor er det viktig å forstå OSI-modellen?
Å forstå OSI-modellen er avgjørende innen programvareutvikling, da hver applikasjon og hvert system er avhengig av ett av disse lagene. Nettverksspesialister bruker OSI-modellen for å visualisere hvordan data beveger seg gjennom et nettverk. Denne kunnskapen er nyttig for programvareleverandører og -utviklere, samt for studenter som forbereder seg til eksamener som Cisco Certified Network Associate (CCNA).
Fordelene med å lære om OSI-modellens lag inkluderer:
- Forstå dataflyt: OSI-modellen forenkler forståelsen av hvordan data flyter i et nettverk for nettverksoperatører, noe som gir dem innsikt i samspillet mellom maskinvare og programvare. Denne informasjonen kan brukes til å forbedre systemets sikkerhet og robusthet ved å velge passende programvare og maskinvare.
- Effektiv feilsøking: Feilsøkingsprosessen blir mer effektiv fordi nettverket er delt inn i syv lag, hver med sine egne funksjoner og komponenter. Dette gjør at fagfolk raskere kan identifisere problemer. Fokus kan rettes mot nettverkslaget som forårsaker problemene.
- Fremmer interoperabilitet: Utviklere kan skape programvare og enheter som er interoperable og lett kan samhandle med produkter fra forskjellige leverandører. Dette forbedrer systemfunksjonaliteten og brukeropplevelsen.
Det gir deg mulighet til å definere komponenter og deler som produktene dine skal være kompatible med. Du kan også kommunisere til sluttbrukere hvilket lag produktene dine opererer på, enten det er på tvers av en teknologi-stack eller på et bestemt lag.
En detaljert gjennomgang av OSI-modellens ulike lag
Det fysiske laget
Det fysiske laget er det laveste, og første, laget i OSI-modellen. Det definerer den fysiske og elektriske representasjonen av systemet. Dette omfatter kabeltype, pinneoppsett, radiofrekvenskoblinger, spenninger, signaltype og kontakttyper for enhetstilkoblinger. Det er ansvarlig for en trådløs eller fysisk kabelforbindelse mellom forskjellige noder i nettverket, fasiliteter for overføring av rådata og styrer bithastigheter.
Fysisk lag
I dette laget konverteres rådata i form av biter (0-er og 1-ere) til signaler og utveksles. Både sender og mottaker må være synkronisert for å muliggjøre jevn dataoverføring. Det fysiske laget fungerer som et grensesnitt mellom forskjellige enheter, overføringsmedier og topologityper for nettverk. Den nødvendige overføringsmodusen er også spesifisert i dette laget.
Nettverkstopologier kan være buss, ring eller stjerne, mens modusen kan være enveis, toveis eller halv-dupleks. Enheter i dette laget inkluderer Ethernet-kabelkontakter, repeatere og huber. Hvis det oppdages et nettverksproblem, vil eksperter begynne feilsøkingen med å sjekke funksjonaliteten til det fysiske laget. Dette inkluderer kontroll av kabelforbindelser og strømforsyning, for eksempel til rutere.
De primære funksjonene til lag 1 inkluderer:
- Definere fysiske topologier – hvordan enheter og systemer er organisert i et nettverk
- Spesifisere overføringsmoduser, som beskriver hvordan data flyter mellom to tilkoblede enheter
- Bitsynkronisering – gjennom en klokke som styrer sender og mottaker på bitnivå
- Styring av bithastigheter for dataoverføring
Datalinklaget
Datalinklaget er plassert over det fysiske laget og er ansvarlig for å etablere og avslutte forbindelser mellom to tilkoblede noder i et nettverk. I dette laget deles datapakker inn i rammer som beveger seg fra kilde til destinasjon.
Datalinklaget er delt inn i to underlag:
- Logical Link Control (LLC) som er ansvarlig for å identifisere nettverksprotokoller, synkronisere rammer og sjekke for feil.
- Media Access Control (MAC) som bruker MAC-adresser for å koble sammen enheter og kontrollere tillatelser for dataoverføring.
MAC-adresser er unike adresser som er tildelt hvert system i et nettverk. Disse adressene er viktige for å identifisere enhetene. MAC-adressene overvåkes i datalinklaget for nettverket og styrer hvordan diverse nettverkskomponenter får tilgang til det fysiske mediet.
Datalinklag
For eksempel kan en MAC-adresse bestå av 6 oktetter, for eksempel 00:5e:53:00:00:af, der de tre første tallene representerer den organisatorisk unike identifikatoren (OUI) og de tre siste representerer Network Interface Controller (NIC).
De sentrale funksjonene til lag 2 er:
- Feildeteksjon: Feil detekteres i dette laget, men ikke korrigert. Korrigering skjer i transportlaget. Datasignaler kan ha uønskede signaler som kalles feilbiter. For å fikse dette, må feilen først detekteres ved hjelp av metoder som sjekksum og syklisk redundanssjekk (CRC).
- Flytkontroll: Dataoverføringen mellom sender og mottaker over et medium må skje i samme hastighet. Hvis data overføres i et høyere tempo enn mottakeren kan håndtere, kan det føre til tap av data. Datalinklaget har flytkontrollmekanismer for å sikre en konsistent hastighet over overføringslinjen. Disse mekanismene inkluderer:
- Skyvevindusmetoden, der begge ender bestemmer antallet rammer som skal overføres, noe som sparer tid og ressurser under overføringen.
- Stopp-og-vent-mekanismen, der senderen må stoppe og vente på bekreftelse fra mottakeren etter overføring av en dataramme.
- Multitilgang: Datalinklaget gir mulighet for at flere enheter og systemer kan overføre data gjennom samme overføringsmedium uten kollisjoner. Dette oppnås ved å bruke protokoller for multitilgang eller kollisjonsdeteksjon (CSMA/CD).
- Datasynkronisering: Enheter som deler data i datalinklaget må synkroniseres for å sikre jevn dataoverføring.
Datalinklaget bruker også enheter som broer og lag-2-svitsjer. Broer er toportsenheter som kobler sammen forskjellige LAN-nettverk. De fungerer som repeatere, filtrerer uønsket data og sender den til destinasjonspunktet. De kobler sammen nettverk ved bruk av samme protokoll. Lag-2-svitsjer sender data til det neste laget basert på systemets MAC-adresse.
Nettverkslaget
Nettverkslaget er plassert over datalinklaget, og er det tredje laget fra bunnen i OSI-modellen. Det bruker nettverksadresser som IP-adresser for å rute datapakker til en mottaksnode, uavhengig av protokoll eller nettverk.
Dette laget utfører to hovedoppgaver:
- Deler nettverkssegmenter inn i individuelle nettverkspakker mens disse settes sammen på destinasjonsnoden.
- Identifiserer den optimale banen i et fysisk nettverk og ruter pakkene deretter.
Med optimal vei menes den korteste, mest tidseffektive og enkleste ruten mellom avsender og mottaker for dataoverføring. Dette gjøres ved hjelp av svitsjer, rutere og ulike metoder for feildeteksjon og -håndtering.
Nettverkslag
For å oppnå dette bruker nettverkslaget en logisk nettverksadresse og nettverkets undernettdesign. Uavhengig om enhetene er i samme nettverk, bruker samme protokoll eller opererer på samme topologi, ruter dette laget data ved hjelp av en logisk IP-adresse. Hovedkomponentene i dette laget er IP-adresser, subnett og rutere.
- IP-adresse: En globalt unik 32-bits adresse som er tildelt hver enhet, og fungerer som en logisk nettverksadresse. Adressen har to deler: vertsadresse og nettverksadresse. En IP-adresse vises som fire tall separert med punktum, for eksempel 192.0.16.1.
- Rutere: I nettverkslaget brukes rutere til å formidle data mellom enheter som opererer i forskjellige WAN-nettverk. Siden rutere ikke kjenner den eksakte destinasjonsadressen, rutes datapakkene.
De har informasjon om nettverksplassering og utnyttelsesdata samlet i en rutetabell. Denne informasjonen hjelper ruteren med å finne den beste veien for å levere data. Når dataene er levert til det tiltenkte nettverket, sendes de videre til destinasjonsverten i det nettverket.
- Subnettmasker: En subnettmaske består av 32 biter av den logiske adressen. Rutere bruker denne, i tillegg til IP-adressen, for å finne plasseringen til destinasjonsverten og levere dataene. Dette er viktig fordi vert- og nettverksadressene alene ikke er nok for å identifisere plasseringen, enten det er et eksternt eller subnettverk. Et eksempel på en nettverksmaske kan være 255.255.255.0.
Gjennom å analysere en nettverksmaske kan nettverks- og vertsadressene bestemmes. Når en datapakke kommer fra kilden med destinasjonsadressen beregnet, vil systemet motta dataene og overføre dem til neste lag. Dette laget krever ikke bekreftelse fra mottakeren, i motsetning til lag-2.
Transportlaget
Transportlaget er det fjerde laget fra bunnen i OSI-modellen. Det tar data fra nettverkslaget og leverer det til applikasjonslaget. I dette laget refereres data som «segmenter», og den primære funksjonen er å levere hele meldingen. Dette laget bekrefter også når dataoverføringen har funnet sted. Ved eventuelle feil returneres dataene.
Transportlaget utfører dataflytkontroll og sikrer at data overføres i samme hastighet som mottakerenheten, noe som muliggjør jevn overføring. Det håndterer feil og ber om at data sendes på nytt hvis feil blir oppdaget.
Transportlag
La oss se hva som skjer i hver ende:
- I senderenden, etter at formaterte data er mottatt fra de høyere lagene i OSI-modellen, utfører transportlaget segmentering. Deretter implementeres flyt- og feilkontroll for å sikre jevn dataoverføring. Til slutt legges portnumrene for kilde og destinasjon til i overskriften, og segmentene videresendes til nettverkslaget.
- I mottakerenden vil transportlaget identifisere portnummeret ved å analysere overskriften og deretter sende de mottatte dataene til den tilhørende applikasjonen. Det vil også sekvensere og sette sammen de segmenterte dataene.
Transportlaget gir en sikker ende-til-ende-forbindelse mellom enheter eller verter i et nettverk. Det leverer datasegmenter over intra- og inter-subnettverk.
For å muliggjøre ende-til-ende-kommunikasjon i et nettverk, må hver enhet ha et Transport Service Access Point (TSAP), eller portnummer. Dette hjelper verten med å gjenkjenne andre verter med portnummeret i et eksternt nettverk. Portnummeret er ofte standard eller angitt manuelt, og de fleste apper bruker et standard portnummer på 80.
Transportlaget bruker to protokoller:
- Transmisjonskontrollprotokollen (TCP): Dette er en pålitelig protokoll som etablerer en forbindelse mellom verter før dataoverføringen begynner. Det krever at mottakeren sender en bekreftelse på om data er mottatt eller ikke. Når bekreftelsen er mottatt, sendes den neste datapakken. TCP overvåker også overføringshastighet, flytkontroll og korrigerer feil.
- User Datagram Protocol (UDP): Anses som en upålitelig og ikke-tilkoblingsorientert protokoll. Den krever ikke at mottakeren sender bekreftelse etter dataoverføring. Derfor er den mer utsatt for nettangrep som UDP-flom. Den brukes i nettspill, videostrømming og lignende applikasjoner.
Noen av funksjonene til transportlaget inkluderer:
- Adresse for tjenestepunkter: Transportlaget har en adresse som kalles portadresse eller tjenestepunktadresse som hjelper med å levere en melding til riktig mottaker.
- Feildeteksjon og kontroll: Dette laget sørger for feildeteksjon og kontroll. Feil kan oppstå i ruteren mens segmenter eller data er lagret i minnet, selv om det ikke oppdages feil i selve overføringen. I tillegg er det ikke sikkert at alle koblingene er sikre, og derfor er feildeteksjon i transportlaget nødvendig. Dette oppnås med to metoder:
- Syklisk redundanssjekk
- Sjekksumgenerator og -kontroll
Sesjonslaget
øktlag
Det femte laget fra bunnen av OSI-modellen er sesjonslaget. Det er ansvarlig for å opprette kommunikasjonskanaler, også kjent som sesjoner, mellom ulike enheter. Dette omfatter funksjoner som:
- Åpne sesjoner
- Avslutte sesjoner
- Sørge for at sesjonene er åpne og funksjonelle under dataoverføring
- Tilby dialogsynkronisering mellom ulike applikasjoner for å sikre sømløs dataoverføring uten tap i mottakerenden.
Sesjonslaget kan opprette sjekkpunkter for å sikre sikker dataoverføring. Hvis en sesjon avbrytes, vil alle enhetene kunne gjenoppta overføringen fra det siste sjekkpunktet. Dette laget gir brukere som benytter ulike plattformer, mulighet til å opprette aktive kommunikasjonsøkter.
Presentasjonslaget
Det sjette laget fra bunnen er presentasjonslaget, eller oversettelseslaget. Det forbereder dataene som skal sendes til det overliggende applikasjonslaget. Data presenteres for sluttbrukerne på en måte de enkelt kan forstå.
Presentasjonslaget definerer hvordan to enheter i et nettverk skal komprimere, kryptere og kode data for å sikre at de mottas korrekt i mottakerenden. Dette laget håndterer data fra applikasjonslaget og sender de videre til sesjonslaget.
Presentasjonslaget håndterer syntaks, siden sender og mottaker kan benytte ulike kommunikasjonsmåter, noe som kan føre til uoverensstemmelser. Dette laget sikrer at systemer kan kommunisere og forstå hverandre i samme nettverk.
Lag 6 utfører oppgaver som:
- Kryptering av data på sendersiden
- Dekryptering av data på mottakersiden
- Oversettelse, for eksempel ASCII-format til EBCDIC
- Komprimering av multimedia før overføring
Laget deler data som inneholder tegn og tall i biter og overfører de. Det oversetter også data for et nettverk til det nødvendige formatet for ulike enheter som smarttelefoner, nettbrett og datamaskiner.
Applikasjonslaget
Applikasjonslaget er det syvende og øverste laget i OSI-modellen. Sluttbrukerprogramvare og -applikasjoner, som e-postklienter og nettlesere, bruker dette laget.
Applikasjonslaget sørger for protokoller som lar programvaresystemer overføre data og gi nyttig informasjon til sluttbrukere.
Eksempler på applikasjonslagsprotokoller er Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), Domain Name System (DNS) og File Transfer Protocol (FTP).
TCP/IP vs. OSI-modellen: Viktige forskjeller
De viktigste forskjellene mellom TCP/IP og OSI-modellen er:
- TCP/IP, utviklet av det amerikanske forsvarsdepartementet (DoD), er et eldre konsept enn OSI-modellen.
- TCP/IP-funksjonsmodellen ble utviklet for å løse spesifikke kommunikasjonsproblemer og er basert på standardprotokoller. OSI-modellen er derimot en mer generell modell som er protokolluavhengig og som brukes for å definere nettverkskommunikasjon.
- TCP/IP-modellen er enklere og har færre lag enn OSI-modellen. Den består av fire lag:
- Nettverkstilgangslaget, som kombinerer OSI-lag 1 og 2.
- Internettlaget, tilsvarende nettverkslaget i OSI-modellen.
- Transportlaget.
- Applikasjonslaget, som kombinerer OSI-lag 5, 6 og 7.
- OSI-modellen består av syv lag: Det fysiske laget, datalinklaget, nettverkslaget, transportlaget, sesjonslaget, presentasjonslaget og applikasjonslaget.
- Applikasjoner som bruker TCP/IP benytter alle lagene, mens de fleste applikasjoner i OSI-modellen ikke bruker alle de syv lagene. Det er gjerne lag 1-3 som er obligatoriske for dataoverføring.
Oppsummering
Kunnskap om OSI-modellen gir utviklere og leverandører bedre forutsetninger for å skape programvareapplikasjoner og produkter som er både interoperable og sikre. Det hjelper også med å skille mellom ulike kommunikasjonsverktøy og -protokoller, og hvordan de fungerer sammen. For studenter som forbereder seg til nettverkseksamener som CCNA-sertifiseringen, er forståelse av OSI-modellen avgjørende.