洪 民憙 (Hong Minhee)'s avatar

洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · 887 following · 1093 followers

An intersectionalist, feminist, and socialist guy living in Seoul (UTC+09:00). @tokolovesme's spouse. Who's behind @fedify, @hollo, and @botkit. Write some free software in , , , & . They/them.

서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

民防衛(민방위) 敎育(교육) 받는 ()… 이것도 몇 () 안 남았다. 😩

Emelia 👸🏻's avatar
Emelia 👸🏻

@thisismissem@hachyderm.io

TIL: popes choose a new name once they are elected, so Robert Francis Prevost becomes Pope Leo XIV.

peremen's avatar
peremen

@peremen@silicon.moe · Reply to peremen's post

유심 식별번호:
- IMSI('임지'라고도 읽음): 이동통신망에서 가입자를 식별할 때 사용하는 번호. SIM에 기록되어 있다.
- ICCID: 신용카드의 카드번호와 동일한 규칙으로 부여되며, 물리적인 SIM 카드를 식별한다. 이동통신망 그 자체에서는 사용되지 않으며, 통신사 영업 전산에서 사용한다.
유심 인증키:
- K_i/OPc: 털리면 엿 되는 것.
- KIc/KID: 원격 접근에 사용하는 인증 키. KIc는 암호화, KID는 RC/CC/DS를 담당함.(GSMA FS.22 § 4 참조)
- KIK: 위 두 KIc, KID를 보호하기 위한 원격 프로비저닝 키.
유심 비밀번호:
- PIN1/PUK1: SIM 카드 탈취를 막기 위한 비밀번호. SIM에 최초 전원 인가 후 사용하기 전에 입력해야 함.
- PIN2/PUK2: SIM 카드의 특정 설정에 접근하기 위한 비밀번호. 통신사에 따라서 사용되지 않는 경우가 있음.
- ADM: SIM 카드의 파일을 조작하기 위한 비밀번호.

peremen's avatar
peremen

@peremen@silicon.moe

이제 국회 청문회나 공개되는 정보에서도 IMSI와 IMEI와 같은 약어가 나온다. 그러나 "유심 식별번호"나 "유심 인증키", "유심 비밀번호"가 구체적으로 뭔지는 아직도 언급되지 않고 있다. "유심 식별번호"에는 최소한 두 가지가 있고, "유심 인증키"라고 부를 수 있는 것만 최소한 5가지가 있으며, "유심 비밀번호"라고 부를 수 있는 것도 최소한 5가지가 있다. 그 중에서는 메모리 내에서도 가급적 암호화되어야 하는 것과, 디스크에서만 암호화할 수 밖에 없는 것도 섞여 있다. 대부분 여기에 사용되는 암호화 방식은 대칭 키 방식이기 때문에 평문 키에 접근해야 하며, 전가의 보도로 사용되는 "해시"도 사용할 수 없다.

구체적으로 무슨 정보가 유출되었는지가 알려지지 않는 이상, 쓸데없는 보안 관련 규제가 생길 가능성도 간과할 수 없다.

youtu.be/tKScucURjV0?t=10210

lamikennel's avatar
lamikennel

@lamikennel@toot.blue

昨日のラジオハングル講座

韓国語では「ある」「いる」が同じ있다。
日本語ではモノが「ある」、生き物が「いる」と使い分ける。

しかし日本語でも古典では「むかしをとこありけり」みたいに「あり」が使われていた。「いる」は「座る」の意味で、「居ても立ってもいられない」のように使う。
和歌山らへんでは今も「ある」を使う方言があるらしい。

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

The abbreviation itself is not very accessible.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub · Reply to 洪 民憙 (Hong Minhee)'s post

国産のコードでdenwaの様な識別子を目にした際、我々は「なぜphonetelではないのか」と問うのではなく、「なぜ電話には成らないのか」と問うべきだと考える。

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

국산 코드에서 gubun 같은 식별자를 볼 때, 우리는 그게 왜 type 내지는 discriminator가 아닌지 물을 것이 아니라, 어째서 구분이 될 수 없는지를 물어야 한다.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Shugo Maeda's post

@shugo Thanks for your answer! I hope RubyGems will have mechanism for binary packages soon. 😄

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

혹시 Rails 프로젝트 좀 경험해보신 분 계신가요? Mastodon 저장소에서 단위 테스트를 돌리고 싶은데 어떻게 돌리는지 잘 모르겠습니다. 일단 bundle install로 의존성은 다 설치해둔 상태입니다.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

By the way, is Ruby still not offering prebuilt binary distributions for C extension packages? 🤔

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

I'm setting up a local Mastodon development environment to find out the signature base of the test vector used in Mastodon's RFC 9421 implementation… 😩

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to David Roetzel's post

@dave @renchap One more question! Where did you source the test vectors for your RFC 9421 implementation? If you ran these test vectors directly, were you able to obtain the signature base used to generate each signature?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to David Roetzel's post

