使用传送层安全或简单加密对往来于所有客户端的所有本地 SQL Anywhere 包(DBLib、ODBC 和 OLE DB)进行加密。不加密 TDS 包。
{ dbsrv11 | dbeng11 } -ec encryption-options ...
encryption-options :
{ NONE | SIMPLE | TLS ( TLS_TYPE=cipher; [ FIPS={ Y | N }; ] IDENTITY=server-identity-filename; IDENTITY_PASSWORD=password ) }, ...
NONE 和 SIMPLE 适用于所有服务器和操作系统。
TLS 适用于所有服务器和操作系统,Windows Mobile 除外。
有关 FIPS 支持的信息,请参见 http://www.sybase.com/detail?id=1062623。
您可以使用此选项,利用传送层安全功能来保护客户端应用程序和数据库服务器之间传输的通信包的安全。请参见传送层安全。
-ec 选项指示数据库服务器只 接受使用一种指定类型进行加密的连接。无论是否使用 -ec 选项,将始终接受通过 TDS 协议建立的连接(包括使用 jConnect 的 Java 应用程序),并从不对其进行加密。如果将 TDS 协议选项设置为 NO,则不允许建立这些未加密的 TDS 连接。请参见TDS 协议选项。
缺省情况下,通信包是不加密的,但这样可能会引起潜在的安全风险。如果您注重网络包的安全性,可使用 -ec 选项。加密对于性能只有很轻微的影响。-ec 选项控制服务器的加密设置,并至少需要在逗号分隔的列表中有以下参数之一:
NONE 接受未加密的连接。
SIMPLE 接受使用简单加密技术加密的连接。所有平台以及以前版本的 SQL Anywhere 都支持此类加密。简单加密不提供服务器验证、高度椭圆曲线加密、RSA 加密或其它传送层安全功能。
TLS 接受加密的连接。TLS 参数接受以下必需的参数:
cipher 对于 RSA 和 ECC 加密,可分别为 RSA 或 ECC。对于 FIPS 认可的 RSA 加密,请指定 TLS_TYPE=RSA;FIPS=Y。RSA FIPS 使用单独的认可库,但是与使用 SQL Anywhere 9.0.2 或更高版本指定 RSA 的客户端兼容。
有关支持 FIPS 的平台的列表,请参见 http://www.sybase.com/detail?id=1062623。
编码器必须与用于创建证书的加密(ECC 或 RSA)匹配。
有关实施经 FIPS 认可的算法的信息,请参见-fips 服务器选项。
版本 10 及更高版本的客户端无法使用 ECC 算法与版本 9.0.2 或更早版本的数据库服务器建立连接。如果要对此配置进行高度加密,请使用 RSA 算法。
server-identity-filename 是服务器身份证书的路径和文件名。如果使用 FIPS 认可的 RSA 加密,必须使用 RSA 编码器生成证书。
有关创建可以自签名或由证书颁发机构或企业根证书签名的服务器证书的详细信息,请参见创建数字证书。
password 是服务器专用密钥的口令。在创建服务器证书时指定此口令。
如果数据库服务器接受简单加密,但不接受未加密的连接,则所有未使用加密的非 TDS 连接尝试会自动使用简单加密。
使用 -ec SIMPLE
启动数据库服务器将通知数据库服务器仅接受使用简单加密的连接。TLS 连接(ECC、RSA 和 RSA FIPS)将失败,无加密要求的连接会使用简单加密。
使用 -ec SIMPLE,TLS(TLS_TYPE=ECC)
启动服务器将通知数据库服务器仅接受使用 ECC 加密或 简单加密的连接。RSA 和 RSA FIPS 连接都失败并且无加密要求的连接会使用简单加密。
如果想要数据库服务器接受通过 TCP/IP 的加密连接,但还希望能够从本地计算机上通过共享内存连接到数据库,则可在启动数据库服务器时指定 -es 选项以及 -ec 选项。请参见-es 服务器选项。
dbecc11.dll 和 dbrsa11.dll 文件均包含用于加密和解密的 ECC 和 RSA 代码。文件 dbfips11.dll 含有用于 FIPS 认可的 RSA 算法的代码。连接数据库服务器时,如果找不到合适的文件或者发生错误,则会在数据库服务器消息窗口中显示一条消息。如果无法启动指定类型的加密,则该服务器不启动。
客户端和服务器的加密设置必须匹配,否则连接将失败,但以下情况除外:
如果对数据库服务器指定了 -ec SIMPLE,但是没有指定 -ec NONE,则不要求加密的连接可以连接并自动使用简单加密。
如果数据库服务器指定了 RSA,客户端指定了 FIPS,或者相反,则连接将成功。这时,[Encryption] 连接属性将返回数据库服务器所指定的值。
以下示例显示允许不使用加密的连接和使用简单加密的连接。
dbsrv11 -ec NONE,SIMPLE -x tcpip c:\mydemo.db |
以下示例启动一个使用椭圆曲线服务器证书 eccserver.id 的数据库服务器。
dbsrv11 -ec TLS(TLS_TYPE=ECC;IDENTITY=eccserver.id;IDENTITY_PASSWORD=test) -x tcpip c:\mydemo.db |
以下示例启动一个使用 RSA 服务器证书 rsaserver.id 的数据库服务器。
dbsrv11 -ec TLS(TLS_TYPE=RSA;IDENTITY=rsaserver.id;IDENTITY_PASSWORD=test) -x tcpip c:\mydemo.db |
以下示例启动一个使用 FIPS 认可的 RSA 服务器证书 rsaserver.id 的数据库服务器。
dbsrv11 -ec TLS(TLS_TYPE=RSA;FIPS=Y;IDENTITY=rsaserver.id;IDENTITY_PASSWORD=test) -x tcpip c:\mydemo.db |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |