Internet infrastructure - Prof. dr. ir. André Mariën

Page created by Calvin Francis
 
CONTINUE READING
Internet infrastructure

                Prof. dr. ir. André Mariën

2020 - 2021               (c) A. Mariën      1
Electronic mail

2020 - 2021        (c) A. Mariën   2
SMTP
•    Simple Mail Transfer Protocol
•    RFC 2821
•    Successor of RFC 821 (and others)
•    Objective:
     transfer mail reliably and efficiently

2020 - 2021               (c) A. Mariën       3
Basic structure

              SMTP        SMTP SMTP
  User
              Client      Server Client

                          SMTP SMTP           SMTP
                                                       User
                          Client Server       Client

                              (c) A. Mariën

2020 - 2021                                                   4
Basic operation
• Determine postbox domain
      – Postbox: postbox@domain
• Look up SMTP server
      – DNS MX records (nslookup):
              • Querytype=mx
              • Search ‘domain’
• Set up TCP connection to server, port 25
• Transfer mail using SMTP protocol

2020 - 2021                       (c) A. Mariën   5
Look up SMTP server
• DNS contains Mail eXchange resource records
  (MX RR records)
• MX records contain server and priority
      – example:
        smallcom.com MX mail.smallcom.com 10
        smallcom.com MX mail.hoster.com 20
      – “if possible, deliver to me (mail.smallcom.com), otherwise
        my hosting company (mail.hoster.com)”

2020 - 2021                    (c) A. Mariën                         6
Set up connection to server
• SMTP: typically on top of TCP/IP
• IANA assigned number SMTP port: 25
      – To test:
              • telnet host 25

• Note
      – Typical end-node configuration: via a dedicated SMTP
        gateway
      – Configured in email client
      – No DNS lookup, no direct connection
2020 - 2021                      (c) A. Mariën                 7
Transfer mail using SMTP
      HELO marien.com
      MAIL FROM:andre@marien.com
      RCPT TO:an@an.com
      RCPT TO:bob@bob.com
            …
      DATA
      ILOVEYOU
      .
      QUIT

2020 - 2021               (c) A. Mariën   8
Mail object structure
• Mail envelop
      – MAIL FROM
      – RCPT TO
      – DATA
• Mail content
      – most often: RFC 822 (see next topic)
              • header
              • body

2020 - 2021                (c) A. Mariën       9
SMTP reply
•    numeric completion code
•    1yz: positive preliminary
•    2yz: positive completion
•    3yz: positive intermediate
•    4yz: transient negative completion
•    5yz: permanent negative completion

2020 - 2021            (c) A. Mariën      10
Additional commands
VERIFY                               EXPAND
• Verify: checking of                • Expand : support for
  mailbox existence                    mailing lists
• OK: 250 response                   • OK: (250- [name]
                                       )* 250 [name]
• If ambiguous: (553-                  
  [name] )* 553             • 500 / 502 : NOK
  [name]                    • Often desactivated for
• 500 / 502 : NOK                      security reasons
• Often this functionality is        • Alternatives
  desactivated for security                 – User agent definitions
  reasons (account                          – Server side group
                                              expansion
  enumeration)

2020 - 2021                 (c) A. Mariën                              11
“Postmaster” address
• Mandatory: ‘postmaster’ must exist
• Used for:
      – error reporting
      – abuse reporting (SPAM)
• Exception: mail can be send without domain,
  implies domain of SMTP server

2020 - 2021               (c) A. Mariën         12
RFC822 structure
                                    • Header format:  “:” 
 From: x@y.com                      • Field names:
 To: i@j.org     HEADER                 – "Return-Path",
 Cc: u@v.net                              "Received", "Date",
     CR - LF                              "From", "Subject",
                                          "Sender", "To", “Cc”,
  Hello,                                  “Bcc”
  RTFM           BODY                   – "Message-ID”,
  Goodbye                                 "References”,
                                          "Keywords”, "Subject”

