Build1 distinct publisher3 min readPublished
RUGERO Tesla spent several days in a libIEC61850 lab and came out with two separate sets of security questions, because MMS answers inside a session on TCP/102 while GOOSE and Sampled Values answer to whatever frame arrives.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
An MMS client gets a connection somebody can refuse. It opens ISO-on-TCP to port 102 on the IED [6], and once that is up the useful questions are all session-shaped: whether the server will accept an anonymous session, what objects it will disclose, and which operations require authorization, including whether control operations are protected [21][10]. Every one of those answers lives in server state, and server state can be configured to say no.
A Sampled Values subscriber gets a frame. Tesla's process-bus list is that gap written out five ways: who is allowed to publish, how publisher state is represented, how sequence numbers are interpreted, what happens when frames originate from an unexpected source, and whether a subscriber can distinguish legitimate traffic from manipulated traffic [11]. Those are posed as research questions, not as findings, and the published section stops before answering them.
Count the two lists. Five questions on the station bus side, five on the process bus side, one of the station-bus five turning on establishing a session, and none of the process-bus five referring to a session or a connection at all [19]. The delta comes down to one fact: on the process bus there is no connection event to attach an identity to. Provenance has to be inferred from frame contents instead.
The phase ordering here is the part I would copy. Configuration came first, before any attack on the network protocols [22], because SCL describes IED capabilities, logical nodes, communication parameters, datasets and the relationships between devices [12]. That makes the configuration the reference model, and observed wire behaviour only means something when read against a known data model [14].
The historical detour earns its place. Parker McCauley pointed Tesla at Bruce Muschlitz, a former UCA conformance-testing participant, with the instruction to ask about the UCA decision dart board [16]. What came back was an older 9-2LE Sampled Value capture, a legacy Excel visualisation tool, and observations on how conformance testing used to be performed [17]. The state of the art for reading a process-bus capture, in that lineage, was a spreadsheet.
Whether any of this transfers to a live substation depends on where the observations came from. The observations came from packet captures, custom Python tooling, native library examples, malformed-input testing and direct observation of simulated IEDs [8]. Simulated publishers and subscribers accept and reject frames according to one library's implementation choices. Timing, state and sequencing are exactly where implementations diverge [4], and they are also what the process-bus questions turn on. So a result from this bench is evidence about libIEC61850 first and about a merging unit second, and the sequence-number cases would need re-running against the real relay before anyone writes an acceptance criterion from them.
Ranked by verification strength, evidence, and original report placement.
IEC 61850 is an ecosystem of communication models rather than a single protocol.
MMS operates over the station bus and provides a comparatively conventional client/server interface, using ISO-on-TCP and exposing an application-layer model containing logical devices, logical nodes, data objects and control points.
GOOSE and Sampled Values operate directly over Ethernet as Layer 2 protocols identified by EtherTypes rather than by TCP or UDP ports.
GOOSE and Sampled Values introduce a different set of assumptions around multicast, timing, state, sequencing and data integrity.
The laboratory IED exposed MMS through ISO-on-TCP on port 102.
The author spent several days building an isolated IEC 61850 laboratory around libIEC61850, examining SCL configuration, MMS sessions, control operations, GOOSE, Sampled Values and process-bus behaviour.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · September 1, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Three manual interventions in a month, and every guard was working as designed1 distinct publisher
build
Six MariaDB versions, one real difference: the only reason to leave 10.6 is the July 2026 clock1 distinct publisher
build
Force the tool call, then hand Lightsail a long-lived key1 distinct publisher
build
Separating moderation rejections moved one API gateway's success rate from 95.5% to 98.9%1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One lab, one witness
Split the material in two and it grades very differently. The architectural spine — MMS over ISO-on-TCP on 102, GOOSE and Sampled Values as EtherType-identified Layer 2 traffic — is checkable by anyone with the standard and a capture, and needs no trust in the author. Everything else is a single self-published account of a simulated stack: no captures or harness code accompany the text we have, no one has re-run it, and the narrative breaks off during the control-operation phase before the process-bus results arrive.
Nothing here left the bench
Every observation lives inside a simulator the author stood up himself. No utility, vendor, product, release or field deployment appears anywhere in this reporting, so there is nothing to count — and inventing an adoption figure from an isolated lab would be worse than leaving it blank.
Careful prose, single configuration
The write-up is notably disciplined where it would be easiest to overclaim: a failed raw write is not read as protection, and the control result is attributed to the tested configuration rather than to IEC 61850 at large. The stretch is structural instead of rhetorical — a general statement that the station bus and process bus offer unequal security boundaries is doing the work of an architecture claim while resting on one simulated stack in one configuration.
No product at the end of it
Follow the money and it runs out fast. An independent researcher posts on a developer blog, builds on a library he did not write, sells nothing, and names no vendor to praise or blame. What remains is the ordinary pull of a research write-up — reputation, and a good story about a dart board — which shapes emphasis more than it shapes findings.
Firm on the wire, soft on the world
We are confident about the part that matters most operationally, because port-versus-EtherType is a fact about the standard rather than about this lab. Confidence drops for anything behavioural: one configuration, one observer, no replication, and a text that stops before its own second act. Read it as a well-framed set of questions with the station-bus answers sketched in.