PGP & S/MIME En översikt



Relevanta dokument
Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Krypteringteknologier. Sidorna ( ) i boken

Datasäkerhet och integritet

Tekn.dr. Göran Pulkkis Överlärare i Datateknik. Nätverksprotokoll

Kryptografi - När är det säkert? Föreläsningens innehåll. Kryptografi - Kryptoanalys. Kryptering - Huvudsyfte. Kryptografi - Viktiga roller

Föreläsning 10. Grundbegrepp (1/5) Grundbegrepp (2/5) Datasäkerhet. olika former av säkerhet. Hot (threat) Svaghet (vulnerability)

Avancerad SSL-programmering III

Föreläsning 7. DD2390 Internetprogrammering 6 hp

Modul 3 Föreläsningsinnehåll

Att bygga VPN. Agenda. Kenneth Löfstrand, IP-Solutions AB. Olika VPN scenarios. IPsec LAN - LAN. IPsec host - host SSH

Metoder för sekretess, integritet och autenticering

Kryptering. Krypteringsmetoder

Certifikattjänsten - testbädd. Anläggningsprojekt för ett nationellt inkomstregister

Grundfrågor för kryptosystem

Föreläsning 10 Datasäkerhet grundbegrepp datasäkerhet i nätet. Säkerhet. Grundbegrepp (1/5) Modern telekommunikation

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB

Driftsättning av DKIM med DNSSEC. Rickard Bondesson Examensarbete

Grundläggande krypto och kryptering

Skydd för känsliga data

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

256bit Security AB Offentligt dokument

Sunet-dagarna

Identity Management i ett nätverkssäkerhetsperspektiv. Martin Fredriksson

Lathund för kryptering med GnuPG

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster

Säkerhet. Olika former av säkerhet (företagsperspektiv [1])

Säker e-kommunikation

Kryptering. Kryptering Hashar Digitala signaturer, PKI Krypto FS Lösenord. Repetition to slide 29

Probably the best PKI in the world

Europeisk samsyn på kryptomekanismer SOGIS nya kryptolista en översikt

PGP håller posten hemlig

Beijer Electronics AB 2000, MA00336A,

Introduktion till protokoll för nätverkssäkerhet

Datasäkerhet och integritet

Protokollbeskrivning av OKI

Kryptoteknik. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)


Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Problem som kan uppkomma vid registrering av ansökan

Riksgäldskontorets författningssamling

Styrteknik: Binära tal, talsystem och koder D3:1

uran: Requesting X11 forwarding with authentication uran: Server refused our rhosts authentication or host

Praktisk datasäkerhet (SäkA)

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin

RIV Tekniska Anvisningar Kryptografi. Version ARK_

Slide 4 PKCS#7. XMLDsig

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

19/5-05 Datakommunikation - Jonny Pettersson, UmU 2. 19/5-05 Datakommunikation - Jonny Pettersson, UmU 4

Datasäkerhet. Petter Ericson

SSL/TLS-protokollet och

Föreläsningens innehåll. Säker kommunikation - Nivå. IPSec. IPSec - VPN. IPSec - Implementation. IPSec - Består av vad?

DNSSEC och säkerheten på Internet

Förra gången. Dagens föreläsning. Digitala Certifikat. Vilka man litar på! X.509. Nyckeldistribution. Säkerhetsprotokoll

Att stödja starka elever genom kreativ matte.

Alias 1.0 Rollbaserad inloggning

Stad + Data = Makt. Kart/GIS-dag SamGIS Skåne 6 december 2017

Riksgäldskontorets författningssamling

Datasäkerhet och integritet

SSH-protokollet. Niels Möller

Installation av F13 Bråvalla

Dag König Developer Tools Specialist Microsoft Corporation

Isolda Purchase - EDI

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Kapitel 10 , 11 o 12: Nätdrift, Säkerhet

Säkerhetsbrister & intrång

F5 Exchange Elektronikcentrum i Svängsta Utbildning AB

Support Manual HoistLocatel Electronic Locks