2020 - 2021             (c) A. Mariën                             13
SMTP envelop – RFC822 headers

   SMTP envelope:
        RCPT TO: d@x.com                         Conflicting data!
        MAIL FROM: f@y.comp
                                                 So what?
      RFC822 message
       From: u@i.com                             How about Bcc: ?
       To: d@x.com
       Subject: all is discovered!

       Run while you can...

2020 - 2021                      (c) A. Mariën                       14
MIME

              Multipurpose Internet Mail
                     Extensions

2020 - 2021             (c) A. Mariën      15
New Headers
• MIME-Version: 1.0            Content type:
                               • /
• Content-type                   *(;=)
                                      – type := discrete-type /
• Content-Transfer-                     composite-type
                                      – discrete-type := "text" /
  Encoding                              "image" / "audio" / "video" /
                                        "application"
                                      – composite-type := "message" /
                                        "multipart"
                               • The subtype specification is
                                 MANDATORY
                               • The type, subtype, and
                                 parameter names are not case
                                 sensitive

2020 - 2021           (c) A. Mariën                                 16
Encoding
• "Content-Transfer-                       • standard encoding
  Encoding" Header Field                     mechanisms: 7bit, 8bit,
• RFC 821 (SMTP) restricts                   binary, quoted-printable,
  mail messages                              base64
      – to 7bit US-ASCII data
      – lines
"Quoted-Printable”
• What:                                               • Rules
      – Content-Transfer-Encoding:                            – White Space:
        quoted-printable                                           • c == 9 => US-ASCII TAB, c == 32 US-
                                                                     ASCII SPACE
• When:                                                       – Line Breaks:
      – data that largely consists of                              • a CRLF sequence in the text=> (RFC
                                                                     822) line break: CRLF
        printable characters (also) in                             • Sequences like "=0D", "=0A",
        US-ASCII set                                                 "=0A=0D" and "=0D=0A" may appear
• How: Quoted-printable: rules                                       in data

      – General 8bit representation:                  •      Soft line breaks
                                                              – lines  "=" + 2 two digit
                hexadecimal representation                    – longer lines: use "soft" line breaks:
                                                                "=" as last character on line
              • example: US-ASCII "=", dec 61 =>              – example:
                "=3D"                                              Listen carefully, I will only say this once.
      – Literal representation:                                    Listen carefully, =
              • 33
Base64: encoding process
• 3 byte input => 4 encoded characters (bytes)
     • Encoded is about 33 percent larger than un-encoded
• How:
      – 3 8bit inputs => 24 bits => 4 * 6bit groups
      – each: single digit in the base64 alphabet
      – A 65-character subset of US-ASCII is used: 64 + special ("=")
              •   0-25 => A-Z
              •   26-51 => a-z
              •   52-61 => 0-9
              •   62 => +
              •   63 => /
      – "=", is used to signify a special processing function
• represented identically in all versions of ISO 646, including US-ASCII
  & EBCDIC.

2020 - 2021                          (c) A. Mariën                      19
Encoding/decoding

                 bbbbbbbb    bbbbbbbb              bbbbbbbb

                 bbbbbb   bbbbbb     bbbbbb bbbbbb

              F(bbbbbb) F(bbbbbb) F(bbbbbb) F(bbbbbb)

2020 - 2021                        (c) A. Mariën              20
Encoding/decoding: end

                 bbbbbbbb    bbbbbbbb               ---

              F(bbbbbb) F(bbbbbb) F(bbbb00)               “=“

                 bbbbbbbb       ---                 ---

              F(bbbbbb) F(bb0000)          “=“            “=“

2020 - 2021                         (c) A. Mariën               21
MIME: Media types
Basic:                             • Multipart:
• application: octet-stream,              – multiple entities of
                                            independent data types.
  postscript, pdf                  • Multipart subtypes:
• audio: basic, mpeg                      – "mixed": a generic mixed
• image: jpeg, gif                          set
                                          – "alternative": same data in
• message: rfc822, news                     multiple formats
• model: vrml                             – "parallel": to be viewed
                                            simultaneously
• multipart: form-data,                   – "digest": default type of
  signed, mixed, alternative                each part is
                                            "message/rfc822".
• text: plain, html, xml
• video: mpeg, quicktime

