/usr/share/doc/sks-ecc-doc/usersguide-es/manual.html is in sks-ecc-doc 0.93-6build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="criptografía, curva elíptica, clave pública,
PGP, GPG" />
<link rel="stylesheet" type="text/css" href="andreas07.css" />
<!--[if IE 6]>
<link rel="stylesheet" href="fix.css" type="text/css" />
<![endif]-->
<title>SKS, criptografía de bolsillo</title>
</head>
<body>
<div id="sidebar">
<h1>SKS</h1>
<h2>Versión actual: 0.93</h2>
<div id="menu">
<a href="index.html">Introducción</a>
<a href="instal.html">Instalación</a>
<a class="active" href="manual.html">Manual I</a>
<a class="submenu" href="#resumen">Resumen</a>
<a class="submenu" href="#cifrado">Cifrado</a>
<a class="submenu" href="#descifrado">Descifrado</a>
<a class="submenu" href="#firma">Firma</a>
<a class="submenu" href="#fresumen">Función resumen</a>
<a class="submenu" href="#filtro">Modo de filtro</a>
<a href="clave.html">Manual II - Claves</a>
<a href="dis.html">Diseño</a>
<a href="gpl.html">Licencia</a>
<a href="recon.html">Reconocimientos</a>
<a href="download.html">Descargas <em>Downloads</em></a>
<a href="misc.html">Miscelánea</a>
</div>
<h3>© diseño</h3>
<p>Estilo basado en plantilla diseñada por <a href="http://andreasviklund.com">Andreas Viklund</a>.</p>
</div>
<div id="content">
<!-- start of content space -->
<h1 id="komenco">SKS</h1>
<h2>criptografía de bolsillo</h2>
<h3 id="resumen">Resumen</h3>
<p>
Al ejecutar SKS sin parámetros aparece un breve resumen del
manual:
<pre>
Modo de uso:
cifrado convencional
-c claro cifrado < contraseña
-C (compresión previa de datos)
cifrado de clave pública
-e claro cifrado [id 1] [id 2] ... [id n]*
-E (compresión previa de datos)
descifrar (todos los casos)
-d cifrado claro < contraseña
firmar/verificar/resumir
-s claro firma < contraseña
-S texto < contraseña > texto-firmado
-v claro firma
-V texto-firmado >texto
-r fichero1 fichero2 ... fichero-n > resumen hexadecimal (TIGER)
-f[operación] [introduce SKS -f para más detalles]
-b[operación] [introduce SKS -b para más detalles]
-k[operación] [introduce SKS -k para más detalles]
(*) Será seleccionada toda clave que contenga cualquier identificador
La ausencia de identificador selecciona todas las claves
</pre>
Este resumen aparece también cuando se suministra un número incorrecto
de parámetros o si el primer parámetro es incorrecto. Nótese que
algunas órdenes admiten un número indefinido de parámetros y que
<kbd>-S, -V </kbd>son distintos a <kbd>-s, -v</kbd>.
</p>
<p>Los caracteres [ <kbd><</kbd> ] y
[ <kbd>></kbd> ] indican que SKS require datos de la
entrada estándar <kbd>(stdin)</kbd> y devuelve datos
por la salida estándar <kbd>(stdout)</kbd>. Además, hay diversos mensajes,
tanto de error como de advertencia o información, que se ofrecen por la
salida de error <kbd>(stderr)</kbd>; estos mensajes están disponibles en
español e inglés, según la versión que descargues.
</p>
<!--
<div class="postinfo"><a href="#komenco" title="arriba">▲</a></div>
-->
<h3 id="cifrado">Cifrado</h3>
<p>Para cifrar un fichero hace falta una(s) clave(s) pública(s). En general
no será tu propia clave pública, sino la de aquellos a los que
se destina el fichero. Si tu clave pública está en tu anillo (que es lo
más normal) puedes elegirla también para que puedas ver en el futuro el
contenido del fichero, si es que planeas eliminar el original.</p>
<p>Las claves públicas de tus corresponsales te las han de enviar ellos y
está en tu mano comprobar que realmente provienen de quien dice. En el apartado
<a href="clave.html">Gestión de Claves</a> hay más información al respecto. El fichero de
claves que se suministra contiene las siguientes claves:
<pre>
[6be386a4]: Hola Mundo /hola mundo/
[40023a50]: Hello World /hello world/
[5425be1c]: Jose Luis Torrente <jltorrente@caspa.net> /amiguete/
[00e14ca8]: Manuel Pancorbo Castro <mpancorbo # wanadoo.es>
</pre>
</p>
<p>Para cifrar el fichero <kbd>mensaje.txt</kbd> simplemente teclea:
<pre>
sks -e mensaje.txt mensaje.txt.e torrente
</pre>
donde <kbd>mensaje.txt.e</kbd> es el fichero cifrado que creará el programa.</p>
<blockquote>
<b>OJO</b>, si ya existiera un fichero con ese nombre, SKS
lo sobreescribirá sin advertencia previa. El original <b>NO</b>
se borra automáticamente.
</blockquote>
<p><b>torrente</b> es un
identificador que coincide, en este caso,
sólo con una clave. Como identificador vale cualquier cadena de texto,
que se compara con las etiquetas que identifican cada clave, así como con el
identificador numérico de éstas.
<pre>
sks -e mensaje.txt mensaje.txt.e 5425be1c
</pre>
también selecciona la misma clave.
</p>
<p>Se pueden usar todos los identificadores que se consideren oportunos
y las claves que se seleccionan para cifrar son aquellas cuyas
etiquetas y/o ids. numéricos <em>contengan</em> alguna de las cadenas
introducidas. La comparación es sensible a las mayúsculas.
<pre>
sks -e mensaje.txt mensaje.txt.e caspa
sks -e mensaje.txt mensaje.txt.e @
sks -e mensaje.txt mensaje.txt.e 5425
sks -e mensaje.txt mensaje.txt.e "Jose Luis"
</pre>
seleccionan la misma clave;
<pre>
sks -e mensaje.txt mensaje.txt.e s
</pre>
selecciona la clave anterior y también la clave <kbd>00e14ca8</kbd>. Sin embargo,
<pre>
sks -e mensaje.txt mensaje.txt.e sr
</pre>
no selecciona ninguna (el programa no hace nada y emite un mensaje
de advertencia) porque la cadena "sr" no existe en ninguna etiqueta.
<pre>
sks -e mensaje.txt mensaje.txt.e Hola Hello
</pre>
Selecciona las claves <kbd>6be386a4</kbd> y <kbd>40023a50</kbd>.
</p>
<p>Si no se introduce ninguna cadena, el programa selecciona todas las claves
del anillo.</p>
<p>Una vez que pulsas 'Intro' (como en el último ejemplo) el programa
emite un mensaje:
<pre>
SKS. Claves seleccionadas:
[6be386a4]: Hola Mundo /hola mundo/
[40023a50]: Hello World /hello world/
</pre>
y en el directorio aparece el fichero <kbd>mensaje.txt.e</kbd>
</p>
<h4>Compresión</h4>
<p>Si en lugar de la opción <kbd>-e</kbd> seleccionamos la opción <kbd>-E</kbd>
el programa se comporta exactamente igual, salvo que comprime primero los datos.
<pre>
sks -E mensaje.txt mensaje.txt.e torrente
</pre>
La opción de compresión es interesante para archivos de texto, de procesadores
de texto y cualquiera que no esté comprimido por si mismo. Los ficheros <kbd>jpg</kbd>,
<kbd>zip</kbd>, y cualesquiera otros formatos comprimidos se cifran mejor con la
opción <kbd>-e</kbd>, que ahorra tiempo de proceso.</p>
<h4>Cifrado convencional</h4>
<p>Las opciones <kbd>-c</kbd> y <kbd>-C</kbd> cifran el fichero de forma convencional,
con una clave generada a partir de una contraseña; por seguridad, <b>contraseñas iguales
generan claves distintas</b> según si elegimos cifrado convencional o si generamos
claves privadas. La opción en mayúsculas comprime, igual que con el cifrado de clave
pública. El programa sólo necesita dos parámetros:
el fichero de entrada y el de salida; la contraseña se pide por línea de comandos, sin
eco de salida, para garantizar máxima privacidad.
</p>
<div class="postinfo"><a href="#komenco" title="arriba">▲</a></div>
<h3 id="descifrado">Descifrado</h3>
<p>Para descifrar un mensaje —no importa de qué manera se haya cifrado,
convencionalmente o con clave pública, con o sin compresión— se usa la
opción <kbd>-d</kbd>:
<pre>
sks -d mensaje.txt.e mensaje.txt
</pre>
donde <kbd>mensaje.txt.e</kbd> es el fichero cifrado y <kbd>mensaje.txt</kbd> el
fichero que creará el programa ya descifrado (la misma advertencia acerca del
peligro de sobreescribir un fichero ya existente). Se pide una contraseña por
línea de comandos que corresponde bien a alguna clave pública con la que se halla
cifrado el original (opciones <kbd>-e</kbd> y <kbd>-E</kbd>), bien a la contraseña
usada en el cifrado convencional (opciones <kbd>-c</kbd> y <kbd>-C</kbd>).</p>
<p>Si se usó cifrado de clave pública, se muestran los identificadores que se
encuentren en la cabecera del fichero. Sólo identificadores, sin la etiqueta,
porque el programa asume que NO todas las claves que se usaron para cifrar
están en el anillo de claves del receptor (¡puede que ninguna, si se trata
de un espía!) y por tanto elude comparar las claves que encuentra con las que
hay en el anillo, que es donde residen las etiquetas.</p>
<p>Si la contraseña introducida corresponde a alguna de las claves públicas
presentes, entonces su identificador aparece señalado:
<pre>
[6be386a4]: *
[40023a50]:
[5425be1c]:
[00e14ca8]:
</pre>
Si se ha usado cifrado convencional y la contraseña es correcta, no se emite
mensaje alguno. Si la contraseña es incorrecta entonces se da una alarma de
fallo de autentificación, pero se crea el nuevo fichero lleno de, previsiblemente,
basura.</p>
<div class="postinfo"><a href="#komenco" title="arriba">▲</a></div>
<h3 id="firma">Firma</h3>
<p>
Para firmar un fichero se usa la clave privada. Se genera un trozo de código que
identifica unívocamente al creador de la clave, al contenido del archivo (por medio
de una función resumen o <em>hash</em>) y a la fecha en que fue generada la firma,
la cual también figura en la cabecera del trozo de código (que llamaremos "firma").
Cualquier intento por parte de un interventor —malicioso o accidental— de
cambiar alguno de estos tres elementos impide verificar correctamente la firma. Esto
permite identificarte como emisor del fichero y dificulta la suplantación en el
anónimo mundo digital.
</p>
<p>Se procede así:
<pre>
sks -s mensaje.txt mensaje.sig
</pre>
donde <kbd>mensaje.txt</kbd> es el fichero que se pretende firmar y <kbd>mensaje.sig</kbd>
el fichero que se creará con la firma (un par de líneas de armadura en base 64).
A continuación se introduce la contraseña y se comprueba si la clave publica
correspondiente se encuentra en el anillo, informando de ello al usuario pero
procediendo con la firma en cualquier caso. La información puede ser útil si el
firmante tiene su clave en el anillo, como comprobación que ha introducido la
contraseña correctamente.
</p>
<p>El receptor obtiene tanto el fichero original como el fichero de firma. Para verificar
la firma hay que teclear:
<pre>
sks -v mensaje.txt mensaje.sig
</pre>
El programa localiza por sí mismo la clave pública del firmante en el anillo de claves
del receptor (si no estuviera, daría una advertencia) y procede a ejecutar el algoritmo
de verificación. Si todo está en orden, emite un mensaje como el siguiente:
<pre>
[5425be1c]: Jose Luis Torrente <jltorrente@caspa.net> /amiguete/
SKS. Firma correcta realizada en: 2004-06-24, 13:49
</pre>
</p>
<h4>Firma incrustada</h4>
<p>Si se pretende firmar un mensaje de texto claro, es posible que queramos incrustar
la firma al final del mismo, de forma que el receptor reciba un único fichero.
Para eso hacemos:
<pre>
sks -S mensaje.txt
</pre>
que nos preguntará la contraseña y emitirá el mensaje (con una cabecera de identificación) y
la firma incrustada al final, por la salida estándar. Para conservar el fichero no tenemos
más que redirigir la salida:
<pre>
sks -S mensaje.txt > mensaje.txt.signed
</pre>
que el receptor confirma mediante la orden <kbd>-V</kbd>:
<pre>
sks -V mensaje.txt.signed
</pre>
El mensaje original, sin la cabecera y sin los códigos de firma, sale por la salida
estándar, que podemos redirigir, mientras que el mensaje de verificación se emite
por la salida de error. Si sólo nos interesa la verificación, podemos redirigir la
salida hacia la papelera o, en Linux-Unix, hacia <kbd>/dev/null</kbd>:
<pre>
sks -V mensaje.txt.signed > /dev/null
</pre>
La firma con <kbd>-S</kbd> está pensada para ficheros de texto, de forma que los códigos de
fin de línea son excluídos del cálculo de la función resumen. Esto se hace para garantizar
que las firmas realizadas en un determinado entorno operativo sean verificables en otro, por
la falta de uniformidad que existe en códigos de fin de línea.
</p>
<div class="postinfo"><a href="#komenco" title="arriba">▲</a></div>
<h3 id="fresumen">Función resumen</h3>
<p>
SKS proporciona un comando para obtener un resumen (<em>hash</em>) de 192 bits
(<a href="http://www.cs.technion.ac.il/~biham/Reports/Tiger/" target="_blank">
algoritmo <em>TIGER</em></a>), de una manera muy similar a cómo la aplicación
<kbd>md5sum</kbd> genera resúmenes de 128 bits mediante el algoritmo <em>MD5</em>.
Esto se hace mediante la orden
<kbd>-r</kbd>:
<pre>
sks -r mensaje.txt
</pre>
que da como resultado algo similar a:
<pre>
b98ef1b942071187176585271b4008722ebb96d550b1279d mensaje.txt
</pre>
Se pueden especificar varios ficheros o usar comodines:
<pre>
sks -r *.txt
b98ef1b942071187176585271b4008722ebb96d550b1279d mensaje.txt
a7ea8f6641da42ef35cf6b359ea790a25de29a65978977b5 test.txt
</pre>
que es equivalente a
<pre>
sks -r mensaje.txt test.txt
</pre>
</p>
<p>Los creadores de <em>TIGER</em> desarrollaron una segunda versión
del algoritmo, que afecta sólo en la forma de rellenar el último segmento parcial
de texto antes de obtener el resumen final. SKS usa la primera versión, por lo que
los resúmenes obtenidos para un mismo ficher pueden diferir de otra aplicación que
use <em>TIGER-2</em>.</p>
<div class="postinfo"><a href="#komenco" title="arriba">▲</a></div>
<h3 id="filtro">Modo de filtro</h3>
<p>SKS se puede utilizar como un filtro dentro de una cadena de proceso
de archivos de texto. En este caso, el texto que va a ser procesado
entra siempre por la entrada estándar (<kbd>stdin</kbd>) y el resultado
se emite por la salida estándar. Si la operación solicitada es el
cifrado, entonces el resultado se codifica en <kbd>base64</kbd> para
transformarlo en cadenas texto que se pueden imprimir o editar.
</p>
<p>También se pueden filtrar archivos binarios (opción <kbd>-b</kbd>),
pero en este caso no se aplica codificación <kbd>base64</kbd>.
</p>
<p>En este modo de funcionamiento los identificadores y
contraseñas se introducen como parámetros del programa. Esto hace
"visible" la contraseña si se usa directamente la línea de comandos
para hacer uso de este modo. En realidad, el modo de filtro está
pensado para usarlo dentro de guiones de comandos (<em>scripts</em>) de
más alto nivel, donde las contraseñas se deben introducir mediante
formularios con eco de estrella apropiados o similares.
</p>
<p>Sin embargo, los ejemplos que se proporcionan aquí están escritos
directamente en línea de comandos para mostrar con más claridad el
funcionamiento. También se asumirá que se pretende filtro de texto
(ASCII); el filtro binario es mucho más sencillo de entender a partir
del filtro de texto.</p>
<p>Mediante la orden <kbd>sks -f</kbd> o <kbd>sks -b</kbd>
obtenemos un breve resumen del manual del modo de filtro:
<pre>
Modo de uso [filtrado]:
cifrado convencional
-fc "contraseña" <claro >cifrado-ascii
-fC (compresión previa de datos)
cifrado de clave pública
-fe [id 1] [id 2] ... [id n]* <claro >cifrado-ascii
-fE (compresión previa de datos)
descifrar (todos casos)
-fd "contraseña" <cifrado-ascii >claro
firmar/verificar
-fS "contraseña" <texto >texto-firmado
-fV <texto-firmado >texto
[filtrado binario]:
cifrado convencional
-bc "contraseña" <claro >cifrado
-bC (compresión previa de datos)
cifrado de clave pública
-be [id 1] [id 2] ... [id n]* <claro >cifrado
-bE (compresión previa de datos)
descifrar (todos casos)
-bd "contraseña" <cifrado >claro
(*) Será seleccionada toda clave que contenga cualquier identificador
La ausencia de identificador selecciona todas las claves
</pre>
</p>
La segunda letra tras la <kbd>f</kbd> elige la función del programa que actúa de forma muy similar a la orden en modo de no filtrado.
Por ejemplo, para cifrar un flujo de texto con destino al usuario
<kbd>Torrente</kbd>:
<pre>
...(flujo de texto).. | sks -fE Torrente
</pre>
Un ejemplo más concreto usando la línea de comandos de Linux-Unix:
<pre>
cat mensaje.txt | sks -fE Torrente > cifrado.txt
</pre>
donde en lugar de <kbd>cifrado.txt</kbd> se puede "enchufar" (pipe) otro programa,
por ejemplo, de correo eléctrónico:
<pre>
cat mensaje.txt | sks -fE Torrente \\
| mail jltorrente@caspa.net -s "Lee esto"
</pre>
El receptor usa la orden <kbd>-fd</kbd> para descifrarlo:
<pre>
cat cifrado.txt | sks -fd amiguete
</pre>
Si la contraseña está formada por palabras separadas por espacios, se
pueden usar comillas:
<pre>
cat cifrado.txt | sks -fd "hola mundo"
</pre>
Si el flujo de entrada contiene varios bloques de texto cifrado, el programa
intentará descifrar todos con la clave propuesta. Los bloques se identifican
con indicadores de comienzo y fin de armadura que incluyen los símbolos
<kbd>###</kbd>. La salida contiene sólo el texto descifrado; cualquier texto
fuera de la armadura no se considera.</p>
<p>
Para firmar se procede con <kbd>-fS</kbd> y el resultado es la
entrada que se proporciona, junto con la cabecera de identificación, y
con el código de firma incrustado al final. Por ejemplo, el usuario
<kbd>Hola Mundo</kbd> firma un mensaje que envía al usuario
<kbd>Torrente</kbd>:
<pre>
cat mensaje.txt | sks -fS "hola mundo" \\
| mail jltorrente@caspa.net -s "Lee esto"
</pre>
y el receptor lo verifica mediante:
<pre>
cat mensaje.txt | sks -fV
</pre>
y obiene el mensaje "limpio" a la salida, más una confirmación por la
salida de error (<kbd>stderr</kbd>).
</p>
<p>Por su filosofía minimalista, el programa no contempla una orden para
firmar y cifrar. Se puede invocar al programa dos veces y "enchufar" las
salidas:
<pre>
cat mensaje.txt | sks -fS "hola mundo" \\
| sks -fE Torrente hola > mensaje.sks
</pre>
que el receptor puede verificar mediante:
<pre>
cat mensaje.sks | sks -fd amiguete | sks -fV > mensaje.txt
</pre>
<div class="postinfo"><a href="#komenco" title="arriba">▲</a></div>
</div>
</body>
</html>
|