Verschlüsselung Excel - Pivot
#1
Hallo Community,

Ich habe ein Problem mit Excel und bin auf eure Anregungen gespannt. Ich habe mich bereits durch verschiedene Threads durchgelesen, aber noch kein Problem gefunden, welches meinem sehr ähnlich ist:

Ich erstelle z.Z. eine Kostenübersicht, die ich an einen Personenkreis verschicken muss. 
Auf dem ersten Sheet meines Workbooks habe ich eine Pivot Tabelle, die teilweise sensible Daten enthält. Diese werden als Ampel (Bedingte Formatierung) dargestellt. Die Pivot bezieht sich auf ein weiteres Blatt, welches ich im Stil von "http://www.clever-excel-forum.de/Thread-Verschluesselung-einzelner-Zellen" verschlüsselt habe. 

In der Pivot habe ich es bereits so eingestellt, dass zum Einen nur die Ampel angezeigt wird und dass die Formeln ausgeblendet werden.
Wenn ich das ganze dann mit einem Passwort schütze, habe ich leider nur das Minimum an Schutz erreicht. 

Gibt es sonst noch etwas, dass ich tun kann?

Danke für eure Antworten


PS: die Ampel bezieht sich auf Prozente die, abhängig von der Angabe einer Kondition, variabel sind. D.h. man kann die Daten nicht mit Dummies ersetzen..
Top
#2
Hallo,

man kann für jeden user ein Password vergeben und dann kontrolliert nur bestimmte Arbeitsblätter sichtbar machen, d.h. die anderen Sheets mit "veryHidden" verstecken.

Um das Passwort abzusichern kann man im Workbook nur einen hash ablegen.

Erstaunlichweise ist es in xl nicht so einfach hash's zu erzeugen:

- entweden mit "arraylist"

- oder mit diesem Code, der letztendlich VB-Prozeduren nutzt:


Code:
Public Function BASE64SHA1(ByVal sTextToHash As String)

   Dim asc As Object
   Dim enc As Object
   Dim TextToHash() As Byte
   Dim SharedSecretKey() As Byte
   Dim bytes() As Byte
   Const cutoff As Integer = 5

   Set asc = CreateObject("System.Text.UTF8Encoding")
   Set enc = CreateObject("System.Security.Cryptography.HMACSHA1")

   TextToHash = asc.GetBytes_4(sTextToHash)
   SharedSecretKey = asc.GetBytes_4(sTextToHash)
   enc.Key = SharedSecretKey

   bytes = enc.ComputeHash_2((TextToHash))
   BASE64SHA1 = EncodeBase64(bytes)
   BASE64SHA1 = Left(BASE64SHA1, cutoff)

   Set asc = Nothing
   Set enc = Nothing

End Function

Private Function EncodeBase64(ByRef arrData() As Byte) As String

   Dim objXML As Object
   Dim objNode As Object

   Set objXML = CreateObject("MSXML2.DOMDocument")
   Set objNode = objXML.createElement("b64")

   objNode.DataType = "bin.base64"
   objNode.nodeTypedValue = arrData
   EncodeBase64 = objNode.text

   Set objNode = Nothing
   Set objXML = Nothing

End Function


Die ersten Functions habe ich getestet.

Hier in den Foren werden zwar manchmal "API"'s gezeigt, aber die Nutzung von VB ist extrem selten /tabu?

Um ein Workbook entsprechen vorzubereiten, müßtest Du den Schutz in der richtigen Reihenfolge eingeben, damit du dich nicht selbst aussperrst.

Mal sehen, was hier noch kommt.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Prio
Top
#3
Hallo Prio,

die Diskussionsbereitschaft scheint bei diesem Thema heute nicht so hoch, deswegen versuche ich es nocheinmal:

Allgemein: sensible Daten gehören nicht in ein xl-Workbook, dass anderen bereitgestellt werden soll. Zumindest "die Cracks" werden so ziemlich jeden Schutz umgehen können.

Aber für "Normal-User" geht zumindest etwas:

- das Workbook.Open Password ist seit xl2013 recht gut (davor nicht)
- wie in dem zitierten Post vom Januar kann man mit VBA Sheets "veryHidden" verstecken und mit einem VBA-Passwort sichern. Seit xl2013 ist das ebenfalls "recht" gut
- wenn man das macht, bracht man für jeden user ein Passwort innerhalb der Workbooks, um die richtigen Sheets zu zeigen. Dabei könnte man (wie oben gezeigt) das Passwort "hashen"

Alternativ könnte man das Workbook vor dem Versenden teilen und jedem Empfänger nur seine Daten übermitteln.

mfg
Top
#4
Hallo Fennek,
(09.05.2017, 16:22)Fennek schrieb: - das Workbook.Open Password ist seit xl2013 recht gut (davor nicht)
- wie in dem zitierten Post vom Januar kann man mit VBA Sheets "veryHidden" verstecken und mit einem VBA-Passwort sichern. Seit xl2013 ist das ebenfalls "recht" gut
Einspruch, euer Eheren! Das PAsswort zum Öffnen der Datei ist mW mindestens seit xl2007 mit AES128 umgesetzt, so dass ich für diese Zwecke durchaus von einem brauchbaren Schutz sprechen würde.

Im Gegensatz dazu ist der Makro-Schutz in keiner Version von Excel wirklich sicher und binnen kurzer Zeit überlistet! Blätter und Code können relativ leicht eingesehen werden.
Gruß
Michael
Top
#5
Hallo,
(09.05.2017, 12:28)Prio schrieb: Ich erstelle z.Z. eine Kostenübersicht, die ich an einen Personenkreis verschicken muss. Auf dem ersten Sheet meines Workbooks habe ich eine Pivot Tabelle, die teilweise sensible Daten enthält.
Ich weiß ja nicht wie sensibel die Daten sind und welche Daten letztendlich betroffen sind. Aber der Blattschutz und der Arbeitsmappenschutz sind auf keinen Fall sicher und binnen kürzester Zeit überwunden.

Wenn es sich um Namen handelt, könnte man diese vor dem Versenden "verfremden" (z. B. durch Phantasienamen ersetzen, o.Ä.).
Gruß
Michael
Top
#6
@Steuerfuzzi

ja, das VBA-Password zu entfernen, war nicht so schwer, auch ohne Hexe. Es ist mir allerdings das erste Mal gelungen.

Dabei wurde das ganze VBA-Modul zerstörrt, aber das versteckte Sheet konnte wiederhergestellt werden.

(Getestet mit xl2016)



Ergebnis: keine vertraulichen Daten in ein Sheet.

mfg
Top
#7
Ich habe das Problem jetzt mit Verfremdung der Daten gelöst.
Im Prinzip bin ich alle Konditionen durchgegangen und habe alle Prozentwerte mit Dummies ersetzt. Keine elegante, aber sichere Lösung.

Danke für alle Vorschläge und die rege Beteiligung! :17:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste