Certificados y claves asimétricas de SQL ServerSQL Server Certificates and Asymmetric Keys

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

La criptografía de clave pública es un método para mantener la confidencialidad de los mensajes mediante el cual el usuario crea una clave pública y una clave privada.Public Key Cryptography is a form of message secrecy in which a user creates a public key and a private key. La clave privada se mantiene en secreto, mientras que la clave pública se puede distribuir a otras personas.The private key is kept secret, whereas the public key can be distributed to others. Aunque existe una relación matemática entre las claves, no resulta sencillo deducir la clave privada partiendo de la clave pública.Although the keys are mathematically related, the private key cannot be easily derived by using the public key. La clave pública se puede usar para cifrar los datos que solamente la clave privada correspondiente podrá descifrar.The public key can be used to encrypt data which only the corresponding private key will be able to decrypt. Esto puede usarse para cifrar los mensajes al propietario de la clave privada.This can be used for encrypting messages to the owner of the private key. Del mismo modo, el propietario de una clave privada puede cifrar los datos que solo pueden descifrarse con la clave pública.Similarly the owner of a private key can encrypt data which can only be decrypted with the public key. Este uso constituye la base de los certificados digitales en los que se cifra la información contenida en el certificado por parte del propietario de una clave privada, garantizando así el autor del contenido.This use forms the basis of digital certificates in which information contained in the certificate is encrypted by the owner of a private key, assuring the author of the contents. Dado que las claves de cifrado y descifrado son diferentes, se conocen como claves asimétricas.Since the encrypting and decrypting keys are different they are known as asymmetric keys.

Tanto los certificados como las claves asimétricas son métodos para utilizar el cifrado asimétrico.Certificates and asymmetric keys are both ways to use asymmetric encryption. Los certificados se suelen emplear como contenedores para las claves asimétricas porque pueden contener más información, como las fechas de expiración y los emisores.Certificates are often used as containers for asymmetric keys because they can contain more information such as expiry dates and issuers. No hay ninguna diferencia entre los dos mecanismos en cuanto al algoritmo criptográfico y tampoco hay diferencia en cuanto al nivel de cifrado si no varía la longitud de la clave.There is no difference between the two mechanisms for the cryptographic algorithm, and no difference in strength given the same key length. Generalmente, se utiliza un certificado para cifrar otros tipos de claves de cifrado en una base de datos o para firmar módulos de código.Generally, you use a certificate to encrypt other types of encryption keys in a database, or to sign code modules.

Los certificados y las claves asimétricas pueden descifrar los datos cifrados por los demás.Certificates and asymmetric keys can decrypt data that the other encrypts. El cifrado asimétrico se suele utilizar para cifrar una clave simétrica para su almacenamiento en una base de datos.Generally, you use asymmetric encryption to encrypt a symmetric key for storage in a database.

Una clave pública no tiene un formato determinado como ocurre con un certificado, y no puede exportarse a un archivo.A public key does not have a particular format like a certificate would have, and you cannot export it to a file.

Nota

SQL ServerSQL Server contiene características y herramientas que le permiten crear y administrar certificados y claves para usar con el servidor y la base de datos.contains features that enable you to create and manage certificates and keys for use with the server and database. SQL ServerSQL Server no se puede usar para crear y administrar certificados y claves con otras aplicaciones o en el sistema operativo.cannot be used to create and manage certificates and keys with other applications or in the operating system.

CertificadosCertificates

Un certificado es un objeto de seguridad firmado digitalmente que contiene una clave pública (y opcionalmente una privada) para SQL ServerSQL Server.A certificate is a digitally signed security object that contains a public (and optionally a private) key for SQL ServerSQL Server. Pueden utilizarse certificados generados externamente o generados por SQL ServerSQL Server .You can use externally generated certificates or SQL ServerSQL Server can generate certificates.

Nota

SQL ServerSQL Server Los certificados cumplen con la norma de certificados IETF X.509v3.certificates comply with the IETF X.509v3 certificate standard.

Los certificados son útiles debido a que ofrecen la opción de exportar e importar claves a archivos de certificado X.509.Certificates are useful because of the option of both exporting and importing keys to X.509 certificate files. La sintaxis para crear certificados ofrece opciones de creación para los certificados, como establecer una fecha de expiración.The syntax for creating certificates allows for creation options for certificates such as an expiry date.

Utilizar un certificado en SQL ServerUsing a Certificate in SQL Server

Los certificados se pueden utilizar para proteger las conexiones, en la creación de reflejo de la base de datos, para firmar paquetes y otros objetos, o para cifrar datos o conexiones.Certificates can be used to help secure connections, in database mirroring, to sign packages and other objects, or to encrypt data or connections. En la tabla siguiente se muestran recursos adicionales para los certificados en SQL ServerSQL Server.The following table lists additional resources for certificates in SQL ServerSQL Server.

TemaTopic DescripciónDescription
CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL) Explica el comando para crear certificados.Explains the command for creating certificates.
Identificar el origen de paquetes con firmas digitalesIdentify the Source of Packages with Digital Signatures Muestra información sobre cómo utilizar los certificados para firmar paquetes de software.Shows information about how to use certificates to sign software packages.
Usar certificados para un punto de conexión de creación de reflejo de la base de datos (Transact-SQL)Use Certificates for a Database Mirroring Endpoint (Transact-SQL) Contiene información sobre cómo utilizar los certificados con la creación de reflejo de la base de datos.Covers information about how to use certificates with Database Mirroring.

Claves asimétricasAsymmetric Keys

Las claves asimétricas se utilizan para proteger las claves simétricas.Asymmetric keys are used for securing symmetric keys. También se pueden utilizar para el cifrado de datos limitado y para firmar digitalmente objetos de base de datos.They can also be used for limited data encryption and to digitally sign database objects. Una clave asimétrica se compone de una clave privada y su correspondiente clave pública.An asymmetric key consists of a private key and a corresponding public key. Para obtener más información sobre las claves asimétricas, vea CREATE ASYMMETRIC KEY (Transact-SQL).For more information about asymmetric keys, see CREATE ASYMMETRIC KEY (Transact-SQL).

Las claves asimétricas se pueden importar de archivos de clave de nombre seguro, pero no se pueden exportar.Asymmetric keys can be imported from strong name key files, but they cannot be exported. Tampoco tienen opciones de expiración.They also do not have expiry options. Las claves asimétricas no pueden cifrar las conexiones.Asymmetric keys cannot encrypt connections.

Utilizar una clave asimétrica en SQL ServerUsing an Asymmetric Key in SQL Server

Las claves asimétricas se pueden utilizar para proteger datos o para firmar texto simple.Asymmetric keys can be used to help secure data or sign plaintext. En la tabla siguiente se muestran recursos adicionales para las claves asimétricas en SQL ServerSQL Server.The following table lists additional resources for asymmetric keys in SQL ServerSQL Server.

TemaTopic DescripciónDescription
CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL) Explica el comando para crear claves asimétricas.Explains the command for creating asymmetric keys.
SIGNBYASYMKEY (Transact-SQL)SIGNBYASYMKEY (Transact-SQL) Muestra las opciones para firmar objetos.Displays the options for signing objects.

HerramientasTools

MicrosoftMicrosoft proporciona herramientas y utilidades para generar certificados y archivos de clave de nombre seguro.provides tools and utilities that will generate certificates and strong name key files. Estas herramientas proporcionan una mayor flexibilidad en el proceso de generación de claves que la sintaxis de SQL ServerSQL Server .These tools offer a richer amount of flexibility in the key generation process than the SQL ServerSQL Server syntax. Puede utilizar estas herramientas para crear claves RSA con longitudes de clave más complejas y, a continuación, importarlas en SQL ServerSQL Server.You can use these tools to create RSA keys with more complex key lengths and then import them into SQL ServerSQL Server. En la tabla siguiente se explica dónde se encuentran estas herramientas.The following table explains shows where to find these tools.

HerramientaTool FinalidadPurpose
makecertmakecert Crea certificados.Creates certificates.
snsn Crea nombres seguros para claves simétricas.Creates strong names for symmetric keys.

Elegir un algoritmo de cifradoChoose an Encryption Algorithm

CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)

Consulte tambiénSee Also

sys.certificates (Transact-SQL) sys.certificates (Transact-SQL)
Cifrado de datos transparente (TDE)Transparent Data Encryption (TDE)