slides/slides01.tex
changeset 164 08a6e035223e
parent 162 5031e7778fdb
child 167 d8657ff8cca1
equal deleted inserted replaced
163:02026ee18378 164:08a6e035223e
   646 \end{textblock}
   646 \end{textblock}
   647   
   647   
   648 \end{frame}
   648 \end{frame}
   649 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   649 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   650 
   650 
   651 
   651 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   652 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   652 \begin{frame}[c]
   653 \begin{frame}[c]
   653 \frametitle{JavaScript + Node.js}
   654 \frametitle{Why Scala?}
       
   655 
       
   656 \begin{textblock}{6}(1,3)
       
   657 \begin{tabular}{l}
       
   658 \mbox{}\hspace{-1mm}\includegraphics[scale=0.36]{pics/twitter.png}\\[-1mm]
       
   659 \includegraphics[scale=0.30]{pics/linked.png}\\
       
   660 \includegraphics[scale=0.30]{pics/guardian.jpg}\\[-3mm]
       
   661 \mbox{}\hspace{-2mm}\includegraphics[scale=0.38]{pics/morgan.png}\\[-3mm]
       
   662 \includegraphics[scale=0.30]{pics/suisse.png}\\
       
   663 \includegraphics[scale=0.20]{pics/edf.png}\\[-1mm]
       
   664 \includegraphics[scale=0.08]{pics/novell.png}\\[-1mm]
       
   665 \includegraphics[scale=0.30]{pics/foursquare.png}\\
       
   666 \includegraphics[scale=0.30]{pics/hsbc.png}\\
       
   667 {\large\bf ...}
       
   668 \end{tabular}
       
   669 \end{textblock}
       
   670  
       
   671 \only<2->{  
       
   672 \begin{textblock}{6}(6,3)
       
   673 \includegraphics[scale=0.35]{pics/jobgraph.png}\\
       
   674 \end{textblock}}  
       
   675   
       
   676 \only<3->{  
       
   677 \begin{textblock}{6}(7.3,9.2)
       
   678 \begin{tabular}{l}
       
   679 \footnotesize 2013: 1$\%$\\[-2mm]
       
   680 \footnotesize 2014: 3$\%$\\[-2mm]
       
   681 \footnotesize 2015: 9$\%$\\[-2mm]
       
   682 \footnotesize 2016: 27$\%$\\[-2mm]
       
   683 \footnotesize 2017: 81$\%$\\[-2mm]
       
   684 \footnotesize 2018: 243$\%$ \raisebox{-1mm}{\includegraphics[scale=0.02]{pics/smiley.jpg}}
       
   685 \end{tabular}
       
   686 \end{textblock}} 
       
   687   
       
   688 \only<3->{  
       
   689 \begin{textblock}{6}(6,9.5)
       
   690 \footnotesize 5 yrs $\begin{cases}\mbox{}\\[1.4cm]\end{cases}$
       
   691 \end{textblock}}
       
   692 
       
   693 \only<4->{  
       
   694 \begin{textblock}{11}(5,14.1)
       
   695 \textcolor{gray}{
       
   696 \footnotesize {\bf in London today:} 1 Scala job for every 30 Java jobs;\\[-2mm]
       
   697 Scala programmers seem to get up to 20\% better salary}
       
   698 \end{textblock}}
       
   699 
       
   700 
       
   701 \only<5->{
       
   702 \begin{textblock}{1}(3,6)
       
   703 \begin{bubble}[8.5cm]
       
   704 \normalsize
       
   705 Scala is a functional and object-oriented programming
       
   706 language; compiles to the JVM; does not need null-pointer
       
   707 exceptions; a course on Coursera\\
       
   708 \mbox{}\hfill\url{http://www.scala-lang.org}
       
   709 \end{bubble}
       
   710 \end{textblock}}
       
   711 
       
   712   
       
   713 \end{frame}
       
   714 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   715 
       
   716 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   717 \begin{frame}[c]
       
   718 \frametitle{Scala + Play}
       
   719 
   654 
   720 A simple response from the server:
   655 A simple response from the server:
   721 
   656 
   722 \small
   657 \small
   723 \lstinputlisting{../progs/app0.scala}
   658 \lstinputlisting[language=JavaScript]{../progs/ap0.js}
   724 \medskip
   659 \medskip\pause
   725 
   660 
   726 \small
   661 \small
   727 alternative response:\smallskip\\
   662 alternative response:\smallskip\\
   728 
   663 
   729 
   664 
   730 \lstinline{Ok("<H1>Hello world!</H1>").as(HTML)}
   665 \lstinline[language=JavaScript]{response.write('<H1>Hello World</H1>');}
   731 
   666 
   732 \end{frame}
   667 \end{frame}
   733 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   668 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   734 
   669 
   735 
   670 
   736 
   671 
   737 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   672 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   738 \mode<presentation>{
   673 \begin{frame}[c]
   739 \begin{frame}[c]
   674 
   740 
   675 \footnotesize
   741 {\lstset{language=Scala}\fontsize{8}{10}\selectfont
   676 \lstinputlisting[language=JavaScript]{../progs/ap1.js}
   742 \texttt{\lstinputlisting{../progs/app1.scala}}}
   677 
   743 
   678 \end{frame}
   744   
   679 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   745 \end{frame}}
   680 
   746 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   681 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   747 
   682 \begin{frame}[c]
   748 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   683 \frametitle{Cookies}
   749 \mode<presentation>{
       
   750 \begin{frame}[c]
       
   751 \frametitle{\begin{tabular}{c}Cookies\end{tabular}}
       
   752 
       
   753 
   684 
   754 \begin{textblock}{1}(1.5,5)
   685 \begin{textblock}{1}(1.5,5)
   755 \begin{tabular}{c}
   686 \begin{tabular}{c}
   756 \includegraphics[scale=0.15]{pics/servers.png}\\[-2mm]
   687 \includegraphics[scale=0.15]{pics/servers.png}\\[-2mm]
   757 \small Servers from\\[-2mm] 
   688 \small Servers from\\[-2mm] 
   795 \end{itemize}  
   726 \end{itemize}  
   796 \end{textblock}}
   727 \end{textblock}}
   797 
   728 
   798 \only<5>{
   729 \only<5>{
   799 \begin{textblock}{11}(1,3)
   730 \begin{textblock}{11}(1,3)
   800 \begin{tikzpicture}
   731 \begin{bubble}[10cm]\small
   801 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
   732 {\bf EU Privacy Directive about Cookies:}\smallskip\\ ``In May 2011, a
   802 {\normalsize\color{darkgray}
   733 European Union law was passed stating that websites that leave
   803 \begin{minipage}{10cm}\raggedright\small
   734 non-essential cookies on visitors' devices have to alert the visitor
   804 {\bf EU Privacy Directive about Cookies:}\smallskip\\
   735 and get acceptance from them. This law applies to both individuals and
   805 ``In May 2011, a European Union law was passed stating that websites that leave non-essential cookies on visitors' devices have to alert the visitor and get acceptance from them. This law applies to both individuals and businesses based in the EU regardless of the nationality of their website's visitors or the location of their web host. It is not enough to simply update a website's terms and conditions or privacy policy. The deadline to comply with the new EU cookie law was 26th May 2012 and failure to do so could mean a fine of up to \pounds{}500,000.''
   736 businesses based in the EU regardless of the nationality of their
   806 \hfill\small\textcolor{gray}{$\rightarrow$BBC News}, \textcolor{blue}{\url{goo.gl/RI4qhh}}
   737 website's visitors or the location of their web host. It is not enough
   807 \end{minipage}};
   738 to simply update a website's terms and conditions or privacy
   808 \end{tikzpicture}
   739 policy. The deadline to comply with the new EU cookie law was 26th May
       
   740 2012 and failure to do so could mean a fine of up to
       
   741 \pounds{500,000}.''  \hfill\small\textcolor{gray}{$\rightarrow$BBC
       
   742   News}, \textcolor{blue}{\url{goo.gl/RI4qhh}}
       
   743 \end{bubble}
   809 \end{textblock}}
   744 \end{textblock}}
   810   
   745   
   811 \end{frame}}
   746 \end{frame}
   812 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   747 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   813 
   748 
   814 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   749 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   815 \mode<presentation>{
       
   816 \begin{frame}[t]
   750 \begin{frame}[t]
   817 \begin{itemize}
   751 \begin{itemize}
   818 \item While cookies are per web-page, this can be easily circumvented.
   752 \item While cookies are per web-page, this can be easily circumvented.
   819 \end{itemize}
   753 \end{itemize}
   820 
   754 
   886   \draw[red, <->, line width = 0.5mm] (X) -- (Y);
   820   \draw[red, <->, line width = 0.5mm] (X) -- (Y);
   887   \node [inner sep=5pt,label=above:\textcolor{black}{}] at ($ (X)!.5!(Y) $) {};
   821   \node [inner sep=5pt,label=above:\textcolor{black}{}] at ($ (X)!.5!(Y) $) {};
   888   \end{tikzpicture}
   822   \end{tikzpicture}
   889 \end{textblock}
   823 \end{textblock}
   890 
   824 
   891 
   825 \end{frame}
   892 
   826 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   893 \end{frame}}
   827 
   894 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   828 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   895 
   829 \begin{frame}[c]
   896 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   830 \frametitle{My First Real Webapp}
   897 \mode<presentation>{
       
   898 \begin{frame}[c]
       
   899 \frametitle{\begin{tabular}{c}My First Webapp\end{tabular}}
       
   900 
   831 
   901 {\bf GET request:}\smallskip
   832 {\bf GET request:}\smallskip
   902 \begin{enumerate}
   833 \begin{enumerate}
   903 \item read the cookie from client
   834 \item read the cookie from client
   904 \item if none is present, set \texttt{visits} to \textcolor{blue}{$0$}
   835 \item if none is present, set \texttt{counter} to \textcolor{blue}{zero}
   905 \item if cookie is present, extract \texttt{visits} counter
   836 \item if cookie is present, extract \texttt{counter}
   906 \item if \texttt{visits} is greater or equal \textcolor{blue}{$10$}, \\
   837 \item if \texttt{counter} is greater or equal \textcolor{blue}{$5$}, \\
   907 print a valued customer message\\
   838 print a valued customer message\\
   908 otherwise just a normal message
   839 otherwise just a normal message
   909 \item increase \texttt{visits} by \textcolor{blue}{$1$} and store new cookie with client
   840 \item increase \texttt{counter} by \textcolor{blue}{$1$} and store new cookie with client
   910 \end{enumerate}
   841 \end{enumerate}
   911 
   842 
   912   
   843 \end{frame}
   913 \end{frame}}
   844 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   914 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   845 
   915 
   846 
   916 
   847 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   917 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   918 \mode<presentation>{
       
   919 \begin{frame}[c]
   848 \begin{frame}[c]
   920 \mbox{}\\[-9mm]
   849 \mbox{}\\[-9mm]
   921 
   850 
   922 {\lstset{language=Scala}\fontsize{8}{10}\selectfont
       
   923 \texttt{\lstinputlisting{../progs/app2.scala}}}
       
   924 
       
   925 \footnotesize
   851 \footnotesize
   926 \begin{itemize}
   852 \lstinputlisting[language=JavaScript]{../progs/ap2.js}
   927 \item cookie value encoded as hash
   853 
   928 \end{itemize}
   854 \end{frame}
   929 \end{frame}}
   855 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   930 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   856 
   931 
   857 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   932 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   933 \mode<presentation>{
       
   934 \begin{frame}[c]
   858 \begin{frame}[c]
   935 
   859 
   936 \begin{center}
   860 \begin{center}
   937 \includegraphics[scale=1.8]{pics/barrier.jpg}
   861 \includegraphics[scale=1.8]{pics/barrier.jpg}
   938 \end{center}
   862 \end{center}
   939 
   863 
   940 \begin{itemize}
   864 \begin{itemize}
   941 \item data integrity needs to be ensured
   865 \item data integrity needs to be ensured
   942 \end{itemize}
   866 \end{itemize}
   943 
   867 
   944 \end{frame}}
   868 \end{frame}
   945 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   869 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   946 
   870 
   947 
   871 
   948 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   872 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   949 \mode<presentation>{
       
   950 \begin{frame}[c]
   873 \begin{frame}[c]
   951 \mbox{}\\[-7mm]
   874 \mbox{}\\[-7mm]
   952 
   875 
   953 {\lstset{language=Scala}\fontsize{8}{10}\selectfont
   876 \footnotesize
   954 \texttt{\lstinputlisting{../progs/app3.scala}}}
   877 \lstinputlisting[language=JavaScript]{../progs/ap3.js}
   955 
   878 
   956 \small
   879 \end{frame}
   957 \begin{itemize}
       
   958 \item the counter/hash pair is intended to prevent tampering
       
   959 \end{itemize}  
       
   960 \end{frame}}
       
   961 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   880 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   962 
   881 
   963 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   882 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   964 \mode<presentation>{
   883 \begin{frame}[c]
   965 \begin{frame}[c]
   884 \frametitle{SHA-1}
   966 \frametitle{\begin{tabular}{c}SHA-1\end{tabular}}
       
   967   
   885   
   968 \begin{itemize}
   886 \begin{itemize}
   969 \item SHA-1 is a cryptographic hash function\\
   887 \item SHA-1 is a cryptographic hash function\\
   970 (MD5, SHA-256, SHA-512, \ldots) 
   888 (MD5, SHA-256, SHA-512, \ldots) 
   971 \item message $\rightarrow$ digest
   889 \item message $\rightarrow$ digest
   972 \item attacks exist: $2^{80} \rightarrow 2^{61}$ \bigskip\pause
   890 \item attacks exist: $2^{80} \rightarrow 2^{61}$ \bigskip\pause
   973 \item but dictionary attacks are much more effective for extracting passwords (later)
   891 \item but dictionary attacks are much more effective for extracting passwords (later)
   974 \end{itemize}  
   892 \end{itemize}  
   975   
   893   
   976 \end{frame}}
   894 \end{frame}
   977 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   895 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   978 
   896 
   979 
   897 
   980 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   898 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   981 \mode<presentation>{
   899 \begin{frame}[c]
   982 \begin{frame}[c]
   900 \mbox{}\\[-2mm]
   983 \mbox{}\\[-9mm]
   901 
   984 
   902 {\footnotesize\lstinputlisting[language=JavaScript]{../progs/ap4.js}}
   985 {\lstset{language=Scala}\fontsize{8}{10}\selectfont
   903 
   986 \texttt{\lstinputlisting{../progs/app4.scala}}}
   904 \begin{textblock}{1}(9,0)
   987 
   905   \begin{tikzpicture}[scale=1.3]
   988 \begin{textblock}{1}(9,1)
   906   \draw[white] (0,0) node (X) {};
   989   \begin{tikzpicture}[scale=1.3]
   907   \draw[white] (3.5,0) node (Y) {};
   990   \draw[white] (0,0) node (X) {};
       
   991   \draw[white] (3,0) node (Y) {};
       
   992   \draw[red, <-, line width = 2mm] (X) -- (Y);
   908   \draw[red, <-, line width = 2mm] (X) -- (Y);
   993   \node [inner sep=5pt,label=above:\textcolor{black}{\small should be random}] at ($ (X)!.5!(Y) $) {};
   909   \node [inner sep=5pt,label=above:\textcolor{black}{\small should be random}] at ($ (X)!.5!(Y) $) {};
   994   \end{tikzpicture}
   910   \end{tikzpicture}
   995 \end{textblock}
   911 \end{textblock}
   996 
   912 
   997 \begin{textblock}{1}(6.6,5.1)
   913 \begin{textblock}{1}(12.6,6.5)
       
   914   \begin{tikzpicture}[scale=1.3]
       
   915   \draw[white] (0,0) node (X) {};
       
   916   \draw[white] (-1,-1) node (Y) {};
       
   917   \draw[red, <-, line width = 2mm] (X) -- (Y);
       
   918   \node [inner sep=5pt,label=above:{}] at ($ (X)!.5!(Y) $) {};
       
   919   \end{tikzpicture}
       
   920 \end{textblock}
       
   921 
       
   922 \begin{textblock}{1}(9.9,11.5)
   998   \begin{tikzpicture}[scale=1.3]
   923   \begin{tikzpicture}[scale=1.3]
   999   \draw[white] (0,0) node (X) {};
   924   \draw[white] (0,0) node (X) {};
  1000   \draw[white] (1,-1) node (Y) {};
   925   \draw[white] (1,-1) node (Y) {};
  1001   \draw[red, <-, line width = 2mm] (X) -- (Y);
   926   \draw[red, <-, line width = 2mm] (X) -- (Y);
  1002   \node [inner sep=5pt,label=above:{}] at ($ (X)!.5!(Y) $) {};
   927   \node [inner sep=5pt,label=above:{}] at ($ (X)!.5!(Y) $) {};
  1003   \end{tikzpicture}
   928   \end{tikzpicture}
  1004 \end{textblock}
   929 \end{textblock}
  1005 
   930 
  1006 \end{frame}}
   931 \end{frame}
  1007 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   932 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1008 
   933 
  1009 
   934 
  1010 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   935 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1011 \mode<presentation>{
   936 \mode<presentation>{
  1103 % http://en.wikipedia.org/wiki/Rainbow_table
  1028 % http://en.wikipedia.org/wiki/Rainbow_table
  1104 
  1029 
  1105 
  1030 
  1106 
  1031 
  1107 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1032 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1108 \mode<presentation>{
       
  1109 \begin{frame}[c]
  1033 \begin{frame}[c]
  1110 \frametitle{\begin{tabular}{c}Brute Forcing Passwords\end{tabular}}
  1034 \frametitle{\begin{tabular}{c}Brute Forcing Passwords\end{tabular}}
  1111 
  1035 
  1112 \begin{itemize}
  1036 \begin{itemize}
  1113 \item How fast can hackers crack SHA-1 passwords? \pause
  1037 \item How fast can hackers crack SHA-1 passwords? \pause
  1138 \footnotesize graphics card\\[-1mm]
  1062 \footnotesize graphics card\\[-1mm]
  1139 \footnotesize ca.~\pounds{}300
  1063 \footnotesize ca.~\pounds{}300
  1140 \end{tabular}
  1064 \end{tabular}
  1141 \end{textblock}}
  1065 \end{textblock}}
  1142 
  1066 
  1143 
  1067 \end{frame}
  1144 
       
  1145 \end{frame}}
       
  1146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1068 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1147 
  1069 
  1148 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1070 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1149 \mode<presentation>{
  1071 \begin{frame}[c]
  1150 \begin{frame}[c]
  1072 \frametitle{Passwords}
  1151 \frametitle{\begin{tabular}{c}Passwords\end{tabular}}
  1073 
  1152 
  1074 How to recover from a break in?\pause\medskip
  1153 How to recover from a breakin?\pause\medskip
       
  1154 
  1075 
  1155 \begin{itemize}
  1076 \begin{itemize}
  1156 \item Do not send passwords in plain text.
  1077 \item Do not send passwords in plain text.
  1157 \item Security questions are tricky to get right.
  1078 \item Security questions are tricky to get right.
  1158 \item QQ (Chinese Skype) authenticates you via contacts.
  1079 \item QQ (Chinese Skype) authenticates you via contacts.
  1159 \end{itemize}
  1080 \end{itemize}
  1160 
  1081 
  1161 \end{frame}}
  1082 \end{frame}
  1162 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1083 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1163 
  1084 
  1164 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1085 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1165 \mode<presentation>{
  1086 \begin{frame}[c]
  1166 \begin{frame}[c]
  1087 \frametitle{This Course}
  1167 \frametitle{\begin{tabular}{c}This Course\end{tabular}}
       
  1168 
  1088 
  1169 \begin{itemize}
  1089 \begin{itemize}
  1170 \item break-ins (buffer overflows)
  1090 \item break-ins (buffer overflows)
  1171 \item access control\\ (role based, data security / data integrity)
  1091 \item access control\\ (role based, data security / data integrity)
  1172 \item electronic voting
  1092 \item electronic voting
  1177 Scott McNealy: \\``You have zero privacy anyway. Get over it.''
  1097 Scott McNealy: \\``You have zero privacy anyway. Get over it.''
  1178 \end{quote}
  1098 \end{quote}
  1179 \item zero-knowledge proofs
  1099 \item zero-knowledge proofs
  1180 \end{itemize}
  1100 \end{itemize}
  1181 
  1101 
  1182 \end{frame}}
  1102 \end{frame}
  1183 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1103 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1184 
  1104 
  1185 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1105 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1186 \mode<presentation>{
  1106 \mode<presentation>{
  1187 \begin{frame}[c]
  1107 \begin{frame}[c]
  1189 
  1109 
  1190 Can you track a user {\bf without}:
  1110 Can you track a user {\bf without}:
  1191 
  1111 
  1192 \begin{itemize}
  1112 \begin{itemize}
  1193 \item Cookies
  1113 \item Cookies
  1194 \item Javascript
  1114 \item JavaScript
  1195 \item LocalStorage/SessionStorage/GlobalStorage
  1115 \item LocalStorage/SessionStorage/GlobalStorage
  1196 \item Flash, Java or other plugins
  1116 \item Flash, Java or other plugins
  1197 \item Your IP address or user agent string
  1117 \item Your IP address or user agent string
  1198 \item Any methods employed by Panopticlick\\
  1118 \item Any methods employed by Panopticlick\\
  1199 \mbox{}\hfill $\rightarrow$ \textcolor{blue}{\url{https://panopticlick.eff.org/}}
  1119 \mbox{}\hfill $\rightarrow$ \textcolor{blue}{\url{https://panopticlick.eff.org/}}
  1200 \end{itemize}
  1120 \end{itemize}
  1201 
  1121 
  1202 Even when you disabled cookies entirely, have Javascript turned off and use a VPN service.\\\pause
  1122 Even when you disabled cookies entirely, have JavaScript turned off and use a VPN service.\\\pause
  1203 And numerous sites already use it.
  1123 And numerous sites use it.
  1204 
  1124 
  1205 \end{frame}}
  1125 \end{frame}}
  1206 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1126 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1207 
  1127 
  1208 
  1128