Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.55 KB | None | 0 0
  1. console.log('Trustcom Presenter injected');
  2.  
  3. const postbox = new Postbox(ELEMENTS.postbox);
  4.  
  5.  
  6. //idle_logout(7);
  7. //document.onmousemove = function() { }
  8. //document.onkeydown = function() { }
  9.  
  10. const options = {
  11. history_enabled: true,
  12. }
  13.  
  14. const prefix = {
  15. send: 'Send',
  16. recv: 'Motta',
  17. }
  18.  
  19. let presenter_script = `Send: Er det sikkert å sende inn opplysninger her?
  20. Motta: Ja, det er helt sikkert! Alle opplysninger blir kryptert i nettleseren din, og vil ikke være mulig for andre enn utvalgte personer hos PwC å lese. Det er en ende-til-endre kryptering.
  21. Motta: Sikkerhetskravene i personvernforordningen er bygget inn i løsningen fra starten av. Opplysninger du sender inn er kun tilgjengelig for deg selv og PwC. Trustcom har ingen mulighet å få tilgang til opplysningene dine.
  22. Motta: Under "Mer info" finner du ytterligere informasjon om sikkerhet i løsningen.
  23. Send: Men hva med tredjeparts programmer som har sårbarheter? Hvordan kan dere gå god for disse?
  24. Motta: Hele løsningen er satt sammen uten noen form for tredjeparts avhengigheter.
  25. Send: Hvordan kan jeg være sikker på at det kun er de ansatte hos PwC som leser opplysningene mine?
  26. Motta: Det er svært strenge tiltak for tilgangsstyring, og mottaker må ha "fler-faktor" pålogging for å kunne se opplysningene dine. Hver enkelt mottaker har egen privat krypteringsnøkkel, som kan fjernes ved behov.
  27. Motta: Ett av tiltakene er at selve nettleseren til mottakeren må ha et sikkerhetssertifikat, og dette er generert på en maskin uten nettilkobling.
  28.  
  29. Send: Hvordan kan jeg bruke mine rettigheter ihht. personvern?
  30. Motta: Du kan logge deg inn i løsningen og sende inn forespørsel om retting, supplering eller sletting av opplysningene dine, i tillegg til å be om full oversikt over dine personopplysninger.
  31. Motta: Hvis du ikke ønsker å være anonym, men at det kun er PwC som kan behandle dine personopplysninger, er dette også tilrettelagt i løsningen.
  32. Motta: Som nevnt tidligere, er det dessuten meget høyt sikkerhetsnivå og streng tilgangskontroll over personopplysningene dine.
  33. Send: Takk for det!
  34. Send: Forresten, hvis jeg lager en sak, kan jeg følge opp den på et senere tidspunkt?
  35. Motta: Ja, du kan sende inn mer informasjon senere om du ønsker det. I tillegg vil vi ved behov stille oppfølgingsspørsmål som du også vil se da.
  36.  
  37. Send: Bra! Men har dere gjort noe for å ivareta personvernprinsippene?
  38. Motta: Det er iverksatt en rekke tiltak som skal sikre at det ikke samles inn flere personopplysninger enn det som er strengt nødvendig for å oppfylle formålet med behandlingen (jf. GDPR art. 6 nr. 1 c)
  39. Motta: "Anonym" er forhåndsvalget i skjema.
  40. Motta: For økt sikkerhet, er også historikken din deaktivert. På denne måten kan ingen tvinge deg til å logge på og hente ut informasjon.
  41. Motta: Selve varselet beskrives i et «fritektsfelt» som kan medføre risiko for mottak av overskuddsinformasjon. For å redusere risikoen for dette, oppfordres du til å være så konkret som mulig når du beskriver hva varselet gjelder.
  42. Motta: Løsningen samler kun inn opplysninger som varsler selv registrerer. Verken IP-adresse eller andre opplysninger vil bli logget i forbindelse med varslingen eller kommunikasjon underveis i saken. Dette gjelder uavhengig av om varsler er anonym eller ikke.
  43. Motta: Feltene i skjema lagrer heller ingen historikk, slik at andre kan se hva du har skrevet senere.
  44. Motta: Dersom du velger å ikke være anonym, vil skjemaet kun inneholde de opplysninger som er strengt nødvendig for å behandle varselet, slik som navn, e-postadresse, telefonnummer og datoen for innsendelse av varselet.
  45. Send: Hva med vedlegg, de inneholder jo sporbare data!
  46. Motta: Ja, det er viktig å være klar over. Derfor informerer vi om dette ved "last opp fil" knappen. Når PwC mottar en fil, har de rutiner som hindrer spredning av metadata i filene dine.
  47.  
  48. Send: Hva gjør dere for lagringsbegrensning?
  49. Motta: Det er iverksatt tiltak for å slette informasjonen når formålet med behandlingen er oppfylt, dvs. når behandlingen av varselet er avsluttet (jf. GDPR art. 5 nr. 1 e).
  50. Motta: Fristen for sletting inkluderer også tiden det tar å fjerne backup med opplysningene. Denne tidsfristen er mulig å endre slik at fremtidige krav ivaretas.
  51. Motta: Lagring av data i nettleser er også begrenset. Oppe i høyre hjørne er det en tidtaker som logger deg automatisk ut ved inaktivitet.
  52. Send: Hvorfor blir meldingene mine uleselige etter en tid?
  53. Motta: Det er kun en ekstra sikkerhet for deg, slik at ingen kan lese over skuldrene dine. Hold musen over meldingen for å se den tydelig igjen.
  54.  
  55. Send: Har dere noen tiltak for å sikre at opplysningene jeg sender inn er av god kvalitet (korrekte og oppdaterte)?
  56. Motta: Muligheten for to-veis kommunikasjon mellom oss reduserer ulempen ved anonym varsling ettersom det er mulig å innhente flere opplysninger etter behov.
  57. Motta: Du kan selv avdekke uriktige eller ufullstendige opplysninger gjennom innsyn i opplysningene, og kan rette forespørsel om supplering eller retting av opplysningene direkte til saksbehandler her.
  58.  
  59. Send: Det er jo veldig fint! Men hvordan mener dere løsningen gjør det enklere for arbeidsplassen min å etterlever personvernregelverket?
  60. Motta: Løsningen styrker informasjonssikkerheten. Løsningen er et sikrere og tryggere alternativ enn å håndtere varslingen internt i virksomheten (f.eks. håndterer mange dette manuelt, på e-post eller i andre usikre løsninger).
  61. Motta: Styrket varslervern: Løsningen vil i betydelig grad redusere risikoen for at varsler og anklagede identifiseres og utsettes for gjengjeldelse, stigmatisering og andre påkjenninger som omdømmetap, psykiske påkjenninger etc.
  62. Motta: Løsningen gir behandlingsansvarlige økt kontroll over personopplysningene og reduserer risikoen ved bruk av databehandlere ettersom opplysningene er krypterte og utilgjengelige for både Trustcom og underleverandører.
  63.  
  64. Send: Ok - da har jeg bare noen kontrollspørsmål til slutt...
  65. Send: Finnes det en "glemt passord" funksjon?
  66. Motta: Nei, det finnes ikke. En "glemt passord" funksjon ville ikke sikre deg full anonymitet. Men du kan sende inn ett nytt varsel og vise til tidligere innsendt informasjon.
  67. Send: Ettersom jeg ikke kan få nytt passord, hva skjer om jeg mister passordet? Vil opplysningene mine bli borte?
  68. Motta: Neida! PwC vil ha tilgang selv om du mister passordet ditt.
  69. Send: Har dere vurdert faren for at noen utgir seg for å være noen andre? Altså et behov for identifisering?
  70. Motta: Som en funksjon av at løsningen er anonym, må dette være en selvfølge. Det er informasjonen du kommer med som er viktig. Pwc sier at de aldri har opplevd denne problematikken de syv årene de har jobbet i bransjen.
  71. Send: Hvilke tanker har dere gjort om de det blir varslet om, og deres rett til personvern?
  72. Motta: PwC følger anerkjent granskningsmetodikk, inkludert retten til innsyn og kontradiksjon for den det varsles på.
  73. Motta: Dersom det ikke kan gjøres uten å avsløre varslers identitet (hender en sjelden gang) og det ikke finnes andre innganger til undersøkelser, må varsler avgjøre om varselet skal trekkes eller forbeholdes den det varsles på (omvarslede).
  74. Send: Har dere tenkt at løsningen kan bli brukt til andre type varsling, slik som mobbesaker i skole osv?
  75. Motta: Ja! Det er mange bruksområder utover varsling. Elever er i dag omfattet av arbeidsmiljølovens regler om rett til varsling (nytt fra 1. jan 2020), er løsningen allerede i dag åpen for elever.
  76. Motta: PwC ønsker dessuten å ta i bruk løsningen for sitt Personvernombud også, så her er mulighetene mange!
  77. Send: Tusen takk!
  78. `;
  79.  
  80. let actions = presenter_script.split('\n');
  81. console.log(presenter_script)
  82.  
  83. let input_field = document.getElementById("message_field")
  84.  
  85. let fake_keypress = false;
  86. let curr = 0;
  87.  
  88. async function sleep(ms) {
  89. await new Promise(r => setTimeout(r, ms));
  90. }
  91.  
  92. function add_msg(text, type) {
  93. let el = postbox.insert('text', type)
  94. templateAttr(el, 'field', {data: text})
  95. if (type == 'received') {
  96. let id = 'dbd8dd58-e697-4628-8119-23cc58a8f913',
  97. h = parseInt(id.substring(0,32), 16) % 34,
  98. s = parseInt(id.substring(32,64),16) % 4,
  99. e = el.getElementsByTagName("div")[0];
  100.  
  101. if (type == "internal") {
  102. e.style.border = "2px solid hsl("+ 50+h*10 + ","+(s*10+50)+"%,85%)";
  103. }
  104. else {
  105. e.style.background = "hsl("+ 50+h*10 + ","+(s*10+50)+"%,85%)";
  106. }
  107. }
  108. }
  109.  
  110. async function clear_dialog() {
  111. let msgs = document.getElementById(ELEMENTS.postbox).getElementsByTagName('li');
  112. for (let i=0; i < msgs.length; i++) {
  113. msgs[i].style.height = '0px';
  114. //await sleep(1000);
  115. msgs[i].style.display = 'none';
  116. }
  117. fake_keypress = true;
  118. }
  119.  
  120. async function keydown(callback) {
  121. if (fake_keypress) {
  122. fake_keypress = false;
  123. }
  124. else {
  125. let keypressed = false;
  126. window.addEventListener('keydown', () => {
  127. keypressed = true;
  128. });
  129. while (!keypressed) {
  130. await sleep(100);
  131. }
  132. }
  133.  
  134. if (callback) {
  135. return await callback();
  136. }
  137. }
  138.  
  139.  
  140. (async () => {
  141. while (curr < actions.length) {
  142. let action = actions[curr].split(':');
  143. console.log(action);
  144.  
  145. switch(action[0]) {
  146. case prefix.send:
  147. input_field.value = action[1]
  148. await keydown(async function() {
  149. console.log('inp val: ', input_field.value, action[1])
  150. add_msg(input_field.value, 'sent')
  151. input_field.value = '';
  152. });
  153. break;
  154. case prefix.recv:
  155. await keydown(function() {
  156. add_msg(action[1], 'received');
  157. })
  158. break;
  159. case "D":
  160. case "":
  161. await clear_dialog();
  162. break;
  163. case "W":
  164. await sleep(action[1]);
  165. break;
  166. }
  167. curr++;
  168. }
  169. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement