Posts

Showing posts from June, 2014

Javascript Crypto Is Useful

Image
In 2014 I wrote my first Javascript crypto library. Since then I've designed and written many such libraries - eight of which are deployed in popular Google products and services. Javascript crypto can help solve many problems, some of which I'm going to discuss in this post.
Some people have strong feelings about Javascript crypto, and with good reason. Writing crypto code in Javascript is difficult, because of the lack of types and the permissive nature of the run-times. You can always shoot yourself in the foot if you don't know what you're doing in any languages, but you don't even hear the shot in Javascript: the run-times don't usually complain, but they just silently give you an incorrect result.
For example, if you have an array x of 10 elements, accessing x[10] or x[11] won't throw an out of bound exception, but return undefined. This behavior is hostile to crypto code, as demonstrated in this neat exploit discovered by Bleichenbacher, the grandfathe…

Google End-To-End

Hôm kia nhóm của tôi phát hành mã nguồn của End-To-End, chương trình mã hóa email mà bọn tôi làm từ hơn một năm nay. Còn rất nhiều việc phải làm trước khi bọn tôi có một phiên bản chính thức, nhưng đi được bước đầu rồi cũng thấy nhẹ nhõm phần nào. Sáng nay đồng nghiệp báo là phần mềm của bọn tôi được nhắc đến trong một bài báo ở trang nhất của tờ New York Times. Trước đó Edward Snowden cũng có nhắc đến. Woohoo!

Đây là phần mềm lớn nhất mà tôi từng tham gia viết. Tôi chịu trách nhiệm thư viện các thuật toán mã hóa. Phần này nhỏ, nhưng mà để viết được tôi cũng phải đọc nhiều sách vở và các bài báo nghiên cứu. Tôi thích những dự án như thế này, vì làm xong thì mình "lời" được một mớ kiến thức mới.

Mặc dù tôi tự tin thư viện của mình sẽ "nâng giá gạo", nhưng mà tôi cũng thấy rất hồi hộp trước ngày phát hành, không chỉ cho phần của tôi mà còn toàn bộ chương trình. Trước giờ tôi…