Tag: encryption

HTTPS是在开放networking中防止会话劫持的唯一防御措施吗?

因此,借助Firesheep ,公共Wi-Fi中的每个人都拥有一键式会话劫持工具。 根据我的理解,它的工作方式是简单地捕获所有stream量并抓取会话cookie(因此不会窃取密码)。 根据我的理解,这也意味着HTTPS安全login不能单独解决这个问题,因为进一步的HTTP通信会再次以明文forms包含会话Cookie。 将会话绑定到一个特定的IP地址是没有用的,因为NAT,绑定到用户代理很容易被欺骗。 那么100%HTTPS在任何时候都是防止这种会话劫持的唯一方法吗? 难道人们只是嗅探包括握手在内的整个HTTPSstream量,还是这个东西安全? (我正在考虑重播攻击,但在这方面没有任何知识。) 当然,不使用公共/开放的Wi-Finetworking是更好的select,但是我仍然对网站开发者可以保护他/她的用户感兴趣。

Letsencrypt添加域到现有的证书

我只是试图将域test.example.com添加到已经存在的example.com的证书。 如何将域添加到现有证书并replace旧证书? 我已经尝试了这几个命令 ./letsencrypt-auto certonly –cert-path /etc/letsencrypt/archive/example.com –expand -d test.example.com ./letsencrypt-auto certonly -d example.com –expand -d test.example.com 结果:都在一个新文件夹test.example.com-0001中创build了一个全新的证书 ./letsencrypt-auto certonly –renew-by-default –expand -d test.example.com 结果:错误文件夹test.example.com已经存在。 ./letsencrypt-auto renew –expand -d orange.fidka.com 结果:错误,如果证书过期,我只能续订。

encryption,使用Rails解密

我前一段时间看到了在不包含任何库的情况下对rails中的string进行解密和encryption的可能性,但找不到博客文章。 我希望能够encryption和解密string,而不包括任何东西。 例如,使用相同的密钥为rails中的其他所有内容,例如签名的cookie。 有任何想法吗?

我应该使用初始化向量(IV)以及我的encryption吗?

build议使用初始化vector来encryption/解密我的数据吗? 它会使事情更安全吗? 这是否需要逐案评估? 为了将其应用到实际环境中,Win32encryption函数CryptSetKeyParam允许在encryption/解密之前在密钥上设置初始化vector。 其他API也允许这样做。 什么是一般build议,为什么?

你如何隐藏代码中的密钥?

一段时间以来,我一直在想,一些软件如何隐藏秘密密钥,使得它们不能被轻易发现。 只是几个例子: DVD播放器软件隐藏CSS密钥 带有序列号/注册码的软件隐藏用于validation序列号的密钥/散列 很明显,这些程序不仅仅是在一个字节[]中做了一些事情,因为这样可以很容易地窃取他们的密钥并生成自己的序列号等等。 用什么样的策略来隐藏这些密钥,使它们不易被发现?

密码哈希值,盐值和哈希值的存储

假设您可以自由决定如何将密码散列存储在DBMS中。 这样的计划有明显的弱点吗? 要创build存储在DBMS中的散列值,请执行: 作为salt的一部分,DBMS服务器实例唯一的值, 而用户名作为盐的第二部分, 并创build盐与实际密码的连接, 并使用SHA-256algorithm对整个string进行散列, 并将结果存储在DBMS中。 这意味着任何想要碰撞的人都应该分别为每个用户名和每个DBMS服务器实例单独完成工作。 我打算保持实际的哈希机制有点灵活,以允许使用新的NIST标准哈希algorithm( SHA-3 ),仍然在工作。 “DBMS服务器实例独有的价值”不一定是秘密 – 尽pipe它不会随便泄露。 其目的是确保如果某人在不同的DBMS服务器实例中使用相同的密码,则logging的散列值将会不同。 同样,用户名也不是秘密 – 只是密码本身。 密码第一,用户名和“唯一值”第二,或三个数据源的其他排列是否有优势? 或者交叉string呢? 我是否需要添加(并logging)随机salt值(每个密码)以及上面的信息? (优点:用户可以重新使用密码,而且可能会在数据库中logging不同的哈希。缺点:必须logging盐,我认为这样做的好处远远大于缺点。 有相当多的相关SO问题 – 这个列表不太可能是全面的: 在数据库中encryption/散列纯文本密码 为PHP密码提供安全的哈希和盐 为了散列而隐藏盐的必要性 客户端MD5哈希与时间盐 简单的密码encryption 盐生成和开源软件 密码哈希值:固定长度的二进制字段还是单个string字段? 我认为这些问题的答案支持我的algorithm(尽pipe如果你只是使用随机盐,那么'每个服务器的唯一值'和用户名组件就不那么重要了。

给定一个私钥,是否有可能派生出它的公钥?

无论我通过阅读各种资料来理解,公私密钥对都是不对称encryption的基础,也是select两个素数(大致是你的私钥)和乘以它们(大致是你的公钥)看来如果你知道私钥就可以生成一个公钥。 这是正确的,或者我错了什么? [编辑] 是什么让我更加困惑的是, 只有私钥(使用.NET类RSACryptoServiceProvider) 才能将RSA密钥序列化为XML。 不知道这个限制是否是有意的!

CryptographicException在试图导出X509私钥的RSAParameters时“密钥无法在指定状态下使用”

我盯着这一段时间,感谢MSDN文档,我无法弄清楚发生了什么事情。 基本上我是从光盘加载一个PFX文件到X509Certificate2并尝试使用公钥encryption一个string,并使用私钥解密。 为什么我感到困惑:当我将引用传递给RSACryptoServiceProvider本身时,encryption/解密工作: byte[] ed1 = EncryptRSA("foo1", x.PublicKey.Key as RSACryptoServiceProvider); string foo1 = DecryptRSA(ed1, x.PrivateKey as RSACryptoServiceProvider); 但是如果导出并传递RSAParameter : byte[] ed = EncryptRSA("foo", (x.PublicKey.Key as RSACryptoServiceProvider).ExportParameters(false)); string foo = DecryptRSA(ed, (x.PrivateKey as RSACryptoServiceProvider).ExportParameters(true)); …它会抛出一个“密钥在指定状态下无效”。 尝试将私钥导出到RSAParameterexception。 请注意PFX生成的证书被标记为可导出(即,我在创build证书时使用了pe标志)。 任何想法是什么导致例外? static void Main(string[] args) { X509Certificate2 x = new X509Certificate2(@"C:\temp\certs\1\test.pfx", "test"); x.FriendlyName = "My test Cert"; X509Store store […]

代码高尔夫:XORencryption

来自 :Encryption Co. 要 :x $ * sj4(就是你) 你的任务,如果你select接受它,就是用最短的击键次数创build一个程序 接受两个文件名参数(命令行或标准input),第一个是包含密钥和第二个消息的文件。 这两个文件将是纯文本。 使用XORencryption将密钥应用于消息,覆盖该文件。 例: input文件: StackOverflow很酷 键: 代码高尔夫 encryption输出文件的hex转储: 0000000: 101b 0506 4b08 1909 1425 030b 1200 2e1c ….K….%…… 0000010: 4c25 2c00 080d 0a L%,…. 为了简单起见,假定文件可以放在内存中 此消息将自我encryption在5 … 4 … 3 … 2 … 1 … ##### #### _\_ ________ ##=-[.].]| \ \ #( _\ | […]

gitencryption/解密远程存储库文件,同时推/拉

在传输到远程存储库之前,是否可以通过“git push”自动encryption文件? 并且在'git pull'时自动解码它们。 也就是说,如果我有一个远程服务器与共享访问存储在那里,我不希望我们的项目被盗取没有许可…也许有一些特殊的git钩之前,推后拉?