@dave @renchap Thanks!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to David Roetzel's post

@dave @renchap Okay, thanks for your answer! Then, does it default to rsa-v1_5-sha256 or rsa-v1_5-sha512?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to David Roetzel's post

@dave @renchap When implementing RFC 9421 signature verification, what algorithm do you default to when the alg parameter is not specified in the signature parameters?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

FedifyにRFC 9421を実装した後、昨晩からhttpsig.orgで生成(署名)したテストベクターとの照合を試みていたが、どう見てもテストに成功せず、一日を無駄にした末に、httpsig.orgで生成したテストベクターがhttpsig.orgでも検証に失敗するという事実を悟ってしまった。🫩

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Hmm, test vectors for rsa-v1_5-sha256 made with httpsig.org seem something wrong…?

Daniel Supernault's avatar
Daniel Supernault

@dansup@mastodon.social

Introducing fedidb.com 🥳

The same great FediDB, just on a easier to remember domain ✨

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Renaud Chaput's post

@renchap Do you have a working branch implementing RFC 9421 in Mastodon? I'm implementing it in Fedify, and would like to test against Mastodon's implementation of RFC 9421.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Joonkyu Park's post

@hollo 독음 자동으로 달리는 건, 네, 그렇습니다. Hollo 설정에 SEONBI_URL이라는 문서화되지 않은 저만 쓰는 환경 변수가 있습니다. 다음은 제 Docker Compose 설정입니다. (일부 가림.)

services:
  caddy:
    image: caddy:2-alpine
    volumes:
    - ./Caddyfile:/etc/caddy/Caddyfile
    depends_on:
    - hollo
    ports:
    - "8080:8080"

  hollo:
    image: ghcr.io/fedify-dev/hollo:0.6.0-dev.14
    environment:
      # … 생략 …
      SEONBI_URL: http://seonbi:3800/
    depends_on:
    - seonbi
    restart: unless-stopped
    extra_hosts:
    - "host.docker.internal:host-gateway"

  seonbi:
    image: ghcr.io/dahlia/seonbi/bin:0.5.0
    ports:
    - "3800:3800"
    command: ["seonbi-api", "--allow-origin=*"]
    restart: unless-stopped
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Emelia 👸🏻's post

@thisismissem Here it is! https://github.com/fedify-dev/fedify/tree/rfc9421

You can run the failing test by invoking:

deno task -f @fedify/fedify test --filter 'test vector' sig/http.test.ts
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm implementing HTTP Message Signatures (RFC 9421) in Fedify, and although the signature base matches and the private–public key pair is correct, the signature verification keeps failing. I've wasted hours on this issue and still have no idea what's wrong. 😩

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Joonkyu Park's post

@hollo 보통 네이버 사전에서 찾는데, 이제 보니 《표준국어대사전》에는 등재되어 있지 않고 《고려대 한국어대사전》에만 등재되어 있었네요…

쯔방 :yuri: :yurigarden: :garden:'s avatar
쯔방 :yuri: :yurigarden: :garden:

@pbzweihander@yuri.garden

음모를 꾸미는 논바이너리... 음모논... ​:ablobcatresonyance:

RE:
https://hollo.social/@hongminhee/0196a8fa-0113-7284-8830-af1f3e8268d1

땡스바 :hanwha_eagles:'s avatar
땡스바 :hanwha_eagles:

@thx@mustard.blog

음모론을 꾸미는 음모논 :blobcatevil:

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

아니… 《標準國語大辭典(표준국어대사전)》에 分明(분명)히 【陰謀論(음모논)】이 標題語(표제어)로 있는데 어째서 讀音(독음)이 〔음모논〕으로 달리는 거야… 😠

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

여태까지 地下鐵(지하철)에서 다음 ()이 어딘지 알 수 없을 때마다 머릿속에서 온갖 陰謀論(음모논)을 떠올렸었는데… 이제라도 다음 ()常時(상시) 表示(표시)된다니 多幸(다행)이네. (내가 주로 떠올렸던 陰謀論(음모논)廣告(광고)를 더 많이 보게 하려고 다음 ()을 가끔만 表示(표시)한다는 것이었다.)

https://news.jtbc.co.kr/article/NB12245370

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 쯔방 :yuri: :yurigarden: :garden:'s post

@pbzweihander 사실 한국어는 언어 순화의 효험을 많이 본 쪽에 속하기 때문에 (50년대 초반까지만 해도 일상어였던 상당수의 일본어 잔재들이 지금은 거의 다 사라졌다든가, 맞춤법 규정와 외래어 표기법을 여러 차례 바꿨는데도 언중이 결과적으로 따라와 줬다든가) 오히려 언어 규범에 대한 부정적인 정서가 형성되어 있는 것 같기도 합니다. 🤔

Older →