Achille e la tartaruga. Tempo fa ho scritto questo articoletto per levarmi un “prurito”, quello di andare a fondo di questo celebre paradosso.
Buona lettura.
Mar 07
Achille e la tartaruga. Tempo fa ho scritto questo articoletto per levarmi un “prurito”, quello di andare a fondo di questo celebre paradosso.
Buona lettura.
Mar 06
Il funzionamento della crittografia classica su internet è questo:
Mar 03
Come decifrare i messaggi di errore?
Ho questo messaggio che catturo con la funzione php openssl_error_string()
error:0906D06C:PEM routines:func(109):reason(108)
Uso la funzione da linea di comando openssl errstr citando il codice di errore (quello in grassetto):
$ openssl errstr 0906D06C error:0906D06C:PEM routines:PEM_read_bio:no start line
Feb 12
Vediamo un secondo semplice esempio di sequenza di operazioni per cifrare un messaggio e successivamente decifrarlo, con lo scopo di scrivere un messaggio segreto che il destinatario può attribuire inequivocabilmente ad un solo mittente (nel primo esempio ci assicuravamo che solo il destinatario potesse leggere il messaggio). Lo scenario è il classico Bob scrive ad Alice, L’attenzione, più che sul codice, è posta sulla corretta sequenza di operazioni e su quali sono i parametri giusti da utilizzare.
Come prima cosa Bob si procura una coppia di chiavi RSA
marcob@js:~$ openssl genrsa -des3 -out privatekey 1024 Generating RSA private key, 1024 bit long modulus ..........++++++ ..............++++++ e is 65537 (0x10001) Enter pass phrase for privatekey: Verifying - Enter pass phrase for privatekey: marcob@js:~$ ll totale 132 drwxrwxr-x 2 marcob marcob 4096 feb 10 09:37 ./ drwxrwxr-x 8 marcob marcob 4096 feb 7 15:56 ../ -rw-rw-r-- 1 marcob marcob 963 feb 10 09:38 privatekey
Certificato della chiave privata:
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,4FA0F44C01DF5F3F J6zb3OI9oCN/31VvhRRlzAxiv5AilIlFy0dTgmySi3G+ffYzalIm5lrgx7sSgOPa TgR4djJUPHg24J4ZceicYN+J3rwQQR02okTBGdMwx9uN+dwtJI7eg7s6cYm5Ulu9 +hT72rvSejlQNh8qCb0+291USpWHYID6X6Hef5SH7GUTaJT76MGEOpzp3VU+0oB6 yTdJzA43qDsME4OwvenQyLbdKpM/iXGHn9h/OLaSuJIrLNUDOvP3mCqBBa7RvFIQ FsDSF7L0zdozjpxM/Lr6oa3A7dLHyqWTuDKg+S3Z3ETdzlV34FvBSnjYtltE2OZB WFpB7lip5wVPOxA4sUZ0RXlRaWytC5CROjhc5VnR3kd6XwMmdmbTKkdOYy00OUIq bNfLYeVsOr4HyIVXxOYbMB41EoN4FzyXSosW9baXUxQ2L29lzJY1bIRmljIiF4Q7 Qk5/qLwU58y3EmtE0itMWlC3Iix0HY3UUZlxfc9JapsuT/6lVEzrFNIVaDYZilZb KHQS39ZAWP2PI2LQuC5KGDme1rwDfLvKEYisZbLUTgIJIzfOf9ETpqtDR9Pot1uz G9rMabMsA5BOzUyqXkd5I+ilZQD71BlruwBgQ7d1zwyi4mN4jwsRghuoEuTMwWZP lasIJVy1LS6gE7zIGDiJItCan9Cm1DuZwlE6lXtlf1aahK4rUz3MvgRCV2cs2S8Z mjzFg8JqHu5Q09U/J61i2xzWiyLsVCsSpoupDqoQtoluS6f9HUYfZZbpBJTKm0IY Y6Aypggbxqq52L1XPpj+aF5H5uzBHQoDpXqmKNp3rV2T6AYMlzRVog== -----END RSA PRIVATE KEY-----
marcob@js:~$ openssl rsa -in privatekey -pubout -out publickey Enter pass phrase for privatekey: writing RSA key marcob@js:~$
Certificato della chiave pubblica =>
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkg9z7E2Mh0nNDHy8/C3tRtqXQ sePXpMg+FXxf5EHxzMPfX+AbL2e9v6gUX8BHekiKvWoopl5OtPb2nubHAW2lIDnB Ku1DEWcVGAaIbG/aC6804I0oWEOHCN6Wp0Z/En9Fw5DiuRdfQULPvhjD4Oy5g0UQ 6GkjYCiv4GnJRbpENwIDAQAB -----END PUBLIC KEY-----
Bob può inviare la sua chiave pubblica ad Alice, oppure può metterla nel suo sito, in modo che chiunque possa scaricarla.
Ora Bob cifra un messaggio con la sua sua chiave privata; Alice lo potrà aprire solo utilizzando la chiave pubblica di Bob. In questo modo ho la certezza del mittente.
Å/ŽðgwÆ{brذ-¼C3Ü„Éèbyðto¥ìKtY3ï }Ù«ˆ`Î9‡"ØßDšão;4¾–Ô6œ›W¨>5
¿4ÉË2amà
n•hLÅ5Öþ(nìz >Œ$U[:‘¥
¨¬,uð;‚4´99¬}hyJ„˜ájB
DMUvgY4c8Gd3xntictiwLbxDM9yEyehiHHkS8HRvpexLdFkz7wl92X+riGDOOYci2N9EFprjbzs0vpbUNp ybF1eoPjUNvzTJyzIeFWFt4A1ulWhMxTXW/ihu7HogAT6MJFUbWzqRpQqoAqwsdQLwO4I0tDk5rH1oeQtK hJjhakI=
Invio il dato ad Alice
Con questa sequenza Alice è certa che solo Bob potrà essere colui che ha le inviato il messaggio. Ma essendo pubblica la chiave pubblica di Bob, Alice non potrà essere certa di essere l’unica che lo può leggere.
Feb 12

Oggi vediamo un semplice esempio di sequenza di operazioni per cifrare un messaggio e successivamente decifrarlo, con lo scopo di scrivere un messaggio segreto che solo il destinatario può decifrare. Lo scenario è il classico Alice scrive a Bob un messaggio che solo lui può leggere, utilizzando la crittografia asimmetrica ideata negli anni 70 da Rivest, Adleman e Shamir, nella quale si cifra un messaggio con una chiave (pubblica) e si decifra con una seconda chiave, accoppiata però alla prima (privata).
L’attenzione, più che sul codice, è posta sulla corretta sequenza di operazioni e su quali sono i parametri giusti da utilizzare.
Come prima cosa Bob si procura una coppia di chiavi RSA
marcob@js:~$ openssl genrsa -des3 -out privatekey 1024 Generating RSA private key, 1024 bit long modulus ..........++++++ ..............++++++ e is 65537 (0x10001) Enter pass phrase for privatekey: Verifying - Enter pass phrase for privatekey: marcob@js:~$ ll totale 132 drwxrwxr-x 2 marcob marcob 4096 feb 10 09:37 ./ drwxrwxr-x 8 marcob marcob 4096 feb 7 15:56 ../ -rw-rw-r-- 1 marcob marcob 963 feb 10 09:38 privatekey
Certificato della chiave privata:
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,4FA0F44C01DF5F3F J6zb3OI9oCN/31VvhRRlzAxiv5AilIlFy0dTgmySi3G+ffYzalIm5lrgx7sSgOPa TgR4djJUPHg24J4ZceicYN+J3rwQQR02okTBGdMwx9uN+dwtJI7eg7s6cYm5Ulu9 +hT72rvSejlQNh8qCb0+291USpWHYID6X6Hef5SH7GUTaJT76MGEOpzp3VU+0oB6 yTdJzA43qDsME4OwvenQyLbdKpM/iXGHn9h/OLaSuJIrLNUDOvP3mCqBBa7RvFIQ FsDSF7L0zdozjpxM/Lr6oa3A7dLHyqWTuDKg+S3Z3ETdzlV34FvBSnjYtltE2OZB WFpB7lip5wVPOxA4sUZ0RXlRaWytC5CROjhc5VnR3kd6XwMmdmbTKkdOYy00OUIq bNfLYeVsOr4HyIVXxOYbMB41EoN4FzyXSosW9baXUxQ2L29lzJY1bIRmljIiF4Q7 Qk5/qLwU58y3EmtE0itMWlC3Iix0HY3UUZlxfc9JapsuT/6lVEzrFNIVaDYZilZb KHQS39ZAWP2PI2LQuC5KGDme1rwDfLvKEYisZbLUTgIJIzfOf9ETpqtDR9Pot1uz G9rMabMsA5BOzUyqXkd5I+ilZQD71BlruwBgQ7d1zwyi4mN4jwsRghuoEuTMwWZP lasIJVy1LS6gE7zIGDiJItCan9Cm1DuZwlE6lXtlf1aahK4rUz3MvgRCV2cs2S8Z mjzFg8JqHu5Q09U/J61i2xzWiyLsVCsSpoupDqoQtoluS6f9HUYfZZbpBJTKm0IY Y6Aypggbxqq52L1XPpj+aF5H5uzBHQoDpXqmKNp3rV2T6AYMlzRVog== -----END RSA PRIVATE KEY-----
marcob@js:~$ openssl rsa -in privatekey -pubout -out publickey Enter pass phrase for privatekey: writing RSA key marcob@js:~$
Certificato della chiave pubblica =>
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkg9z7E2Mh0nNDHy8/C3tRtqXQ sePXpMg+FXxf5EHxzMPfX+AbL2e9v6gUX8BHekiKvWoopl5OtPb2nubHAW2lIDnB Ku1DEWcVGAaIbG/aC6804I0oWEOHCN6Wp0Z/En9Fw5DiuRdfQULPvhjD4Oy5g0UQ 6GkjYCiv4GnJRbpENwIDAQAB -----END PUBLIC KEY-----
Bob può inviare la sua chiave pubblica ad Alice, oppure può metterla nel suo sito, in modo che chiunque possa scaricarla.
Ora Alice cifra un messaggio con la chiave pubblica di Bob; lui (e solo lui) potrà leggere il messaggio utilizzando la sua chiave privata. In questo modo ho la certezza del destinatario.
™ÍB÷ œtΧÖà6õÖ]R¹â¸'à/KPqÙ°Æ…ÒÈ·õ3^†3ëwV®úó±èn¾Z_•ìÒÌZùÑ‘PKæ]ÖUI‰
?ÆJ7OŠ}=È(ë·QZ«® ý¥£cF&š¹pkw{0fszµnÔ8‹SÊ\1€$>s
mRfNQvcgnHTOp9bgNvXWXRdSueK4J+AvS1Bx2bDGhdLIgbf1jRozXoYz63dWrvqd87HoBm6+Wl+ V7NLMAVr5E9GRUEvmXdYRVUmJCho/xko3T4oYfT3IKOu3UVqrrh0g/aWjY0YDJpq5cGt3ezBmc3 q1bgTUOItTf8pcMYAkPnM=
Invio il dato a Bob
Con questa sequenza solo Alice è certa che solo il destinatario Bob potrà leggere il suo messaggio. Ma essendo pubblica la chiave pubblica di Bob, Bob non potrà essere certo di chi ne sia il mittente.
Gen 27

La Macchina Enigma – fu usata dai tedeschi per le comunicazioni cifrate. I codici da essa prodotti furono decifrati, assieme al funzionamento della macchina, da Alan Turing durante la II Guerra Monidiale, a Bletchley Park.
OpenSSL è un toolkit free software / open source per gestire la crittografia.
A tutt’oggi la crittografia commerciale si basa sul fatto che se è facile eseguire n * m = p, fattorizzare p in fattori primi invece è un problema difficile, incredibilmente difficile soprattutto quando n e m sono numeri primi “grandi”.
OpenSSL usa questa aritmetica per calcolare crittografie di dati e non c’è quindi da stupirsi se possiamo usarlo per stabilire se un certo numero intero è primo oppure no (nota che implicitamente OpenSSL converte il numero in esadecimale):
marcob@js:~$ openssl prime 119054759245460753 1A6F7AC39A53511 is not prime
Proviamo un po’ più avanti:
marcob@js:~$ openssl prime 119054759245460761 1A6F7AC39A53519 is prime
Gen 23
Problema: si scopre che un determinato server database (in questo caso Oracle) è bombardato dalle negoziazioni di connessione da parte di Mirthconnect. Questo provoca una degradazione delle prestazioni del DBMS come per una sorta di attacco DOS.
Generalmente una connessione viene aperta, viene svolta una attività, e viene poi chiusa. Risulta spesso che il tempo di utilizzo del database in questo ciclo sia per una minima parte composto dal tempo di esecuzione dell’istruzione PL/SQL e invece per la maggior parte dal tempo di negoziazione tra il listener e il database server.
Se gli accessi sono molto frequenti, è preferibile tenere la connessione aperta e lanciare più attività, utilizzando una connessione da un pool di connessioni persistenti.
Una soluzione è quella di far aprire la connessione al db non dall’interno del componente JavaScript che ne ha bisogno ma dallo script di deploy:
In questo modo abbiamo la possibilità di avere una connessione persistente salvata nella mappa globale (globalChannelMap, accessibile da tutti i canali quindi) e fare riferimento ogni volta a questa evitando di invocare il metodo DatabaseConnectionFactory.createDatabaseConnection() che provocherebbe la negoziazione di una nuova connessione.
Gen 16
Come parte delle celebrazioni per il suo 60° compleanno (e per aiutarlo a continuare a sentirsi giovane), il CERN ha indetto una nuova competizione per gli studenti: la Beam line for schools.
Il CERN invita gli studenti dai 16 anni in su, provenienti da ogni parte del mondo, a inviare una proposta di un esperimento con un fascio di particelle del Protonsincrotrone.
Ogni squadra può essere composta da un numero massimo di 30 studenti con almeno un supervisore adulto. Questa estate, un numero massimo di 9 studenti della squadra scelta sarà invitata al CERN per eseguire l’esperimento che hanno messo a punto. Le spese di viaggio e di soggiorno della squadra selezionata saranno coperte interamente dal CERN.
Le proposte saranno preselezionate da un gruppo di scienziati del CERN e quindi saranno validati dalla stessa commissione che valida tutti gli esperimenti nei laboratori degli acceleratori PS e SPS (Protonsincrotrone e Super Protonsincrotrone [NdR l’acceleratore che Rubbia e Van Der Meer hanno usato per dimostrare l’esistenza dei bosoni dell’interazione elettrodebole]).
Cosa potete fare? Fondamentalmente potete indagare su come i fasci di particelle interagiscano con la materia. Per esempio, potete studiare cosa succede quando un fascio contenente vari tipi di particelle colpisce un bersaglio fatto di materiali diversi. Le proposte verranno valutate in base alla creatività, la motivazione, la fattibilità e al grado di adesione al metodo scientifico.
Per aiutarvi a capire cosa potete fare, abbiamo messo insieme una breve presentazione che spiega i fondamentali a riguardo di particelle e fasci. Questi brevi seminari sono disponibili in Inglese, Francese, Italiano, Spagnolo e Tedesco e fanno parte di una playlist di Youtube che raccoglie registrazioni di videoconferenze su Google Hangout in tutte queste lingue (Italiano), nelle quali gli scienziati del CERN rispondono a varie domande.
Questa è la vostra occasione di venire ad eseguire il vostro esperimento al CERN! Avrete una settimana di tempo e si svolgerà in luglio, agosto o settembre. I fisici del CERN vi aiuteranno a mettere a fuoco la vostra idea prima e durante il vostro soggiorno al CERN.
Siete interessati? Allora mettetevi in contatto con noi attraverso il sito web del CERN, o sui social networks Twitter, Facebook, Google+ o YouTube.
Non aspettate, e compilate il form di registrazione prima del 31 gennaio 2014. Tutto ciò che dovete fare a questo punto è inviarci il nome della scuola e dei partecipanti assieme ad una dichiarazione del perché ritenete che proprio voi dovreste vincere la gara. Avrete poi tempo fino al 31 marzo per preparare il progetto nei dettagli, inclusa la realizzazione di un video di 1 minuto che ne descrive i fatti principali.
È la vostra occasione!
[Fonte: Pauline Gagnon su Quantumdiaries.org]
Gen 16
Mi sono trovato di fronte ad un problema nell’accedere alla console di amministrazione del Mirth: non partiva l’applet per un problema di sicurezza, dovuto ad una nuova versione dell’Oracle Java Web Start
Veniva generata una eccezione in cui il dettaglio mi forniva il motivo dell’errore
java.lang.SecurityException: Missing required Permissions manifest attribute in main jar: http://mirth.myserver.com:8080/webstart/client-lib/mirth-client.jar
at com.sun.deploy.security.DeployManifestChecker.verifyMainJar(Unknown Source)
Soluzione (workaround): aprire la console di controllo di java:
Fatto.
Gen 09
Si tratta di un indice di merito che qualifica una attività umana.
Ha una funzione simile al PIL, solo che il PIL aumenta anche quando c’è una strage o una catastrofe ecologica. Il PEF cerca di tenere conto invece anche gli effetti sul territorio, sull’ambiente, sulla biodiversità.
Ci da’ un’indicazione su quanto vicini siamo ad una attività sostenibile, che non consuma risorse naturali ad un ritmo più veloce di quanto l’ecosistema sia in grado di rinnovarle.
Commenti recenti