Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应该在哪里进行加密-在应用程序或数据库级别?_Java_Sql Server_Security_Encryption - Fatal编程技术网

Java 应该在哪里进行加密-在应用程序或数据库级别?

Java 应该在哪里进行加密-在应用程序或数据库级别?,java,sql-server,security,encryption,Java,Sql Server,Security,Encryption,为了保护web应用程序的敏感数据,出现了这样一个问题:使用jasypt(用于Java)在应用程序级别加密并将加密数据保存到数据库,还是使用(例如)MSSQL 2012的加密机制,这是最佳做法 在 安全问题 性能问题 这里的最佳实践是什么 编辑: 关于应用程序类型的更多细节:它是一个web门户,用户将敏感数据上传到门户,门户所有者对该数据进行评估。它将在客户站点上使用,因此我们对访问服务器的用户的控制有限,对应用服务器的控制也有限,一般来说,数据应该通过网络进行编组发送,并在另一端进行解组。然后,

为了保护web应用程序的敏感数据,出现了这样一个问题:使用jasypt(用于Java)在应用程序级别加密并将加密数据保存到数据库,还是使用(例如)MSSQL 2012的加密机制,这是最佳做法

  • 安全问题
  • 性能问题
  • 这里的最佳实践是什么

    编辑:


    关于应用程序类型的更多细节:它是一个web门户,用户将敏感数据上传到门户,门户所有者对该数据进行评估。它将在客户站点上使用,因此我们对访问服务器的用户的控制有限,对应用服务器的控制也有限,

    一般来说,数据应该通过网络进行编组发送,并在另一端进行解组。然后,在存储数据时,您可以对其进行加密并存储。

    AFAIK,不会有重大的性能问题,因为性能与加密无关

    下一步,关于安全性的问题是,数据应该在代码级别进行加密,以确保
    数据
    通过电线时是安全的


    最后,相同的
    数据将保存在数据库中。这将确保通过网络和数据容器的安全。

    这一切归结为信任问题。您是否完全控制应用程序服务器?威胁级别是多少?敏感数据如何在该级别上受到损害?那么,它在db级别上如何?你能控制数据库吗?谁有权使用它呢

    你的问题不能笼统地回答。这完全取决于您想要保护的威胁类型

    • 通常,如果在应用程序中加密,则很难使用高效的数据库检索技术。通常,索引会以一种有意义的方式停止工作。排序变得困难,等等

    • 如果在db级别进行加密,则应考虑对传输进行临时加密(考虑SSL或SSH隧道)

    • 如果您真的想保护数据,性能应该是一个次要问题。我不是这方面的专家,但我认为对于应用程序数据加密和数据库级别,都有性能良好的解决方案


    您不认为这应该取决于应用程序的类型吗?我的意思是,如果要发送的数据更敏感,那么它应该像在数据库中一样进行加密。例如一些绝密的军事数据。是的,这正是我一般指定的原因。即使我们考虑简单的数据传输通过我们的网络,它是加密在表示层,紧随应用层后,在七层OSI模型。所以您是对的,这是特定于用户设计和体系结构要求的。@SURESH ATTA“因为性能与加密无关”。我真的不同意这一点。加密算法是性能密集型的,不同的实现(基于Java/SQL)可能有不同的复杂性。@SURESH ATTA:当然,加密与性能有关-至少它会消耗处理器时间。是的,会有一点时间复杂性,但这在两端都有好处