Constructed from [CISSP_OSG_Chapter_11](CISSP_OSG_Chapter_11.md) and [[CISSP_OSG_Chapter_12]]

# Domain 4 - Communication and network security

## OSI and TCP/IP models
OSI = Open Systems Interconnection
TCP/IP = Transmission Control Protocol/Internet Protocol

In de jaren 90 stelde het Internet nog niet veel voor, iedere fabrikant had zijn eigen netwerkprotocollen:
* IBM had SNA Systems Network Architecture
* Digital had DNA, Digital Network Architecture 
* Novell had NetWare Open Systems
* Apple had AppleTalk

De TCP/IP protocol-stack is de standaard geworden. Het TCP/IP *model* is in de praktijk in onbruik geraakt.

OSI had ook een eigen protocol-stack, maar die is in de vergetelheid geraakt. Het OSI referentiemodel is overeind gebleven.

De verschillende functionaliteiten, componenten en protocollen moet je kunnen plaatsen op de verschillende lagen van het OSI model èn het TCP/IP model.

## OSI specs
LDAP = Lightweight Directory Access Protocol
Protocol om een directory service te benaderen. Bijv om een accountnaam en wachtwoord te benaderen. Active Directory is een bekend voorbeeld van een directory.
LDAP is een aangepaste versie van DAP, het originele OSI protocol om directory services te benaderen.
LDAP is ontwikkeld aan de universiteit van Berkeley en kon overweg met TCP/IP.

OSI specificaties:
* X.500 beschrijft de structuur en werking van directory services.
* X.509 (digitale certificaten en PKI) is ook een oorspronkelijke OSI specificatie.
* X.400 was de email specificatie

Een directory is een hiërarchische structuur van container objecten (‘OU’s’, organizational units)

## Transmission
Between computer systems, data is transmitted as packets. Packets have a Header (and sometimes a Footer). The information itself is often referred to as the Payload.

The process of adding headers (and footers) to the payload is called encapsulation.

For instance, when sending a mail, the data packet is prepended with SMTP, TCP and IP headers. When browsing, we have HTTP, TCP and IP headers. When streaming content, the data packet is prepended with RTP, UDP and IP headers.

The different headers each belong to a different layer of the OSI structure.
Each type of header contains different fields. The most important fields of the IP header are the SourceIP, DestinationIP and TimeToLive (TTL) fields.

### IP

The nodes in the Internet are called Routers. Routers are components that connect networks. This is the principal functionality of OSI layer 3, the ‘network layer’. Routers interpret the information in the IP headers to determine where the packet needs to be sent on to.

An IP address consists of a Network ID and a Host ID: nnn.hh.hhh.hh. 

Each router ‘knows’ to which network it belongs and shares this network ID with it’s neighbors.
This information is stored in the Routing Table of each device.

The TimeToLive (TTL) field defaults to count 64. Every router that handles the packet, decreases the value by one. When the counter reaches zero the packet is dropped. This mechanism guarantees that a packet does not wander the Internet forever.

### TCP
The Transmission Control Protocol, or TCP, lives in Layer 4, the **Transport Layer**.
One of TCP’s main functions is telling the receiving host by which process, application or service the packet should be handled. It does this through specifying the Port Address, in the dest.port field. There is also a source.port field.

Een andere functie is het garanderen van een betrouwbare overdracht tussen computers.
Relevant hiervoor is het Sequence Number. Packets volgen verschillende routes over het Internet en komen dus niet keurig in volgorde aan bij de ontvanger. 
Belangrijkste veld voor het garanderen van een betrouwbare overdracht is de Acknowledgement flag (1 of 0). The destination computer will send back a packet with the missing sequence number and an ack 0.
A series of packets is called a segment. The TCP handshake (also known as the 3-way handshake). 
When starting a web-browsing session, the client initiates the interaction with a TCP packet in which the synchronise flag ‘syn’ is set to 1. The server then sends back a syn.ack packet. The client responds which the ack flack.
1. Client: syn
2. Server: syn.ack
3. Client: ack

To end a session, the client sends a fin packet and the server respons with ack. (2 way handshake).
1. Client: fin
2. Server: ack

The sequence number of the last packets (fin/ack) determines how many packets the segment consisted of.

Nadeel van dit protocol is veel overhead (en dus vertraging).

Vandaar dat voor streaming een ander protocol gebuikt wordt (UDP; niet RTP want dat zit op een andere layer). 

TCP is a Connection oriented protocol
UDP is connection-less: it is unaware of the (quality of) the connection.

## OSI layers
All People seem To Need Data Processing:
* Application
* Presentation
* Session
* Transport
* Network
* Datalink
* Physical

Each layer has a different function, which is provided by protocols and/or physical components.

ARP = Address Resolution Protocol

SONET = Synchronous Optical Network (glasvezelverbindingen)

Topology = physical structure of a network.

## Datalink and Network layers: routing packets over a LAN
Stel je voor, informatie wordt van het Internet ontvangen en moet verwerkt worden in een lokaal netwerk.

De router waarmee het lokale netwerk aan het internet is verbonden noemen we de Default Gateway.

De ontvangen packet heeft SFTP | TCP | IP headers.
De IP header specificeert de bedoelde ontvanger, bijv. 124.1.1.1.

IP adressen worden dynamisch toegekend met DHCP.
DHCP (Dynamic Host Configuration Protocol) kent aan iedere host binnen het lokale netwerk een uniek IP address toe. Daarnaast vertelt het aan iedere host het address van de Default Gateway en de Primary DNS Server.

De grens tussen het netwerk deel en het host-deel  van het IP address ligt niet altijd op dezelfde plek (qua aantal posities). Dat wordt bepaald door het ‘subnet mask’.

ARP is het protocol dat in lokale netwerken het hardware address te achterhalen dat bij een bepaald IP address hoort.
(Hardware adressen worden uitgedeeld door IEEE. De eerste helft van een adres is uniek per leverancier).

Het hardware adres is gecodeerd in de NIC of Network Interface Controller: de hardware component waarmee een apparaat aan het lokale netwerk is gekoppeld.

Terug naar het ontvangen data packet met dest.IP 124.1.1.1.
De router – in dit voorbeeld – stuurt een ‘ARP broadcast’ het netwerk in: “who has IP address 124.1.1.1 ?”. Het betreffende apparaat stuurt een ‘ARP response’ met zijn eigen hardware address.
De router voegt dan dit adres in een MAC-header toe aan de packet.
De Packet samen met de MAC header wordt Frame genoemd.

(Datagram is een synoniem voor Packet).

Apparaten in een lokaal netwerk beschikken over een ARP-cache: een mapping tussen MAC en IP adressen.

Bij een Wifi router wordt dan ook nog een specifieke frequentie gekozen, omdat ieder verbonden apparaat via zijn eigen frequentie met de router communiceert.

ARP opereert op de Datalink layer en de Network layer en verbindt deze in zekere zin met elkaar.

Access Point en Basic Switch zijn belangrijke apparaten op de Datalink laag.

### Switch
Een switch is een apparaat om in een lokaal, bekabeld netwerk computers aan elkaar te verbinden. (In het internet noemen we dat een router).
Bevat een mapping van fysieke kabelpoorten naar MAC adressen, de zgn. CAM table (Content Addressable Memory).

Routers blokkeren broadcast verkeer: broadcast wordt alleen toegestaan in lokale netwerken, switches faciliteren dat juist.

Routers hangen aan het Internet, switches in een LAN.

## Session layer (layer 5)
RPC = Remote Procedure Call, wordt gebruikt om functionaliteit elders in het netwerk aan te roepen.
SOCKS doet iets vergelijkbaars.

## Presentation layer (layer 6)
Evt. compressie en encryptie spelen zich hier af.

## Application layer (layer 7)
Bevat niet de applications zélf, maar de protocollen die door die applicaties worden gebruikt.

## Note for sheet 13
Contrary to what sheet 13 suggests, no headers are added at the presentation layer and session layer of the OSI model.

## Verplichte weetjes sheet 17
ATM = Asynchronous Transfer Mode 
Een Frame wordt in de ATM wereld een ‘cell’ genoemd. Een cell is 53 bytes lang. ATM werkt met een snelheid van 115 mBit / sec.

De evolutie van dataverkeer over telefoonlijnen:
X.25 -> Frame Relay -> ATM

IEEE 802.3
IEEE 802.15

## Sheet 19
ICMP = Internet Control Message Protocol, wordt o.a. gebruikt door Ping. Is nou typisch iets wat je door je firewall laat tegenhouden.
 
## Sheet 21
TCP flags:
* U = Urgent
* A = Acknowledge
* P = Push (mag niet gebufferd worden)
* R = Reset
* S = Synchronize
* F = Finish

