This is a security project that aims at simulating the flow of HTTPS and attempts to attack it using popular vulnerabilities.
Uppaal for formal modeling.
Note: This structure may be updated.
.
├── docs
│ ├── assets
│ │ ├── 3_way_hand_auto.png
│ │ ├── http_flow.png
│ │ ├── http-request-headers.png
│ │ ├── http-response-headers.png
│ │ ├── script.sh
│ │ └── tls.png
│ ├── http.md
│ ├── https.md
│ ├── script.sh
│ ├── ssl_tls.md
│ └── tcp.md
├── LICENSE
├── models
│ ├── https.xml
│ ├── http.xml
│ ├── script.sh
│ ├── tcp2.0.xml
│ ├── tcp.xml
│ └── tls.xml
└── README.md- Markdown files: Use lowercase with underscores for multiple words (e.g.,
ssl_tls.md,tcp.md) - Image files: Use lowercase with underscores or hyphens (e.g.,
http_flow.png,http-request-headers.png) - Model files: Use lowercase with version numbers when needed (e.g.,
tcp.xml,tcp2.0.xml) - Script files: Use lowercase with
.shextension (e.g.,script.sh)
- Use backticks for inline code and protocol names (e.g.,
HTTPS,TCP,HTTP) - Use proper capitalization for protocol names in text (e.g., HTTP, HTTPS, TCP, TLS)
- Use consistent terminology throughout documentation
-
TCP
- Docs:
docs/tcp.md- What is
TCP TCPpacket- Acknowledgment and Sequence Number
- 3-Way Handshake and Sending Data
- What is
- Models:
models/tcp.xml,models/tcp2.0.xml(Automata)
- Docs:
-
HTTP
- Docs:
docs/http.md- What is
HTTP - What is in an
HTTPrequest - What is an
HTTPmethod - What are
HTTPrequest headers - What is in an
HTTPrequest body - What is in an
HTTPresponse - What's an
HTTPstatus code - What are
HTTPresponse headers - What is in an
HTTPresponse body - Can
DDoSattacks be launched overHTTP HTTPFlow
- What is
- Models:
models/http.xml(Automata)
- Docs:
-
SSL/TLS
- Docs:
docs/ssl_tls.md- Problems the data exchange faced
- What is
SSLand what isTLS - What is Hashing and Cryptography
SSL/TLSflow: 2 Round Trips and 1 Round Trip
- Models:
models/tls.xml(Automata)
- Docs:
-
HTTPS
- Docs:
docs/https.md- What is HTTPS
- Why HTTPS Exists
- How HTTPS Works
- The Protocol Stack
- Models:
models/https.xml(Automata)
- Docs:
-
ATTACKS
- Popular attacks on HTTPS (we can target TCP & TLS)
- Simulating and seeing where we get blocked
For reference, we use the following RFC standards:
- TCP: RFC 793 - Transmission Control Protocol
- HTTP/1.1: RFC 7230-7237 - Hypertext Transfer Protocol (HTTP/1.1)
- TLS 1.2: RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2
- TLS 1.3: RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
- HTTPS: Uses HTTP and TLS RFCs above
The following Cloudflare learning resources are referenced in the HTTP documentation: