gematik / api-kim

API specification for gematik's KIM - a secure Email standard, which enables the exchange of information and payload in the German healthcare sector.
Other
33 stars 12 forks source link

[Kommentierung 1.5.3] A_23554 - Weiterleitung MAIL FROM - SIZE-Parameter #40

Open CLAM01 opened 1 year ago

CLAM01 commented 1 year ago

A_23554 - Weiterleitung MAIL FROM - SIZE-Parameter Das Clientmodul MUSS, wenn es vom Clientsystem ein MAIL FROM Kommando erhält, prüfen, ob durch das Clientsystem der Parameter size befüllt wurde. Ist dies der Fall, MUSS das Clientmodul erst nach Verarbeitung der Nachricht durch das Clientmodul und der Anpassung des Parameters size in MAIL FROM das Kommando an den Fachdienst weiterleiten.[<=]

Sollte noch ein wenig genauer definiert werden, damit es 100% keine Fehlinterpretationen geben kann. Anpassen des "size" Parameter auf welchen Wert?

stophane commented 1 year ago

Als möglicher Ansatz: siehe Auszug aus "altem" Ticket

gem-cp commented 1 year ago

OK. Die Afo wird angepasst (SIZE gemäß RFC1870). Die Beschreibung, auf welchen Wert der Parameter SIZE geändert wird, wird ergänzt (SIZE der KIM-Nachricht, die an den KIM-Mailserver gesendet wird).

Es fehlt eine Anforderung an den Mailserver SIZE zu prüfen. Mails größer 25MB müssen mit Code 552 abgelehnt werden, weil nicht Spec-konform (never trust a client, https://www.rfc-editor.org/rfc/rfc1870.html#section-6.2).

Siehe auch https://github.com/gematik/api-kim/issues/32

gem-cp commented 1 year ago

Ergänzung: Der Fachdienst muss neben der vom CM angegebenen SIZE auch die tatsächliche Größe der Mail auswerten (DATA) und ablehnen, falls größer 15MiB oder ungleich SIZE (https://www.rfc-editor.org/rfc/rfc1870.html#section-6)

stophane commented 1 year ago

Ergänzung: Der Fachdienst muss neben der vom CM angegebenen SIZE auch die tatsächliche Größe der Mail auswerten (DATA) und ablehnen, falls größer 15MiB oder ungleich SIZE (https://www.rfc-editor.org/rfc/rfc1870.html#section-6)

Hallo,

das sollte nicht gefordert werden. SIZE ist ein optionaler Parameter, der durch ein Clientmodul nur dann behandelt werden sollte, wenn dies vom Mailclient in SMTP MAIL FROM gesendet wurde. Bspw. wenn SIZE vorhande, dann nach KAS-processing anders -> dann anpassen. Auch kann es durch verschiedene Aspekte zu Abweichungen kommen.

Grundsätzlich prüfen die KIM-Fachdienst-Mailserver die erhaltene Datenmenge stets gegen einen Maximalwert (aktuell vermutlich ~ 35 MiB - Abwärtskompatiblität KIM 1.0) und lehnen bei Überschreitung ab. Weiterhin werden die eingelieferten Nachrichten unter anderen KIM spezifischen Konformitätsaspekten geprüft.

Ein Vergleich dieser Werte bringt m.E. keine Mehrwert - nur mehr Fehler-/Problempotenzial (ist kein security feature).

PS: Nachrichten die am Fachdienst eingeliefert werden können stets größer als 15 MiB sein - maßgeblicher Zuwachs durch base64 overhead.

gem-cp commented 1 year ago

OK. Auch der RFC spricht von einer Toleranz, wenn SIZE und tatsächliche Mail-Größe nicht übereinstimmen. Daher: korrekt, die Prüfung auf 35MB reicht und eine SIZE Prüfung ist nicht notwendig.