• Products
  • Services
  • Blog
  • About Us
  • Contact

DNP3

Rust Protocols Dnp3 Video Modbus
Protocol Scalability

Protocol Scalability

Building systems that scale is becoming critically important as the power grid undergoes a rapid transformation to meet the challenge of renewables and climate change. Software architecture is crucial to scaling communications solutions for emerging applications like distributed energy resources (DERs). This blog post discusses how software architecture affects the scalability of communication protocols and provides performance data for our protocol offerings. Parallelism vs Concurrency The Internet experienced its largest growth in user base from 1995 to 2000.

Rust on Embedded Linux

Rust on Embedded Linux

We made the pragmatic decision early on to build our libraries on top of Tokio, which supports common operating systems like Linux, Windows, and MacOS. Although Rust can target bare metal, the async and library ecosystem for no_std is still rapidly evolving. Embedded Linux Despite this limitation, our libraries are still great for resource constrained environments by deploying on embedded Linux. Every release of our software includes pre-compiled libraries for popular embedded Linux architectures such as ARMv6/v7 and ARM-64.

DNP3 1.0.0

DNP3 1.0.0

We released the first external version (0.9.0) of our Rust-based DNP3 library about one year ago. Since then, our customers have deployed the library in production using all our available language bindings. During this time, there have been zero runtime failures reported in release versions. I’m proud of this simple fact. It indicates to me that we’ve made sound toolchain and engineering decisions. Our decision to use Rust for our next-gen libraries is paying dividends.

OpenDNP3: Retrospective

OpenDNP3: Retrospective

OpenDNP3 was released as open source over 10 years ago. This post describes where I believe the project has succeeded, where it hasn’t, and why Step Function I/O is using a different licensing model for our new libraries going forward. In many ways, OpenDNP3 has been a success. We are constantly learning of new companies that have successfully used the library to add DNP3 functionality to their product or service offering.

Complexity vs Security

Complexity vs Security

Historical Note: This post originally appeared on Automatak.com. The title has been changed. The DNP UG recently published a statement regarding the rash of DNP3 advisories from ICS-CERT. Generally, I agree with their statements. There is nothing wrong with the specification in the perfect world of specifications. In theory, a developer should be able to write a flawless implementation of the protocol. In practice, however, something quite different has been demonstrated.

DNP3 SAv5 and TLS: Different trust boundaries

DNP3 SAv5 and TLS: Different trust boundaries

Historical Note: This post originally appeared on Automatak.com. Subsequent analysis under a DHS grant, changed my opinion on DNP3 SAv5 substantially. There is a good paper published by IEEE S&P available here that I co-authored with Sergey Bratus that better summarizes my technical opinion of DNP3 SAv5. The purpose of this post is not to compare the merits of SAv5 vs. TLS, but rather to point out how the security concept of trust boundaries is applied to the analysis of dnp3 implementations themselves.

Reliable and secure software for critical infrastructure

stepfunc

stepfunction_io

Address

  • 395 SW Bluff Drive
    Suite 10
    Bend, OR 97702

  • info@stepfunc.io
  • +1-919-428-1002

Navigation

  • Products
  • Services
  • Blog
  • About Us
  • Contact