Network and Computer Systems Security


Knowledge goals

  • Security frameworks and key-concepts: adversary models; attack vectors and attack surfaces; vulnerabilities and exploiting tools; security countermeasures in computer systems and networks; design principles for security properties; security mechanisms and security services; trust computing bases and relevant security standards.
  • Security model foundations for internet-based distributed systems
  • Kowledge of applied cryptography: methods, techniques, algorithms and their security foundations
  • Security foundations of TCP/IP standard security protocols at different stack levels
  • Design analysis of secure communication protocols based on cryptographic constructions
  • Intrusion prevention, intrusion detection, intrusion recovery and mechanisms for intrusion tolerance
  • Operating systems security
  • Secure virtualization, isolation, and confinement of critical SW components
  • Operating systems security mechanisms
  • Trusted computing bases and solutions for trusted execution environments
  • Know about the principles and foundations of confidential computing


Practical skills  (Know-How, Hands-On Practice)

  • Know how to conduct vulnerability assessment or auditing activities with means, tools and exploits, learning how to use such tools in specific cases
  • Know how to implement security mechanisms for the protection of different security properties in communication protocols and communication channels for distributed systems 
  • Design, implementation and experimental assessment of security communication protocols and security services for distributed computer systems and networks
  • Know how to use cryptographic methods and tools in the development of secure communication protocols and to protect data in computer systems
  • Inspection and practical analysis, auditing of operation and compliance of standard security protocols and services in the TCP/IP stack and remote Internet accessible services
  • Develop practical skills for security management and use of means of integrity inspection, authentication and access-control protection, at the operating system level
  • Know how to inspect and how to use security mechanisms at the operating system level
  • Design and implementation of mechanisms for data protection and privacy preservation for databases and outsourced cloud-storage solutions
  • Know about the practical use of means to protect isolated components with technologies for hardware-backed isolation and related support for trusted execution environments

General characterization





Responsible teacher

Henrique João Lopes Domingos


Weekly - 4

Total - 52

Teaching language



Prior knowledge on:

  • Foundations of computer networks, protocols and services, particularly standard protocols and services in the TCP/IP stack;
  • Foundations, principles and programming paradigms for the design and operation of distributed systems and applications
  • Operating systems foundations

The course requires practical skills on distributed programming and use of software development tools (ex, Eclipse IDE or any other IDE amd development of Java and Maven Projects) and practice with programming languages* (ex., Java, C#, C++ ). It is also required initial experience in using UNIX-based systems (ex, Linux distributions or Mac-OS and use of shell-based environment), as well as initial experience in installing and using virtualization environments (ex, VBox or VMware), or containerized and virtualized software components and applications (ex, Docker, Docker Composing). 

Previous practice in TCP/IP and distributed systems programming (using sockets, RMI and REST or Rest-Based Web Services).



  • W. Stallings, L. Brown, Computer Security: Principles and Practice, Pearson, 4/E e.b. (2021)
  • W. Stallings, Network Security Essentials - Applications and Services, Pearson, 6/E, e.b. (2021)

Ref. complementares

  • W. Stallings,Cryptography and Network Security - Principles and Practice, Pearson 8/E (2020)
  • P. C. van Oorschot, Computer Security and the Internet
  • D. Gollmann,Computer Security, 3rd Ed, Wiley (2011)
  • B. Schneier, Applied Cryptography, Wiley (1996)
  • A. Zúquete, Segurança em Redes Informáticas, 5/E, FCA (2018)
  • M. Correia, P. Sousa, Segurança no Softwarem , 2/E, FCA (2017)

Teaching method

The course is organized in lectures for presenting and discussing foundations, concepts, principles, paradigms, techniques or algorithms.

Labs are organized for presenting computer and network security techniques (following the program), involving the demonstration of such techniques or related components and development of practical work assignments including the mandatory assessment assignments. Some sessions are planned for discussing practical solutions on proposed problems, as well as support for implementation of the assessment projects or work-assignments.

Assessment components

  • 2 frequency tests (midterm): T1, T2
    • Cover the program topics
    • Tests with 2h30m (ref)
      • 1h-1h30m: closed book questions
      • 1h-1h30m: open book questions (printed and individual sources). Can include practical questions from lab exercises, as well as, evaluation questions related to work-assignments
  • 2 Work-Assignments as mini-projects: TP1,  TP2
  • Developed individually or in workgroups (2 students maximum)
    • Group members must have at least 65% presences in classes
    • Practical evaluaton will have an individual assessment factor, so the practical evauation will be individual (independently of groups)
  • Evaluation includes: development, completeness, quality, correctness and practical evaluation
  • Students may eventually be scheduled for proof of implementation, demonstration and complementary discussion of assignments.

Grade conditions1

Obs) The assessment rules below can be modified, depending on possible orientations or situation due to the Covid-19 pandemic. 

- Frequency

  • Frequency Assessment AF = 40% (TP1) + 60% (TP2)
  • Frequency condition (AF): AF >= 9,5/20

- Grade with Frequency (AC)

  • Frequency condition
  • Midterm Evaluation AC = 35% AF + 30% (T1) + 35% (T2)
  • Grade condition (AC): AC >= 9,5/20 and average (T1, T2) >= 9,5/20 

- Grade with Appeal Exam (ER)

  • Frequency condition
  • Final assessment with Appeal Exam AER = 40% AF + 60% ER
  • Grade with Appeal Exam (AER): AER >= 9,5/20 and ER >= 9,5/20

1) Students with frequency and exam (appeal) access conditions obtained in 2018/2019 can use the obtained frequency classification.

Evaluation method

Assessment components and rules

  • 2 frequency tests (midterm): T1, T2, covering the program topics
    • Tests initially planned for physical presence (face-to-face) covering all the program topics
    • Tests will have two parts:
      • Closed-book part. 
      • Open questions part
    • For closed-book parts students cannot use electronic devices, computers, mobile/smart phones, tablets or any equipment with communication capacity 
  • Two project-assignments: TP1, TP2 
    • Individual or gour-development (two students max.) but with individual submission by electronic means (even when the projects are developed in group)
    • Submission on the defined deliverable dates: submission form, with questions, attachments -report and code (sources and binaries/executables) with code managed and available in a development platform (GitHub prjoject)
    • TP1 and TP2 evaluation can be complemented by individual practical test components, when considered necessary for the evaliuation (initially planned to be conducted presentially) - up to 20% of the evaluation of TPs
    • Information about class-participation (exercices, hands-on activities in lab-classes) can be used as a complementary adjustement factor for individual pratical evaluation

Grade conditions

- Frequency

  • Frequency AF = 40% (TP1) + 60% (TP2)
  • Frequency condition (AF): AF >= 9,5/20 with TP2 >=9,5/20
  • Students with frquecy obtained in 2020/2021 can reuse this evaluation

Grade with Frequency (AC)

  • Frequency condition
  • Midterm Evaluation AC = 40% AF + 25% (T1) + 35% (T2)
  • Grade condition (AC): AC >= 9,5/20 and average (T1, T2) >= 9,5/20 

- Grade with Appeal Exam (ER)

  • Frequency condition
  • Final assessment with Appeal Exam AER = 40% AF + 60% ER
  • The exam (appeal) covers all the program topcis, and has the same format and organziation used for the ferquency tests
  • Grade with Appeal Exam (AER): AER >= 9,5/20 and ER >= 9,5/20

Note: all evaluations will be in a 0-20 points scale with one decimal place.  The final classification is obtained with the corect rouding rules to get the grade without decimal places.


Subject matter

Topics (summary):

  • Introduction: concepts, terminology, models and standards for security mechanisms and services for computer systems and networks and for distributed computing systems.
  • Applied cryptography: foundations, tools, algorithms and methods; standards and correct and secure design and use of cryptographic constructions; key-distribution protocols and secure establishment of keys and security association parameters; emergent cryptography for security and privacy preservation
  • Authentication: methods, mechanisms and protocols for authentication systems; user-authentication and digital identity management; authentcated and certified key-distribution and securitt association protocols; methods and protocols for authentication and software attestation.
  • Access control: methods, models, policies and means for access control.
  • Secure communication with TCP/IP networks and Internet security: TCP/IP security standards at different levels and Internet security; end-to-end security communication arguments.
  • Systems security: operating system security; security of virtualization methods; perimeter defense techniques and means; intrusion detection and intrusion prevention, means for intrusion tolerance; isolation of critical components; trusted execution environments, hardware-backed isolation, and principles of confidential computing. 


