-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAPPUNTI_DEMO.txt
233 lines (170 loc) · 5.41 KB
/
APPUNTI_DEMO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
###########
#### hash
###########
echo "message abc" > file1.txt
md5sum file1.txt
sha256sum file1.txt
md5sum ~/software/os/debian-10.6.0-amd64-netinst.iso
echo "message acc" > file2.txt
xxd -b file1.txt
xxd -b file2.txt
md5sum file*
sha256sum file*
###########
#### demo chiave simmetrica
###########
### Alice
cat >message.txt <<EOF
Caro Bob,
il nostro Amore criptico deve rimanere segreto! Tra pochi giorni dovrò
sposarmi con Coso ma io non sono più innamorata di lui, vorrei solo
stare insieme a te.
Coso legge la mia posta ma il nostro Amore è al sicuro finché usiamo
il "nostro segreto".
Sempre tua
Alice
EOF
openssl aes-256-cbc -a -pbkdf2 -nosalt -in message.txt -out message.enc -k "nostro segreto"
invia-a-bob message.enc
### Bob
openssl aes-256-cbc -a -d -pbkdf2 -in message.enc -nosalt
cat >message.txt <<EOF
Cara Alice,
Coso inizia a sospettare qualcosa, non sò per quanto ancora riuscirò a
mantenere il "nostro segreto" al sicuro! Se dovesse scoprirlo riuscirà:
* ad interferire nei nostri messaggi
* leggere tutto quello che scriviamo
* decodificare tutte le vecchie lettere
* non sarò sicuro della tua identità
Il nostro amore criptico è troppo simmetrico, dobbiamo trasformarlo un
quacosa di più... in un amore asimmetrico. Incontriamoci faccia a
faccia, io ti darò quello che più al mondo desideri, la mia chiave
pubblica e tu mi darai la tua.
PS: Aggiungiamo del sale(salt) al nostro Amore!
Bob
EOF
###########
#### demo chiave simmetrica con salt
###########
### Bob
openssl aes-256-cbc -a -pbkdf2 -in message.txt -out message.enc -salt -k "nostro segreto"
invia-ad-alice message.enc
# Alice
openssl aes-256-cbc -a -d -pbkdf2 -in message.enc -salt
###########
#### demo chiave assimmetrica (firma elettronica)
###########
# Alice
openssl genrsa -out private-key-alice.pem 2048
openssl rsa -in private-key-alice.pem -pubout -out public-key-alice.pem
cp public-key-alice.pem ../Bob/
# Alice
cat >message.txt <<EOF
Bob!
sono proprio io, Alice, che ti sto scrivendo, ne puoi esser certo. Non
posso dire altro.
Firmato Alice
EOF
sha256sum message.txt
openssl dgst -sha256 -sign private-key-alice.pem -out firma.sha256 message.txt
base64 firma.sha256
invia-a-bob message.txt firma.sha256
###########
#### demo chiave assimmetrica (verifica firma elettronica)
###########
# Bob
openssl dgst -sha256 -verify public-key-alice.pem -signature firma.sha256 message.txt
###########
#### demo crittografia asimmetrica (openssl)
###########
# Bob
cat >message.txt <<EOF
Alice,
Tutti hanno letto il tuo ultimo messaggio e non puoi negare di averlo
scritto tu stessa.
Ho un idea però dobbiamo agire con cautela, ti spiego tutto via e-mail
con E2E Enctyption, sei pronta a generare la coppia di chiavi?
Tuo Bob
EOF
openssl pkeyutl -encrypt -inkey public-key-alice.pem -pubin -in message.txt -out message.enc
invia-ad-alice message.enc
# Alice
openssl pkeyutl -decrypt -inkey private-key-alice.pem -in message.enc
###########
#### demo GPG: cifratura e firma digitale
###########
# Alice
gpg --gen-key
cat >message.txt <<EOF
Bob,
il matrimonio è vicino ;( Coso ha già mandato le partecipazioni a tutti
gli invitati con il sito del matrimonio:
http://alice-e-coso.sposi
Dobbiamo assolutamente sabotare il matrimonio! Dimmi cosa hai in mente.
Alice
EOF
### solo firma:
gpg --local-user Alice --clearsign message.txt
$ gpg --verify message.txt.asc
gpg: Signature made mar 16 mag 2023, 14:40:13 CEST
gpg: using RSA key 4F4F7FD120A169E5FC5459F51454D42278921B24
gpg: issuer "[email protected]"
gpg: Good signature from "Alice <[email protected]>" [ultimate]
### firma + enc
gpg --local-user Alice --recipient [email protected] --armor --encrypt message.txt
invia-a-bob message.txt.asc
# Bob
gpg --decrypt message.txt.asc
##########
### thunderbird
##########
thunderbird --ProfileManager
gpg --export-secret-keys Alice > alice-secret-gpg-key.asc
gpg --export-secret-keys Bob > bob-secret-gpg-key.asc
# Bob
Alice mia,
la url nella partecipazione è in chiaro, possiamo creare un sito che risponde
alla stessa url ma in https. I browser e gli invitati lo preferiranno e la
leggeranno al posto del sito del matrimonio, in quella pagina potrai spiegare
a tutti che il nostro Amore è più forte e duraturo... infatti resiste miliardi
di anni se provassero a romperlo con la forza bruta.
Bob
# Alice
Caro Bob,
Ottima idea Amore mio. Ma gli invitati come prima cosa andranno a verificare
la validità del sito.
Allora lo faccio certificare da un soggetto terzo di cui tutti si fidano. Genero
il certificato tls con la mia chiave privata e lo faccio validare da una CA
così tutti saranno certi del nostro Amore.
Alice
##########
### certificato
##########
# create cert request
cat > csr.conf <<EOF
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
C = IT
ST = Italy
L = Rome
O = Par-Tec SpA
OU = DevOps
CN = alice-e-coso.sposi
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = alice-e-coso.sposi
IP.1 = 127.0.0.1
EOF
openssl req -new -key private-key-alice.pem -out server-alice.req -config csr.conf
openssl req -noout -in server-alice.req -text
### sign request
cd ../ca
# https://gist.github.com/Soarez/9688998#openssl-ca
openssl ca -config ca.conf -notext -extfile oats.extensions.cnf -out ../Alice/server-certificate-alice.pem -infiles ../Alice/server-alice.req
cat ../Alice/server-certificate-alice.pem ca.crt > ../Alice/bundle-cert-alice.pem