## Sheet 23, Session layer
De session layer houdt zich bezig met het initiëren, onderhouden en beëindigen van sessies.

PPTP = Point to Point Tunnelling Protocol.
SCP = Session Control Protocol
SOCKS = Socket Secure, via een proxy server

SOCKS5 voorziet als extra in authenticatie, je moet je daarvoor als gebruiker aanmelden bij de server.

## Sheet 25
EBCDIC is IBM-variant van ASCII

## Sheet 27
Telnet en FTP zijn notoir onveilig.
TFTP = Trivial FTP

SFTP = FTP + SSH
FTPS = FTP + TLS
HTTPS = HTTP + TLS

ESMTP (Extended SMTP) voorziet in encryptie 

SNMP = Simple Network Mgt Protocol; versie 3 voorziet in encryptie.

## Sheet 36
Een IPv4 adres is 32 bits lang (8.8.8.8).

Class A format: nnn.h.h.h
Class B format: nnn.nn.h.h
Class C format: nnn.nn.nn.h

Class A liet maar 127 organisaties (networks) toe, maar miljoenen hosts binnen ieder netwerk.
Class C liet miljoenen organisaties toe, maar slechts 255 hosts binnen elk netwerk.

Twee methodes werden bedacht om de schaarste aan adressen te ondervangen.
* CIDR = Classless InterDomain routing
* RFC 1918: voorziet in privé IP adressen.

Vóór RFC 1918 was ieder IP address publiek (en dus uniek).

Deze reeksen zijn gereserveerd voor privé:
* 10.1.1.1
* 172.16.h.h
* 192.168.h.h

Moderne routers voorzien in NAT (Network Address Translation), waarmee privé adressen omgezet worden naar een uniek publiek IP adres (en andersom).
Daarnaast is er dan ook PAT (Port Address Translation) nodig.

IPv6 adressen zijn 128 bits lang.

Waarom zijn we nog niet allemaal over naar IPv6?
* IPv4 en IPv6 zijn niet compatibel, de protocol stacks verschillen. Vooral IoT devices missen IPv6 ondersteuning.
* Gemakzucht. Sinds de privé adressen gaat het prima.

## Sheet 42
* Improved security: je kunt IPv6 ook implementeren zonder IPSec, maar dat is niet de standaard.
* QoS: met Traffic Class kun je op het netwerk voorrang geven aan bepaalde applicaties.
 
## Sheet 46
Virtual LAN

Stel ik heb 2 switches waaraan ieder meerdere hosts verbonden zijn (bijv. In 2 verschillende filialen). Een bepaalde host A aan de ene switch moet veelvuldig communiceren met host B op de andere switch. Dan kan ik een virtueel netwerk configureren waar A en B inzitten; daar kan ik dan bijv. bepaalde beveiligingen op loslaten.

De standaard daarvoor is 802.1q.

Promiscuous Private virtual lan (PVlan), alle hosts daarin kan vrijelijk mee gecommuniceerd worden. De router zit meestal in het PVlan.

Hosts in een Isolated Virtual LAN mogen alleen communiceren met devices in het PVlan (dus via de router naar internet), maar niet met andere devices in het VLAN.

Hosts in een Community VLAN mogen juist wel met elkaar communiceren, en met het PVlan, maar niet met computers in een ànder Community VLAN.

## Demilitarised zone
De publieke website wordt gehost op een computer die zich tussen twee firewalls in bevindt. De eerste firewall hangt aan het publieke internet en laat beperkt verkeer door dat van buitenaf geïnitieerd wordt. De tweede firewall laat vooral verkeer door dat van binnenuit geïnitieerd wordt.

Het netwerksegment tussen die twee routers in wordt de demilitarized zone genoemd, ook wel het ‘screened subnet’.

## Sheet 54
Een HTTP proxy server kan ook ingezet worden om het surf gedrag van medewerkers te monitoren.

Tunneling is het ‘verstoppen’ van code in de data package om die langs de firewall te krijgen.

## Sheet 82
MPLS was traditioneel veel sneller, door het over internet routeren van packages aan de hand van het label, via bepaalde routers met voorgedefinieerde bestemmingen. Verschil is tegenwoordig marginaal.

