关于数字遗嘱网站密码加密方面的设计 v0.1

目前只是一个初步的加密设计,请各位指正,希望最终可以形成一套可以接受的加密和解密流程。

变量定义
username:用户名
mp:用户主密码
bp: 遗嘱接收人的密码(可选)
MSG: 数字遗嘱正文

K1:加密数字遗嘱所用的秘钥

S1:加密过的K1
S2: 加密过的MSG

H1:用来验证登录

R1:随机字符串1
R2:随机字符串2
R3:随机字符串3

MDB:主数据库
CDB:离线数据库

网站需要强制使用HTTPS

注册流程:
1.设定用户名和密码,并设定MSG
2.为用户生成R1并存入MDB
3.生成H1并存入MDB H1 = Hash(username + mp + R1)
3.为用户生成R2并存入MDB
4.生成K1 K1 = Hash(username + mp + R2)
5.使用K1加密MSG并存入MDB
6.生成R3并写入缓存
7.生成S1并存入MDB K1->加密->S1 如果用户设定了bp就使用Hash(bp+R3)作为秘钥加密K1,如果用户没有设定bp则使用Hash(username+R3)为秘钥
8.生成S2并存入MDB 使用K1加密MSG得到S2

签到流程:
1.用户登录 发送username和mp到服务器,对比Hash(username+mp+R1)和H1,如果相同登录成功
2.更新CDB中相应的释放时间

数字遗嘱释放:
假设用户设定,如果30天没有签到就释放数字遗嘱,并设定7天缓冲期
1.如果用户连续23天没有签到,发送邮件给用户提醒其签到
2.如果用户连续30天没有签到,发送邮件给遗嘱接收人,请其帮助提醒用户来签到
3.37天用户仍然没有签到,R3应该已经被释放,将R3转存到MDB,并发送邮件给遗嘱接收人邀请其登录网站接收数字遗嘱
4.遗嘱接收人登陆后,如果有设定bp,则要求其输入然后使用Hash(bp+R3)解密S1并得到K1,再使用K1解密S2得到MSG

离线数据库的使用:
项目初期限制于我只打算用一台vps,所以MDB和CDB会同时在线,但是如果有条件预计使用以下的设计。
CDB在通常情况下是一个只写数据库,生成的R3会用R3的释放时间一同存入CDB,但是在释放时间到来以前内容不可读,用这种方法保证只有用户在一定时间没有登录本网站,作为秘钥的一部分使用的R3才会被读取

关于暖气的问题

哈尔滨冬季供暖时间10月20日至次年的4月20日,供暖价格 40.35元每平方米。
由于成本原因,哈尔滨供暖多使用煤炭,价格约为310元每吨,热值在3000大卡每公斤左右(约合3.489千瓦·时)。
按此计算:
310/1000=0.31元每公斤
0.31/3.489=0.089元每千瓦·时
资料来源http://finance.sina.com.cn/china/20141121/032120879211.shtml

以65平方米的2两室一厅计算,65*40.35=2622.75元
平均到每个月 2622.75/6 = 437.125元每月
每月耗能约为 437.125/0.089=4911千瓦·时

英国65平方米的两室一厅,冬季供暖每月大约需要人民币450元到500元(只在夜间和周末使用暖气),这里安照450元每月计算。
英国天然气折合人民币每千瓦·时约0.35元,按照一立方米天然气可产生38兆焦(10.6千瓦·时)能量,每立方米天然气约合0.35*10.6=3.71元
每月需要使用天然气约 121立方米,每月耗能约为1285千瓦·时

下面假设,同样是65平米左右的两室一厅,在英国伦敦与上海供暖所需热量相当,同为燃烧121立方米天然气释放的热量

首先,每燃烧一立方米商业品质的天然气可产生38兆焦(10.6千瓦·时)的能量
资料来源http://zh.wikipedia.org/wiki/%E5%A4%A9%E7%84%B6%E6%B0%94#.E5.8C.96.E5.AD.A6.E6.88.90.E5.88.86

上海天然气价格:
年用气量0-310(含)立方米,3元每立方米
年用气量310-520(含)立方米,每立方米3.30元
年用气量520立方米以上每立方米4.20元
这里不考虑全年用量,按照最低档3元每立方米计算,折合0.283元每千瓦·时
资料来源http://money.163.com/14/0806/04/A2UGH35Q00253B0H.html

上海电价
这里安按照最低档计算,峰时和谷时用电量各占一半的情况下计算,电价为(0.617+0.307)/2 = 0.462元/千瓦·时
资料来源http://sh.sina.com.cn/news/z/jietidianjia/

使用天然气的情况下,每月供暖需要121*3=363元。
使用电供暖的情况下,每月花费约为 121立方米*10.6千瓦·时*0.462元/千瓦·时=592.5612元

说实话写到这里我已经不知道应该得出什么样的结论了,单纯说说我的感受吧!
1.南方冷的主要原因为家里没有组建合适的弄暖系统,用电力供暖是相当昂贵的,实际使用中估计至少是使用天然气供热的1.5倍以上。空调制热估计效率更低。
2.大家都不舍得花钱,哈尔滨的供暖费用是强制收费,当然很多企业都有给员工报销供暖费用的传统。但是南方供暖就要花已经到手的钱,自然不舍得使劲开暖气,不过另一方面也是节能吧…
3.中国的能源价格跟英国差不多…
4.不考虑环保的情况下,有没有暖气的问题完全是钱的问题

记录几个喜欢的kickstarter项目

这几天热衷于上kickstarter上面找电子,也确实看到一些不错的项目,虽然没兴趣去买,不过也记录一下好了

1. i-Ox Smartphone Grip

个人觉得这个在手机后面吸一个戒指的想法真的很好,尤其是不用的适合可以收起来这点更加增加了实用性,但是我主要看中的是那个吸盘,演示中说ipad也一样可以用撑得住,比较好奇如何做出吸附力这么强的吸盘的。

2. ZENLET

台湾人民设计的现代化钱包,推开这个设计我觉得非常好,不过我最好奇的地方是如何在推开的时候可以让卡一张一张的排好,这点真的很神奇。不过缺点也很明显,不方便放现金在里面。估计台湾现在真的很少需要现金了吧…

Masonry js在chrome和safari现实不正确的问题

这几天在用bootstrap和masonry重写这个主题
在测试masonry的时候第二行在一开始就没法正确的显示,但是改变窗口的大小使每个单元重新排列以后发现又可以正确现实。
这个问题在Firefox就没有,只有webkit的浏览器才有这个问题。经过搜索终于找到了办法


var container = jQuery('.masonry-container');

jQuery(window).load(function() {
    container.masonry({
        columnWidth: '.masonry-item',
        itemSelector: '.masonry-item'
    });
});

方法很简单,就是把masonry的初始化函数放到.load里面,这样问题就迎刃而解了,但是我还是不太明白其中的原因。如果有高人可以告诉我一下真的是不胜感激!

月底流量清零?Yes or No?

最近关于流量是不是应该在月底清零的讨论真的搞得没人可以充耳不闻,而我也就片面的访问了一下一些人(调查样本50人),其中大多数24个回答是不合理,8个人表示合理,剩下的中立或者没有回复。

这个根本不能算时候调查,说实话我觉得结果很出乎我意料,在我看来能有4个人表示合理就跟多了,可竟然有八个人。

至于清零合理不合理这个问题我的想法是不合理!流量累计到下个月合理吗?也不合理。

那么到底怎么样合理呢?

在说这个话题之前我先要说明一下我自创,但是却不一定是独家使用的以可口可乐为基准的购买力衡量方法。这个方法简单来说就是把某一个物品或者服务的价格换算可以再当地购买瓶装可乐的瓶数(以500~600ml塑料瓶装可乐零售价格为准),从而衡量当地的消费能力。
简单举个例子:英国吃一份盒饭的价格是6英镑,瓶装可乐零售价一般是1.2英镑,那么盒饭的价值等价于5瓶可乐。中国的一份盒饭的价格是8cny,可乐的价格是3cny,那么盒饭的价值等价于2.66瓶可乐。美国的盒饭价格8美元,可乐1.5美元一瓶,那么盒饭等价于5.33瓶可乐。

下面再来比较一下各国的手机套餐,因为英美在国内基本不存在漫游费的问题,所以我们拿中国联通做一个比较。

比较之下就可以看出中国的手机套餐有多贵了,英国太小跟中国没有可比性,但是美国跟中国的国土面积差不多,所以相当有参考价值。不过换个角度说中国的手机费不可能降到美国的水平,但是300M对于现在的各种手机游戏,或者哪怕只是刷刷微博也是捉襟见肘,于是才有那么多人觉得流量不能累积不合理。

于是我想了个解决办法,还是以96元套餐为例 240分钟每分钟0.15元 一共是36元,300M流量每M 0.3元 一共是90元,短信每条0.1元 一共是24元。如果用户使用套餐额度100分钟 100M流量 100条短信,实际消费应该是15+30+10=55元,那么96-55=41,这41元返还用户作为话费累积,流量月底清零下月还是需要缴纳96元套餐费,但是这个话费也要有个期限,我觉得这个期限就到合约结束为止。

个人觉得这个方案大概比较折中,运营商和用户都能接受,不过操作起来对结算系统的要求就增加了不少,总之只是个想法,估计是实现不了的。还是希望中国也能早点放开虚拟运营商,这样降价就指日可待了

Cookieless cookies

有另外一种比较隐蔽的用户追踪技术,不使用cookie或者Javascript。很多网站已经在用了,但知道的人不多。本文就来介绍一下这种技术是如何追踪用户,用户又该如何避免追踪。

这种技术不依赖于:

  • Cookies
  • Javascript
  • LocalStorage / SessionStorage / GlobalStorage
  • Flash, Java或插件
  • 你的IP地址或者User Agent头
  • Panopticlick

相反,它使用另外一种存储方式,而这种存储即使浏览器关闭仍然能够存在,那就是浏览器缓存。 即使你完全禁用了cookie和Javascript,甚至使用VPN服务,这种技术仍然能够跟踪到你。

示例

到这个链接(http://lucb1e.com/rp/cookielesscookies/ )上提交一些数据,然后关闭浏览器,然后再打开,看看数据是不是仍然在那里?

看一下你的Cookie里面的有没有东西?没有的吧,这些都在我们几乎没有察觉到的一个假的图片校验。看一下上面那个眼睛,哈哈,那是我们的追踪者。

 

它如何工作?

下图是一个大致描述

etags

图像中的ETag是一种图像校验方式,当图像发生变化的时候,ETag也会随之发生变化。因此,浏览器会拿着图片和ETag去服务器进行校验,让服务器来应答这张图片是否发生改变,如果没有的话,这张图片就直接从浏览器缓存中命中返回,无需再去服务器重新拉取图片了。

细心的读者可能已经大概知道这个是如何可以实现追踪的:浏览器把之前的ETag发回到服务器就OK了。不过,通过这个ETag貌似能产生好多好多Cookie,不是吗?于是,服务器可以给每个浏览器一个唯一的ETag,再次收到这个ETag的时候,就能知道是你了。

 

Demo中的一些技术细节和缺陷

Demo为了能够不借助于Javascript,我不得不找出一些信息对你来说是唯一的,除了那个ETag。图片是在页面加载后加载的,不过只有图片里面有ETag。我是如何将时间信息显示出来呢? 我确实做不用Javascript动态更新数据,而这Demo就是要证明不用依赖Javascript。

一些小bug:

  • 所有你看到的信息都是上一次的。需要按F5才能刷出最新的。
  • 当你访问页面的时候不携带ETag (比如隐身模式),会话就会被清空。 或者说,你刷新页面的时候,数据就会消失。

我没有看到这种技术的比较简单的解决方案。当然有些东西可以做一下,可能其他网站不会用,不过我就是想让代码简单实用就行。

请注意,当你确实想去追踪某个人,你又不打算告诉用户他们正在被追踪,你这些bug是不存在的!

源代码

哪个程序没有源代码? 噢,好像是微软的Windows。

https://github.com/lucb1e/cookielesscookies

 

 

如何避免追踪?

如果你想更安全一些, 我强烈建议你开启隐身模式,使用HTTPS。只要这样开一下,就能防止BREACH (最新的https攻击),禁止了cookie跟踪,也消除本文讲到的缓存跟踪的问题。用网银的时候,我会使用隐身模式。在Firefox(IE应该也是)按Ctrl + Shift + P,在Chrome中按Ctrl + Shift + N。

除此之外,要看你对于隐私安全的洁癖程度了。

目前,我没有简单完美的办法,因为缓存跟踪几乎是无法察觉的,但同时缓存本身很有用,能够节省时间和金钱。网站将消耗更少的带宽(你仔细想想,到底是谁会为这些流量买单),你的网页加载速度更快,尤其是在移动设备上,将会有很大的区别,如果你没有一个无限流量的套餐的话,如果你在网速很慢的地方,缓存的效果就更加明显了。

听了这些,如果你还是不放心,那么完全禁用缓存吧。没有了存储性状态或者信息,任何追踪都不会发生,就是每次都要重新加载,速度会慢一些,并且我个人并不认为值得这样做。

Firefox的插件Self-Destructing Cookies有这样的功能:当你一段时间不使用浏览器,它就会清空你的缓存。这个插件的定期清空缓存可能是一个不错的选择,只有在访问会话期间会被追踪,不过反正他们也能够记录下哪个IP访问了哪个页面,所以这是没有什么大不了的。不过之后的访问由于缓存被清空(假设跟踪是基于缓存),看起来都是一个新的用户,追踪将无法继续。

我不知道任何其他能够定期清除缓存的插件(例如,每72小时一次),但应该是有的。这将是一个很好的方法,这对于99%的用户都是有用的,因为这个并不会使性能下降太大,同时还限制了追踪。

更新:我听说Firefox的插件SecretAgent也有ETag的覆盖,以防止这种类型的追踪。你可以对于有些站点设置白名单重置缓存,以达到防止追踪的目的。这个已经确认能够防止追踪。SecretAgent 的网站。

意想不到的惊喜 Veneto Merlot – Brunin 2011

今天的主角是这款意大利产的 Veneto Merlot – Brunin 2011

之所以说是意想不到的惊喜,就是因为这款朴实无华的美乐酿成的葡萄酒,有着低廉的价格,但口感却并不会输给售价是其两倍到3倍的一些红酒。

这瓶酒并不想其他一些廉价的葡萄酒一样散发着一股浓郁的香气,打开瓶盖,散发出的也只有一点点淡淡的酒香。说实话刚刚打开这瓶的时候我有那么一点点失望,但是随着这深红的液体进入口中,我却发现这确实是一款值得推荐的好酒。

入口略酸,可能由于年份较短,刚开始几乎感觉不到会有一点点的苦涩,但再次进入口中的时候却又感受到柔和的丹宁换换的刺激这我的舌头,留下淡淡回味。

这款酒没有明显的辛辣的感觉,从头到尾都非常的柔和,淡淡的酸味,柔和的丹宁,极少的辛辣,可以说是一款少有的非常容易引用的红酒。虽然廉价,但是却把美乐的优势发挥到了很高的水准。

 

London Hyper Japan 2013 游记

P7270587

 

第一张图是场里最配合的一个coser,而且是为数不多的有额外看点的cos,不过说实话欧洲人cos的凌波丽总觉得有点生硬呢。

Hyper Japan其实不是一个漫展,但是整个展会大概五分之三都是各种宅物,cos的舞台也是场内最大的一个,只可惜我去晚了没有能直接拍舞台上的coser…

下面继续上图,摄影水平和器材都比较渣,所以大家凑合看吧

P7270610

 

P7270609

 

这些刀剑意外的不是很贵,不过估计都是机械切割出来的,不能削铁如泥

P7270608

 

P7270606

 

路人很配合!

Continue reading “London Hyper Japan 2013 游记”