Posts

Showing posts from January, 2016

As someone who cares about privacy, how do I feel working for Google?

(Needless to say, all opinions are mine, I don't speak for my employer or anyone else.) A friend recently asked me this question "Thai: I think you have showed a very consistent view on privacy so I would like to ask a rather sensitive question (feel free to not answer): how do you feel working for Google, one of the most notorious companies in tracking and keeping people private data?" I found my job rewarding. Google in general and my team in particular have done a lot to improve the privacy and security of not only Google users, but the Internet as a whole. If Google wasn't pushing hard and investing heavily in the past few years, most traffic on the Internet would have still been sent unencrypted or over outdated protocols. Many core developers of OpenSSL, the software package that enables Internet encryption, are my coworker. Many of the most important innovations and researches on Internet encryption were done by Googlers. HSTS, public-key pinning, ...

Yêu nước

Yêu nước là mong muốn làm cho đất nước mình giàu mạnh hơn, cuộc sống người dân tốt đẹp hơn. Vậy, giả sử Việt Nam không có vấn đề gì về kinh tế chính trị, trình độ dân trí cao, an sinh xã hội tốt như Thụy Sĩ, Thụy Điển, hay Singapore chẳng hạn, liệu những người yêu nước có còn lý do yêu nước hay không? Yêu nước là sự gắn kết, mối liên hệ vô hình với những người có cùng văn hóa, có cùng ngôn ngữ, có cùng màu da, có cùng nguồn gốc với mình. Vậy, mấy dân tộc "anh em" thiểu số ở Tây Nguyên hay Tây Bắc, mình có nên yêu thương họ không nhỉ, vì họ đâu có cùng văn hóa, ngôn ngữ, màu da hay nguồn gốc? Thậm chí giống nhau hết, nhưng người Hà Nội có thấy liên hệ, gắn kết với người Thanh Hóa không nhỉ? Nước Mỹ hỗn chủng tạp, dân tứ xứ đổ về, da vàng, da đen, da trắng, mỗi thằng nói một thứ tiếng khác nhau, chọn chung tiếng Anh để giao tiếp hàng ngày, về nhà lại nói tiếng riêng. Theo logic ở trên, tôi không thể nào liên hệ được với một anh Ấn Độ và ngược lại. Như vậy là, ở Mỹ chắc k...

Nhận dạng giọng nói tiếng Việt

Một tính năng độc đáo của Android mà ít người biết đó là khả năng nhận dạng giọng nói bằng tiếng Việt. Y như ảo thuật. Mình nói tiếng Việt nó hiểu hết. có thể tìm kiếm bằng tiếng Việt. Ví dụ như nói Tôi muốn ăn phở ở Sài Gòn nó hiểu luôn. Ai muốn thử mở Android lên: settings -> language and input -> voice typing -> languages -> chọn tiếng Việt. Toàn bộ bài blog này được viết bằng chương trình nhận dạng giọng nói trên Android. Tôi chỉ thêm dấu câu vào vì hiện giờ Android chưa hiểu ...

Thằng Tư

Thấy thiên hạ ầm ầm mua vé số, tự dưng tôi nhớ đến thằng Tư. Nó tên thật Nguyễn Quý Tứ, đứng thứ tư, nên chết tên. Anh hai của nó là thằng Nho, không biết bị gì, nhưng chậm trí. Đầu óc của nó cỡ đứa con nít mười hai mười ba tuổi, mặc dù nó đã bốn mươi rồi. Đợt vừa rồi về, gặp nó ngoài đường nhưng nó không còn nhớ tôi là ai. Dưới thằng Nho là thằng Tiến, chích choác, bỏ, chích choác tiếp, bỏ, không biết bây giờ ra sao. Sau thằng Tư còn hai ba đứa nữa, nhưng tụi nó nhỏ hơn tôi nhiều, nên tôi chỉ chơi với thằng Tư. Thằng Tư khét tiếng lì đòn. Bọn con nít tụi tôi đi chơi với đám lớn, trò chơi yêu thích của tụi nó là bắt hai thằng ra đánh lộn, thằng nào khóc trước thua. Giống như đá gà. Tôi ốm yếu nhỏ xíu, nhát đòn, lúc nào cũng thua. Thằng Tư đánh lộn chưa bao giờ thua. Bét nhất là huề. Nhiều lúc chảy máu miệng luôn nó cũng không khóc. Đám lớn khoái nó lắm, đi đâu cũng dắt nó theo. Nhiều khi đang ngồi n...

Constructing the Dual EC backdoor

Unless you've been living under the rock for the past couple of weeks then you've probably heard of the Dual EC backdoor in Juniper devices. Matthew Green wrote an awesome blog post, and Checkoway et al gave a nice update on the backdoor at Real World Crypto 2016. If you haven't read these links please do now, I'll wait. The backdoor is the knowledge of $d$ such that $dQ$ = $P$, where $P$ and $Q$ are the two constants in Dual EC. Someone asked me how NSA can find such a $d$, and it took me a while to figure it out so I thought I'd share with you all. Note that $P$ is not a random point, but it's the standard generator defined for the P-256 curve. That means unless NSA had been planning for the Dual EC backdoor since the 1990s when the P-256 curve was defined, they couldn't just take a random $Q$, and multiply it with a random $d$ to obtain $P$. What NSA might have done was to generate a random $d$, then use the extended Euclidean algorithm to find $e$ s...

VietBay Tech Talk: History and Technology of the Crypto Backdoor in Juniper Devices

Image
I gave this talk to VietBay, a group of Vietnamese expats living in the Bay Area. It's more than 2 hours, but I covered a lot of ground, from the history of Dual EC to the math of elliptic curve crypto. Enjoy and leave a comment if you have any questions. This is not a one-off event, but we're going to hold regular tech talks covering what we found interesting in tech, science, engineering, math, and whatnot. The next topics shall cover database technologies, quantum computers, even more crypto, etc. Stay tuned!

Exploiting the math/rsa bug in Go

The bug is really cool: https://groups.google.com/forum/#!topic/golang-dev/MEATuOi_ei4 . It impacts not only crypto/tls, but also crypto/openpgp. If you are using Go to sign messages, it's time to change your RSA private keys. Someone asked me to explain the bug in layman term, and below is my take. The RSA function calculates $m^e \pmod{pq}$, where $p$ and $q$ are large prime numbers. Modular operations are expensive, people usually use two tricks to speed them up: a/ Montgomery reduction : calculating 33500 % 99 is hard because 99 is not a nice number. It'll be awesome if we can replace 99 with 100, but that's exactly the trick that Montgomery found. b/ Chinese Remainder Theorem : in high school you were probably asked to find a number $n$ satisfying $n \pmod{2} = 1$, $n \pmod{3} = 5$, and $n \pmod{5} = 7$. Perhaps your teachers didn't tell you, but you can solve this problem using the Chinese Remainder Theorem. We can use the same trick here, by computing $m^e ...

Đầu tư an toàn thông tin thế nào cho đúng?

Cách đây mấy tuần tôi có viết một bài cho báo Tuổi Trẻ về đầu tư an toàn thông tin. Tuổi Trẻ đăng nguyên văn ở đây . Hôm nay vừa thấy tin anh Tavis Ormandy -- hi vọng sẽ mời được ảnh đến TetCon 2017 -- phát hiện một số lỗi cực kỳ ngớ ngẩn của TrendMicro , nên mới nhớ là chưa gửi lên blog. Tôi không bất ngờ vì TrendMicro có lỗi, chỉ thấy bực là có quá nhiều lỗi đơn giản mà chỉ cần nhìn qua là thấy liền. Chứng tỏ TrendMicro mang tiếng là bán sản phẩm security nhưng không có người làm security cho chính sản phẩm của họ. Tôi có nhấn mạnh chỗ này trong bài viết bên dưới. Tôi tự đặt cho mình mục tiêu là trong vòng 5 năm tới sẽ làm doanh thu tại Việt Nam của các hãng phần mềm chống mã độc đi xuống hoặc giậm chân tại chỗ chứ không đi lên. -- Sử dụng giải pháp an ninh có sẵn: coi chừng tiền mất tật mang Hồi trung tuần tháng chạp, Juniper, hãng thiết bị mạng nổi tiếng của Mỹ, thông báo rằng có ai đó đã bí mật cài mã độc vào các thiết bị của họ. Mã độc này cho phép kẻ tấn công có thể đ...

Books

A friend asked me to recommend some books, and here are what I came up with. I've reviewed most of them on this blog, but you can also find some new books here. I used to read a lot of non-fictions, but these days I read mostly fiction and math. Below are the ones that I like enough to write a review. I hate  self-help  books FWIW. Philosophy - Fooled by Randomness ( review ): I read this book a long time ago, and it completely changed how I think ever since. I discovered that I had a lot of biases ( hindsight bias , loss vs gain ), and I learned how to think critically, which unfortunately was never taught in my schools. - "Thấy lại chính mình" ( review ). I don't think you could find this book at bookstores or on the Internet, but I have a copy, let me know if you want to read it. When I relocated to here from Vietnam, my mom sponsored a project which printed and gave away 1,000 copies of this book. She gave me a copy. The book is a monk's pamphlet, I wa...

$(-1)^2$

$i$ is called an imaginary number. It's unreal, because there is no real number whose square is $-1$. It doesn't match reality. In reality, a square of any non-zero number is always positive. Or is it? Have you ever wondered why the result of multiplying a negative number with a negative number must be positive? Multiplying two negative numbers together doesn't look natural to me. In real life we multiply when we want to count things, but I can't think of any situations where we want to multiply a negative number of things a negative number of times. Thus, in order to make sense of negative number multiplications, we have to forget reality and turn into the realm of abstraction. We want to know why $(-x) * (-y) > 0$, for all positive $x$ and $y$. This question eventually boils down to: how can we prove that $(-1) * (-1) = +1$, which bothered me for quite sometime. Tell me, why isn't it $-1$ or even $-2$? Even the great Euler resorted to an thoroughly unconvi...

$i^i$

Image
$i$ is that weird number whose square is $-1$. Without Googling, can you calculate $i^i$? Yes, $i$ to the $i$. Does it even make sense? No, it didn't for me, until I found http://betterexplained.com . There are a lot of great articles on this site, but I especially love two series: http://betterexplained.com/articles/a-visual-intuitive-guide-to-imaginary-numbers/ and http://betterexplained.com/articles/an-intuitive-guide-to-exponential-functions-e/ . This is how math should be taught in high school. Would love to hear your opinions if you disagree. If you go down this road as I just did eventually you would come up with the most beautiful equation in all of mathematics: $e^{i * \pi} + 1 = 0$ I don't even know how such an equation is possible. $i$ looks man-made, $\pi$ and $e$ are natural, but together with $0$ and $1$ they are the most important constants, and somehow after an addition, a multiplication, and an exponentiation, all of which are basic arithmetic oper...

Bảo kê

Đọc bài " Ai bảo kê cho Trầm Bê " của nhà báo Huy Đức, tôi không thể không tự hỏi ai bảo kê cho Huy Đức. Để có thể phê bình nặng nề, liên tục tấn công thủ tướng Nguyễn Tấn Dũng, đúng hay sai chưa xét, người bảo kê cho Huy Đức phải có quyền lực không kém. Đọc các bài viết khác của Huy Đức, tôi đoán đó là chủ tịch nước Trương Tấn Sang, nhưng không đủ thông tin để kết luận. Trương Tấn Sang (trước đây là Võ Văn Kiệt) bảo kê cho Huy Đức có lẽ vì họ cùng ở Sài Gòn. Chia phe đánh nhau là tất yếu trong chính trị. Chính trị không có phe phái là độc tài toàn trị. Nội bộ đảng cộng sản đánh nhau loạn xạ đáng mừng hơn đáng lo. Cánh nhà báo chọn phe cũng không sao. Các tờ báo ở Mỹ cũng thường có xu hướng chính trị rõ rệt. New York Times cấp tiến, thường ủng hộ Dân Chủ. Fox News, ngược lại, bảo thủ, là diễn đàn của Cộng Hòa. Dẫu vậy khi tờ New York Times phê bình George W. Bush, hay xỉa xói thượng nghị sĩ Cộng Hòa, họ không cần bảo kê của Obama. Hay khi Fox News chửi Obama xối xả, họ ...

Vài kinh nghiệm thương lượng giá cả

Bài trước tôi có nói vài nơi hỏi tôi giá làm tư vấn xong rồi biến mất, không bao giờ trả lời. Thật ra cũng có vài nơi kỳ kèo, trả giá nhưng rốt cuộc không đi đến đâu. Từ hồi đi làm đến giờ, tôi gặp nhiều tình huống trả giá kiểu này rồi, hôm nay ghi lại đây để mai mốt ai có gặp tham khảo. Có nơi nói mắc quá, hỏi có bớt không. Tôi nói không, thà không làm, để dành thời gian đi chơi, chứ đi làm phải nhiêu đó mới làm. Họ cần tôi hơn tôi cần họ. Nếu làm rất tốt việc gì đó, đừng bao giờ làm miễn phí hoặc lấy giá quá rẻ. Nghe đồn Louis Vutton đốt trụi rũi hàng ế, chứ chưa bao giờ chịu giảm giá. Có nơi than, 1 giờ anh đòi đến mấy trăm đô, bằng lương người ta làm cả tháng. Tôi nói để rút được thành 1 giờ, tôi đã phải học, phải làm biết bao nhiêu năm. Ai cũng có thể kéo dài việc làm xong trong 1 giờ thành ra 1 tháng, nhưng mấy ai có thể rút gọn 1 tháng làm việc thành 1 giờ. Nếu muốn, tôi hoàn toàn có thể làm 1 giờ xong đợi 1 tháng sau mới báo kết quả, nhưng như vậy chẳng có lợi cho ai cả. ...

Làm an toàn sản phẩm (product security) là làm gì?

Đây là công việc hàng ngày của tôi. Ở TetCon có người hỏi và gần đây cũng có vài nơi hỏi, nên tôi viết lại đây để tiện tham chiếu về sau. Ở Google tôi là một trong 4 nhóm trưởng của một nhóm hơn 20 kỹ sư chịu trách nhiệm về an toàn sản phẩm. Hầu hết sản phẩm của hãng đều do người trong nhóm hoặc từng là người trong nhóm chịu trách nhiệm. Sản phẩm lớn có người chuyên trách, sản phẩm nhỏ hơn chúng tôi thay phiên, ai thích gì làm nấy. Chúng tôi đề nghị (nhưng không bắt buộc) nhóm phát triển sản phẩm thông báo kế hoạch của họ càng sớm càng tốt. Có nhóm nói chuyện với bọn tôi ngay khi chưa viết bất kỳ một dòng mã nào, nhưng cũng có nhóm đợi đến ngày phát hành. Khi tôi làm ở Matasano , khách hàng thường liên hệ trước khi phát hành sản phẩm vài tháng. Nên bắt đầu thẩm định ATTT càng sớm càng tốt. Sửa lỗi rẻ hơn nhiều khi sản phẩm còn nằm trên bàn thiết kế so với khi sản phẩm đã nên hình nên dạng. Khi xây một căn nhà, sửa mống sẽ tốn kém và có khi không thực hiện được nếu nhà đã xây đến ...

TetCon 2016 Slides Available for Download

We're still waiting for two speakers, but all other slides including links to paper or source code have been uploaded to https://tetcon.org/saigon-2016/talks/index.html . Enjoy! Note that we won't have slides for Pham "suto" Toan's talk because he doesn't want to release them. Sheraton is a really cool hotel. The venue is lovely, the tea breaks are awesome, and the staff is friendly and helpful. Hotel management reported that ~280 persons attending the conference. Most are male, only a handful are female. Next time I'll give free tickets to female attendants. We as a community seriously need more female hackers. Thanks to Microsoft and two anonymous sponsors and everybody who bought tickets, financial wise we have a net positive of \$1350 (+~\$700 from Bruce's class.) This is a nice surprise, as I expected losing money. In some sense I lost a couple of grands, as I didn't use the sponsorship money to pay for my air tickets. I planned to expense...

Thông báo cuối về TetCon 2016

Hội thảo sẽ diễn ra vào ngày thứ hai 4/1/2016, tại Sheraton Saigon, bắt đầu đón khách lúc 8h sáng và kết thúc vào lúc 18:30 cùng ngày. Thông tin chi tiết chương trình có thể xem ở https://tetcon.org/saigon-2016/schedule/index.html . Khi đến dự vui lòng mang theo vé (vé điện tử hoặc vé in). Chúng tôi sẽ kiểm tra vé tại cửa vào buổi sáng và buổi chiều. Chúng tôi không bán vé tại cửa. Cách duy nhất để mua vé là mua trên mạng. Địa chỉ là: https://ticketbox.vn/event/55112/ticket-booking/26953#/step-select-tickets . Nếu bạn đã đặt mua vé nhưng chưa thanh toán vui lòng đặt lại vé và chọn thanh toán điện tử để nhận vé qua email. Khách sạn kiểm soát số lượng khách. Những ai không mua vé nếu bị phát hiện sẽ phải thanh toán 800.000VND/người cho khách sạn và mua vé 500.000VND/người, nếu không sẽ bị yêu cầu ra về. Xin cảm ơn và hẹn gặp lại ở TetCon!