Skip to main content
Engineering LibreTexts

11.3 Privacy

  • Page ID
    91539
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    Software developers need to be concerned with privacy as well as vulnerabilities. Privacy can be a tricky line for software, particularly as it relates to social media. For example, some people can make a case to have all social media posts viewable by anyone - after all, one point of social media is to reach a larger audience. Contrast that with a medical record provider who must keep as much information private as possible. There is a line to balance somewhere in the middle, but that line is not always clear and certainly depends on the users expectations and preferences as well as any laws governing data availability.

     

    Application Default Settings

    Most software allows tweaking of settings, from preferred language to background color to security considerations. Software developers try hard to make the default settings reasonable. Keep in mind that it may be challenging or impossible to devise default settings which are in the best interest of all users.

    Strava

    Strava can be a great social application to share workouts with like-minded people and find new places to run or cycle. In 2018, Strava generated heat maps from users such that all users could find common places to run simply by looking at a map. While specific user data was protected, aggregate data was still available. In this case, heat maps were used to identify military bases30.

    As well, when running routes are available for anyone to see, it generally becomes trivial to identify where someone lives as their runs often start and stop where they live.

    Venmo

    Default security settings in Venmo caused some concern. In 2021, Venmo announced that it would be removing the global transaction feed. Until that was released, strangers' transactions would be available for all to see. Indeed this is an invasion of privacy at the least but arguably a security concern. In addition to that, users' friends lists were publicly available, as well, representing a huge security violation.

    Broken Access Control

    The number one spot in the OWASP Top 10 is "Broken Access Control". This vulnerability, when expressed, can lead to " unauthorized information disclosure, modification, or destruction of all data or performing a business function outside the user's limits31"

    Remember Tony Abbott?

    Recall that in the opening story in this chapter, Tony Abbot had his passport information and his phone number exposed. One reason that this happened is because sensitive information was sent to an unauthorized actor. In particular, anyone with the last name and boarding pass number (which was included in the social media photo that Mr. Abbott shared).

    An eerily similar (but more widespread) issue happened in Missouri. A website that lists names of teachers in the state and their certifications was flawed in that it also included the social security numbers of the educators (albeit the social security number was not displayed on the screen but was present in the HTML for the site). A reporter named Josh Renaud responsibly disclosed his findings to the organization responsible but then reported on it when the issue wasn’t fixed. While this is not necessarily poor design (when people can right-click and choose “View Source” to reveal private information is never a good idea), politicians made it much worse. Governor Mike Parson accused Renaud of hacking private information. Captain John Hotz from the state police said they were “investigating the potential unauthorized access to Department of Elementary and Secondary Education data.”

    The New York Times reporting of the incident highlights the government’s absurd misunderstanding of the law32:

    Mr. Parson, a Republican, said that it was “unlawful to access encoded data and systems in order to examine other people’s personal information.”

    He cited a state law that said a hacker was anyone who gained unauthorized access to information or content. He said the reporter had no authorization to “convert or decode” the information on the website.

    “This was clearly a hack,” Mr. Parson said, adding that the state would investigate the flaws that were uncovered in the system.

    Legal observers said they were perplexed by Mr. Parson’s interpretation of what constituted a hack.

    Frank Bowman, a professor of law at the University of Missouri School of Law, said that it was difficult to imagine the prosecution of a reporter who alerted state officials to information he discovered by examining a publicly available website.

    The chances of prosecutors going after Mr. Renaud, the reporter, “are between zero and zero,” Professor Bowman said. “They’re not going to embarrass themselves like this.”

    Clearly, legislatures are failing to keep up with technology and it is challenging democracy.

    1. Strava tweaks map settings that inadvertently displayed military sites
    2. A01:2021 – Broken Access Control
    3. Governor Accuses Reporter of Hacking After Flaws in State Website Are Revealed

    11.3 Privacy is shared under a not declared license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?