Javadoc. Internet, WorldWideWeb, HTML, och Java. Webbläsarkomponenten. JEditorPane p. HyperlinkListener. Javadoc exempel:

Support for Artist Residencies

Questionnaire for visa applicants Appendix A

Writing with context. Att skriva med sammanhang

x Hur hamnade vi här och vad kan vi göra åt saken

Utvärdering SFI, ht -13

Moderna krypteringssystem

Health café. Self help groups. Learning café. Focus on support to people with chronic diseases and their families

Objektorienterad Programkonstruktion. Föreläsning 16 8 feb 2016

Spanning Tree Network Management Säkerhet. Spanning Tree. Spanning Tree Protocol, Varför? Jens A Andersson

2.1 Installation of driver using Internet Installation of driver from disk... 3

Vad man vill kunna göra. Lagra och skicka krypterad information Säkerställa att information inte manipuleras Signera sådant som man står för

KRYPTERING - MÖJLIGHET ELLER OMÖJLIGHET. Carl Önne carl.onne@certezza.net

Kryptografiska mekanismer och valutor

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

BOENDEFORMENS BETYDELSE FÖR ASYLSÖKANDES INTEGRATION Lina Sandström

Introduction to IT forensic technology and IT security

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

Bridging the gap - state-of-the-art testing research, Explanea, and why you should care

Dagens föreläsning. Datasäkerhet. Tidig historik. Kryptografi

Protokoll Föreningsutskottet

UTLYSNING AV UTBYTESPLATSER VT12 inom universitetsövergripande avtal

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Service och bemötande. Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC

Krypteringstjänster. LADOK + SUNET Inkubator dagarna GU, Göteborg, 6-7 oktober Joakim Nyberg ITS Umeå universitet

Säkerhet. Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Stiftelsen Allmänna Barnhuset KARLSTADS UNIVERSITET

Kryptografiska mekanismer och valutor

Rutinbeskrivning för beställning av certifikat

Kapitel 10, 11 o 12: Nätdrift, Säkerhet. Publika telenätet. Informationsöverföring. Jens A Andersson. Telenäten är digitala.

Webbregistrering pa kurs och termin

Transkript:

PGP & S/MIME En översikt Martin Fredriksson m@crt.se Carlstedt Research & Technology AB, 2003 1 PGP & S/MIME -- En översikt Introduktion: varför krypterad post, intro krypto PGP S/MIME En jämförelse Kommentarer 2 1

Behov av säker e-post Vykort!? E-post används till all typ av information Reseräkningar, internbeställningar Kärlekstjafs Viktig kommunikation med kunder/leverantörer Problem E-post är store-and-forward, och går underliga vägar (hoppar mellan servrar) Forwardering av mail från företagskonto till Hotmail Feladressering Medveten förfalskning Massutskick Bilagor... 3 Krypterad e-post Konfidentialitet Integritetsskydd Säker avsändare Oavvislighet System PGP, GnuPG, OpenPGP S/MIME proprietära lösningar Säker e-post 4 2

If at first it doesn t work... Date: Tue, 9 May 2000 19:38:03 +0200 (MET DST) From: Martin Fredriksson <martin@crt.se> To: bus@stacken.kth.se Subject: ILOVEYOUTOO This is for all you Unix users who're feeling left out. This virus works on the honor system: If you're running a variant of Unix please forward this message to everyone you know, then delete a bunch of your files at random. To be somewhat more serious: WHY are we using systems where these types of attacks are possible!? 5 Kryptografiska algoritmer Symmetriska algoritmer (symmetric algorithms) AES, DES, 3DES, IDEA, RC4, Blowfish,... Attacken är brute force (om vi antar att algoritmen är bra ) Pröva dekrypteringsnycklar tills output är läsbar Publik-nyckel-algoritmer (public-key algorithms) a.k.a. asymmetriska algoritmer RSA, DSA Attacken är matematisk Faktorering av stora tal 6 3

Symmetriska algoritmer Samma nyckel används för kryptering som dekryptering Kryptotext (C) skapas genom att applicera nyckel K på klartext-meddelandet (P): C = K(P) Klartext-meddelandet (P) återfås genom att applicera nyckel K på kryptotexten (C): P = K(C) Notera 1: Valet av bokstäver är gjort utifrån de engelska termerna för klartext (P=Plaintext) och kryptotext (C=Cryptotext). Notera 2: Egentligen är det inte så att vi applicerar nyckel K, utan applicerar (de)krypterings-algoritmen med nyckel K. En mer korrekt notation skulle därför vara: C = E K(P) och P = D K(P), där E=Encryption (kryptering) och D=Decryption (dekryptering). 7 Publika-nyckel-algoritmer Kallas också för asymmetriska algoritmer (eftersom det är olika nycklar för kryptering och dekryptering) Publicerades först av Whitfield Diffie and Martin Hellman 1976 Rivest, Shamir och Adelman publicerade RSA, den numera mest spridda algoritmen. NIST specificerade DSA (Digital Signature Algorithm) inom DSS (Digital Signature Standard) 8 4

Publika-nyckel-algoritmer, exempel 1 A BK PUB [P] Æ C Kryptering C B BK PRIV [C] Æ P AK PRIV [P] Æ C Signering C AK PUB [C] Æ P Signering och kryptering AK PRIV [P] Æ C 1 BK PUB [C 1 ] Æ C 2 C 2 BK PRIV [C 2 ] Æ C 1 AK PUB [C 1 ] Æ P 9 Publika-nyckel-algoritmer, exempel 2 A Kryptering K = random key K[P] Æ C 1 C 1 + C 2 BK PUB [K] Æ C 2 B BK PRIV [C 2 ] Æ K K[C 1 ] Æ P MD[P] Æ H AK PRIV [H] Æ C Signering P + C AK PUB [C] Æ H MD[P] Æ H H = H? 10 5

Phil Zimmermann s Pretty Good Privacy Publik-nyckel-system Privat nyckel på secret keyring ~/.gnupg/secring.gpg.../secring.skr Publika nycklar på public keyring ~/.gnupg/pubring.gpg.../pubring.pkr Skydda privat nyckel! Verifiera publika nycklar! PGP bygger på Web of Trust Personliga, direkta förhållanden Tillit (trust) för att introducera andras nycklar Nyckelservrar HTTP (HKP) LDAP... Vem kan man lita på? 11 PGP (Pretty Good Privacy) -- GnuPG (GNU Privacy Guard) Olika versioner: PGP 2.x, 5.x, 6.x, 7.x, 8.x GnuPG 1.2.x Många olika plattformar, olika applikationer Unix, Windows, MacOS,... Kommandorad, grafiska verktyg e-post, fil/disk-kryptering, PGP Desktop Integration med ett antal mail-klienter Källor The new PGP corporation (http://www.pgp.com/) The International PGP Home Page (http://www.pgpi.com/) The GNU Privacy Guard (http://www.gnupg.com/) IETF, OpenPGP (http://www.ietf.org) 12 6

OpenPGP Standard PGP OpenPGP Message Format (RFC 2440) MIME Security with OpenPGP (RFC 3156) Draft: OpenPGP Message Format (update to RFC 2440) 9.2. Symmetric Key Algorithms ID Algorithm -- --------- 0 - Plaintext or unencrypted data 1 - IDEA [IDEA] 2 - Triple-DES (DES-EDE, [SCHNEIER] - 168 bit key derived from 192) 3 - CAST5 (128 bit key, as per RFC2144) 4 - Blowfish (128 bit key, 16 rounds) [BLOWFISH] 5 - SAFER-SK128 (13 rounds) [SAFER] 6 - Reserved for DES/SK 7 - AES with 128-bit key [AES] 8 - AES with 192-bit key 9 - AES with 256-bit key 10 - Twofish with 256-bit key [TWOFISH] 100 to 110 - Private/Experimental algorithm. Implementations MUST implement Triple-DES. Implementations SHOULD implement AES-128 and CAST5. Implementations that interoperate with PGP 2.6 or earlier need to support IDEA, as that is the only symmetric cipher those versions use. Implementations MAY implement any other algorithm. 9.4. Hash Algorithms ID Algorithm Text Name -- --------- ---- ---- 1 - MD5 "MD5" 2 - SHA-1 "SHA1" 3 - RIPE-MD/160 "RIPEMD160" 4 - Reserved for double-width SHA (experimental, obviated) 5 - MD2 "MD2" 6 - Reserved for TIGER/192 "TIGER192" 7 - Reserved for HAVAL "HAVAL-5-160" 8 - SHA256 "SHA256" 9 - SHA384 "SHA384" 10 - SHA512 "SHA512" 100 to 110 - Private/Experimental algorithm. Implementations MUST implement SHA-1. Implementations SHOULD implement MD5. 13 PGP-nyckel pub 1024D/50D630F3 2001-02-01 Martin Fredriksson <m@crt.se> Key fingerprint = B866 3BDD 4A17 8165 FED7 0F67 1573 BEC4 50D6 30F3 uid Martin Fredriksson <martin@crt.se> uid Martin Fredriksson <m@msp.se> uid Martin Fredriksson <martin@msp.se> sub 2048g/ADBEB99E 2001-02-01 [expires: 2003-06-15 ] -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.0.7 (Darwin) mqgibdp4wuerbacrv9urv6u+csvv8mhzawwvl9ympe61fjdlth0sww/qsl64gx4v FDfnumce6Gp0uZqn1pttHy46/fFTarLowrmfIxmb3+eMoqopUhIcnkiXZCCEXuZw vxelsk87egqsxmdge7b5nnat6kubqzhecgqkxyi/w0we0xpdvse8da7y4wcgxma8 HFRhR5yFd34/YDCjVUG1hBUD/3g0lSFnl19iXLON0graIGTb5kQpH57ZRqKGH5eP et1mfgzpjdym7h11pybdtghisd0oefhwjnogym0xoc+g44aploevmjdj006hxh7g... P+5UQRvH2YO4foFagGmfE7zn9gyaMZKdZSLVtha0Yrl7nd7lbXDHZ5J8bINbdnof fl4rb99ni/quvr+fbsxvgndrss22/4uilf4xplygoxl1hwaz8+zvrengsj3mkbog 7+RNKSk4WD27fa7ySemGKrZlZAFxaOOLv1f9iEwEGBECAAwFAj0LxOEFCQR0NwoA CgkQFXO+xFDWMPMpSACfUbfPR4VIBmFyW5YgkzICp3lsarwAnj9zHjh8XhfY5Euz m9refqihp+xc =Nskj -----END PGP PUBLIC KEY BLOCK----- 14 7

PGP publik nyckelring 15 Exempel: krypterat brev 16 8

Exempel: krypterat brev, signering 17 Exempel: krypterat brev, resultat From: Martin Fredriksson <martin@crt.se> Date: ons sep 11, 2002 22:26:04 Europe/Stockholm To: Hakan Olsson <ho@crt.se> Subject: Väldigt hemligt mail -----BEGIN PGP MESSAGE----- Version: GnuPG v1.0.7 (Darwin) hiwdeh/+zs7v1vuba/se7t/wtqy5kpw6aphehif+fvxp39jqmmxc7rbwobqvyfz6 5gSaIpHy4hSc3bBWVoWZfCM56kNJYdVJ4iADbSoecJkZfSsPEXFs5Ub1pLLnke17 PtM49f8Ytgm/jLjQFiag2obHSRS2kzSaDfhtpqJ4FGZiQ5cvAebWcHpUnUgSy4UC DgMrZrgorb65nhAH/0coLNmkD0fcgBZq/1YKNlGfT642AvFI7xfJwuK591co+bcm... UJ1Llli7OV7F45mmVrKk7Pr9oAIDrTOwZ5Lg9VBjO1RncTbTx9uenQ0sEwy1Hsnp fcvh6smdizg037yuqv3ghbl/2nlbb5r6zigcw8rswxat6xlny9pv6tlvacy0lcwf Q0j3dmh1bEiC6bGQMUKbIS4nhLzdpX3/y/fr85mPYJNxlAjfBHo2/eU6qAtW0cAo vvk/3k8ou9j0allydb8s0x3sslbawpcw =fvmq -----END PGP MESSAGE----- 18 9

PGP och kryptering av bilagor PGP/MIME för att kryptera hela meddelandet Byggde på RFC 1991, PGP Message Exchange Formats RFC 2015, MIME Security with Pretty Good Privacy Nu gäller RFC 2440, OpenPGP Message Format RFC 3156, MIME Security with OpenPGP Kryptering och signering täcker INTE mail header! 19 PGP/MIME exempel From: Andreas Gunnarsson <andreas@crt.se> To: Martin Fredriksson <martin@crt.se> Cc: andreas@zzlevo.net Subject: Re: testing gpg Mime-Version: 1.0 Content-Type: multipart/encrypted; protocol="application/pgp-encrypted"; boundary="lmm8jwqtlfdpeas6" Content-Disposition: inline User-Agent: Mutt/1.4i --lmm8jwqtlfdpeas6 Content-Type: application/pgp-encrypted Content-Disposition: attachment Version: 1 --lmm8jwqtlfdpeas6 Content-Type: application/octet-stream Content-Disposition: inline; filename="msg.asc" -----BEGIN PGP MESSAGE----- Version: GnuPG v1.0.7 (OpenBSD) hqioaytmucitvrmeeaf+nx6ac/hdofchq0t+ezdvhmjelqrdabb29+rb9bb0s9t1 idczside4digzoamdqjie4dw2vmjxoyt1bkqqwtrr3cimu6bkwjce7ggkneglcch qs//5vzwtviokcww4fqah/66ap2lggg5lnofey+nbn98jyrfwhcbrj35pzpxqshl... opnp0mu4fz20fifp9bxo9dbn2yan2rxlfsgpwjlr3rj39lzjlb9pktll42a4kzqh nerlunbsxhz1j2qyut/kfprjzwtnqkfxburj6vzezn9jesznwfi4bmxkdnkuipnu iuzpckjhcws8xiwwifi15cbbrpiiv67m5yn1zcvuye5g8yymmwnbpsu0xv7hh928 NI0wPA== =dszo -----END PGP MESSAGE----- --lmm8jwqtlfdpeas6-- 20 10

PGP/MIME exempel 21 PGP, S/MIME och IETF There has been a great deal of confusion in the press (and even within the IETF) about the status of S/MIME v2, S/MIME v3, PGP/MIME, and OpenPGP. People outside the IETF seem to get particularly concerned with the IETF process and the status of a technology in the IETF, even though IETF participants are quite used to having things be a bit nebulous in the IETF. It should be noted that both the S/MIME and OpenPGP Working Groups met at the IETF meeting in Washington, DC in December, 1997, and have been meeting at IETF meetings since. 22 11

S/MIME, Secure Multipurpose Internet Mail Extensions Certifikatbaserat = behöver en PKI... Tänk dock på att en PKI kan vara enkel... Nyckel/certifikat-hantering Varje applikation har en egen certificate store Standarder för certifikatformat -- det går att dela Ex: Mozilla:.../Mozilla/Profiles/default/a4hsqag2.slt/... OpenSSL: # ls /etc/ssl certs/ lib/ Java, Outlook, isakmpd, Apache,... Som vanligt: Skydda privat nyckel! Verifiera publika nycklar (certifikat)! misc/ openssl.cnf private/ 23 S/MIME grunder S/MIME bygger på Dataformat: PKCS #7 Cryptographic Message Syntax Standard (ASN.1 DER) Certifikatformat: X.509v3 You can t be a real country unless you have a beer and an airline. It helps if you have some kind of a football team, or some nuclear weapons, but at the very least you need a beer. Frank Zappa And an X.509 profile. Peter Gutmann 24 12

S/MIME, standarder S/MIME version 2 S/MIME Version 2 Message Specification (RFC 2311) S/MIME Version 2 Certificate Handling (RFC 2312) PKCS #1: RSA Encryption Version 1.5 (RFC 2313) PKCS #10: Certification Request Syntax Version 1.5 (RFC 2314) PKCS #7: Cryptographic Message Syntax Version 1.5 (RFC 2315) Description of the RC2 Encryption Algorithm (RFC 2268) S/MIME version 3 Cryptographic Message Syntax (RFC 3369) (ersätter 2630) Cryptographic Message Syntax (CMS) Algorithms (RFC 3370) S/MIME Version 3 Message Specification (RFC 2633) S/MIME Version 3 Certificate Handling (RFC 2632) Diffie-Hellman Key Agreement Method (RFC 2631) Mycket beroende av PKIX... 25 S/MIME exempel Hämta demo-certifikat från Posten Fyll i formulär Installeras direkt till browser http://www.posten.se/eid/ Hämta demo CA root certifikat http://eid.posten.se/info.asp?dir=2&sub=nedladdning 26 13

S/MIME exempel Plocka ut certifikat (gör backup) post-demo-smime-martin.p12 Kan flyttas till annan browser, och användas separat Konvertera till PEM: openssl pkcs12 -in post-demo-smime-martin.p12 -out post-demo-smime-martin.pem Signera test-meddelande Klarttext i mail.txt, skapa signerat S/MIME i mail.msg : openssl smime -sign -in mail.txt -text -out mail.msg -signer post-demo-smime-martin.pem -from m@crt.se -to m@msp.se -subject "Just testing 27 S/MIME och certifikat 28 14

S/MIME och certifikat 29 S/MIME mail exempel: OK 30 15

S/MIME mail exempel: OK 31 S/MIME mail exempel: ändrad avsändare 32 16

S/MIME mail exempel: ändrad avsändare 33 S/MIME mail exempel: EJ OK 34 17

S/MIME mail exempel: EJ OK 35 S/MIME potentiella problem PKI... Vi har det inte ännu, så... Attacker Verifiera certifikat är tydligen svårt (klienter måste göra rätt!) Ex: samma fel som IE, mfl: ej verifiera basic constraints i mellan-certifikat [Issuer:VeriSign Subject:VeriSign] >[Issuer:VeriSign Subject:www.thoughtcrime.org] >[Issuer:www.thoughtcrime.org Subject:Bill Gates/billgates@microsoft.com] Få användare --> mycket otestad kod Vem är CA root? Hur mycket kan vi lita på vem? 36 18

PGP & S/MIME -- kort sammanfattning Teknik Egenskaper Meddelandeformat Certifikatformat Symmetriska algoritmer Signaturalgoritmer Hash-algoritmer MIME-kapsling av signerad data MIME-kapsling av krypterad data S/MIME v3 binärt, baserat på CMS binärt, baserat på X.509v3 TripleDES Diffie-Hellman (X9.42) with DSS SHA-1 Choice of multipart/signed or CMS format application/pkcs7-mime OpenPGP binärt, PGP binärt, PGP TrippleDES ElGamal with DSS SHA-1 multipart/signed with ASCII armor multipart/encrypted Den viktiga skillnaden är dock tillitsmodell : Web of Trust vs. PKI 37 Slutsats Fungerande system NU -- med stöd för alla plattformar --> använd PGP/GnuPG Mycket bra för enstaka förbindelser, för specifika uppgifter Skalar dåligt till många användare och generella uppgifter Central kontroll, generella tjänster för många användare (t.ex. stort företag) --> använd S/MIME Skalar bra till många användare Stöd i Exchange,... Var beredd att dyka ner i PKIX-världen... 38 19

Security Design I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. C.A.R Hoare, Turing Lecture The Emperor s Old Clothes, CACM February 1981, pp. 75-83 39 20