img
img
img
img
img
img
[img]
Backup questo sconosciuto - il World Backup Day
Il backup: antipatico ma indispensabile...
[img]
UIBM - non ce la possiamo fare
La burocrazia è molto importante ma deve funzionare....
[img]
Smart working, telelavoro, lavoro a casa
Il lavoro remoto fatto a casa propria può sembrare una cosa meravigliosa ma nasconde qualche trappola....
[img]
Sparire da Internet è possibile?
Si può sparire da Internet?...
[img]
Fattura elettronica: estrarre un file con vba da p
Estrarre una fattura elettronica con VBA da p7m a XML...

Sembra strano doverlo ricordare e sembra strano che si debba addirittura organizzare una cosa come il "World Backup Day" (http://www.worldbackupday.com/it/) ma è sempre bene visto che ogni tanto qualcuno ci casca e resta senza i suoi dati, che siano aziendali o personali.

Quindi se sai di cosa si parla, leggi qui. È una pagina semplice con informazioni utili per riflettere e fare qualcosa.

Se c'è una cosa difficile è spiegare agli utenti che, in certi casi, quando si perdono i dati ... i dati sono perduti.

Che usiate un foglio di carta e una matita per copiare i dati digitali o un disco esterno o un servizio cloud, FATELO!

Come l'assicurazione della macchina se non serve vi chiederete perchè l'avete pagata ma se serve, il problema del suo costo è proprio l'ultimo.

backup

Non ce la possiamo fare con l'UIBM.

Avete mai fatto un deposito per una domanda di brevetto a l’UIBM?

La webapp è veramente è di scarso livello ma la procedura che c’è dietro è pensata da … non so chi riesce a pensare (se posso dire ‘pensare’) in questo modo.

La prima cosa è la ricerca: se non ti ricordi il numero di deposito (15 cifre) sei fregato.

Non potrebbero mostrare gli ultimi 10 o 20 elementi (metodo presente nella stragrande maggioranza delle applicazioni web e non)?

Poi, una volta ricordato il numero, l’elenco dei documenti non riporta la data e val la pena sottolineare che in questo tipo di pratiche ministeriali la cronologia è fondamentale; in altre parole è necessario aprire i documenti uno per uno per vedere in quale data è stato emesso.

Succede che durante tutto il periodo di deposito, verifica etc. ti mandano esiti, rilievi e domande varie che ti inviano con la PEC; e qui c’è da ridere.

A parte il fatto che lo stesso documento risulta nell’elenco dei documenti online e quindi basterebbe mandare la notifica con il link e non copia del documento per il quale comunque bisogna controllare la corrispondenza rispetto a quello online e archiviarlo, il bello, ma proprio  da sbellicarsi dalle risa, è che la PEC contiene due documento quasi uguali.

Sapete qual è la differenza tra i due?

Ah ah ah. Scusate ma ancora rido…

Uno è firmato solo dall’autore del documento e uno, perfettamente uguale nei contenuti è firmato anche da “Segnature Protocollo”.

Già qui viene da ridere perché basterebbe mandare solo il secondo; pensate quanto lavoro inutile per produrre due documenti uguali.

Ma il bello è che la firma del protocollo… non è valida.

E giù a ridere come matti…

Un’istituzione che fa del rispetto formale l’essenza della sua esistenza, non rispetta la forma.

Poi altre piccole cose come l’interfaccia non responsive (al giorno d’oggi?); data la natura del servizio si potrebbe soprassedere ma anche sul desktop presenta popup che non stanno al loro posto e in certi casi sono illeggibili.

E non c’è la data.

L’invio dei documenti richiesti prevede una lista obbligata che però non contempla tutti i casi.

A dire il vero non c’è niente da ridere.

Secondo voi ce la possiamo fare?

#noncelapossiamofare

Il lavoro remoto fatto a casa propria può sembrare una cosa meravigliosa ma nasconde qualche trappola.

Se non fai attenzione rischi di infilarti in un circolo vizioso che alla fine non ti piacerà.

È bene fare mente locale sui benefici e sui problemi per fare in modo che i primi siano più dei secondi.

Il rischio principale è l'abbrutimento e cioè non distinguere più quando sei a casa tua per lavoro o per te.

Un'altra cosa che può capitare è la pigrizia in tante piccole cose: per esempio restare in pigiama.

Anche mangiare disordinatamente è un errore; meglio fare la pausa pranzo canonica.

Trascurare questi aspetti significa rendere faticoso, difficile e anche poco produttivo il lavoro da casa.

Per cominciare, anche se sei a casa tua, non pensare di essere a casa tua: metti insieme un ufficio vero e proprio anche si si tratta di un tavolino con il computer e una sedia.

Organizzati il lavoro e il tempo come se andassi in ufficio.

Stabilisci un orario di inizio e fine e possibilmente rispettalo.

Fai colazione, lavati, truccati e vestiti (nell'ordine che preferisci) come se dovessi uscire.

Quando è tutto pronto 'recati in ufficio' (anche se sono solo due metri) e comincia a lavorare.

Non lavorare sul divano; ti fai l'idea che sei in vacanza ma non è così. Produci di meno, la tv ti tenta e ti prende anche la sonnolenza.

Meglio che fai tutte le pause che vuoi (puoi considerare tutto il tempo che risparmi non spostandoti) tenendo presente che sei in pausa.

Non mangiare sulla tastiera (questo vale anche quando si è nell'ufficio vero); in questo modo non distingui tra pausa e lavoro.

Se possibile fai una pausa ogni tanto uscendo di casa (virus e intemperie permettendo): per esempio fare la spesa è un modo per spezzare, muoversi e far riposare gli occhi.

Vanno bene anche esercizi di yoga, ginnastica isometrica (ci sono quantità di guide su Internet) tanto per muoversi un po'.

Se lavori in team mettiti d'accordo per uno più contatti giornalieri (chat, video, social, telefono) con i tuoi colleghi e non necessariamente su temi prettamente lavorativi.

Utilizzare i social network, whatsapp e affini non è sbagliato; basta solo regolarsi un po' e stabilire pause dedicate allo scopo di tanto in tanto.

Cerca di evitare le attività domestiche come parte del lavoro; non capisci più dove sei.

Sei hai persone in casa spiega che possono interagire con te solo durante le pause perché per il tuo lavoro hai bisogno di concentrazione. "visto che sei qui ti posso chiedere…?" non va bene.

Se ci sono le condizioni programma una visita in ufficio (quello vero) ogni tanto (una volta a settimana o poco più) per mantenere il contatto umano.

A fine giornata chiudete tutto e non pensateci più.

I vantaggi sono che non perdi tempo per il trasferimento da casa al lavoro, lavori in un ambiente più confortevole per te, non hai interruzioni continue di colleghi che ti chiedono mille cose.

In molti casi puoi organizzarti l'orario come ti pare (per esempio una pausa pranzo prolungata e un fine lavori più in la).

Gli svantaggi sono che ti muovi di meno e riduci le interazioni sociali (che non è sempre un male).

Se preferisci un elenco di regole, si potrebbe sintetizzare così:

  • Ritaglia in casa uno spazio destinato al ruolo di ufficio.
  • Stabilisci degli orari.
  • La mattina preparati, vestiti (no pigiama o tuta) e recati in ufficio come se questo fosse in un altro posto.
  • Fai più pause ma non lavorare sul divano (yoga e ginnastica nelle pause aiutano).
  • Organizza contatti giornalieri con i colleghi con video chiamate, chat e affini.
  • Stabilisci delle pause per usare i social network e chat (farlo di continuo distrae e perdi il filo del lavoro).
  • Evita attività domestiche se non quando sei in pausa.
  • Non interagire con familiari durante il lavoro ma solo nelle pause.
  • Se possibile pianifica una visita nell'ufficio reale ogni tanto.
  • Quando la giornata è finita è finita.

Se, invece, hai un lavoro creativo, dove cioè conta l'idea e non la quantità di ore fatte, allora dimentica tutto e fa quello che ti pare come ti pare e quando ti pare.

No, la risposta è no, e molto probabilmente nessuno desidera davvero la fine di Internet.

La rete globale è entrata prepotentemente nella nostra vita quotidiana ed è diventata una parte essenziale delle nostre esistenze. Lavoro, shopping, intrattenimento e cultura: internet è un mare aperto in cui ognuno di noi può trovare ciò che più gli aggrada. È anche giusto sottolineare che in rete finiscono milioni di dati personali, di informazioni sensibili e di foto private che troppo spesso vengono utilizzati per scopi poco chiari. A volte sono gli stessi utenti che più o meno inconsapevolmente, forniscono questi dati, altre volte ci vengono estrapolati con metodi poco chiari.

Esistono però dei metodi per evitare di venire costantemente tracciati e monitorati quando siamo online? A questa domanda la risposta è sì, e di seguito vedremo alcuni strumenti e applicazioni utili per chi vuole sfuggire al controllo nell’età della sorveglianza.

  1. Usate motori di ricerca sicuri

Il primo approccio con internet lo facciamo attraverso il motore di ricerca, che per la gran parte di noi è Google. Alla Big G potete sostituire facilmente dei motori di ricerca molto più sicuri a livello di protezione della privacy. Infatti, nonostante esista anche una modalità in incognito, non sparirete mai dalla lente di Google – che terrà comunque conto delle vostre preferenze e movimenti. Proprio per questo, se non volete che ogni vostra visita online venga registrata potete affidarvi a strumenti come DuckDuckGo.

  • Controllate sempre le impostazioni della privacy

Qualunque sito vi iscriviate – compresi i social network - controllate sempre le impostazioni della privacy. Attraverso questa sezione potete capire quali dati vengono raccolti e come vengono usati ed eventualmente potete anche disiscrivervi da servizi non utilizzati e richiedere anche la cancellazione dei propri dati.

  • Le virtual private network

Un altro strumento utilissimo per permettervi di non essere rintracciati online è connettervi attraverso una virtual private network. Comunemente chiamate VPN, questi servizi, disponibili anche per il vostro router, fanno sì che il vostro internet provider non riesca a leggere il vostro indirizzo IP in quanto verrete connessi ad un server diverso. Insomma, le VPN fanno da schermo tra voi e il resto della rete, permettendovi di navigare in totale tranquillità senza che nessuno, né hacker né aziende possano tracciare le vostre operazioni.

  • Il diritto all’oblio

Introdotto da qualche anno, la normativa europea sul diritto all'oblio prevede che anche un comune cittadino possa richiede formalmente la cancellazione di tutti i propri dati presenti nei motori di ricerca – ovviamente nello spazio virtuale dei server in Europa, non essendo una legge valida al di fuori dei confini comunitari. Google ha comunque presentato un report recentemente in cui si nota come sono state moltissime le richieste di cancellazione dei dati, soprattutto da parte di privati cittadini.

  • Attenzione ai siti web e alle password

Non tutti i siti web sono uguali. I siti sicuri sono contrassegnati con la dicitura HTTPS all'inizio dell'url: è un sistema per il quale possiamo riconoscere i siti ritenuti affidabili. In caso di connessione a un sito non sicuro sarà Google stesso a bloccarla avvisandoci con un messaggio di attenzione. E ancora una volta dobbiamo ricordare quant'è importanti proteggere le nostre password e selezionare per i nostri account delle password univoche e casuali, molto più sicure ed efficaci di password come date di nascita e nome del gatto.

Quindi, più che sparire da Internet, è meglio pensare a non esporsi troppo su Internet.

Procedura 'semplice' per estrarre una fattura elettronica da un file p7m che incapsula XML.

Procedura 'semplice' per estrarre una fattura elettronica da un file XML incapsulato in un file firmato p7m. Libreria CRYPT32.DLL di Windows. In sintesi i passi da seguire:
  • Riferimento libreria (Declare)
  • Definizione struttura dati (Type)
  • Lettura del file e decodifica (CryptDecodeMessage)
  • Caricamento oggetto XML (XML.Load)
Costanti
Const CMSG_DATA_FLAG = 2                    ' Raw data with no particular formatting
Const CMSG_SIGNED_FLAG = 4                  ' Signed message
Const CMSG_ENVELOPED_FLAG = 8               ' Enveloped (encrypted) message
Const CMSG_SIGNED_AND_ENVELOPED_FLAG = 16   ' Signed and encrypted message
Const CMSG_HASHED_FLAG = 32                 ' Hashed message
Const CMSG_ENCRYPTED_FLAG = 64              ' Encrypted message
Const CMSG_DATA = 1                         ' Raw data with no particular formatting
Const CMSG_SIGNED = 2                       ' Signed message
Const CMSG_ENVELOPED = 3                    ' Enveloped (encrypted) message
Const CMSG_SIGNED_AND_ENVELOPED = 4         ' Signed and encrypted message
Const CMSG_HASHED = 5                       ' Hashed message
Const CMSG_ENCRYPTED = 6                    ' Encrypted message

Const CERT_FIND_ANY = 0
Const CERT_FIND_EXISTING = &HD0000
Const CERT_FIND_ISSUER_OF = &HC0000
Const CERT_FIND_ISSUER_STR = &H70004
Const CERT_FIND_KEY_SPEC = &H90000
Const CERT_FIND_PROPERTY = &H50000
Const CERT_FIND_SUBJECT_STR = &H70007
Const X509_ASN_ENCODING = &H1               ' X.509 Encoding
Const PKCS_7_ASN_ENCODING = &H10000         ' PKCS #7 Message Formatting
Strutture dati
Public Type CRYPT_DECRYPT_MESSAGE_PARA
    cbSize As Long
    dwMsgAndCertEncodingType As Long
    cCertStore As Long                      ' hCryptProv As Long
    pfnGetSignerCertificate As Long         ' Pointer to callback function    HCERTSTORE *rghCertStore;
    dwFlags As Long                         ' pvGetArg As Long  ' void Pointer
End Type

Public Type CRYPT_VERIFY_MESSAGE_PARA
    cbSize As Long
    dwMsgAndCertEncodingType As Long
    hCryptProv As Long                      ' HCRYPTPROV_LEGACY hCryptProv;
    pfnGetSignerCertificate As Long         ' Pointer to callback function PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate;
    pvGetArg As Long                        ' void Pointer
End Type
Riferimento librerie - Dichiarazione
Public Declare Function CryptDecodeMessage Lib "Crypt32.dll" (ByVal dwMsgTypeFlags As Long, _
                                            pDecryptPara As CRYPT_DECRYPT_MESSAGE_PARA, _
                                            pVerifyPara As CRYPT_VERIFY_MESSAGE_PARA, _
                                            ByVal dwSignerIndex As Long, ByVal pbEncodedBlob As String, _
                                            ByVal cbEncodedBlob As Long, ByVal dwPrevInnerContentType As Long, _
                                            pdwMsgType As Long, pdwInnerContentType As Long, _
                                            ByVal pbDecoded As String, pcbDecoded As Long, _
                                            ppXchgCert As Long, ppSignerCert As Long) As Long
Utilizzo
Public Function leggiFileFirmato(ByVal NomeFile As String) As String
    ' Funzione per leggere il contenuto di un file firmato p7m
    ' [NomeFile] nome del file da leggere completo di percorso
    ' Restituisce il contenuto del file firmato
    
    On Error Resume Next
    Dim dwMsgTypeFlags As Long, i As Long
    Dim pDecryptPara As CRYPT_DECRYPT_MESSAGE_PARA
    Dim pVerifyPara As CRYPT_VERIFY_MESSAGE_PARA
    Dim dwSignerIndex As Long
    Dim dwPrevInnerContentType As Long
    Dim pdwMsgType As Long, pdwInnerContentType As Long
    Dim ppXchgCert As Long, ppSignerCert As Long
    Dim m_lHCryptProv As Long               ' Handle for the cryptographic service provider (CSP)
    
    Dim messaggioFirmato As String
    Dim messaggioFirmato_L As Long          ' Lunghezza messaggio
    Dim messaggioDecodificato As String
    Dim messaggioDecodificato_L As Long
    
    Dim iFile As Integer
    iFile = FreeFile
    Open NomeFile For Binary Access Read As #iFile
    messaggioFirmato = Input(LOF(iFile), iFile)
    Close #iFile

    messaggioDecodificato = Base64Decode(messaggioFirmato)  ' Verifica codifica base64
    If Err.Number <> 0 Then     ' = -2147467259  "Errore durante l'analisi di "..." come tipo di dati bin.base64."
        Err.Clear
    Else
        messaggioFirmato = messaggioDecodificato
    End If
    messaggioFirmato_L = Len(messaggioFirmato)  ' Lunghezza
    messaggioDecodificato = String(messaggioFirmato_L, vbNullChar)
    messaggioDecodificato_L = 0 'Len(messaggioDecodificato)
    
    ' strutture dati
    pVerifyPara.cbSize = 20
    pVerifyPara.dwMsgAndCertEncodingType = X509_ASN_ENCODING Or PKCS_7_ASN_ENCODING  '--- The encoding type
    pVerifyPara.hCryptProv = m_lHCryptProv      '--- The CSP handle
    ' -
    pDecryptPara.cbSize = 16
    pDecryptPara.dwMsgAndCertEncodingType = pVerifyPara.dwMsgAndCertEncodingType    'X509_ASN_ENCODING Or PKCS_7_ASN_ENCODING
    'pDecryptPara.cCertStore = 0  '1000
    pDecryptPara.dwFlags = CMSG_SIGNED_AND_ENVELOPED
    pdwMsgType = CMSG_DATA_FLAG
    dwMsgTypeFlags = CMSG_SIGNED_FLAG    ' CMSG_DATA_FLAG
    pdwInnerContentType = 0
    
    i = CryptDecodeMessage(dwMsgTypeFlags, pDecryptPara, _
                             pVerifyPara, dwSignerIndex, _
                             messaggioFirmato, messaggioFirmato_L, _
                             dwPrevInnerContentType, pdwMsgType, _
                             pdwInnerContentType, messaggioDecodificato, _
                             messaggioDecodificato_L, ppXchgCert, ppSignerCert)
    i = CryptDecodeMessage(dwMsgTypeFlags, pDecryptPara, _
                             pVerifyPara, dwSignerIndex, _
                             messaggioFirmato, messaggioFirmato_L, _
                             dwPrevInnerContentType, pdwMsgType, _
                             pdwInnerContentType, messaggioDecodificato, _
                             messaggioDecodificato_L, ppXchgCert, ppSignerCert)
    Dim alfa As String
    alfa = " 0 Then
        messaggioDecodificato = Mid(messaggioDecodificato, i)
    End If
    If Err.Number = 0 Then
        leggiFileFirmato = messaggioDecodificato
    End If

End Function
 
Function Base64Decode(ByVal vCode)
    On Error Resume Next
    Dim oXML, oNode
    Set oXML = CreateObject(lb_XML_DOM)
    Set oNode = oXML.createElement("base64")
    oNode.DataType = "bin.base64"
    oNode.Text = vCode
    If Err.Number = 0 Then
        Base64Decode = Stream_BinaryToString(oNode.nodeTypedValue)
    End If
    Set oNode = Nothing: Set oXML = Nothing
End Function
Foto di Lorenzo Cafaro da Pixabay

Documentazione ufficiale Microsoft https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptdecodemessage

Manuale ben scritto per la gestione della crittografia con Visual Basic. Davis Chapman - Sams Publishing

Developing Secure Applicati... by madmhackz on Scribd

Potrebbe interessarti: https://resch.pro/catalogo-relazionale/