Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Key Points

  1. provides more secure messaging model than conventional encrypted message traffic solutions 

References

...

Table of Contents

Key Points

  1. provides more secure messaging model than conventional encrypted message traffic solutions 


References

Reference_description_with_linked_URLs_______________________Notes______________________________________________________________
Secure Messaging Concepts













Key Concepts





A bi-direction quic protocol covert channel - QuiCC v1.0.0 video - David Cheeseman 2023

Summary of "A Bi-Direction QUIC Protocol Covert Channel - QuiCC v1.0.0"

  1. Introduction and Background:

    • Presenter: David Cheesman, a master's student at Johns Hopkins University.
    • Course: Covert Channels under Dr. Lineer Watkins.
    • Focus: Demonstrating a covert channel using the QUIC protocol (RFC 9000 & RFC 9396).
  2. Protocol and Exploitation:

    • QUIC's 64-bit connection ID field is used to embed encrypted payloads, leveraging its high entropy for covert communication.
    • Connection IDs are indistinguishable from benign traffic due to their required randomness.
  3. Implementation Tools and Libraries:

    • Tools: AOQIC Library (Python-based QUIC HTTP client/server) and custom CC Crypto Library for encryption.
    • RSA encryption is utilized, but implementation uses a simplified setup for faster development.
  4. Code Modifications:

    • Added global values like RSA parameters, CID history tracking, and metadata for peer communication.
    • Adjustments to the connection module for generating, queuing, and processing connection IDs.
  5. Message and Payload Handling:

    • Messages are encrypted and transmitted using connection IDs.
    • Server and client exchange RSA public keys during setup.
    • Keep-alive messages ensure channel synchronization.
  6. Covert Channel Features:

    • Supports encrypted messages, file transfers, and remote command execution.
    • Command outputs (stdout and stderr) are queued and transmitted back via the channel.
  7. Demonstration:

    • Demonstrated sending text messages, files, and remote commands.
    • Shannon entropy of transmitted data matches that of random bytes, making traffic indistinguishable.
  8. Limitations and Bugs:

    • Current issues include synchronization drops and random host IDs being sent unexpectedly.
    • RSA key size is reduced (1024 bits) to expedite demonstration, potentially impacting security.
  9. Future Enhancements:

    • Expand channel bandwidth by exploiting additional high-entropy headers.
    • Develop mitigations against active interference (e.g., random byte injections by adversaries).
  10. Code Availability:

    • The code is open-source and hosted on GitHub under the repository "nuvia/qicc."


//--------------


https://developer.mozilla.org/en-US/docs/Web/API

When writing code for the Web, there are a large number of Web APIs available. Below is a list of all the APIs and interfaces (object types) that you may be able to use while developing your Web app or site.

Web APIs are typically used with JavaScript, although this doesn't always have to be the case.

This is a list of all the APIs that are available

developer.mozilla.org Web_Workers_API

A worker is an object created using a constructor (e.g. Worker()) that runs a named JavaScript file — this file contains the code that will run in the worker thread.

In addition to the standard JavaScript set of functions (such as String, Array, Object, JSON, etc.), you can run almost any code you like inside a worker thread. There are some exceptions: for example, you can't directly manipulate the DOM from inside a worker, or use some default methods and properties of the Window object. For information about the code that you can run see supported functions, and supported Web APIs.

Data is sent between workers and the main thread via a system of messages — both sides send their messages using the postMessage() method, and respond to messages via the onmessage event handler (the message is contained within the message event's data property). The data is copied rather than shared.


developer.mozilla.org. - NavigatorUAData: getHighEntropyValues() method

The NavigatorUAData interface of the User-Agent Client Hints API returns information about the browser and operating system of a user.

An instance of this object is returned by calling Navigator.userAgentData or WorkerNavigator.userAgentData. Therefore, this interface has no constructor.

Note: The terms high entropy and low entropy refer to the amount of information these values reveal about the browser. The values returned as properties are deemed low entropy, and unlikely to identify a user. The values returned by NavigatorUAData.getHighEntropyValues() could potentially reveal more information. These values are therefore retrieved via a Promise, allowing time for the browser to request user permission, or make other checks.



//--------------
shmoocon



David Cheeseman, CISSP/CKADDavid Cheeseman, CISSP/CKAD
Sr Cybersecurity Engineer and Security ProfessionalSr Cybersecurity Engineer and Security Professional

...