<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Whistleblowing Software</title><link>https://whistleblowing-software.pages.dev/</link><description>Recent content on Whistleblowing Software</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 13 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://whistleblowing-software.pages.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Voice Hotline Intake: STT Pipeline for Sapin II Compliance</title><link>https://whistleblowing-software.pages.dev/posts/voice-hotline-intake-stt-pipeline-sapin-ii-compliance/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/voice-hotline-intake-stt-pipeline-sapin-ii-compliance/</guid><description>&lt;p&gt;A compliant voice hotline intake under France&amp;rsquo;s &lt;a href="https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000045388745"&gt;Loi Waserman&lt;/a&gt;, the act that modernised Sapin II to transpose &lt;a href="https://eur-lex.europa.eu/eli/dir/2019/1937/oj/eng"&gt;EU Directive 2019/1937&lt;/a&gt;, is one pipeline, not three. Capture audio in the browser via the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder"&gt;MediaRecorder API&lt;/a&gt;, encrypt and upload it into the same report bundle as the text fields using libsodium &lt;a href="https://doc.libsodium.org/public-key_cryptography/sealed_boxes"&gt;SealedBox&lt;/a&gt; to the recipient&amp;rsquo;s Curve25519 public key, produce a draft transcript on the recipient side using a self-hosted STT model, and let the reporter verify, rectify, and approve through an anonymous one-time receipt code (never an email or phone re-prompt). The same five-stage pipeline satisfies Article 9(2) and Article 18 of the directive, France&amp;rsquo;s verify/rectify/approve cycle, and Italy&amp;rsquo;s &lt;a href="https://www.gazzettaufficiale.it/eli/id/2023/03/15/23G00032/sg"&gt;D.lgs. 24/2023&lt;/a&gt; oral-report rule. The only deltas across regimes are the consent UX wording and the retention period.&lt;/p&gt;</description></item><item><title>Anonymity vs Confidentiality: a Whistleblowing Threat Model</title><link>https://whistleblowing-software.pages.dev/posts/anonymity-vs-confidentiality-whistleblowing-threat-model/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/anonymity-vs-confidentiality-whistleblowing-threat-model/</guid><description>&lt;p&gt;Anonymity and confidentiality are two different security properties, and a whistleblowing platform that uses them as synonyms is selling a promise it cannot keep. Anonymity means the reporter&amp;rsquo;s identity stays unobservable to the platform, to intermediaries, and to recipients, which operationally requires a &lt;a href="https://www.torproject.org/"&gt;Tor&lt;/a&gt; onion service v3, the Tor Browser on the reporter&amp;rsquo;s side, and reporter-side discipline against forensic traces. Confidentiality means the reporter accesses the platform over a regular browser; the ISP, the employer network, or a CDN can log the connection, while the platform encrypts the content, restricts recipient access, and keeps logs honest. Both are valid, and the right default depends on context: corporate compliance programmes usually default to confidential with anonymous opt-in via Tor, whereas human-rights initiatives and investigative newsrooms default to anonymous.&lt;/p&gt;</description></item><item><title>Whistleblowing Triage Workflow: The 7-Day and 3-Month SLA Clock</title><link>https://whistleblowing-software.pages.dev/posts/whistleblowing-triage-workflow-7-day-3-month-sla-clock/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/whistleblowing-triage-workflow-7-day-3-month-sla-clock/</guid><description>&lt;p&gt;A compliant whistleblowing operation runs two SLA clocks per case: 7 days from intake to acknowledgement, then up to 90 days from acknowledgement to substantive feedback. Both timers come straight from Articles 9 and 11 of EU Directive &lt;a href="https://eur-lex.europa.eu/eli/dir/2019/1937/oj/eng"&gt;2019/1937&lt;/a&gt;, and they are mirrored verbatim in every Member-State transposition: France&amp;rsquo;s &lt;a href="https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000045388745"&gt;Loi Waserman&lt;/a&gt;, Italy&amp;rsquo;s D.lgs. 24/2023, and Germany&amp;rsquo;s HinSchG. Lay them on top of the &lt;a href="https://www.iso.org/standard/65035.html"&gt;ISO 37002:2021&lt;/a&gt; four-stage management cycle (Receive, Assess, Address, Conclude), add a parallel 12-month retaliation watch, and you have a workflow that satisfies the directive, the international standard, and the operational reality of running an investigation. A platform that does not surface both clocks per case as countdown badges (rather than as background retention settings) is non-compliant by design.&lt;/p&gt;</description></item><item><title>Mapping HinSchG, Sapin II, and PIDA Onto One Whistleblowing Platform</title><link>https://whistleblowing-software.pages.dev/posts/hinschg-sapin-ii-pida-platform-mapping/</link><pubDate>Sun, 04 Jan 2026 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/hinschg-sapin-ii-pida-platform-mapping/</guid><description>&lt;p&gt;A multinational employer operating in Germany, France, and the United Kingdom can run &lt;a href="https://wemoral.com/whistleblowing-software"&gt;secure whistleblowing software&lt;/a&gt; across all three regimes if the admin plane exposes five per-tenant switches: anonymous-acceptance, oral-record format, in-person-meeting SLA, headcount calculation rule, and per-artifact retention period. That five-switch model is the information-gain anchor of this post: each switch is driven by a specific section of HinSchG (Germany, in force 2 July 2023, with the late-2023 anonymous-reporting amendment), by the Sapin II decree of 3 October 2022 in France, or by the structure of PIDA 1998 in the UK. The trap most platforms fall into is treating PIDA as if it mandated a channel; PIDA only protects retaliation, it does not require the employer to operate one.&lt;/p&gt;</description></item><item><title>GDPR for Whistleblowing: Lawful Basis, Retention, Minimization</title><link>https://whistleblowing-software.pages.dev/posts/gdpr-for-whistleblowing-lawful-basis-retention-minimization/</link><pubDate>Thu, 11 Sep 2025 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/gdpr-for-whistleblowing-lawful-basis-retention-minimization/</guid><description>&lt;p&gt;A whistleblowing platform handles allegations of wrongdoing, names identifiable third parties, and routinely captures special-category data such as harassment, discrimination, or criminal-conduct claims. It is inside &lt;a href="https://gdpr-info.eu/"&gt;GDPR&lt;/a&gt; scope, and three mistakes show up on almost every implementation review. Calling pseudonymous receipt-coded reports &amp;ldquo;anonymous&amp;rdquo; and assuming GDPR no longer applies; selecting consent as the lawful basis even though the freely-given test fails under the employer/employee power imbalance; and treating encryption as an exemption from breach notification when Article 33&amp;rsquo;s 72-hour clock keeps running regardless. This post walks each pitfall, ties it to a specific GDPR article, and shows what the platform must do in product terms.&lt;/p&gt;</description></item><item><title>EU Directive vs SOX 806 vs Dodd-Frank: One Platform, Three Regimes</title><link>https://whistleblowing-software.pages.dev/posts/eu-directive-vs-sox-806-vs-dodd-frank/</link><pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/eu-directive-vs-sox-806-vs-dodd-frank/</guid><description>&lt;p&gt;A multinational employer with EU operations and US public-company exposure has to satisfy three whistleblowing regimes from a single platform: &lt;a href="https://eur-lex.europa.eu/eli/dir/2019/1937/oj"&gt;EU Directive 2019/1937&lt;/a&gt;, &lt;a href="https://www.law.cornell.edu/uscode/text/18/1514A"&gt;Sarbanes-Oxley Section 806&lt;/a&gt;, and &lt;a href="https://www.sec.gov/whistleblower"&gt;Dodd-Frank Section 922&lt;/a&gt;. The engineering rule of thumb, verified against the three statutes as of April 2026, is to default every workflow to the strictest regime (the EU directive&amp;rsquo;s 7-day acknowledgement and 3-month feedback timers), then layer SOX-specific audit-committee routing and Dodd-Frank&amp;rsquo;s &amp;ldquo;anonymous via counsel&amp;rdquo; carve-out as overlays on top. Configure once to the EU baseline and the US obligations fall into place as additive routing rules, not as competing pipelines.&lt;/p&gt;</description></item><item><title>Encrypting Whistleblower Reports: Receipts, SealedBox, SecretBox</title><link>https://whistleblowing-software.pages.dev/posts/encrypting-whistleblower-reports-receipts-sealedbox-secretbox/</link><pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/encrypting-whistleblower-reports-receipts-sealedbox-secretbox/</guid><description>&lt;p&gt;A whistleblower report needs a complete encryption protocol, not a checkbox that says &amp;ldquo;AES-256&amp;rdquo;. A reference design that has converged across mature open-source whistleblowing platforms pairs three primitives in a way every serious system should recognise: a 16-digit random receipt code (stored on the server only as a SHA-256 hash, shaped like a phone number so the reporter can hide it among contacts), libsodium &lt;a href="https://pynacl.readthedocs.io/en/latest/public/#nacl.public.SealedBox"&gt;SealedBox&lt;/a&gt; (Curve25519 + XSalsa20 + Poly1305) to wrap a per-submission data key to each authorised recipient&amp;rsquo;s public key, and libsodium &lt;a href="https://pynacl.readthedocs.io/en/latest/secret/#nacl.secret.SecretBox"&gt;SecretBox&lt;/a&gt; (XSalsa20 + Poly1305) to encrypt the submission body and attachments under that data key. Each recipient&amp;rsquo;s Curve25519 private key sits on the server encrypted under a symmetric key derived from the recipient&amp;rsquo;s password via Argon2ID tuned to 128 MB of memory and roughly one second of computation per login. As of April 2026, this is the protocol that production deployments serving anti-corruption activists, corporate compliance teams, and investigative newsrooms actually run.&lt;/p&gt;</description></item><item><title>Inside a Whistleblowing Platform: 7 Components and the Data Flow</title><link>https://whistleblowing-software.pages.dev/posts/whistleblowing-platform-7-components-and-data-flow/</link><pubDate>Wed, 16 Jul 2025 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/whistleblowing-platform-7-components-and-data-flow/</guid><description>&lt;p&gt;A whistleblowing platform is built from seven cooperating components: an intake layer that accepts reports over web, Tor, hotline, voice, and mobile channels; a triage and routing engine that classifies and assigns each case; a case management subsystem that owns the investigation lifecycle; an investigator workspace where authorised staff decrypt evidence and write findings; a two-way messaging channel that lets the platform talk back to anonymous reporters via a 16-digit receipt; an audit trail and reporting subsystem that records every action; and an admin and configuration plane that controls retention, encryption, and access policies. The reference architecture used here is grounded in publicly available application-security documentation from mature open-source whistleblowing software (verified April 2026) and the four lifecycle stages defined in &lt;a href="https://www.iso.org/standard/65035.html"&gt;ISO 37002:2021&lt;/a&gt;. The data flow is intake into encrypted submission storage, then routing to a recipient or audit committee, then case work over the receipt channel, then closure with a structured outcome and an audit trail that survives the reporting record after retention deletion.&lt;/p&gt;</description></item><item><title>EU Directive 2019/1937: 12-Row Engineering Checklist for Channels</title><link>https://whistleblowing-software.pages.dev/posts/eu-directive-2019-1937-technical-checklist/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>https://whistleblowing-software.pages.dev/posts/eu-directive-2019-1937-technical-checklist/</guid><description>&lt;p&gt;&lt;a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L1937"&gt;EU Directive 2019/1937&lt;/a&gt; obliges every private legal entity with 50 or more workers, and most public-sector entities, to operate an internal reporting channel that accepts written and oral reports, acknowledges receipt within 7 days, and gives feedback on action taken within 3 months (extendable to 6 in duly justified cases). The channel must protect the identity of the reporter and any third party named in the report, allow third-party operation under the same safeguards, support an in-person meeting on the reporter&amp;rsquo;s request, and avoid any form of retaliation as defined in Article 19. Translating those legal obligations into product requirements yields a 12-row engineering checklist that any reporting platform must satisfy before it can be considered compliant. As of April 2026, every clause below is still load-bearing under the directive&amp;rsquo;s text on EUR-Lex and the &lt;a href="https://commission.europa.eu/aid-development-cooperation-fundamental-rights/your-fundamental-rights-eu/protection-whistleblowers_en"&gt;European Commission&amp;rsquo;s transposition page&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>