2020 - 2021               (c) A. Mariën                               22
Multipart body
must contain (MIME-typed) body parts:
      –       each one preceded by a boundary line
      –       followed by a closing boundary line
      –       Content-Type: multipart/xxx; boundary=""
      –       The boundary delimiter line:
      –       CRLF--
      –       Final boundary delimiter line:
      –       CRLF----

2020 - 2021                        (c) A. Mariën                     23
Preamble and epilogue
• Problem in multipart           Content-type:
                                   multipart/mixed;
  specification: two               boundary="simple"
  unused areas
                                 This is the preamble.
• In general: not used: no       --simple
  proper semantics               Content-type: text/plain;
• many implementations               charset=us-ascii
  insert an explanatory          message
  note for recipients who
  read the message with          --simple--
  MIME-challenged                This is the epilogue. It is also
  software                           to be ignored.

2020 - 2021             (c) A. Mariën                               24
MIME typing
• Content handled by application
• File recognition
      – Magic numbers
      – File extension
      – Fingerprinting content
• Configuration
      – Application – MIME type – file extension(s)

2020 - 2021                (c) A. Mariën              25
References
• RFC 2045: headers used to describe the structure of
  MIME messages
• RFC 2046: general structure of the MIME media
  typing system and defines an initial set of media
  types
• RFC 2047: to allow non-US-ASCII text data in header
  fields.
• RFC 2049: conformance criteria & examples,
  acknowledgements, bibliography.

2020 - 2021             (c) A. Mariën                   26
S/MIME
• RFC 2311, 2633: S/MIME                      S/MIME: not restricted to
  Version 2&3 Message                         mail
  Specification
• S/MIME provides the                         • can be used with any
  following cryptographic                       transport mechanism
  security services:                            that transports MIME
      – authentication                          data
      – message integrity
      – non-repudiation of origin
                                              • can be used in systems
        (using digital signatures)              that use cryptographic
      – privacy                                 security services that do
      – data security (using                    not require (or support)
        encryption).
                                                any human intervention
2020 - 2021                          (c) A. Mariën                      27
PKCS standards
• "PKCS #1: RSA Encryption"
• "PKCS #7: Cryptographic Message Syntax"
• "PKCS #10: Certification Request Syntax"

2020 - 2021          (c) A. Mariën           28
Message structure: signed
• Single PKCS#7 signedData format
      – MIME type:
              • application/pkcs7-mime;smime-type=signed-data
• Composite message
      – MIME type: multipart/signed
      – Part1: text/plain, application/msword, ...
      – Part2: application/pkcs7-signature

2020 - 2021                      (c) A. Mariën                  29
PKCS #7 content types:
• “data”
      – The data to be secured
• “signedData”
      – to apply a digital signature to a message
      – to convey certificates
• “envelopedData”
      – To provide confidentiality
      – Does not provide authentication

2020 - 2021                 (c) A. Mariën           30
application/pkcs7-mime
• MIME type used to carry PKCS #7 objects:
  envelopedData, signedData
• general characteristics
      – always carries a single PKCS #7 object.
      – must always be BER encoding of the ASN.1 syntax
        describing the object

2020 - 2021               (c) A. Mariën                   31
S/Mime type
• The application/pkcs7-mime content type defines
  the optional "smime-type" parameter.
• The intent of this parameter: to convey details about
  the security applied (signed or enveloped) along with
  information about the contained content.
• S/MIME-types:
      – enveloped-data: EnvelopedData
      – signed-data: SignedData
      – certs-only: SignedData

2020 - 2021                  (c) A. Mariën            32
Format for Signed-only Messages
• Choice:
      – multipart/signed format can always be viewed by
        the receiver whether they have S/MIME software
        or not
      – signedData format: cannot be viewed by a
        recipient unless they have S/MIME facilities

2020 - 2021               (c) A. Mariën                   33
PKCS#7: SignedData
• ASN.1 structure for the SignedData content
  type
      – version
      – digestAlgorithms
      – contentInfo (or empty)
      – certificates (OPTIONAL)
      – crls (OPTIONAL)
      – signerInfos (SET OF): multiple signers

2020 - 2021                 (c) A. Mariën        34
Example message
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1;
    boundary=boundary42

--boundary42
Content-Type: text/plain

This is a clear-signed message.

--boundary42
Content-Type: application/pkcs7-signature; name=smime.p7s
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7s

ghyHhHUujhJhjH77n8HHGTrfvbnj756tbB9HG4VQpfyF467GhIGfHfYT6
4VQpfyF467GhIGfHfYT6jH77n8HHGghyHhHUujhJh756tbB9HGTrfvbnj
n8HHGTrfvhJhjH776tbB9HG4VQbnj7567GhIGfHfYT6ghyHhHUujpfyF4
7GhIGfHfYT64VQbnj756

--boundary42--

2020 - 2021                               (c) A. Mariën                                35
References
• RFC 1321: The MD5 Message Digest Algorithm"
• RFC 2045: MIME Part 1: Format of Internet Message
  Bodies
• RFC 2046: MIME Part 2: Media Types
• RFC 1847: Security Multiparts for MIME:
  Multipart/Signed and Multipart/Encrypted
• RFC 2313: PKCS #1: RSA Encryption Version 1.5

2020 - 2021            (c) A. Mariën                  36
References
• RFC 2315: PKCS #7: Cryptographic Message
  Syntax Version 1.5
• RFC 2314: PKCS #10: Certification Request
  Syntax Version 1.5

2020 - 2021         (c) A. Mariën             37
POP3

2020 - 2021   (c) A. Mariën   38
POP3
• Post Office Protocol version 3
• Protocol for maildrop (pick-up) service
• Simple protocol
      – advanced requirements: use IMAP
      – delivery: use SMTP
• RFC 1939, STD 53

2020 - 2021              (c) A. Mariën      39
POP3 set-up

              POP3
              client

              POP3        POP3                SMTP SMTP
              client      server              server

              POP3
              client
                       POP3

2020 - 2021                   (c) A. Mariën               40
POP3 connection
• TCP/IP connection                         Example:
• Server assigned port number: 110          • telnet pop.somewhere.else 110
• Reply: two options                               –   USER andre
      – +OK                                        –   PASS andre
      – -ERR                                       –   LIST
• Multi-line response:                             –   RETR 1
      – . terminated                   –   DELE 1
                                                   –   QUIT

2020 - 2021                        (c) A. Mariën                              41
POP3 Commands
• Always:                              • Authorization
      – QUIT                                  – APOP name digest
• Authorization state:                 • Transaction
      – USER name / PASS string
                                              – TOP msg n
• Transaction state                           – UIDL [msg]
      – STAT / LIST [msg] / RETR
        msg / DELE msg / NOOP
        / RSET
        where msg is the
        message ordinal number

2020 - 2021                   (c) A. Mariën                        42
POP3 commands
STAT                                           • RETR 
                                               • Response:
• Reply:                                              – +OK
      – +OK number of messages,                       – Message
                                                      – .
        total number of bytes
                                               •      DELE 
LIST                                           •      Response
                                                      – +OK
• LIST [message ordinal                        •      Note
   number]                                            – Message is only marked for
                                                        deletion
• Response:                                           – Subsequent LIST or RETR
                                                        commands fail
      –       +OK                                     – Actual removal: after QUIT
                                                        command ONLY
      –                      – RSET: clears all deletion markings
      –       ...
      –       .
2020 - 2021                           (c) A. Mariën                                          43
POP commands
• TOP  
• Response
      –       +OK
      –       Header
      –       First  lines of the message
      –       .
• UIDL []
• Response
      –       +OK
      –       1 jdkodoiezjfrj
      –       2 uikjendsiojdj
      –       3 jdsoioizehjkl
      –       .

2020 - 2021                               (c) A. Mariën   44
POP cmd APOP
• APOP 
• Response: +OK or –ERR
• The greeting banner must contain the
  challenge
• The client computes md5(challenge+secret)
• Challenge has msg-id format
      – +OK POP3 server ready 

2020 - 2021              (c) A. Mariën        45
Mail client
• Multi-protocol client
      – SMTP: sending mail
      – POP3: receiving mail
• But possibly also
      – DNS
              • Mail relay name to IP
              • SMTP with target servers
      – LDAP: user and group look-up

2020 - 2021                        (c) A. Mariën   46
Free software
• UNIX systems:
      – Qpopper: http://qpopper.sourceforge.net/
• All
      – Xmail: http://xmailserver.org/
              • Smtp server
              • Pop3 server

2020 - 2021                   (c) A. Mariën        47
Mail message formats
• RFC (2)822
• MIME
• S/MIME

2020 - 2021           (c) A. Mariën   48
IMAP4

2020 - 2021    (c) A. Mariën   49
IMAP4
• Internet Message Access Protocol version 4
• Extensive, comprehensive protocol for post
  office access
• Richer but more complicated than POP
• RFC 2060

2020 - 2021          (c) A. Mariën             50
Connection oriented
•    TCP/IP connection
•    server port number: 143
•    reply: OK or NO or BAD or BYE
•    Reply:
      – tagged (tag of request)
      – untagged
• request/reply, but also unsolicited
• Asynchronous operation possible

2020 - 2021                       (c) A. Mariën   51
Tags in the reply
Request ID:                                 Tag usage:
• In response to a request, the             > Request007 “command”
   request ID is repeated in the reply
“*”:                                        < * ...
• untagged server message                   < * ...
• Not a reply; for instance quota           < Request007 OK “command
   notifications                            completed”
“+”:
• continuation required (for
   instance: authentication)

2020 - 2021                        (c) A. Mariën                       52
Message attributes
• Numbers
      – Unique ID
      – Sequential ID
•    Flags
•    IMAP server reception timestamp
•    RFC822 size
•    RFC822 Envelope structure
•    Body structure (MIME)

2020 - 2021              (c) A. Mariën   53
Message flags: system
•    \seen: Message has been “read”
•    \answered: Message has been answered
•    \flagged: Message is flagged
•    \deleted: Message is marked ‘to-be-deleted’
•    \draft: message partially composed
•    \recent: new message notification flag

2020 - 2021             (c) A. Mariën              54
State diagram (from RFC 2060)

              Initial connection and server greeting
              1
        Non-authenticated       2
                      4
                     Authenticated                     3
              7                                  6
                                5
                      7             Selected
                                         7
                  Logout and close connection
2020 - 2021                      (c) A. Mariën             55
Commands
Any state:                                 non-authenticated state
• CAPABILITY: which                        • AUTHENTICATE
  authentication                             “authentication
  mechanisms?                                mechanism”
• NOOP:
                                           • LOGIN “user name”
      – polling command to
        trigger unsolicited (!)              “password”
        status info
      – Session keep-alive
        (against time-out)
• LOGOUT: end session
2020 - 2021                       (c) A. Mariën                      56
Example from RFC222:
                 AUTHENTICATE
•    S: * OK IMAP4 Server
•    C: A001 AUTHENTICATE SKEY
•    S: +
•    C: bW9yZ2Fu
•    S: + OTUgUWE1ODMwOA==
•    C: Rk9VUiBNQU5OIFNPT04[...]TUFTSA==
•    S: A001 OK S/Key authentication successful

2020 - 2021                (c) A. Mariën          57
Commands: authenticated:
Managing mailboxes               Browsing
• CREATE “mailbox name”          • LIST “reference name”
• DELETE “mailbox                  “wildcard mailbox
  name”                            name”
• RENAME “existing                      – Browsing + metainfo
                                          (hierarchy separator)
  mailbox name” “new
  mailbox name”                  • STATUS “mailbox name”
                                   ( “status data item
                                   names” )
                                        – Number of messages

2020 - 2021             (c) A. Mariën                             58
Commands: authenticated:
               selecting current mailbox
• SELECT “mailbox name”:
      – open read/write
      – Responses: untagged
              •   * FLAGS (...)
              •   *  EXISTS
              •   *  RECENT
              •   * OK [UNSEEN 134]
• EXAMINE “mailbox name”:
      – open read-only, rest: see SELECT

2020 - 2021                           (c) A. Mariën   59
Commands: selected state
• CLOSE
      – Remove (silently) all messages marked for
        deletion
• EXPUNGE
      – Remove (silently) all messages marked for
        deletion; unmarked responses:
              • *  EXPUNGE
              • ...

2020 - 2021                     (c) A. Mariën       60
FETCH command
• Fetch                              Data item names:
                                 • BODY [][]
                                                         – : RFC822
• Message set                                              decomposition
                                                         – :
      – Items:                                             “”
              •                                          • Example, first 100 bytes:
                                                               
              •   “*” (highest number)            Sections:
              •   :                   • BODY[HEADER]
              •   ,                      • BODY[TEXT]
      – Examples:                                 • BODY[HEADER.FIELDS (field-
              • 7                                    name field-name)]
              • 5:100                             • BODY[HEADER.FIELDS (DATE
              • 7,5:100,120,130:*                    FROM)]

2020 - 2021                              (c) A. Mariën                                     61
FETCH command: RFC822
                  decomposition
• Top-level: HEADER & TEXT
• MIME: multipart/*
      – 1.HEADER & 1.TEXT & 1.MIME
      – 2.HEADER & 2.TEXT & 2.MIME
      – ...

2020 - 2021              (c) A. Mariën   62
FETCH command example
• X007 FETCH 2:8 (FLAGS BODY[HEADER.FIELDS
  (DATE FROM)] BODY[TEXT])
• * 2 FETCH ...
• ...
• * 8 FETCH ...
• X007 OK Fetch completed

2020 - 2021            (c) A. Mariën         63
SEARCH command
• Conditions: examples:
      – ; ALL;
      – To ; BCC ; Cc 
      – BODY ; SUBJECT 
      – Before ; sentbefore ; sentsince ;
        senton 
      – Answered; Deleted; ...
      – Unanswered; Undeleted; ...
      – Smaller 

2020 - 2021                   (c) A. Mariën                   64
Search reply
• X007 search From student unanswered
• * search 5 8 12 45 77 123 453
• X007 OK search completed

2020 - 2021        (c) A. Mariën        65
IMAP URLs
• URL type: IMAP
• imap://imaphost?imap command

2020 - 2021       (c) A. Mariën   66
Mail infrastructure
• Mailbox servers
      – POP/IMAP connectivity
• SMTP gateways
      – Send/receive
• SPAM gateways
      – Filtering (ex: messagelabs)
• Anti Virus solutions
      – Server solutions
• Webmail
      – Web - email gateway
• Mobile mail
      – Blackberry, ActiveSync
• Exchange & OWA

2020 - 2021                           (c) A. Mariën   67
Security
•    No open relay
•    No email spoofing
•    Relay only for other Mail Relays
•    Refuse SMTP connections from any unknown client
•    Use *s variant of the protocols: smtps, imaps, …
•    Ensure proper authentication of senders
•    Distinguish internal/external senders
•    Use s/mime
•    In- & outgoing traffic filtering
•    Use host hardening, firewall
•    Use malware detection

2020 - 2021                 (c) A. Mariën               68
Professional Service
• Server doesn’t look like a spam exploder
      – Configure reverse DNS properly
      – Handle abuse reports promptly and properly
      – Look “legitimate”
• Concern: availability
      – Volume: spam, attachments
      – Disk space!
      – A policy for
              • removing unread mail from mailboxes after some time
              • refusing more mail to mailboxes which are already too full

2020 - 2021                          (c) A. Mariën                           69
SPAM
• Netiquette                                • Refuse some hosts:
      – ?                                          – When reverse DNS not
• Appropriate use policy                             OK
      – Required to have clear                     – Blacklists
        rules
                                                      • blackholes.mail-abuse.org
• correct reactions                                   • dialups.mail-abuse.org
      – ignore                                        • relays.mail-abuse.org
      – reply to postmaster only
• Examine message bodies
      – Products exist
      – More expensive

2020 - 2021                        (c) A. Mariën                               70
Blacklist
RSS – RBL                                DNS-based
• Relay Spam Stopper                     • queryable DNS-based
  (RSS)                                    database
      – http://work-rss.mail-            • Lookup host:
        abuse.org/rss/                          – $4.$3.$2.$1.blackholes.
• Realtime Blackhole List                         mail-abuse.org.
  (RBL)                                  • With $1.$2.$3.$4 the IP
      – http://www.mail-                   address of the possible
        abuse.org/rbl/                     offender

2020 - 2021                     (c) A. Mariën                               71
Build-in anti-spam
• White listing / blacklisting
      – http://mail-abuse.org/ (paying)
      – http://www.spamcop.net/bl.shtml
      – http://www.spamhaus.org/SBL/
• RFC 2822 adherence
• Remove some SMTP commands
• Reverse DNS checks

2020 - 2021              (c) A. Mariën    72
Electronic mail

                 Alternatives

2020 - 2021         (c) A. Mariën   73
Electronic mail
• Asynchronous communication via a message
  oriented system
      – Message: any data
      – Asynchronous:
              • Sending a message without waiting for confirmation
              • No handshake
              • Note: individual communication may be synchronous,
                or do a handshake (or even authentication)

2020 - 2021                       (c) A. Mariën                      74
Context
• Communication mode
      – Talk, chat: interactive
      – SMS, e-mail: asynchronous
• Other systems
      – May be able to work with internet standards
      – Work with proprietary mechanisms
      – Major “other” systems
              •   Webmail
              •   Lotus Notes
              •   Microsoft exchange
              •   X.400

2020 - 2021                            (c) A. Mariën   75
X.400 MAIL

2020 - 2021     (c) A. Mariën   76
Genesis of X.400
• Quest: acceptable global mail standard by CCITT and
  ISO to solve incompatibility problems
• Result: X.400 Series Recommendations
      – a superset of the existing systems
      – Idea behind this: easier integration later on
• October 1984, CCITT X.400 series recommendations:
  X.400(84)
• This was the first CCITT recommendation for a
  network application.

2020 - 2021                     (c) A. Mariën           77
X.400
• Some features of X.400
      – The store-and-forward mechanism
      – The hierarchical address space
      – The possibility of combining different types of body
        parts into one message body.
• X.400 adapted best in Europe
      – There was not much equipment in place yet
      – Use X.400 as much as possible right from the
        beginning.
      – But: the expected success of X.400: disappointing

2020 - 2021                  (c) A. Mariën                     78
Components
• Components:
      – User Agent (UA)
      – Message Transfer System (MTS)
      – Message Transfer Agent (MTA)
• UA:
      – “A process that makes the services of the MTS available to the user”
      – A program that provides utilities to create, send, receive and perhaps
        archive messages.
• MTS:
      – Transfers messages from an originating UA to a recipient UA.
• MTA:
      – Data that is sent from UA to UA may be stored temporarily in several
        intermediate MTAs
      – A store-and- forward mechanism: MTA forwards received messages to
        a next MTA or to the recipient UA.

2020 - 2021                         (c) A. Mariën                                79
Mapping service elements
    Internet      X.400

    Reply-To      IPMS.Heading.reply-recipients

    Subject       IPMS.Heading.subject

    In-Reply-To   IPMS.Heading.replied-to-ipm

    To            IPMS.Heading.primary-recipients

    Cc            IPMS.Heading.copy-recipients

2020 - 2021                         (c) A. Mariën   80
Mapping rules
RFC 822 -> X.400:                     X.400 -> RFC 822
• If Sender: is present               • If
      – Sender: is mapped to             IPMS.Heading.authorizing
        IPMS.Heading.originator          -users is present
      – From: is mapped to                   – IPMS.Heading.originator is
                                               mapped to Sender:
        IPMS.Heading.authorizin
        g-users                              – IPMS.Heading.authorizing-
                                               users is mapped to From:
• If not
                                      • If not
      – From: is mapped to
                                             – IPMS.Heading.originator is
        IPMS.Heading.originator                mapped to From:

2020 - 2021                  (c) A. Mariën                              81
Human readable notations:
•    C=zz
•    ADMD=ade
•    PRMD=fhbo
•    O=a bank
•    S=plork
•    G=mary

2020 - 2021             (c) A. Mariën     82
X.400 addresses
• X.400 address: a set of attributes
• attributes: mandatory or optional
• attribute: type and a value
      – example: Surname has type IA5text
• Standard Attributes
      – attributes that all X.400 installations are supposed to
        'understand'
      – example: 'country name', 'given name' or 'organizational
        unit'

2020 - 2021                    (c) A. Mariën                       83
Most important attributes
                     (see LDAP!)
•    surName (S)
•    givenName (G)
•    initials (I*) (Zero or more)
•    generationQualifier (GQ)
•    OrganizationalUnits (OU1 OU2 OU3 OU4)
•    OrganizationName (O)
•    PrivateDomainName (PRMD)
•    AdministrationDomainName (ADMD)
•    CountryName (C)
•    Common Name (CN)
•    Combination of S, G, I* and GQ : the PersonalName (PN).

2020 - 2021                   (c) A. Mariën                    84
X.400 address notation styles
• JTC:
      – G=jo; S=plork; O=a bank; OU1=owe; OU2=you; P=fhbo; A=ade;
        C=zz- DFN-EAN software:
      – G=jo; S=plork; OU=you; OU=owe; O=a bank; PRMD=fhbo;
        ADMD=ade; C=zz
• RARE Working Group on Mail and Messaging:
      – C=zz; ADMD=ade; PRMD=fhbo; O=a bank; OU=owe; OU=you;
        S=plork; G=jo
• RFC 1327:
      – /G=jo/S=plork/OU=you/OU=owe/O=a
        bank/P=fhbo/A=ade/C=zz/
      – OU$you.OU$owe.O$a bank.P$fhbo.A$ade.C$zz

2020 - 2021                    (c) A. Mariën                        85
LOTUS NOTES E-MAIL

2020 - 2021     (c) A. Mariën   86
Lotus Notes: basis
• Notes stores information in databases
      – Files with extension .nsf
• Each database contains information about a
  particular subject
• Examples:
      – Company Policies
      – Product Information

2020 - 2021                 (c) A. Mariën      87
Database organization
• many documents: search problem
• A view is a way for Notes to display
  documents in a database.
• A view often shows documents
      – in a particular order
      – only a portion of the documents

2020 - 2021                (c) A. Mariën   88
Designing a database
• A database can contains many documents.
      – Example:Company Policies database
              • a topic about parking
              • one about sick days
• Decide on the type of information the database will contain.
• Databases can contain reports for to complete
• Examples:
      – attendance reports
      – expense reports
• Document creation
      – How: filling in a form of the database
      – forms contain
              • Fields
              • Buttons
              • ...

2020 - 2021                             (c) A. Mariën            89
Mail transfer
• Actually: not done with mail protocols
• Uses database synchronization
      – Server and client have database
      – Database can be consulted locally or remotely
      – Databases can be synchronized: exact replica
      – Allows for off-line and on-line working (road
        warriors)

2020 - 2021                (c) A. Mariën                90
From proprietary to standards
• Currently: supports internet standards
• Example: migration from notes ID files to
  certificates (X.503v3)
• Example: LDAP queries for address book
• Supports access to POP3 and IMAP4 servers

2020 - 2021          (c) A. Mariën            91
Short note

   MAPI

2020 - 2021     (c) A. Mariën   92
MAPI
• MAPI = Messaging Application Programming
  Interface
• API: programmatic interface
• Originally (and mainly): Microsoft only
  solution
• Now some other mail clients like Eudora
  support it too

2020 - 2021        (c) A. Mariën             93
Simple MAPI Functions
•    MAPIAddress
•    MAPIDeleteMail
•    MAPIDetails
•    MAPIFindNext
•    MAPIFreeBuffer
•    MAPILogon
•    MAPILogoff
•    MAPIReadMail
•    MAPIResolveName
•    MAPISaveMail
•    MAPISendDocuments
•    MAPISendMail

2020 - 2021              (c) A. Mariën   94
You can also read