Yahoo has discovered a 3-year-old security breach that enabled a hacker to break into more than 1 billion user accounts, breaking the company's own humiliating record for the biggest security breach in history.