Internet-Draft | SIME | September 2025 |
Dutta | Expires 20 March 2026 | [Page] |
This document specifies the SIME protocol, a decentralized, atomic protocol for inter-domain mail transmission and entity-to-entity communication. It defines packet types, headers, MX/SRV-based trust verification, TCP-based delivery, and SIME Extensions for attachments. All servers act as Domain Authorities (DA), and inter-domain transactions are governed by atomic protocol rules.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 20 March 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
SIME (Srijal's Integrated Mail Extensions) is a decentralized protocol designed to provide reliable messaging between users in different Domain Authorities (DA). Each DA manages its own user authentication and registration rules. Atomic protocol enforcement ensures inter-domain transactions follow strict compatibility, reliability, and security rules.¶
All SIME traffic is conducted over TCP to ensure reliable delivery.¶
DA (Domain Authority) - Server managing a domain and its users¶
ID - Disposable session identifier (e.g., JWT)¶
Transaction ID - Identifier assigned per transaction session¶
TCP - Transmission Control Protocol (mandatory transport)¶
MAIL Packet - Packet containing mail messages¶
CONV Packet - Packet for general communication¶
MX/SRV Record - DNS record or SRV record pointing to server endpoint for inter-domain verification¶
- Users authenticate with their DA and receive disposable IDs.¶
- Communication is TCP-only to prevent packet loss.¶
- Two primary packet types: CONV and MAIL.¶
- Inter-domain transactions require MX/SRV verification to ensure messages reach the correct DA server.¶
- Atomic rules enforce uniformity; non-compliant servers are rejected.¶
CONV Packets:¶
Used for login and general communications:¶
LOGIN <username> <password> START TRANSACTION <ID> CONV <payload>
MAIL Packets:¶
Used for sending messages:¶
PREPARE HEADERS <transact_id> X-Mailed-Type-Render: <TXT|MD|HTML>; RECIPIENT: user@domain PREPARE MESSAGE <transact_id> <content> END TRANSACTION <transact_id>
- SENDER: Originating user (user@domain)¶
- RECIPIENT: Destination user (user@domain)¶
- X-Mailed-Type-Render: TXT | MD | HTML¶
- Optional headers may be added via SIME Extensions¶
Users initiate login via CONV packet:¶
LOGIN <username> <password>
Server responses:¶
SUCCESS LOGIN : <ID> ERROR AUTH
Disposable IDs are required for subsequent packets.¶
1. User logs in: CONV Packet → LOGIN → SUCCESS LOGIN : <ID>¶
2. User initiates transaction: CONV Packet → START TRANSACTION <ID>¶
3. Server validates ID:¶
- Success → returns transaction acknowledgment¶
- Failure → returns ERROR AUTH¶
4. User sends MAIL packet:¶
- PREPARE HEADERS <transact_id> ...¶
- PREPARE MESSAGE <transact_id> <content>¶
5. User ends transaction: END TRANSACTION <transact_id>¶
6. Server responds with SENT or appropriate error.¶
- No version negotiation; all inter-domain servers must implement the exact protocol.¶
- Non-compliant servers are rejected.¶
- Transactions must be atomic: either all steps succeed or fail.¶
- DA MX/SRV record must point to verified server endpoint.¶
- Messages are sent only to verified MX/SRV endpoints.¶
- Servers not listed or failing verification are rejected.¶
- ERROR AUTH : Invalid login/session¶
- ERROR TRANS : Transaction initiation failure¶
- ERROR HEADER : Invalid or missing headers¶
- ERROR MXVER : Inter-domain MX/SRV verification failure¶
- ERROR PACKET : Malformed packet¶
- ERROR SEND : Message could not be delivered¶
- All packets use TCP for reliable delivery.¶
- Authentication handled per DA; disposable IDs required.¶
- TLS is recommended for inter-domain traffic.¶
- Disposable IDs and transaction IDs mitigate replay attacks.¶
- Inter-domain trust relies on MX/SRV verification; unverified endpoints are rejected.¶
- Confidentiality and integrity of message content require TLS or optional message signing.¶
- Reviewers should note that deployment must account for standard-compliant DNS/SRV usage instead of arbitrary IP:PORT MX records.¶
- Each DA must publish a SIME MX or SRV record specifying its server endpoint.¶
- Inter-domain messages are routed only to verified endpoints.¶
- Unverified endpoints are rejected.¶
- ATTACHMENT: <filename>¶
- ENCODING: base64 | hex¶
- Optional metadata headers supported¶
- Attached in content as: <UNICODE UTF-8: 0xEF 0xBF 0xBF><hex|base64> <encoded attachment><UNICODE UTF-8: 0xEF 0xBF 0xBF>¶
CONV-PACKET = LOGIN-PACKET / TRANSACTION-PACKET / GENERAL-CONV LOGIN-PACKET = "LOGIN" SP USERNAME SP PASSWORD CRLF TRANSACTION-PACKET = "START TRANSACTION" SP ID CRLF / CONV SP PAYLOAD CRLF MAIL-PACKET = "PREPARE HEADERS" SP TRANSACTION-ID SP HEADER-FIELDS CRLF "PREPARE MESSAGE" SP TRANSACTION-ID SP CONTENT CRLF "END TRANSACTION" SP TRANSACTION-ID CRLF USERNAME = 1*(ALPHA / DIGIT / "-" / "_") PASSWORD = 1*(ALPHA / DIGIT / SYMBOL) TRANSACTION-ID = 1*DIGIT HEADER-FIELDS = *(HEADER-NAME ":" SP HEADER-VALUE CRLF) CONTENT = *(OCTET)
User DA-A DA-B | LOGIN | | |------------------>| SUCCESS LOGIN | | START TRANSACTION | | |------------------>| TRANS_ID: 67890 | | PREPARE HEADERS | | |------------------>| PROCEED | | PREPARE MESSAGE | | |------------------>| PROCEED | | END TRANSACTION | | |------------------>| SENT |
Srijal Dutta¶
Email: srijaldutta.official+sime@gmail.com¶