cbc

iOS9 - NSAppTransportSecurity

久未见 提交于 2019-11-29 12:33:27
iOS9 - NSAppTransportSecurity 配置要求 属性结构 属性详解 事例讲解 只有HTTPS 所有网址都不经过ATS关闭ATS 所有网址都经过ATS添加一些例外白名单 所有网址都不经过ATS添加例外 使用低等级版本的TLS协议 如何配置 iOS9 - NSAppTransportSecurity 原文地址: http://www.pluto-y.com/ios9-nsapptransportsecurity/ App Transport Security(以下均称 ATS )是iOS9提供的一个新特性,主要是保证app和web服务之间的安全。如果不想开启的话,可以关闭这个特性。 所有用到 NSURLConnection 、 CFURL 以及 NSURLSession API都会触发 ATS (使用iOS9的SDK编译)验证, 所以在iOS9中需要符合一些配置才可以使 ATS 正常运行。 配置要求 关于App Transport Security 的一些进本配置要求: * 服务器只要支持TLS协议1.2 * 加密算法也是有限制,需要在以下列表中 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256

python 实现 AES CBC模式加解密

元气小坏坏 提交于 2019-11-28 19:16:20
AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows 下使用AES时要安装的是pycryptodome 模块 pip install pycryptodome python 在 Linux 下使用AES时要安装的是pycrypto模块 pip install pycrypto CBC加密需要一个十六位的key(密钥)和一个十六位iv(偏移量) 1. 加密 加密时,明文首先与IV异或,然后将结果进行块加密,得到的输出就是密文,同时本次的输出密文作为下一个块加密的IV。 2. 解密 解密时,先将密文的第一个块进行块解密,然后将结果与IV异或,就能得到明文,同时,本次解密的输入密文作为下一个块解密的IV。 3. 代码:    # -*- coding=utf-8-*- from Crypto.Cipher import AES import os from Crypto import Random import base64 """ aes加密算法 padding : PKCS7 """ class AESUtil: __BLOCK_SIZE_16 = BLOCK_SIZE_16 = AES.block_size @staticmethod def

python 实现 DES CBC模式加解密

二次信任 提交于 2019-11-28 19:16:09
# -*- coding=utf-8-*- from Crypto.Cipher import DES import base64 """ des cbc加密算法 padding : PKCS5 """ class DESUtil: __BLOCK_SIZE_8 = BLOCK_SIZE_8 = DES.block_size __IV = "\0\0\0\0\0\0\0\0" # __IV = chr(0)*8 @staticmethod def encryt(str, key): cipher = DES.new(key, DES.MODE_CBC, DESUtil.__IV) x = DESUtil.__BLOCK_SIZE_8 - (len(str) % DESUtil.__BLOCK_SIZE_8) if x != 0: str = str + chr(x)*x msg = cipher.encrypt(str) # msg = base64.urlsafe_b64encode(msg).replace('=', '') msg = base64.b64encode(msg) return msg @staticmethod def decrypt(enStr, key): cipher = DES.new(key, DES.MODE_CBC,DESUtil.__IV) #

CBC反转字节攻击

▼魔方 西西 提交于 2019-11-27 04:49:59
前言 暑假刷安全牛的课,看视频有点够了,想做点题,选择了实验吧,结果上来就整懵了 web题,牵扯到了CBC反转字节攻击,密码学!? 查阅资料,学习一下 CBC加解密 CBC 模式中会先将明文分组与前一个密文分组进行 XOR 运算,然后再进行加密。 当然,对第一个明文分组来说,是没有前一个密文分组的,那么就需要一个 初始化向量(简称IV) CBC加解密图示: 异或的概念 当两个数的二进制表示进行异或运算时,当前位的两个二进制表示不同则为 1,相同则为 0。该方法被广泛推广用来统计一个数的 1 的位数 参与运算的两个值,如果两个相应 bit 位相同,则结果为 0,否则为 1。 即: 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 1 ^ 1 = 0 按位异或的 3 个特点: (1) 0 ^ 0 = 0,0 ^ 1 = 1 即 0 异或任何数=任何数 (2) 1 ^ 0 = 1,1 ^ 1 = 0 即 1 异或任何数 = 任何数取反 (3) 任何数异或自己=把自己置 0 CBC反转字节攻击 精髓 通过损坏密文字节来改变明文字节 讲解 根据解密方式我们可以知道,A=密文分组2,B=明文分组3,C为经过解密但还没进行异或的密文分组3,D为我们经过攻击反转要得到的明文。 在整个过程中,明文、密文我们都是知道的,但是加解密的密钥是不知道的,所以我们不能直接改变信息

TLS中PSK的简要介绍

落花浮王杯 提交于 2019-11-26 03:46:14
PSK的目的   我们都知道TLS需要依赖非对称算法(RSK,EC,DS,DH...)完成秘钥交换,身份认证的功能,但是非对称算法的耗时和耗计算资源的特性在对资源或者耗时敏感的场景下,你就想把他优化掉。本文我们就简绍一种TLS标准本身提供的优化方式:PSK. PSK的江湖地位   PSK的方式应该是最古老的一种秘钥交换和认证方式,但是它在TLS中的江湖地位是比较低的,从最早的非正式的优化方案到有了自己的RFC编号RFC4279(December 2005) 对比TLS的历史 TLS中PSK的核心目的   一下是RFC中的原文摘录 This document specifies three sets of new ciphersuites for the Transport Layer Security (TLS) protocol to support authentication based on pre-shared keys (PSKs). These pre-shared keys are symmetric keys, shared in advance among the communicating parties. 一,The first set of ciphersuites uses only symmetric key operations for