Skip to content

readme does not say what to do when macOS or Windows block the downloaded binary #16

Open

Description

@d0ubl3g

Measured

  • .github/workflows/release.yml does not sign with an Apple certificate or Authenticode: grep -c -E "codesign|notarytool|signtool" .github/workflows/release.yml → 0.
  • The README Install section (README.md:39-61) does not mention Gatekeeper or SmartScreen.

Why it matters

Beta testers on macOS and Windows who download with the browser: the system blocks or warns about the executable and the README does not tell them how to proceed. It is the first step of the evaluation.

Acceptance criteria

  • The Install section explains, per platform, what to do after verifying with cosign: on macOS, remove the quarantine attribute or download with curl; on Windows, Unblock-File or «Más información → Ejecutar de todos modos» (More info → Run anyway).
  • It makes clear that cosign verification is the integrity proof.
  • It has been tested on macOS 15 and Windows 11 with a browser download.

Depends on

Nothing. Platform signing, which would make this unnecessary, is #50.

Activity

  1. added
    beta-blockerBlocks or embarrasses a beta tester on day one (Functional beta only)
    ux-designDesign or user experience
    docsDocumentation
    on Oct 6, 2026
  2. changed the title [-]el readme no dice qué hacer cuando macOS o Windows bloquean el binario descargado[/-] [+]readme does not say what to do when macOS or Windows block the downloaded binary[/+] on Oct 6, 2026
  3. d0ubl3g commented on Oct 7, 2026

    @d0ubl3g
    ContributorAuthor

    Documentation landed in 0.2.0 (#63): the README section "If macOS or Windows blocks the binary" covers the macOS quarantine attribute and the curl download, Windows Unblock-File, and "More info → Run anyway". It states that the cosign check is the proof of integrity. Since 0.2.0 the Windows binary is also signed (#50).

    Still open: testing those steps on macOS 15 and Windows 11 with a browser download. No result is recorded yet.

  4. d0ubl3g commented on Oct 10, 2026

    @d0ubl3g
    ContributorAuthor

    Partial results for the Windows steps, with v0.3.0, on Windows Server 2022 (build 20348) in a VM, not Windows 11. The session had no interactive desktop, so anything that needs a browser download or a dialog could not be observed.

    Measured:

    • The MSI and hodeishield.exe both have valid Authenticode signatures (Hodeitek S.L., timestamped). The zip is not Authenticode-signed, as expected. SHA-256 of the zip and MSI match SHA256SUMS.
    • The download mark was simulated (a Zone.Identifier stream added by hand), because Invoke-WebRequest does not set it. With the mark on the MSI, a silent install still succeeded (exit 0).
    • Unblock-File removes the mark from the zip. On Windows PowerShell 5.1, Expand-Archive never copies the mark to the unpacked files, with or without Unblock-File. Unblocking therefore only matters for Explorer's "Extract All" or other tools that carry the mark over. A README sentence could say so.

    Not measured yet: SmartScreen on a double-click of the exe or on opening the MSI, the UAC publisher prompt, a real browser download, Windows 11, and macOS 15. This issue stays open for those.

  5. d0ubl3g commented on Oct 15, 2026

    @d0ubl3g
    ContributorAuthor

    Progress on the macOS steps, with v0.4.4 on macOS 27.0.1 (arm64), not macOS 15.

    • The download check passed: SHA256SUMS matches and cosign verify-blob prints "Verified OK" (cosign v3.1.3).
    • The macOS binary is not signed with an Apple Developer ID and not notarized (macOS and Windows binaries carry no Apple code signature or Authenticode #50): codesign shows an ad-hoc signature with no Team ID, spctl rejects it and no notarization ticket is stapled.
    • The quarantine flag was added by a script (a browser adds the same one), then the archive was unpacked with Archive Utility. The real Gatekeeper dialog appeared ("Apple could not verify hodeishield is free of malware"; on this Mac in Spanish, with the buttons "Trasladar a la Papelera" and "Aceptar"). The first run was stopped. After approving it under System Settings → Privacy & Security, hodeishield --version printed 0.4.4.
    • xattr -d com.apple.quarantine removes the block: the binary then runs with no dialog, and a second xattr -d reports "No such xattr".
    • A curl download carries no quarantine flag and runs without a dialog.
    • Unpacking with tar in Terminal keeps the quarantine flag on the binary, so the block still applies.

    Not tested yet: a real browser download, macOS 15 and Windows 11. Windows results so far are in the earlier comment (Windows Server 2022). The README gets a small update (the System Settings route, that tar keeps the flag, and that the dialog text follows the system language). This issue stays open for the remaining checks.

  6. d0ubl3g commented on Oct 15, 2026

    @d0ubl3g
    ContributorAuthor

    0.5.0 adds to the README the System Settings route for a blocked macOS binary (Privacy & Security → Open Anyway), that unpacking with tar in Terminal keeps the block, and that the dialog follows the system language; the xattr and Windows Unblock-File steps were already there. Still open: confirming both with a real browser download on macOS 15 and Windows 11.

  7. d0ubl3g commented on Oct 16, 2026

    @d0ubl3g
    ContributorAuthor

    Status 2026-10-16: the README on main now covers both platforms (README.md, sections on macOS Gatekeeper and Windows SmartScreen / Unblock-File). The remaining acceptance check is manual: download the 0.5.0 archive with a browser on macOS 15 and on Windows 11, follow the README steps, and record the result here.

  8. d0ubl3g commented on Oct 18, 2026

    @d0ubl3g
    ContributorAuthor

    Windows part of this check, on a clean Windows 11 machine, with the 0.5.0 release assets:

    Supported by the run:

    • The zip and the MSI match SHA256SUMS, and cosign verify-blob passes for both.
    • hodeishield.exe and the MSI have valid Authenticode signatures.
    • After Unblock-File on the zip or on the exe, the binary runs and prints hodeishield 0.5.0.

    Not covered yet:

    • A real browser download. The download mark in the test was added by hand, so it does not show what a browser-downloaded file does.
    • SmartScreen and the "More info → Run anyway" prompt. The runs had no interactive desktop, so a prompt, if any, could not be observed.

    The README now links the Install section to the unblock steps and gives the Windows steps for every version (#209). The issue stays open until a browser download is tested on Windows 11 and on macOS.

  9. d0ubl3g commented on Oct 19, 2026

    @d0ubl3g
    ContributorAuthor

    Browser download on Windows 11, version 0.5.0: Edge saved the zip with the download mark (Zone.Identifier ZoneId=3); unpacking it with File Explorer carried the mark over to hodeishield.exe; starting the executable from Explorer showed Microsoft Defender SmartScreen "Windows protected your PC" (unrecognized app) although the binary has a valid Authenticode signature. That matches the README: unblock the archive before unpacking, or choose "More info → Run anyway". The macOS part is still to be checked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    beta-blockerBlocks or embarrasses a beta tester on day one (Functional beta only)docsDocumentationneeds-manual-verificationNeeds a manual check on real hardware or a third-party accountux-designDesign or user experience

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions