240 likes | 252 Views
Discover the innovative work of Neil Costigan at DCU on secure email encryption. Learn about the challenges in email security, encryption background, existing solutions, and the groundbreaking Identity-Based Encryption (IBE) approach.
E N D
Identity Based Encrypted e-Mail Neil Costigan Dublin City University
Quick personal background… 1992. Graduate DCU (NIHE ). joined <<Telecom Ireland Software>>. 1994. Moved to Stockholm Sweden. joined consultancy firm : developed video conference software, firewalls, and ‘custom’ internet security software. 1997. Co-founded internet security company <<Celo Communications>>. 1998. Moved to San Francisco, California as CTO of Celo. 2000. Celo acquired by French smart card company <<Gemplus>>. 2001. Moved to Aix-en-Provence France to lead R&D for financial and security. 2002. Started MSc. @ DCU. Working with Dr. Mike Scott and Noel McCullough on an Enterprise Ireland funded project.
The problem… • E-Mail is still one of the largest use of internet bandwidth. • E-Mail traffic, because of the underlying protocols, is exposed to unauthorised access (‘sniffing’) • Existing solutions, while technically functional, tend to impose prohibitive burden on the end user.
Backgrounder… how e-Mail works • SMTP • Simple Mail Transfer Protocol. RFC - 821. • POP3 • Post Office Protocol. RFC – 1939 • IMAP • Internet Message Access Protocol. RFC - 2060 • Microsoft Exchange • proprietary
Sample SMTP session 220 mail.simpson.com ESMTP Sendmail 8.10.2/8.10.2; Wed, 17 Mar 2003 .. HELO bartspc 250 mail.simpson.com Hello [123.213.123.213], pleased to meet you MAIL FROM: bart@simpson.com 250 2.1.0 bart@simpson.com... Sender ok RCPT TO: lisa@simpson.com 250 2.1.5 lisa@simpson.com ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself From: “Bart Simpson" < bart@simpson.com > To: lisa@simpson.com Subject: itchy & scratchy love each other. . 250 2.0.0 nnn Message accepted for delivery QUIT
And POP3… USERuserid PASSpassword STATThe response to this is: +OK #msgs #bytes. E.g: +OK 3 345910 LISTA line for each message with its number and size in bytes, ending with a period on a line by itself. E.g: +OK 2 messages 1 1205 2 344400 . RETRmsg#This sends message number msg# to you. E.g: RETR 2 TOPmsg# #lines(optional) Lists the header for msg# and the first #lines of the message text. E.g. TOP 1 5 would list the headers and first 5 lines of the message text. DELEmsg#This marks message number msg# for deletion from the server. E.g.: DELE 3 RSETThis resets (unmarks) any messages previously marked for deletion in this session so that the QUIT command will not delete them. QUITThis deletes any messages marked for deletion, and then logs you off of the mail server.
Backgrounder… Encryption / PKI • Symmetric = shared secret - 2 copies of key. (DES, AES etc.) • Asymmetric = public & private - locked box. (RSA, DH, ECC etc.) But • Asymmetric is computational expensive so we use a combined system… • Use symmetric to encrypt the message and then use asymmetric to encrypt the key. Bundle both together in ‘meta’ message.
Backgrounder… existing email security S/MIME – RFC 2311 • Secure / Multipurpose Internet Mail Extensions. • Can be signed and/or encrypted. • DES encrypted with random key and this key is then encrypted by RSA public. (or DH ?) • Keys embedded in X.509 certificates swapped out of band. (prior or lookup.) • Assumes trust of CA. • PGP performs similar but with ‘rings of trust’ Issues: • Losing keys ? • How to get the public key for a user? • How do I know the key I got is your key ? • User generated keys, getting signed etc. • Scalability • Revocation issues (CRLs, OCSP)
Re-cap: IBE 1 • Use any string to be a public key. • <<Hard>> problems • We deal with Elliptic Curves: equations of the form y2 = x3 + Ax + B • The Curve is reduced modulo by a large prime p. This gives (y2 = x3 + Ax + B)mod p • Tate Pairing is a function that operates on two points P and Q and will map these two points to an element of a cyclic group • It is believed hard to invert the pairing i.e. Find X in the following equation, where P and C are known. e(P, X) = C Therefore it is possible to have a secret point in the pairing (X), and the result of the pairing being known (C)
Re-cap: IBE 2 • If you use the services of a Trusted Authority (with secret s), you have the following scheme to generate a shared secret: • A’s identity, as verified by TA, is mapped to the point A • B’s identity is mapped to the point B • A and B are given secret keys sA and sB respectively – remember, even they can’t calculate s on its own. shared secret = e(sA, B) = e(A, sB) = e(A, B)s
Re-cap: IBE 3 • Again, the public key is a point ID and private key is sID, P and sP are known to everyone. • Encryption is rP, C = e(rsP, ID) Message • Decryption is e(rP, sID) C • Since e(rP, sID) = e(sP, ID)r= e(P, ID)sr • e(P, ID)sr e(P, ID)sr Message = Message • So • You can use any email address or string or combo of both • Allows for ‘future’ sending. • There IS escrow… The TA can decrypt messages.
Note.. Big numbers… • Not 5 • But • 1340780792994259709957402499820584612747936582059239337772356144372176403007354697680187429816690342769003185818648605085375388281194656994643364900608409613407807929942597099574024998205846127479365820592393375123561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096 ~ 21024 Implementation • Semi-portable C++ core • MFC based GUI • Crypto build on Built on Mike Scott’s MIRACL: • Multiprecision Integer and Rational Arithmetic C/C++ Library. • Utility layer provided by Noel McCullagh
Yes we use buzzwords: XML • Why : • Need some format. Interoperability is desirable. • XML is great for file formats. • Existing S/MIME is too rigid • Email clients can display Html. XML can be transformed to HTML. • XMLDiGSig & XMLEnc exist and can be reused. • DOM vs. SAX • Document Object Model ~ tree. • Simple API for XML ~ parse events. • XPATH • Data retrieval via query into document. • Issues… • because messages it can be big, it can require too much memory to be handled as a single data structure.
Obligatory XML Message: <?xml version="1.0" standalone="yes" ?> <!-- IBE Mail --> <ibe> <EncryptedSessionKey>6211... .72F8</EncryptedSessionKey> <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element'> <EncryptionMethod algorithm="http://www.w3.org/2001/04/xmlenc#kw- aes128" /> <CipherData> <CipherValue>Mv7x.....3tzXu==</CipherValue> </CipherData> </EncryptedData> </ibe>
XML configuration <?xml version="1.0" standalone="yes" ?> <!--DOCTYPE ibe SYSTEM "ibecommon.dtd" --> <ibe xmlns="ibecommon.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ibecommon.xsd"--> <ibesetup> <server_url>http://www.computing.dcu.ie/~ncostiga/ibe/IBECommon.xml</server_url> <fieldSizeInBits>512</fieldSizeInBits> <numberBase>16</numberBase> <p>DF9BD3ED0034174E54597AA4E2AB033D21C7F6F1AFDD080D4708BC67CAC2AED554FE43F3DA7CD547ED458502C46356BB2A76688DDF064094EBE7785EDE2E413F</p> <A>-3</A> <B>CFEC8DDB4E226F34828D4F9B30571BB52E14D1611FA34031423862B3ACB179102A1C152E860FC993A87999CB6A8539516C04950344270037ABC0905175FD47E</B> <curveOrder>DF9BD3ED0034174E54597AA4E2AB033D21C7F6F1AFDD080D4708BC67CAC2AED3767AC584178BA7D62E6F13DDC46356BB2A6EEE7C284037F0B03E22219BED5EF6</curveOrder> <P>A46F8F0AA97FE3C2593DE7BAA204B298B56A72C3FA6CAB715FC7602DA5FE74B27202149F3DBA635D623E0AF030CA92E9FFCE2DDDAD5F0279A875F9089A516563:1954CFE189AD9AC26B035B4436E02329D8B0CEDAEA28AB3FD89FF234695324D53C62439AFBEA1D8C2318424F63DD5A399BE4F6586A420667579F8BE37F02E910</P> <sP>2849065EC6160D44B040C9834C5DF2636DAA3FA182FD9D83D2F7E1310B6242D01F26CC018F7706CF433C8AB383C8CB3A0638225DE8A619A858B5C64AA176F504:537083753C97121EF735AB8217CB70E332D525ECECCFA70CEB941E67D8E98D818042645E8A46DE6FA80E9F4126F073F4B1147A521FD99A6BE9C2E5E383B6C594</sP> </ibesetup> </ibe>
XML schema <?xml version="1.0" encoding="utf-8" ?> <!-- Neil Costigan (Dublin City University) The values required for p,A,B are probably best given by the equation y2 =x3 + Ax + B mod p fieldSizeInBits is the size of p (ie 512bit = 512, 1024bit = 1024) curveOrder is the number of points on the curve numberbase is the numberbase for p,A,B and the curveOrder (ie decimal = 10, hex = 16) --> <!-- <xs:element name="p" type='ibe:hexstring'/> <xsd:simpleType name='hexstring' base='xsd:string'> <xsd:pattern value='[A-F]{1}d{6}'/> --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="ibe"> <xs:element name="ibe" msdata:IsDataSet="true"> <xs:complexType> <xs:choice> <xs:element name="ibesetup"> <xs:complexType> <xs:sequence> <xs:element name="server_url" type="xs:string" /> <xs:element name="fieldSizeInBits" type="xs:positiveInteger" /> <xs:element name="p" type="xs:string" /> <xs:element name="A" type="xs:string" /> <xs:element name="B" type="xs:string" /> <xs:element name="curveOrder" type="xs:string" /> <xs:element name="P" type="xs:string" /> <xs:element name="sP" type="xs:hexBinary" /> <xs:element name="numberBase" type="xs:positiveInteger" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema>
Potential solutions • New secure email client. • ‘Add-on’ to existing systems. • ‘Catch all’ approach.
New ‘Secure’ client • Exclusively an identity based encryption client • Commercially flawed. • Great as a test bed and to fine tune formats.
Add-on: Outlook • Office allows automation via Scripting and COM add-ins • Reverse engineer VB scripting to find event ‘hooks’. • Pros • Use familiar interface, training, setup etc. • Can do proprietary MS Exchange • Cons • Version war • Limited in some respects… • Over featured in others. • Still most commercially viable (XX%?) • Options include open source like Mozilla or Ximian
Catch all : socket relay based • scalable implementation (Multi-threaded etc.) • windows but with portable core. • tray or system service. • works as socket relay at application layer just above TCP. • listens on a configured ports and connects based on ‘rules’ • Right now its SMTP and POP3 • Later IMAP and possibly Exchange • Even later maybe all protocols… • View message xml as stream (not perfect but enough)
Next steps… • Optimise ‘socket relay’ to ‘tight loop’ • Pursue Outlook peculiarities. • General case for application layer VPN • Instant messaging (chat), P2P,… • Standardise IBE XML • Find commercial customer. • Commercialise • Business plan • Web presence • Write up !