Skip to content

implementation of some secure design patterns with explanation

Notifications You must be signed in to change notification settings

dschulmeist/secure-design-patterns

Repository files navigation

Secure Design Patterns

(I created this Repository during the preparation for my Software Security Engineering Exam at KIT)

Overview

In this repository, we provide a collection of 6 secure design patterns that can be used to build secure software systems. These patterns are based on the principles of secure software design from the Software Security Engineering Lecture at the Karlsruhe Institute for Technology (KIT) and can be used to build secure software systems that are resilient to common security threats.

I will provide an abstract explaination of the different patterns and then provide an concrete implementation of the pattern in Java.

Each Pattern has its own folder with sample code that runs

Why Secure Design Patterns?

Secure design patterns are essential for building secure software systems that are resilient to common security threats. By following secure design patterns, developers can ensure that their software systems are secure by design and not just as an afterthought. Secure design patterns provide a structured approach to building secure software systems and help developers address security concerns early in the development process.

Patterns

Quick overview of the patterns:

  • Secure Factory Pattern: The Secure Factory Pattern is a creational design pattern that provides an interface for creating families of related or dependent objects without specifying their concrete classes. It is used to create secure objects based on the provided credentials.
  • Secure Builder Factory Pattern: The Secure Builder Factory Pattern is a creational design pattern that provides an interface for creating complex objects step by step. It is used to create secure objects based on the provided credentials.
  • Secure Strategy Factory Pattern: The Secure Strategy Factory Pattern is a creational design pattern that provides an interface for selecting an algorithm at runtime. It is used to create secure objects based on the provided credentials.
  • Secure Chain of Responsibility Pattern: The Secure Chain of Responsibility Pattern is a behavioral design pattern that allows an object to pass a request along a chain of handlers. It is used to create secure objects based on the provided credentials.
  • Secure State Machine Pattern: The Secure State Machine Pattern is a behavioral design pattern that allows an object to change its behavior when its internal state changes. It is used to create secure objects based on the provided credentials.
  • Secure Visitor Pattern: The Secure Visitor Pattern is a behavioral design pattern that allows for additional operations to be added to an object structure. It is used to create secure objects based on the provided credentials.

How to Use

Each pattern has its own folder with a README.md file that provides an abstract explanation of the pattern, a UML diagram, and a class structure. The README.md file also contains a concrete implementation of the pattern in Java.

Just clone the repository and navigate to the pattern folder you are interested in to learn more about the pattern and see the sample code. Each repository has a main method that can be run to see the pattern in action.

Releases

No releases published

Packages

No packages published

Languages