## Sheet 97
Besteed aandacht aan de Hub, die is pop[ulair tijdens het examen
Zit op de fysieke laag

## Sheet 98
Switch kan hardware adressen herkennen en het verkeer naar een specifiek apparaat sturen.
Zit dus per definitie op de data link laag.

Repeater werd vooral gebruikt in Bus-netwerken.

## Sheet 100
Router interpret netwerk deel van het IP adres en fungeert als een koppeling tussen netwerken. Daarmee zit een router dus op de netwerk laag.
Border Gateway Protocol (BGP) is een voorbeeld van een protocol daarvoor. 

### Multi-layer switch
Verschil tussen layer-3 en layer-4 switches moet je kennen.
Laag 3 is om ..., een layer-3 switch koppelt dus ...

Laag 4 is de transportlaag, dus we hebben te maken met poort-adressen. Dat zijn dus process identifiers. Je kunt daarmee QoS bepalen voor verschillende applicaties/toepassingen, dus voorrang verlenen aan bepaalde soorten verkeer.
Ondersteunt ook VLAN functionaliteit (IEEE 802.1q).

## Sheet 105
Coax kabels kom je eigenlijk alleen nog tegen in SCADA omgevingen (industrial controll)

## Sheet 110
Encryptie wordt toegepast mbv het wachtwoord. Zonder wachtwoord geen versleuteling mogelijk. En dus kan verkeer op een openbaar WiFi netwerk niet versleuteld worden.

## Sheet 112
WPA2 voorziet in een Enterprise Mode, waarmee iedere gebruiker een ander wachtwoord kan hebben.
Daartoe moet het access point verbonden worden met een authenticatie server. Bijv. Radius server of Windows server met AD. IEEE 802.1x protocol ondersteund dit (is dus vereist).

WPA3 – wordt nu uitgerold – ondersteunt de Opportunistic Wireless Encryption (OWE) specificatie. Maakt versleuteling mogelijk zonder dat een wachtwoord vereist is.

## Sheet 115
Om het verkeer met de webserver ‘schoon’ te houden, wordt een Packet Filtering Firewall gebruikt (is dus de buitenste firewall)
Packet Filtering Firewall (ook wel stateless firewall) leest protocol headers IP en TCP
Hij let op de destination IP, die overeen moet komen met dat van de webserver.
Hij let ook op het poortnummer, of dat wel is toegestaan (meestal poort 80 of 443 (resp. http en TLS))


A Statefull Inspection Firewall keeps track of sessions, en kan dus ook bijhouden of packets tot dezelfde sessie behoren. Daarmee kunnen bepaalde soorten aanvallen worden voorkomen.

Application Level Firewalls bestaand er in 2 typen:
 * Circuit Level Proxy is eigenlijk helemaal geen firewall; deze verbindt processen tussen servers
 * De ‘echte’ Application Level Firewall (of Application Level Proxy) kan ook nog zien of de service die gebruikt wordt is toegestaan: hij kan ook checken of de payload overeenstemt met het protocol (‘deep packet inspection’)

De ALF heeft een lagere performance vanwege de DPI.

Next Generation Firewall heeft ook nog intrusion detection / prevention functionaliteit.

# Volgende presentatie: 04B
## TLS 1.2
1. Client benadert server (URL in browser)
2. TLS handshake tussen client en server, bevat:
* Informatie over welk encryptie algoritme gebruikt gaat worden
* Digitaal certificaat wordt verstuurd aan client
	* public key van de server
	* Owner
	* Certificate authority
	* Digital signature
	* Hash, SHA-2 encrypted with CA’s Private key
3. Validation: client ontsleutelt de hash met de Public Key van de CA (zit in de browser)
4. Browser genereert Session Key. Is een symmetrische sleutel. De SK wordt in de browser vervolgens versleuteld met de public key van de server (waarvan de uitgifte in stap 3 gevalideerd is).
5. ?
6. De symmetrische sleutel wordt door de server gedecrypt 
7. De HTTPS verbinding is tot stand gebracht

Zie YouTube voor verhelderende animaties.

Gebruikte algoritmes:
* RSA - assymtrische versleuteling
* AES - symmetrische versleuteling
* SHA-2 - Hashing

Als ipv RSA Diffie-Helman wordt gebruikt, wordt er in stap 4 een pre-master key gegenereerd. 

Een zwakte van TLS 1.2 is dat de client de server akkoord kan laten gaan een verouderd encryptie algoritme te gebruiken.

Bij TLS 1.3 blijft de sessie sleutel nog een tijdje geldig (max een etmaal). Dat is makkelijk maar ook een kwetsbaarheid.
