存档

‘Security & Identity’ 分类的存档

在 iOS 中使用 OpenSSL 库

2012年6月8日 没有评论

手机安全对OpenSSL的依赖很高,值得大家深入研究。

我试着在MacBook Air编译OpenSSL库,并在iOS设备中使用。

系统配置:MacBook Pro, Mac OS X 10.7.3, 1.7 GHz Intel Core i5, 4GB 1333 MHz DDR3,

安装了 Xcode 4.2.1, MacPorts 2.0.4 先这样编译下,下载openssl源代码包,如openssl-1.0.1b 在用户主目录创建 mkdir ssllibs 看看openssl支持哪些平台: ./Configure // 注意大写C

可以看到openssl支持:android、android-armv7、android-x86、iphoneos-cross等移动平台

./Configure darwin64-x86_64-cc –openssldir=/Users/<username>/openssl-1.0.1b

make & make test & make install

cd /Users/<username>/openssl-1.0.1b/bin ./openssl version OpenSSL 1.0.1b 26 Apr 2012 哈,编译成功。

因为所有的 iOS 设备都使用 ARM 架构处理器,iPhone4支持armv6, armv7指令集,所以在openssl-1.0.1b.tar.gz的目录下创建以下目录: mkdir openssl_armv6 openssl_armv7 openssl_i386

./configure BSD-generic32 –openssldir=/Users/<username>/openssl-1.0.1b/openssl_i386 vim makefile 将CC= gcc修改为 CC= /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386

在CFLAG = 后面紧跟 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/

然后make & make install openssl_i386/lib目录下 生成 libcrypto.a 和 libssl.a ,编译成功。

先将编译好的 i386 库保存到 ssllibs 目录 mv openssl_i386 ssllibs/

同样的步骤编译 armv6, armv7

./configure BSD-generic32 –openssldir=/Users/<username>/openssl-1.0.1b/openssl_armv6

./configure BSD-generic32 –openssldir=/Users/<username>/openssl-1.0.1b/openssl_armv7

CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 -arch armv6

CC= /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/

make & make install

mv openssl_armv6 ssllibs/

mv openssl_armv7 ssllibs/

思路是这样的,但因为OpenSSL、Xcode、iOS的版本不同,可能会出现一些问题。

编译openssl-1.0.1c,

创建:openssl_arm 目录,修改Makefile

CC= /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc

CFLAG= -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk

修改 crypto/ui/ui_openssl.c

static volatile sig_atomic_t intr_signal;

static volatile int intr_signal;

make, make install 成功,openssl_arm/lib 目录下生成:libcrypto.a libssl.a

现在,直接从 OpenSSL for iPhone 中获得OpenSSL和iPhone应用。

git clone https://github.com/x2on/OpenSSL-for-iPhone.git

cd OpenSSL-for-iPhone ./build-libssl.sh cd src/openssl-1.0.1b cat Makefile 你会看到以下信息: PLATFORM=BSD-generic32 CC= /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386 CFLAG=-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk…

你需要下载Xcode4.3的版本,因为我的Xcode4.2.1是iPhoneSimulator5.0.sdk 下载Xcode 4.3.2 for Lion.dmg(1.85 GB)

接下来,你就是make & make install

在Xcode中打开OpenSSL-for-iOS.xcodeproj 项目 把Xcode更新到4.3.2,Mac OS X更新到10.7.4 编译此项目出现错误:ld: library not found for -lcrypto clang: error: linker command failed with exit code 1 (use -v to see invocation)

把刚才编译好的libcrypto.a libssl.a 拷贝到 OpenSSL-for-iPhone/lib 目录下,重新编译,编译成功 :)

参考资料:


分类: Apple, Security & Identity 标签: ,

本 Blog 成功整合 OpenID

2007年6月15日 没有评论

通过 WordPress OpenID plugin ,用户可通过 OpenID 帐号登录本博客。

建议大家通过 http://www.myopenid.com/ 注册 OpenID  帐号, http://www.myopenid.com/ 的服务比较稳定。

下一步,我们会将 OpenID 整合到 Forum, Wiki, Photo 等服务里。


Sun 提供 OpenID 身份认证服务

2007年6月7日 没有评论

Sun 已经开始支持 OpenID 身份认证服务。

如今, Sun 在其 34,000 名雇员中也开始使用 OpenID 身份认证服务,其服务构建在 OpenSSOOpenDS 上,通过 OpenID 扩展的方式提供。

Source: http://blogs.sun.com/theaquarium/entry/openid_sun_com_is_open


分类: Security & Identity 标签:

王小云破解全球两大密码算法:MD5, SHA-1

2007年1月6日 1 条评论

MD5、SHA-1是当前国际通行的两大密码标准。据了解,MD5由国际著名密码学家图灵奖获得者兼公钥加密算法RSA的创始人Rivest设计,SHA-1是由美国专门制定密码算法的标准机构—美国国家标准技术研究院(NIST)与美国国家安全局(NSA)设计。SHA-1更是被认为是现代网络安全不可动摇的基石。

王小云从事的是Hash函数的研究。目前在世界上应用最广泛的两大密码算法MD5和SHA-1就是Hash函数中最重要的两种。

一般来讲,破译一个顶级密码需要10年时间,而王小云十年内破译了五部顶级密码: MD5、SHA-1、HAVAL-128、MD4和RIPEMD.

MD5密码算法,运算量达到2的80次方。即使采用现在最快的巨型计算机,也要运算100万年以上才能破解。但王小云和她的研究小组用普通的个人电脑,几分钟内就可以找到有效结果。

王小云破解密码的方法与众不同。虽然现在是信息时代,密码分析离不开电脑,但对王小云来说,电脑只是自己破解密码的辅助手段。更多的时候,她是用手算。手工设计破解途径。

图灵奖获得者姚期智评价她说:“她具有一种直觉,能从成千上万的可能性中挑出最好的路径。”

可以看出直觉对一个科学家的重要性,爱因斯坦也曾表示他相信直觉和灵感。


分类: Security & Identity 标签: