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 #32

Open dhufnagel opened 1 year ago

dhufnagel commented 1 year ago

Die AFO sollte ausführlicher beschreiben, was genau gemeint ist. Welchen Parameter "size" gibt es bei einem SMTP "MAIL FROM" Command? In der RFC zu SMTP kann ich nichts über einen size-Parameter finden.

stophane commented 1 year ago

@dhufnagel

Nachfolgend kurz das inzwischen gealterte Jira-Ticket (ANFKIM-275 vom 22.07.2022), was vermutlich zu dieser Afo. geführt hat:


Beschreibung
Scope:

KIM 1.5

gemSpec_CM_KOMLE_1.13.0

KOM-LE-A_2018 - Weiterleitung von SMTP-Meldungen und Antwortcodes

Kapitel: 3.3.3 PROXY-Zustand

Erläuterung:

Im Kontext der Forderung zur Unterstützung von ESMTP (RFC 1870) sowie der Anforderung KOM-LE-A_2018, muss das KIM Clientmodul sämtliche SMTP-Kommandos bis zu RCPT TO direkt an den KIM Fachdienst weiterleiten.

Folglich wird das vor RCPT TO übermittelte SMTP Kommando MAIL FROM direkt an den Fachdienst übermittelt.

Gemäß der Festlegung zu ESMTP kann MAIL FROM durch einen Mail-Client um den Parameter SIZE angereichert werden, womit der Mail-Server über die Nachrichtengröße informiert werden soll (https://datatracker.ietf.org/doc/html/rfc1870#section-6).

Beispiel Kommando von Mail-Client (50 MB Mail): 

MAIL FROM:<stst.test15@akquinet15.kim.telematik-test> SIZE=52428802 

Problem:

In KIM 1.5 kann ein Mail-Client Nachrichten größer 25 MB an das Clientmodul übermitteln. Gemäß KOM-LE-A_2018 würde das Clientmodul MAIL FROM mit der SIZE-Angabe vom Mail-Client direkt an den Fachdienst weiterleiten.

Ein Mail-Server der ESMTP unterstützt prüft in aller Regel den Wert von SIZE und lehnt dies im Kontext KIM als Fehler ab.

Denn auch in KIM 1.5 erwartet der Mail-Server maximale Mail-Größen von ~35 MB (weil + base64), da die Mail durch die KAS-Verarbeitung verkleinert wurde und den originalen Größenwert von 25 MB, aufgrund Konnektor-Verarbeitung, nicht überschreiten darf. Dies dient auch dem Last-Schutz der Mail-Server.

Beispiel Antwort Mail-Server:

"552 5.3.4 Message size exceeds fixed maximum message size"

Lösungsszenarien:

(1) Analog dem Umgang mit RCPT TO in KIM 1.5 (siehe https://service.gematik.de/servicedesk/customer/kb/view/459884683?pageNumber=1&resultNumber=1&q=RCPT%2520TO&q_time=1658511172424), sollte MAIL FROM erst nach der Nachrichtenverarbeitung an den Mail-Server weitergeleitet werden. Sofern der SIZE-Parameter in MAIL-FROM vorhanden ist, muss dieser auf den Wert der Nachrichtengröße der verarbeiteten Nachricht angepasst werden.
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/40