Program in detail

  • Introduction
    • Concepts and terminology
    • Security frameworks and standards for security properties, mechanisms and services for computer systems and networks
    • Vulnerabilities, attacks, exploits against distributed systems'' machines
    • Security countermeaures and models for secure distributed systems 
    • Defintiion of adversary models, attack trees, attack surfaces and types of security countermeasures
    • Security model for internet security and distributed systems
  • Applied cryptography and crypptography
    • Cryptographic methods, algorithms and techniques: OTPs, Aletoriedade, PRGs e TRGs 
    • Foundations, properties and security analysis models for cryptography
      • Computational security criteria
      • Security under the Random Oracle
      • Cryptanalysis methods, models and criteria
      • Security and malleability of cryptographic algorithms 
    • Symmetric cryptography
      • Stream ciphers and  analysis of algorithms (RC4, VEST)
      • Bock ciphers: methods and algorithms
      • Security analysis and operation of symmetric block ciphers
      • Algorithms for block-based symmetric encryption (AES, RC6, Twifish)
      • Block ciphers and operation modes
        • ECB, CBC, OFB, CFB, CTR 
          • Comparative analysis: security, efficiency and fault-tolerance issues
        • AEAD Modes: GCM and CCM
        • Secure padding and patterns for block ciphers
      • Secure and effiicient stream cipher constructions using block ciphers
    • Asymmetric cryptography
      • Standard constructions for asymmetric cryptography
      • Algorithms and typology
      • Analysis of algorithms: RSA, ElGammal and ECC
      • Relevance of secure padding for RSA: PKCS and OAEP
      • Elliptic curves and security concerns
    • Secure hash functions
      • Security properties and criteria
      • Algorithms: SHA 2 and SHA 3
      • Other algorithms
      • Compossable hybrid constructios and advantages
    • Keyed hash functions and message authentication codes: MACs, HMACs and CMACs
    • Digital signatures and classified digital signatures
      • Constructions and standards
      • RSA signatures with secure hashing and pdding: PKCS and PSS secure patterns
      • DSA
      • Digital signatures with Elliptic Curves: ECDSA pattern
    • Key-establishment methods and establishment of security association parameters
      • Authenticated distribution of Keys and SAs
        • Protocols with symmetric and asymmetric cryptographic models
        • Kerberos and PKINIT Kerberos variants
        • Diffie-Helman and Group Diffie-Hellman methods
        • ECDH pattern
    • Public key infrastructures and public-key certification (PKIs and PKIX framework)
    • X509 Authentication and Certification
      • Key and SA Distribution with X509 certified protocols
    • Complementary methods and practical techniques
      • Onion encryption with and without diversity; overlayed encryption
      • Secret-Sharing 
      • Zero-Knowledge Proofs
      • Threshold cryptography
      • Emergent cryptographic methods and techniques for security and privacy-preservation
  • Authentication
    • User authentication
      • DIfferent authentication factors
      • Multifactor authentication systems
      • Devices and solutions for user authentication
    • OAuth Authentication
    • Authentication and federated identity management (FIM)
    • Authentication protoclo: PAP, RADIUS and CHAP
  • Access control
    • Models, mechanisms nd means
    • Modelos MAC, DAC, RBAC and ABAC models
    • MAC and DAC model in Operating Systems
    • RBAC and ABAC model for applications
    • Web-Access control methods and session-oriented access control
  • Security protocols and communication protection
    • Internet security and end-to-end security arguments
    • Internet Security and TCP/IP security stack: protocols and standards
      • LAN and WLAN security standards
      • IEEE 801.1x, 802.11i
      • EAP Authentication
      • IPSec, TLS, HTTPS and QUIC/HTTPS
      • VPNs and tunneled secure communication
      • DNSSEC
      • Application-level security case studies
        • Email security
        • SSH
        • EMail Security: relevant standards and interdependencies
          • Email store & forwading security: RPKI and DNSSEC interdependencies
          • SPF Scurity Framework for nti-spamming protection
    • Auditing and compliance of security standards for internet systems, applications and services
    • Protection against denial of service
      • TCP hijacking and disruption
      • Potection againt DoS and DDoS attacks
  • Systems security
    • Operating systems security level
    • Virtualization and virtualization security: isolation and confinement of critical components
    • Perimeter defense techniques, means of control and systems
    • Intrusion prevention, intrusion detection and intrusion recovery systems
      • Intrusion detection methods and models
      • Analysis of different solutions: HIDS, NIDS, WIDS and HDIDS
      • SIEM Platforms
    • Methods techniques and means for intrusion tolerance systems
    • Isolation mechanisms for trusted and confidential computing
    • Mechanisms and solutions for Hardware-enabled isolation and trusted execution environments (TEEs)



Programs where the course is taught: